Cómo generar facturas electrónicas usando PHP

Misceláneos
En los países de Latinoamérica se está produciendo una migración hacia la facturación electrónica (dejando de lado las viejas facturas de papel). Más allá de aspectos políticos, es una muy buena noticia por, al menos, los siguientes motivos: Las operaciones comerciales se realizarán mucho más eficientemente Se limitará muchísimo la economía informal y todos los problemas que de ella se derivan Dará mucho trabajo a muchos programadores :) Sobre este último punto, veo que a muchos colegas se les complica un poco el tema de integrar sus sistemas con aquellos de la autoridad central de su país, así que decidí hacer este pequeño compendio de las librerías que hay disponibles como para acortar un poco el camino. Cómo generar facturas electrónicas para Argentina En el caso de Argentina, la autoridad…
Leer más
Cuál es la diferencia entre SQL y MySQL

Cuál es la diferencia entre SQL y MySQL

Misceláneos
Vi esta pregunta en un grupo de Facebook: Y me llamó mucho la atención... claramente este amigo está bastante confundido y, como imagino que debe haber otros preguntándose lo mismo (o algo similar), me parece que vale la pena aclarar un poco los tantos :) Qué es SQL SQL es un lenguaje de programación diseñado especialmente para trabajar con bases de datos relacionales. Las siglas SQL significan Structured Query Language (Lenguaje estructurado de consultas). Una aclaración importante: la palabra "consulta" en español es sinónimo de pregunta o cuestionamiento... en el caso de las bases de datos (las relacionales al menos), cualquier operación (alta, baja, modificación o lectura) se denomina consulta. El lenguaje SQL fue inventado alrededor de la década de 1970 (algo que, en informática, es prácticamente la pre-historia) para trabajar…
Leer más
¿Es PHP un lenguaje sólo para principiantes?

¿Es PHP un lenguaje sólo para principiantes?

Reflexiones
Algo que vengo oyendo y leyendo mucho es esta creencia de que PHP es un lenguaje sólo para principiantes o para desarrollos "poco serios" y una cantidad de otras formas de significar que PHP es un lenguaje de segunda. Me recuerda a esta simpática imagen: Obviamente, mi opinión es la contraria y no puedo perder la oportunidad de expresar mi punto de vista (y esperablemente esclarecer un poco :)). ¿De dónde viene esta creencia? PHP es un lenguaje que no ha sido pensado con un plan de largo plazo. Ha crecido orgánicamente mucho más allá de su objetivo original (una simple herramienta para ayudar a generar scripts CGI) y ese crecimiento ha sido ciertamente desordenado (hasta hace un tiempo al menos). La consecuencia directa de este objetivo es que PHP fue…
Leer más
¿Es posible hostear una aplicación PHP en Windows?

¿Es posible hostear una aplicación PHP en Windows?

