Entradas

Boleta Electrónica en Chile: Los 3 Ambientes del SII para Desarrolladores

Boleta Electrónica en Chile: Los 3 Ambientes del SII para Desarrolladores Al trabajar con boletas electrónicas, los desarrolladores suelen confundirse con los distintos ambientes del SII . Para simplificarlo, hay tres ambientes principales : Certificación, Pruebas de envío y Producción , cada uno con su propósito y servidor específico. 1. Certificación de Boletas Qué es: Ambiente donde solo resuelves y envias el set de pruebas de boletas . Qué haces aquí: Realizar el enrolamiento del contribuyente ante el SII. Enviar el set de pruebas de boletas que proporciona el SII. Obtener el track ID de envío correspondiente al set y posteriormente lo declaras. Servidor / Endpoint: https://maullin.sii.cl 2. Pruebas de Envío de Boletas Qué es: Ambiente donde simulas el envío de boletas al SII . Qué haces aquí: Enviar boletas de prueba no las del set. Recibir trackid de recepción como si fueran boletas reales, pero sin efecto t...

PHP/Java Bridge: una integración posible, pero con riesgos

PHP/Java Bridge: una integración posible, pero con riesgos PHP/Java Bridge es una tecnología que permite invocar código Java desde PHP , delegando la ejecución a una JVM persistente que corre dentro de un contenedor de servlets , normalmente Apache Tomcat . Aunque hoy está obsoleta y fuera de soporte , sigue siendo posible hacerla funcionar , incluso en PHP 8 , siempre bajo configuraciones no estándar y asumiendo riesgos reales . Advertencia ⚠️ Proyecto sin mantenimiento ⚠️ Soporte oficial limitado a PHP 5 ⚠️ Funcionamiento en PHP 7/8 no garantizado ⚠️ Riesgos de seguridad y estabilidad ⚠️ Dependencia directa de un contenedor Java El uso de esta tecnología es bajo tu propia responsabilidad . No es una recomendación para producción. Por qué era necesario crear una aplicación web Uno de los puntos clave —y que suele olvidarse— es que PHP/Java Bridge exigía crear una aplicación web Java . No era opcional. La forma correcta de hacerlo era: Crear una aplicación web Java Empaquet...

Comunidad de programación web Java (Discord)

 Este servidor de Discord es un espacio complementario al blog para compartir recursos y experiencias sobre programación web en Java, con énfasis en Jetty, Servlets y Thymeleaf. El objetivo es: Compartir enlaces, ejemplos y documentación útil Conversar sobre desarrollo web con Java sin frameworks pesados Resolver dudas puntuales y comentar buenas prácticas No es un canal de soporte formal ni un chat permanente, sino un espacio de intercambio entre personas interesadas en desarrollo web Java. 👉 Enlace al Discord: https://discord.gg/YeDGK5aR

Cuando los jóvenes contratan programadores extranjeros

 No entiendo por qué muchas empresas fundadas por profesionales más jóvenes que yo —tengo 45 años— tienen la costumbre de contratar programadores extranjeros. Ya me ha pasado un par de veces: me llaman cuando el proyecto está en problemas, cuando hay que apagar incendios. No tengo nada en contra del talento extranjero; de hecho, puede funcionar muy bien en el frontend, donde el contexto local importa menos. Pero en el backend, la historia suele ser distinta. En uno de los casos, el desarrollador colombiano con el que hablé —supuestamente encargado del backend— me dijo: “Yo solo sé lo de la base de datos… ¿tú sabes leerla?” Esa fue toda la conversación. Nunca llegué a ver el código ni la estructura. En teoría, él solo debía enviarme un JSON para que mi API emitiera el documento electrónico, pero ni siquiera se llegó a ese punto. En otro proyecto, el programador —mexicano en este caso— insistía en que mi lógica era incorrecta, sin conocer cómo funciona la facturación electrónica en...

Cuando el "vibe coding" se convierte en desgaste

 Hace unas semanas me contactó un informático que trabajaba en la farmacia de su señora. Era de la misma carrera de Informática de mi casa de estudios, aunque él se dedicaba a soporte técnico . Me comentó: “Estoy haciendo un programa en Python para administrar la farmacia de mi señora y quiero añadirle boleta electrónica. Ojo, no soy programador, lo hice con ChatGPT.” En ese momento no entendí bien, pero luego comprendí que se trataba del famoso vibe coding : dejar que la IA escriba la mayor parte del código, sin planificación, estructura ni comprensión de fondo. El cliente me pagó las horas trabajadas, pero sinceramente, no fue un desafío técnico… fue un desgaste . No sabía qué herramientas o librerías estaba utilizando, y adaptar un script sencillo a ese entorno fue realmente complejo. Cada intento generaba nuevos prompts y versiones de código completamente distintas. Esa experiencia me dejó una conclusión muy clara: La IA puede ser una gran ayuda, pero cuando se us...

🚀 Integrando Thymeleaf en un Servlet Java

Hoy estuve trabajando en un servlet que utiliza Thymeleaf como motor de plantillas para manejar vistas dinámicas dentro de una aplicación Java tradicional (sin Spring Boot). Thymeleaf puede integrarse perfectamente en un proyecto basado en Servlets si se inicializa adecuadamente el TemplateEngine . Esto permite mantener una separación clara entre lógica y presentación, con vistas HTML procesadas dinámicamente desde el servidor. package com.egga.appventas.caja; import com.egga.appventas.include.ThymeleafConfig; import jakarta.servlet.ServletException; import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.ArrayList; import org.thymeleaf.TemplateEngine; import org.thymeleaf.context.Context; public class AdminCaja extends HttpServlet{ private TemplateEngine templateEngine; @Override public void init() { // Inicializaci...

Instalando Jetty fuera del IDE: una guía desde la documentación oficial

Mirando la documentación del sitio oficial de Jetty me encontré con esto: Jetty no está pensado para trabajar directamente con JSPs dentro de un IDE como NetBeans. Eso me obligó a salir de la comodidad del entorno y aprender a configurarlo desde cero, como un contenedor web independiente. En esta entrada compartiré los pasos que seguí para instalar Jetty de forma manual, fuera del IDE. Si estás buscando una alternativa liviana a Tomcat, esta guía puede ayudarte a comenzar. Paso 1: Descarga Jetty desde la página oficial Ve a https://eclipse.dev/jetty/download y descarga la versión estable más reciente. En mi caso, bajé el archivo ZIP correspondiente a Jetty 12. Paso 2: Descomprime y estructura Una vez descomprimido, verás una estructura como esta: jetty-home/ ├── bin/ ├── etc/ ├── lib/ ├── modules/ └── start.jar Paso 3: Crea el directorio de la aplicación (jetty-base) Jetty utiliza una estructura llamada jetty-base para alojar tu aplicación. Puedes crearla así: ...