Cómo hacer para..., Misceláneos
Un amigo me contactó por un problema que estaba enfrentando su equipo técnico: están desarrollando una aplicación PHP que necesitan hostear sí o sí en un servidor Windows. Actualmente tienen un IIS montado en su servidor y la duda era, primero si era posible servir PHP desde IIS o si era necesario usar un servidor Apache y, en tal caso, si era necesario compilarlo desde 0 (Algo que estaba fuera del alcance de dicho equipo). Mi primera impresión ante esta situación fue de sorpresa. Ciertamente, Windows no sería mi elección en cuanto a servidor (En general prefiero mantenerme alejado de Windows, pero especialmente para el caso de servidores soy bastante estricto). Yo optaría por alguna distribución de linux (Probablemente basada en Debian como para hacer las cosas sencillas, pero en DistroWatch siempre…
Leer más
¿Debo aprender php desde cero o ir directo con un framework?

¿Debo aprender php desde cero o ir directo con un framework?

Buenas prácticas
Una pregunta que se hace mucha gente que está queriendo empezar con PHP es, habiendo tantos frameworks y habiendo escuchado cosas tan buenas de los frameworks, ¿vale la pena aprender PHP "a secas"? Qué es un framework Empecemos por la definición para entender de qué estamos hablando: un framework es, ante todo, un conjunto de código que ya está escrito y que resuelve una cantidad de problemas genéricos (problemas que muchas aplicaciones diferentes deben resolver). En definitiva, un framework es un punto de partida muy bueno para una aplicación de cierta complejidad, podrías pensarlo como un atajo. Cómo está hecho un framework Salvo casos muy excepcionales (como Phalcon), los frameworks están escritos usando el mismo lenguaje que los programas "finales". En el caso de aplicaciones PHP, los frameworks son, técnicamente, código…
Leer más
¿Todo el mundo debe aprender a programar?

¿Todo el mundo debe aprender a programar?

Reflexiones
Recientemente me crucé con un twit donde un abogado decía algo así como que no todo el mundo debería aprender a programar. Nunca antes había escuchado de un abogado interesado en el tema, pero unas semanas más tarde, una amiga (que casualmente también es abogada) me consultó respecto de cómo podía incursionar en el mundo de la programación, y unos días más tarde otro amigo licenciado en historia me hizo una pregunta similar. Viendo que esta parece ser una pregunta que está dando vueltas en la cabeza de personas de muy variados ámbitos, decidí intentar una respuesta. Personalmente, considero que a cualquier persona le puede venir bien saber programar, aún si nunca en su vida va a dedicarse a esto profesionalmente. Qué beneficios tiene saber programar La programación, más allá…
Leer más
Cómo automatizar las búsquedas en Google

Cómo automatizar las búsquedas en Google

Misceláneos
Un cliente de Leeway está buscando aumentar el tamaño de su base de datos para realizar mailings y me pidió que le diseñe un robotito para extraer las direcciones de correo que estén presentes en las páginas resultantes de ciertas búsquedas de Google. Si bien personalmente no lo considero algo muy productivo (Discusión aparte sobre la efectividad/ética de enviar correo no deseado o si realmente se trata de correo no deseado cuando se ofrece una solución que realmente va a ayudar a quien lo reciba), me pareció interesante el desafío técnico (y también, hay que reconocerlo, a veces simplemente hay que darle al cliente lo que quiere :)). Lo primero que se me ocurrió fue que, así como hay APIs para entrar a Gmail, a GoogleDocs y demás, debía haber alguna para usar…
Leer más
Cómo pasar datos JSON a CSV

Cómo pasar datos JSON a CSV

Cómo hacer para...
La pregunta que dió origen a este post era un poco más amplia: Pero como ya hablé de cómo consumir webservices (Sean REST o SOAP) me voy a concentrar en la parte que me llamó la atención: cómo pasar de JSON a CSV. Aclaremos los tantos antes de ir a los detalles: Qué es JSON JSON significa JavaScript Object Notation, es decir: notación de objetos de JavaScript. Está más allá del alcance de este artículo (y de este blog en general) hablar de las bondades (o falta de ellas) de JavaScript... hay mucho material muy bueno al respecto. El punto es que, más allá de lo que a vos te guste o no, JavaScript tiene una sintaxis muy práctica para describir los objetos: todo lo que esté encerrado entre {} es…
Leer más
¿Usar un framework perjudica el SEO?

¿Usar un framework perjudica el SEO?

Reflexiones
Ah... el SEO... ese arte indómito de la web :). Mucho se habla de SEO (Search Engine Optimization) y muy poco es lo que realmente se sabe. Sin ser un experto en la materia (de hecho, como buen desarrollador, muy lejos estoy de serlo :p), tengo mis opiniones al respecto. Más allá de qué es el SEO o mejor dicho, cómo operar en favor del SEO de un sitio, todo el mundo sabe que el SEO es algo bueno y, por lo tanto, cualquier cosa que lo perjudique es algo malo, ¿cierto?... No tan rápido :). El SEO forma parte de una estrategia de adquisición de tráfico, un tema de Marketing Online que, dado que este no es un espacio para discutir sobre Marketing Online, está fuera de alcance. A lo…
Leer más
Cómo acceder a Gmail usando PHP

Cómo acceder a Gmail usando PHP

Cómo hacer para...
Este post está inspirado en un caso muy interesante que me tocó resolver para un cliente. Doy un poco de contexto para que se entienda de dónde viene el tema: Una buena parte de los clientes de mi cliente llegan a través de correos que se reciben en info@...., claramente, te imaginarás que, dentro de los muchos que llegan, una parte es SPAM y la otra son contactos genuinos. Separar la paja del trigo sería un desafío realmente interesante (Que probablemente involucraría algo de procesamiento del lenguaje natural, IA y esas cosas tan divertidas), pero... por el momento el presupuesto dio sólo para mejorar un poco el proceso de tratamiento del trigo una vez haya sido debidamente identificado. Muy bien, entonces, el punto era que se estaba queriendo, además de…
Leer más