Últimas entradas

IEEE Developer Days
Este jueves y viernes se celebra en Elche, en la Universidad Miguel Hernández el IEEE Developer Days 2013. En esta entrega habrá charlas sobre Android, Windows Phone, Linux, Arduino y... Erlang/OTP. En nombre de Yuilop, la empresa en la que trabajo, voy a dar una charla sobre las posibilidades de
Leer más...
ErlangCamp 2013 en Amsterdam
Este año se vuelve a celebrar la ErlangCamp a manos de Martin Logan, Eric Merritt y Jordan Wilberdng en Amsterdam. Dos días intensivos para aprender Erlang y OTP de manos de los profesionales de Erlware y autores del libro OTP in Action. El evento está patrocinado, de momento, por Spilgames.
Leer más...
¡Debian Wheezy 7.0 liberada!
El pasado sábado 4 de mayo se liberó la última versión de Debian hasta el momento: Wheezy; o 7.0. Esta versión contiene versiones actualizados de los paquetes principales como el núcleo de Linux, Apache, GIMP, MySQL o Asterisk, además de nuevas características como disponer de soporte multiarquitectura, herramientas para despliegue
Leer más...
Hacker Cup 2013 en La Ventana, Cadena SER
Ayer recibí una llamada de la cadena SER en la que me proponían entrar en antena sobre las 20:00h para hablar un poco sobre la participación en la Facebook Hacker Cup 2013. La verdad es que mi participación no fue digna de mención ya que me quedé en la segunda
Leer más...
Erling: Erlang on Xen
Después de la noticia en la revista Forbes acerca de la computación en la nube y la solucion de Cloudozer llamada Erlang on Xen, se hace más patente la repercursión de Erlang en la evolución de la computación en la nube y sus siguientes pasos. La noticia viene a colación
Leer más...
Études para Erlang
Étude es una palabra francesa que se traduce como estudio, pero se relaciona con un estudio específico que tiene como objetivo mejorar las destrezas del estudiante. Así, en música se toma como una pieza musical que permite al que la ejecuta mejorar el dominio de una técnica específica y en
Leer más...
Programación Funcional, ¿una moda?
Después de 20 años programando en diversas metodologías y lenguajes, me doy cuenta de que muchos de los lenguajes que he aprendido y muchas de las metodologías en las que me he visto sumergido han sido protagonizadas por una moda. Una forma de hacer las cosas típica de una época
Leer más...
Erlang R16B liberada
El mundo Erlang se va moviendo cada vez más rápido, además de tener cada vez más presencia en más eventos del mundo del desarrollo, escalabilidad y sus propias convenciones, la liberación de nuevas versiones va a un buen ritmo, entregando recientemente la versión R16B el día de hoy. Los cambios
Leer más...
OpsCode y Chef 11 en Facebook
Una de las noticias que más eco se han hecho en Internet y sobretodo en la comunidad Erlang es el cambio estratégico de la compañía OpsCode de su producto Chef que han reescrito íntegramente con Erlang, estando escrito anteriormente en Ruby. Según una presentación de uno de los miembros del
Leer más...
Erlang y Microsoft… Axum
Tras la noticia de la celebración de la Erlang DC en la que uno de los principales patrocinadores es Microsoft. Hace muchos años, las principales empresas se situaron entorno a Java. Microsoft fue una de las empresas que se quisieron posicionar desarrollando sus propias versiones de Java (Visual J++ ahora
Leer más...
Evolución de LAMP
Hace ya más de 10 años que surgió la pila de programación web denominada LAMP en honor de las siglas que formaban los 4 principales elementos que conforman esta tecnología: Linux, Apache, MySQL y PHP. Hay otros que intercambiaron las páginas hechas en PHP por Python o incluso por Perl,
Leer más...
Hacker Cup 2013: Cadenas Bellas
¡Que empiecen los juegos! ... bueno, ya hace 72 horas de eso, pero ha sido emocionante. Este es el primer año que me ha dado por participar en la Facebook Hacker Cup y tengo que decir que me ha fascinado. No recuerdo haberme enfrentado a problemas tan complejos desde mi
Leer más...
Tipos de Datos en Erlang (IV): Pilas y Colas
Después de revisar los arrays, diccionarios y los conjuntos llegamos a las pilas y a las colas. Estos tipos de datos son complementarios y tienen una forma muy parecida de trabajar. Sin embargo, los algoritmos internos para su funcionamiento difieren. Comenzaremos por las definiciones. Las pilas son listas de datos
Leer más...
Certificación en Erlang, Examen de Ejemplo
El sábado a través de twitter me enteré de que Erlang Solutions ha puesto a disposición una maqueta del examen de certificación en Erlang que realizan ellos mismos a los alumnos que realizan sus cursos para otorgarles la certificación. Realizarlo no toma mucho tiempo ya que son 4 páginas de
Leer más...
Tipos de Datos en Erlang (III): Conjuntos
Siguiendo con el repaso de los tipos de datos que se pueden representar en Erlang a través del uso de los módulos que integra su librería estándar (stdlib) llega el turno de los conjuntos. Los conjuntos son una agrupación de elementos con ciertas propiedades, la que más cabe destacar es
Leer más...
Tipos de Datos en Erlang (II): Diccionarios
Siguiendo con la edición de tipos de datos en Erlang vamos a repasar en esta entrega los diccionarios. Los diccionarios son conocidos genéricamente como hash. A diferencia de los arrays vistos en la entrega anterior en este caso se permite emplear un texto, número o átomo en lugar de restringirse
Leer más...
Elementary OS
Hace unos meses me pasaron este enlace de una nueva distribución de Linux llamada Elementary OS. Gracias José Luis Navarro por la info. Me fascinó bastante que a diferencia de otras distribuciones que las que se cuidan aspectos de instalación y distribución, Elementary OS iba un poco más allá diseñando
Leer más...
Libro en papel…
Al fin ya llegó, la primera impresión del libro en papel de la editorial Lulu. Me ha animado tanto que realicé un par de cambios para la aprobación de la edición en papel y renegociar el precio. Ahora está disponible al precio de 12 €. Celebro también que hoy se
Leer más...
Tipos de Datos en Erlang (I): Arrays
Todos los que llevamos un tiempo con Erlang conocemos los tipos de datos que provee (listas y listas binarias, tuplas, registros, enteros, decimales y átomos). En herencia de los tipos de datos imperativos y como modelos de datos que tienen sus propios algoritmos de acceso y son muy empleados en
Leer más...
Libro de Erlang en castellano liberado
Al fin se acabó el proceso que conlleva escribir un libro dando su fruto final, el libro. Ha sido un largo recorrido, mucho tiempo escribiendo y muchos amigos que me han motivado y ayudado para seguir escribiendo este manuscrito hasta su final. De entre ellos, agradecer sobre todo a Juanse
Leer más...
La lista negra
Después de mantener fail2ban activo y con restricciones muy altas en mi servidor, comencé a poner a los sospechosos habituales en la lista negra permanente. Estas direcciones IP pertenecen a empresas o particulares a las que es muy difícil localizar y/o no disponen de dirección abuse a la que poder
Leer más...
Erlang shell con historia
Una de las características de que disponen las consolas de usuarios como bash o zsh es que tiene histórico. Cuando cierras la consola y abres una nueva, puedes recurrir al histórico para ver qué comandos habías ejecutado momentos antes o incluso días antes. Gracias a la aportación de Ferd (autor
Leer más...
Erlang/OTP: Volumen I, Un Mundo Concurrente
Desde que escribí la primera palabra, esbocé el primer contenido o la primera idea de qué iba a ser este libro ya ha pasado mucho tiempo. Han sido muchos cambios durante el proceso de escritura, tanto en lo concerniente al propio libro en sí como a nivel personal y profesional.
Leer más...
Betabeers Murcia V
El pasado miércoles, 21 de noviembre de 2012, asistí a la reunión periódica que se celebra en Murcia (aunque existe en muchas ciudades más) llamada Betabeers. Tal y como anuncia su página web oficial: Betabeers es una reunión mensual para desarrolladores de servicios web, apps móviles y hardware. Donde se
Leer más...
SOA con XMPP
Al entrar en mi nueva empresa me topé con un cambio drástico en la forma en la que los elementos de la infraestructura se comunican entre sí. Para entenderlo mejor, mi compañero Iván me dejó el libro XMPP: The Definitive Guide, escrito por Peter Saint-Andre , Kevin Smith y Remko
Leer más...
HackHistory
En el pasado verano se cerró la segunda ronda de financiación del proyecto Hackstory de forma satisfactoria por lo que Mercè Molist habrá comenzado ya su tarea junto con muchos más colaboradores de realizar el trabajo de materializar, en un libro físico, la historia Hacker hispano hablante. Viendo el wiki
Leer más...
Gitflow: trabaja mejor con Git
Hace poco que comencé a trabajar de forma activa con git. Antes había tenido algunas incursiones para saber qué era, pero sin quedarme del todo claro hasta entrar en la práctica con proyectos como datahub, ecomponent u otros internos que desarrollo dentro de la empresa en la que trabajo. El
Leer más...
Definición de Terminado
Una de las bases de las metodologías de desarrollo de software es definir cuándo una tarea ha sido realizada o terminada. Parece algo obvio pero muchas veces se fracasa debido a una mala estimación a causa de estimar tareas basadas en el tiempo medido entre su inicio y cuando se
Leer más...
Erlang, XMPP, ejabberd, … Yuilop!
Hace algo más de dos meses, desde el 20 de agosto, que soy yuiloper, tal y como me dijo la chica de recursos humanos cuando terminamos la negociación de mi contrato. En este tiempo, muy corto y a la vez muy intenso, he podido disfrutar de una nueva ciudad, de
Leer más...
eJabberd 3 y MongooseIM dos puntos de vista
El proyecto ejabberd es de los más grandes y populares de los realizados en Erlang. Muchas empresas, con la salida de la web interactiva, la aparición cada vez más grande de sistemas de chat en la propia web, e incluso a través de dispositivos móviles, se ha propagado gracias al
Leer más...
Vulnerabilidad grave en Java 7
Hoy me ha llegado una noticia de una vulnerabilidad de Java 7, en los tan famosos applets (aunque ya apenas se usan, realmente) que podría inyectar el código binario de un ejecutable de windows, macos o incluso hasta gnu/linux, lo que constituye una de las más graves vulnerabilidades descubiertas. El
Leer más...
Adiós y Buen Viaje
Se cierra un capítulo. Un largo capítulo esta vez que ha durado unos 4 años. Alegría. Tristeza. Superación. Aprendizaje. Maduración. Hay muchas cosas que he aprendido en este tiempo y de las que me he podido beneficiar mientras he estado trabajando en la empresa Jet Multimedia. Esta entrada me puede
Leer más...
ErlangCamp en A Coruña
Este año, tenemos el privilegio de contar en la ErlangCamp con unos excelentes profesores, nada más y nada menos que los escritores del libro OTP in Action: Martin Logan, Eric Merritt y Richard Carlsson. Además, estará presente también Laura Castro, que gracias a ella esto es posible. Desgraciadamente este año
Leer más...
REPL en Erlang
Leyendo el blog de Verdi, me encuentro con un artículo muy interesante sobre los REPL (Read-Eval-Print... and Loop), vamos la forma de crear consolas de interacción básicas. El hecho de escribir acerca de ello no es solo copiar, sino ampliar un poco más donde Verdi se quedó, agregando el soporte
Leer más...
¡Estamos en Guerra!
Así proclama una iniciativa de la Bonilista hecha artículo dentro del blog de bonillaware: We are at war; y la cual han apoyado cada vez más personas en la red a través de blogs, twitter, facebook, etc. Desde este mismo blog, debido a que la propuesta tiene su lógica y
Leer más...
Rust, otro más para concurrencia
Tras llevar ya la friolera de cuatro años y medio con Erlang, y analizar el lenguaje Go, otro que se perfila con lenguaje para desarrollo de sistemas con alto grado de concurrencia es Rust. Su desarrollador principal, Graydon Hoare, comenzó a crear este lenguaje en 2006 movido por la idea
Leer más...
Premio Calidad para la optimización de recursos
Ayer por la noche (21 de junio de 2012), se celebró la III Edición de Premios Contact Center, a lo largo de las últimas semanas, nos habían avisado de que habíamos entrado en el proceso de selección, entre los nueve primeros y, en esta semana, que estábamos entre los tres
Leer más...
Redis: NoSQL de alto rendimiento
Después de haber dado un repaso a Riak, MongoDB y Cassandra, ya era hora de hacer algo con Redis. Redis es una base de datos NoSQL, de tipo clave-valor. Los valores pueden ser de varios tipos: cadenas, hashes, listas, conjuntos o conjuntos ordenados. Tiene sistemas get/set, incrementos/decrementos de números, operaciones
Leer más...
Websocket y Erlang
Hace un tiempo (ya unos años), escribí algo que había leído del blog de Joe Armstrong acerca de websocket, hoy retomo el tema después de leer un email de la lista de ErlAr, de un mensaje de Mariano Guerra en el que nos da estos datos sobre un banco de
Leer más...
Jingle: el paso a VoIP de Google
El protocolo XMPP se caracteriza porque se establece sobre una conexión TCP, sobre la que se comienza un documento XML que van completando las dos partes, tanto el cliente como el servidor, de modo que al finalizar la conexión (de forma correcta), se obtiene un documento único de todo lo
Leer más...
Lenguaje Boo y Mono para videojuegos
Cada vez más, hay una tendencia clara de los fabricantes de engines a fabricar entornos en los que otros desarrolladores, diseñadores y animadores, puedan crear juegos tanto para PC, como videoconsolas, móviles, etc. En este caso, me he llamado la atención que la empresa Unity, a través de su plataforma
Leer más...
Behaviours: la potencia de OTP
Una de las potencias de Erlang y el framework OTP, son los comportamientos (o behaviours), estos se basan en la Inversión de Control, es decir, que existe un código base que se autocompleta a través de la implementación de unos callbacks definidos en la plantilla, que deben de ser implementados
Leer más...
ErlDev 0.2 liberada
Ha sido liberada finalmente la versión 0.2 de ErlDev. Esta versión trae consigo algunas mejoras sustanciales para la programación en entornos de Erlang, así como nuevas plantillas, más paquetes disponibles, etc. Se ha incluído una nueva sintaxis de proyectos, desechando la estructura concebida inicialmente de simple y multi, ahora solo
Leer más...
cowboy: servidor pequeño, rápido y modular
Hace poco que le llevo siguiendo la pista a este framework para desarrollo en Erlang. cowboy se ha convertido, para mi, en una referencia a nivel de sistemas de inversión de control en Erlang, ya que son los únicos que he visto, hasta el momento (aparte de ciertas partes de
Leer más...
Juggernaut: invirtiendo el paradigma cliente/servidor
Juggernaut, además de ser un personaje del universo Marvel, es un servidor escrito en Node.JS, que permite su integración con Ruby on Rails para realizar el intercambio de mensajes en dirección del servidor hacia el navegador. Este esquema permite al servidor poder enviar mensajes al navegador en cualquier momento, de
Leer más...
Estructura Lider/Trabajador en Erlang
Erlang es muy bueno para programación distribuida, y paralela, y concurrente, así mismo se hace muy simple la creación de servidores, tal y como he mostrado en entradas anteriores (servidor UDP y servidor TCP), pero nos queda una tipo de comportamiento que es algo complejo llevar a la práctica. Me
Leer más...
UUID: Identificador Único Universal
Últimamente, cada más sistemas, y cada más sitios emplean algo llamado UUID, cuyas siglas vienen a decir: Universally Unique ID; aunque suene algo arrogante, el cálculo de un UUID casi que podríamos decir que garantiza el que sea único. Es más, su grado de colisión es tan bajo que si
Leer más...
Cassandra: la NoSQL de facebook
Tras haber visto Riak un poco más de cerca, ahora le toca el turno a Cassandra. Esta base de datos NoSQL fue desarrollada en el seno de Facebook, como una de sus 7 tecnologías clave. En 2008 fue donada a Apache y desde entonces su popularidad ha ido creciendo cada
Leer más...
Riak: revisando y practicando
Después de la introducción que hice ya hace unos meses sobre la teoría en la que se fundamenta esta base de datos, me he dispuesto a someterla a unas pruebas de funcionamiento, para así aprender a manejar de forma apropiada esta herramienta. En principio, como revisé solo los conceptos en
Leer más...
No, Erlang no es eso
Vale, después de leer varios artículos que llevan a lo mismo, intentar meter la orientación a objetos en Erlang (y como estos otros ejemplos más que no citaré de momento). Si pensamos lo que Alan Kay decía sobre la orientación a objetos, no se refería a tener un espacio en
Leer más...
Go: El lenguaje de Google
Hace un par de años que escuché que Google trabajaba en un lenguaje, y hace poco que ya había visto la luz una versión estable, la primera. Hay personas que me han comentado que Go era parecido a Erlang, que Go hacía concurrencia de forma muy simple, y que Go
Leer más...
Erlang: Servidores Concurrentes TCP
Para la programación de elementos que requieran concurrencia, Erlang, es una de las mejores elecciones que se puede tomar. El hecho de construir servidores UDP con los mecanismos que nos ofrece OTP es algo trivial, muy simple de conseguir, tal y como se puede ver en este otro artículo, pero
Leer más...
Clean Code: para ser mejor programador
Dando un repaso a mi biblioteca he vuelto a topar con un libro que me llamó la atención antaño, leí aunque muy por encima y, hoy dándole otro repaso he pensado, ¡qué razón tiene! El libro se llama Clean Code es de Robert C. Martin, e intenta arrojar un poco
Leer más...
Erlang: Servidores UDP
Una de las grandes potencias de Erlang es su capacidad para construir servidores. A través de OTP, esta tarea se convierte en algo tan sencillo, que asombra ver con qué pocas líneas de código se crea un servidor. En este caso vamos a montar un servidor UDP. Esto lo revisé
Leer más...
Charla: Gestión de Llamadas con Erlang/OTP
Este será el título de la charla, dentro de la erlounge de mañana, que daré en la Universidad Complutense de Madrid, organizado por el grupo de usuarios de Erlang de Madrid. Hace tiempo que no doy una charla y la verdad, ya lo echaba de menos, sobretodo de este tema
Leer más...
¿Qué es el código Ravioli?
Leyendo un documento sobre Erlang, en el que introduce el concepto de módulos parametrizados, encuentro un aviso que dice (traducido): cuidado con el código Ravioli. Por lo que llego a preguntarme... ¿qué es el código Ravioli? Hasta ahora, yo conocía el código Spaguetti, que se basaba en la programación con
Leer más...
V8: Extendiendo PHP
Hace prácticamente un año escribí un artículo denominado Spidermonkey: extendiendo PHP, donde comentaba como emplear Spidermonkey para poder emplearlo como lenguaje de extensión a un núcleo sencillo hecho en PHP. Incluso lo emplee como elemento principal en el desarrollo de PHAS-JS, realizando un servidor de aplicaciones en PHP, con la
Leer más...
En busca de la excelencia del código
Así se titula el primer libro de Raúl Herranz, uno de los profesores acreditados de Scrum Manager. El documento es libre y gratuito y puede descargarse de la siguiente dirección: Scrum Manager - En busca de la excelencia del CódigoRaúl HerranzRev. 1.0 El texto es conciso y no muy extenso,
Leer más...
Montículos
Pues sí, otra vez de exámenes, otra vez estudiando, y llego a un apartado, en el que lo que decía el libro me sorprende y, al implementarlo, me confirmo. La teoría o lo que viene en los libros no es 100% fiable, en caso de teorías matemáticas, físicas, ... o
Leer más...
Erlang y OTP en acción
El pasado lunes estaba camino del dentista cuando, dejando el coche, topé con la librería Cocodrilo Libros. Entré y pregunté por libros de Erlang, y como ya sabía, me mostraron el de O'Reilly de Francesco Cesarini y el de Pragmatic Programmers de Joe Armstrong... pero además, una editorial de la
Leer más...
Una clase/objeto/proceso, Una responsabilidad
Una clase, una responsabilidad, fue uno de los textos que se me quedó grabado tras la lectura del libro Diseño Ágil con TDD de Carlos Blé. Analizar esa simple expresión nos lleva a una regla importantísima que nos permite diseñar programas orientados a objetos y orientados a concurrencia, que sean
Leer más...
Redirigiendo tráfico
He estado revisando para cambiar el servidor a otro nuevo, con una versión limpia y actualizada de Debian (la nueva versión Squeeze), por lo que, toca migrarlo todo. Esto puede constituir un pequeño desastre para todos los servicios que tengo montados, ya que hay que copiar todos los datos al
Leer más...
NodeJS: el servidor JavaScript
El servidor Node.js vió la luz de manos de Ryan Dahl en 2009, la motivación, según la entrevista que BostInno le realizó en enero de 2011, es la arquitectura de E/S orientada a eventos. Según Dahl: estuve involucrado, de vez en cuando, escribiendo códigos pequeños orientados a eventos. Me gustó
Leer más...
Las gemas de Ruby
Tengo a Ruby un poco abandonado, por lo que me he decidido a escribir un poco acerca de él, al igual que hice con Python, para detallar un poco cómo son los paquetes de código (o librerías) de Ruby: las gemas. Las gemas de Ruby son paquetes de librerías para
Leer más...
NewSQL: dos vías para mejorar SQL
Últimamente hay muchos medios (como SDJournal) que van haciendo eco de una nueva versión, según algunos más fácil, de SQL. Según vemos en la página oficial del proyecto, NewSQL dispone a día de hoy de dos posibles gramáticas a implementar. Una de ellas está basada en la Java Database (JDB)
Leer más...
Selenium: probando aplicaciones web
Bueno, ya tocaba, después de dedicar varios apartados al desarrollo web, toca dedicarle un pequeño, aunque importante apartado a una herramienta de comprobación (tests) como es Selenium. Esta herramienta es para poder realizar pruebas de sistema, a nivel completo y desde la propia interfaz de usuario... o incluso de forma
Leer más...
Zotonic: CMS en Erlang
En mi búsqueda de material (software sobre todo) realizado en Erlang para poder aprender mucho más sobre este lenguaje, sus virtudes, carencias y potencias, he topado con otra muy buena pieza de software: Zotonic, un CMS hecho en Erlang. ¿Qué es un CMS exactamente? Un CMS es un sistema de
Leer más...
Túneles con SSH
Hace tiempo que empleo túneles para poder acceder a ciertos servicios inaccesibles desde Internet, o para agregar seguridad a un acceso determinado. Esto es posible gracias a los túneles que se pueden crear con la herramienta OpenSSH. Los túneles son conexiones cifradas (ya sea mediante SSL o TLS) que permiten
Leer más...
Prefijo Binario: mebibytes, kibibytes, etc.
Hace poco, estudiando la asignatura de sistemas operativos, vi que se hacía un repaso a los sistemas de numeración y se nombraban a las unidades con kibibyte, mebibyte, gibibyte, ... en lugar de los prefijos griegos de siempre (kilo, mega, giga, ...). Parece ser que, según nos relata wikipedia respecto
Leer más...
DJJob: trabajos en background para PHP
Hace tiempo que vamos encontrándonos de forma recurrente con este problema... ¿cómo conseguir que PHP realice un trabajo en background e ir consultando cuánto le falta o cuando ha terminado dicho trabajo? La pista ya la puso sobre la mesa Delayed::Job, una gema de Ruby on Rails, que crea una
Leer más...
Catalyst: framework web para Perl
Justo cuando colgaba la encuesta sobre: Si tuvieses que hacer un sitio web dinámico, ¿en qué tecnología lo harías?; busqué un framework en los lenguajes más populares de desarrollo web y, topé con Catalyst, un framework en Perl para el desarrollo de aplicaciones web. Después de un recorrido por Symfony
Leer más...
DynHost: nombres DNS para todos
Después de un par de semanas de trabajo, ya está disponible el sistema de DynHost, aún falta retocar algunas cosas, pero la base funciona. El sistema se ha realizado empleando PHAS-JS como base para el actualizador automático, así como Django para la interfaz web. Se ha copiado el protocolo de
Leer más...
Cron: programando tareas
Una de las cosas que siempre me ha gustado de Unix, es lo que siempre reseña Eric S. Raymond a través de la archiconocida filosofía Unix: la interfaz universal son los flujos de texto; y eso posibilita que los comandos se puedan programar en el tiempo y realizar tareas no
Leer más...
PHAS-JS: servidor de aplicaciones
Ayer, después de bastante tiempo de trabajo, al fin, conseguí liberar la primera versión estable de PHAS-JS, un servidor de aplicaciones JavaScript con base en PHP e interfaz de administración en Django. ¿Por qué tanta variedad?, en principio, he empleado PHP porque tiene todos los elementos básicos y necesarios para
Leer más...
haXe: metalenguaje para todos
Hace tiempo que vi este lenguaje de pasada y no le presté mucha atención, pero hoy, revisando algunas cosas, he vuelto a él y he visto algo que, antes quizás me habría parecido ridículo, pero ahora, después de ciertos acontecimientos, comienzo a verle mucho sentido. El lenguaje haXe, se presenta
Leer más...
RSS: leyéndolos desde PHP y Rails
Hace un tiempo hice un lector de RSS para poner noticias en una web, en Ruby on Rails, y me gustó la simpleza con la que se parsean los códigos y se pueden presentar las noticias, sin mucho esfuerzo, y apenas líneas de código. Unos días más tarde, me tocó
Leer más...
Un nuevo tipo de phishing
Viendo la web, acerca de ataques de tipo phishing, me encuentro que hay una web en la que exponen un tipo de ataque que sigue aún siendo vulnerabilidad en ciertos navegadores, como Google Chrome (probado en las versiones 13, 14 y 15). Donde lo he visto ha sido aquí (en
Leer más...
Python: la elegancia
Siempre he dicho que cada lenguaje tiene su potencia, si PHP son sus estructuras de datos (arrays) que permiten formas heterogéneas y de fácil administración y presentación, Perl es la versatilidad y potencia que proporciona su sintaxis escueta y orientada al resultado, Ruby es la reescritura en tiempo de ejecución...
Leer más...
De MySQL a MariaDB
O del delfín a la foca, o de lo privado a lo público, ... mucho ha llovido desde que MySQL salió y, con su versión 3.23, recorrieran el mundo instalándose de los primeros en soportar la mayoría de sitios web en internet a través de la idea LAMP. No obstante,
Leer más...
Muere el padre de Lisp
No nos recuperamos de una y llega otra. Ahora le ha tocado el turno al mundo de la inteligencia artificial, nada más y nada menos que John McCarthy, el padre del lenguaje de programación Lisp y del término Inteligencia Artificial, murió el pasado martes, 25 de octubre de 2011. Para
Leer más...
MongoDB: base de datos heterogénea
Hace tiempo que tenía pendiente dar una vuelta a las base de datos NoSQL para mostrar un poco el cómo funcionan, qué se puede hacer con ellas y cómo se comportan en ciertas situaciones específicas. En este caso, aunque he hablado en otras ocasiones de CouchDB, de Cassandra, etc. me
Leer más...
PHP: convirtiendo Fatal Errors en Excepciones
Uno de los problemas que surge cuando se usa PHP, es que muchas veces, se programa pensando en orientación a objetos y, de repente... un Fatal Error, algo tan ligado a la programación estructurada o incluso spaguetti nos ronda en un esquema que intentamos que sea lo más POO (u
Leer más...
South: migraciones en Django
Bueno, cuando escribí el artículo sobre Django, fui bastante positivo con respecto al sistema de llevar los modelos a la base de datos, ya que, según parecía, el sistema propuesto por syncdb era automágico, pero realmente, lo único que se encarga de realizar es la creación de nuevos modelos que
Leer más...
CoffeeScript: haciendo fácil JavaScript
Después de leer la liberación de Rails 3.1, me topé con que trae por defecto este sistema para facilitar la escritura de código JavaScript. Es curioso que lo traiga activo por defecto, ya que hay muchos a los que les gusta el lenguaje JavaScript y pueden haberse tomado mal esta
Leer más...
Egg: huevos de Python
Tal y como Ruby tiene sus gemas, PHP su PEAR y PECL, PERL su CPAN, ... pues Python, tiene huevos... vamos, extensiones a las que llama egg. Cuando un desarrollador realiza un desarrollo que quiere compartir con el mundo, normalmente, lo empaqueta de alguna forma y lo sube a Internet
Leer más...
Rails 3.1: mejorando las vistas
Puf, no sé ni por donde comenzar, han sido tantas cosas las que he visto en el cambio de la versión de Rails 3.0 a esta nueva liberación... pero no solo por las mejoras que conlleva o tiene esta nueva liberación, sino más bien por esa cantidad de elementos que
Leer más...
Django: web muy fácil y muy sencilla
En estos días he estado más volcado en Python y Django. Quizás sea por acercar un poco más y mejor a lo que hace gente como Demoware, o quizás sea por puro vicio... ya eso lo dejo a opinión popular :-P El hecho, es que llevo unos tres años desarrollando
Leer más...
Adiós a Dennis Ritchie
¿Qué podemos decir?, en poco tiempo, hemos perdido a dos figuras bastante importantes dentro del mundo de la informática. Si hace unos días nos encontrábamos de lleno, sobretodo al entrar en la web de Apple, con la muerte de Steve Jobbs, ahora nos llega la noticia de la defunción de
Leer más...
La carrera de los navegadores
En este año estamos viviendo el desenfreno que han puesto dos de los grandes navegadores, en sacar cuantas más versiones mejor. En principio, la celeridad con la que Google Chrome ha ido llenando el mercado con sus versiones. Recordando que Google Chrome vió la luz (en principio solo en Windows)
Leer más...
Demonware: videojuegos y Erlang
Demonware es una división de Activision y Blizzard, encargada de desarrollar la parte de cliente-servidor para que los jugadores online puedan echar sus partidas con los amigos. En su presentación en la Erlang Factory de Londres de 2011, Demonware preparó una presentación de Erlang and First-Person Shooters. En resumen, ya
Leer más...
Celluloid: Concurrencia en Ruby
Profundizando un poco en el Modelo Actor, en el que se basan lenguajes como Scala, Erlang o Reia, pero que también está disponible a través de frameworks para otros muchos lenguajes, como .NET, Java, Ruby, Python, etc. Antes de comenzar, conviene que definamos un poco lo que es el modelo
Leer más...
Java 7, ¿qué nos trae?
Vale, lo sé, algo tarde porque salió en julio de este año... pero más vale tarde que nunca, ¿no? El hecho, es que se ha lanzado una nueva versión de este tan afamado lenguaje. Oracle ha preparado su SDK y, según Mark Reinhold (Arquitecto Jefe de Java en Oracle), se
Leer más...
Grafos (I): fundamentos básicos
Comenzamos el curso de nuevo. Ya hace unos nueve años que conozco lo que son las estructuras de datos avanzadas para la programación, pero no obstante, qué le vamos a hacer, hay que sacarse los estudios y me toca profundizar un poco en este tipo de datos. He pensado que,
Leer más...
¿Eres adicto al trabajo?
El término workaholic (o adicto al trabajo, o trabajólico) viene a reseñar una enfermedad que comienzan a sufrir, cada vez más y en mayor medida, los trabajadores de la profesión informática (aunque es extensible a la mayoría de trabajadores de oficina). En mi caso, puedo decir que desde 2004 he
Leer más...
Triángulo del éxito o del fracaso
Hace unos días, rondando una librería con mi mujer, topé con un libro que me llamó mucho la atención, por su título directo y su color amarillo chillón de la portada. El libro: Pensar es gratis; parece como un desafío en sí, desde el propio título. Leyendo un poco por
Leer más...
Riak: base de datos sin SPOF
Dando una vuelta por Internet, buscando información sobre base de datos NoSQL, topé con una (u otra) hecha en Erlang/OTP, al igual que CouchDB, pero que se basa en las mismas directrices para lo que fue desarrollado Erlang/OTP. Esta base de datos es Riak. Actualización 16/09/2011: se me olvidó comentar
Leer más...
Prácticas: código y memoria del Tetris
Lo prometido es deuda, por lo que, aquí está la práctica completa, código y memoria, de la asignatura de Programación Orientada a Objetos ofrecida por la UNED. La práctica corresponde al curso 2010/2011, y consta de la creación de un Tetris. Para más información, puede verse la memoria de la
Leer más...
Erlang, ¿realmente lo entienden?
Después de leer varios artículos sobre Erlang, algunos defendiéndolo y otros criticándolo, me doy cuenta de que, realmente, no todo el mundo entiende lo que es y significa este lenguaje. En sí, no es el lenguaje, sino la metodología que hay detrás la que está moviendo el hecho de que
Leer más...
Recursos humanos con garantía
Las garantías que existen hoy en día de que un aspirante, en una entrevista de trabajo, tiene unos conocimientos concretos, es a través de títulos y certificaciones. La entidad que emite estos títulos y estas certificaciones influye también, ya que el nivel de conocimientos y el nivel de exigencia al
Leer más...
FSM: Máquina de Estados en Erlang
FSM o Finite State Machine, lo que podríamos traducir como máquina de estados finitos, es una de las potentes herramientas que nos proporciona OTP para el desarrollo de aplicaciones y soluciones. Las máquinas de estados finitos se pueden emplear para definir los elementos con los que debe de interactuar una
Leer más...
PHP 5.4: ya queda menos
Hoy me ha llegado una noticia sobre la liberación de las alpha de PHP 5.4 y, buscando en Internet y en la propia página de PHP, veo que ya se tiene un plan para lanzar esta nueva versión de PHP. Como cuando hablé sobre la liberación de PHP 5.3, esta
Leer más...
Elixir, Reia, Efene, LFE… Lenguajes imperativos sobre Erlang
Llevo un tiempo interesado en los analizadores léxicos y sintácticos para poder crear ficheros de configuración más amigables o sistemas de interfaces de usuario basados en consola que puedan emplear un formato libre de construcción de instrucciones (algo más complejo que el típico comando y argumentos). Eso sumado a mi
Leer más...
Perl::Critic, un crítico para tu código en Perl
Echando un vistazo por Internet, topé con esta curiosa página, que tiene como misión criticar el código que hayas escrito en Perl, a través de las buenas prácticas escritas en el libro Perl Best Practices, de Damian Conway. En la web se puede subir cualquier fichero, código en Perl, y
Leer más...
Buenas Prácticas en Perl
Repasando un poco la bibliografía básica para el lenguaje Perl, topé con este libro, que tienen muchos programadores como base para la escritura de código en este lenguaje. El libro tiene una extensión considerable, pero se hace bastante ameno. Insta a escribir el código de una forma ordenada y que
Leer más...
Otro Modelo de Retribución, ¿mejor o peor?
Hace tiempo que llevo pensando que quizás, la retribución de un programador por horas, sea tirar el dinero. Esto no quiere decir que sea algo bueno o malo, ya que hay programadores de todo tipo, de los que cada hora que se les paga es muy invertida de forma muy
Leer más...
Opa: el lenguaje de la nube
Tal y como reza su web The Cloud Language (el lenguaje de la nube), este lenguaje sale como una solución a la programación de sitios web cumpliendo con unas necesidades concretas. La empresa MLState ha puesto como su bandera a este lenguaje, sobre el que está orientando toda su actividad
Leer más...
¡Hacking ético liberado!
Hoy leo, del propio autor, Carlos Tori, una noticia en la lista de NNL Newsletter sobre Seguridad y Redes, en la que dice, literalmente: Estimados, he decidido liberar la obra para que los interesados puedan disfrutarla de modo libre y distribuirla. http://www.hackingetico.com Espero que la disfruten, saludos. Por lo que,
Leer más...
Afinidad y Perfiles
Leyendo, siempre me encuentro con cosas que me hacen pensar, les doy vueltas e intento plasmarlas de la forma más correcta posible. Hoy voy a plantear algo que me pareció muy importante a la hora de realizar contrataciones: afinidad y perfiles. Cuando se contrata a una persona, en principio, hay
Leer más...
Vulnerabilidades y exploits
A petición de los que participaron en la encuesta, escribiré algo sobre seguridad, hacking y cracking, que es un tema que tenía algo dejado y olvidado. En principio, para los más neófitos del tema, y que no tengan ni la más remota idea de cómo lo hacen los hackers (y
Leer más...
La importancia de los planes
Tener un plan, ya se llame roadmap, planning u objetivos, es algo muy importante, de cara al negocio propio de una empresa. Una empresa, como bien saben muchas personas que desarrollan planes de negocio, tiene, entre sus objetivos, definir a qué se va a dedicar la empresa, sus clientes potenciales
Leer más...
ChicagoBoss: web y erlang… cada vez más cerca
Hace un tiempo, Juanse, un compañero de trabajo, me envió un enlace de un framework desarrollado por Evan Miller que se llama ChicagoBoss. Este framework ha sido concebido con Ruby on Rails en mente, no es de extrañar cuando a lo largo de toda la documentación, se hacen referencias a
Leer más...
¡Libros para todos!
Hará unos días, mi amigo Dani, me envió el enlace a una web repleta de material bibliográfico... en principio pensé... qué de material... a ver cuánto dura ahí porque debe ser pirata... pero dando un vistazo más en profundidad, vi que todas las obras publicadas eran de libre difusión, con
Leer más...
Optimismo e Ilusión
Hace tiempo, un compañero de trabajo, Juanse, me recomendó un vídeo de una persona que comentaba algunos conceptos algo alocados sobre la vida. En un mensaje de un compañero de la UNED, esta semana, he recibido un enlace al mismo vídeo, por lo que, aunque al principio ver que era
Leer más...
Prácticas curiosas: Tetris
He estado en esta semana santa haciendo una práctica del Grado en Ingeniería Informática, para la asignatura de Programación Orientada a Objetos, en la UNED. En la práctica, y la asignatura, se hace bastante énfasis en Java. A mi Java me parece un buen lenguaje, pero no es totalmente orientado
Leer más...
Xdebug: depurar y optimizar código PHP
Hay momentos en los que vemos que la carga de una página tarda demasiado, o que el uso de un recurso, que en principio habíamos creído que era menor, sube y su tiempo de ejecución hace que nuestro servidor sufra. Trazar estos problemas a simple vista o a través de
Leer más...
Reuniones eficientes
Durante años, en las empresas en las que he estado, siempre ha existido el mismo problema, las reuniones se eternizan, se hablan de muchos temas misceláneos y, tras horas de haber hablado, no se tiene la información clara sobre el tema principal por el que se supone que se organizó
Leer más...
El problema de aprender
Después de revisar lecturas tan interesantes como el libro de Ramón Campayo, Aprende un Idioma en 7 días; Introducción a PNL de Joseph O'Connor y John Seymour; los 7 hábitos de la gente altamente eficiente de Covey, así como los libros de las reglas de Richard Templar; en todos ellos
Leer más...
Ruby: reescritura y yield
Durante unas pruebas en el trabajo, enseñando a mi mujer (Marga), cómo funciona Ruby con su mayor potencia, la reescritura de código y los yield, pensé... con lo que me ha costado... mejor lo guardo en el blog... y esto es :-) Orientación a Objetos, no a Clases Teniendo en
Leer más...
Inversión de Control, el patrón de los frameworks
Leyendo un artículo de Martin Fowler, sobre el tema Inversión de Control (en inglés), comenzando por el final, la etimología de la frase (entendido como el origen del concepto), se comenta que, en un principio (sobre los años 80) la gente se refería a una nueva forma de hacer las
Leer más...
Bundler: despliega fácilmente rails
Después de haber dado una vuelta por la versión estable de rails, he reparado en que, por defecto, se instala bundler y un fichero llamado Gemfile en la raiz de cada proyecto rails que se genera nuevo. La verdad es que, en el momento que vi el fichero de Gemfile,
Leer más...
Rework: trabaja de forma eficiente
Dando una vuelta por el sitio web de Ruby on Rails, he topado con la página de 37 signals, donde se podía ver la portada de un libro que han escrito y que se titula Rework. [openbook booknumber="9780307463746" templatenumber="4"] Es uno de estos libros que plantean la realidad de un
Leer más...
SpiderMonkey: extendiendo PHP
Hay muchas veces que nos encontramos con el problema de que queremos extender la funcionalidad de nuestro programa por extensiones, plugins, addons o como los queramos llamar. Estas extensiones tienen el problema de que pueden afectar al funcionamiento del resto del programa si lo ejecutamos directamente desde el core del
Leer más...
Apache: módulo status server
El otro día me acerqué a ver qué hacía un compañero de trabajo (Fermín), ya que estábamos teniendo algún que otro problema con los servidores web, y veo que en su pantalla tiene una ventana abierta con los procesos internos que está gestionando Apache, así como información de memoria, el
Leer más...
¡Debian Squeeze 6.0 liberada!
Hace aproximadamente una semana se liberó la nueva versión de una de las distribuciones de GNU/Linux más usadas y respetadas del sector: Debian 6.0 Squeeze. La nueva versión viene con un instalador mejorado, la instalación gráfica recuerda a las primeras instalaciones de RedHat, tiene un buen acabado y es bastante
Leer más...
FTS (I): Búsqueda de Texto Completo en PostgreSQL
Al final me dió por actualizar los PostgreSQL a la nueva versión 9.0, junto con el pgadmin3, y al entrar a la aplicación (versión 1.12.1) me encuentro que hay unos cuatro iconos nuevos: Configuraciones FTS, Diccionarios FTS, Analizadores FTS y Plantillas FTS. ¿y qué es todo esto? Fuente: documentación oficial
Leer más...
Procesos en GNU/Linux
Me he dado cuenta de que, hace bastante tiempo que aprendí cómo se gestionan (sobre todo desde la consola) la creación, parada, paso a segundo plano y cambio de prioridad de los procesos de los sistemas tipo Unix, pero, que es algo no tan trivial para la gente que comienza
Leer más...
Carta de Solicitud de Participación en Definición de Proyectos
En estos últimos días, hablando con colegas del tema de realizar proyectos/productos en los que pudiésemos tener mayor visibilidad, mayor participación, ya que somos la mano de obra que se encarga de su realización, llegamos a la redacción de esta carta: Hola, conforme al tema de los proyectos/productos, los desarrollos
Leer más...
¿Cómo funciona el sistema web?
Hace ya tiempo escribí una entrada parecida basándome en el sistema de correo, hoy el tema que nos ocupa es la web. El sistema web es el medio más usado por todos los usuarios de Internet, constituyéndose como el sistema asociado por defecto a la idea preconcebida que se tiene
Leer más...
Banco de Pruebas (I): velocidad
Hace tiempo hice algo parecido con los lenguajes de programación que entonces conocía, probando aquellos que eran de scripting, compilados y probando sobretodo, lo que tardan en levantar y hacer una operación tan simple como enumerar 100.000 números sacando por pantalla el número con un elevado a 2 de la
Leer más...
Lua: el lenguaje de los videojuegos
Echando un vistazo a los lenguajes de programación, me llamó la atención un lenguaje que había visto desde hace tiempo y al que cada vez se le está dando más protagonismo: el lenguaje Lua. Hay muchos lenguajes extensibles que se emplean para poder desarrollar addons, plugins, de modo que cualquier
Leer más...
Shell in a box: administración remota en HTTP
La mayoría de los sitemas de tipo Unix (GNU/Linux, BSD, Darwin, Solaris, ...) tienen sistema de acceso vía consola a través de herramientas como telnet o SSH. Estos elementos de conexión usan unos puertos específicos para la conexión, pero el primero no es nada seguro (todo se transmite en plano,
Leer más...
Erlang Develop: apoyo al desarrollo en erlang
Llevo algún tiempo trabajando con Erlang/OTP y con sus facilidades a la hora de realizar prácticamente cualquier cosa. En lo que respecta al desarrollo de servicios concurrentes, de alta disponibilidad y sistemas críticos, es ideal. Lo único que ha sido una piedra en el camino, es la curva de aprendizaje
Leer más...
XSLT (II): descubriendo XPath
Hace unos días escribí un artículo sobre XSLT a modo de introducción sobre esta tecnología. El artículo era muy simple, ya que solo pretendía mostrarse como introducción y mostrar lo que, en sí, el sistema XSLT puede llegar a hacer. Ahora, vamos a completar un poco más esa visión adentrándonos
Leer más...
ETL: revisando el software
Hace ya más de un año que escribí una entrada sobre ETL, donde comentaba los principios que lo fundan y algún que otro software disponible para realizar ETL. Revisando la entrada, me he dado cuenta de que el software que entonces encontré, ha cambiado bastante, incluso uno de ellos ha
Leer más...
XSLT (I): hojas de estilos para transformación
Hace cuatro años que comencé a utilizar esta tecnología para el desarrollo web. Al principio como una forma de realizar una vista aislada del código base de la aplicación web, después como un metalenguaje más simple que el HTML y más enfocado a la presentación de formularios y datos específicos
Leer más...
Propiedad del Código
Cuando comencé a leer libros sobre Extreme Programming, me llamó la atención una de las propiedades de esta metodología de desarrollo, que era la propiedad del código. Por mi parte he sido siempre muy comunista con respecto al código, no tengo el menor reparo en mirar, ampliar y corregir código
Leer más...
Permisos en GNU/Linux
Nota: Realmente, es la declaración de permisos en sistemas Unix, BSD, Solaris, GNU/Linux y derviados, pero pongo el título principal como GNU/Linux, porque realmente es el único entorno en el que doy fe de que todo lo que hay escrito en este artículo funciona al 100%. El sistema GNU/Linux, al
Leer más...
Patrones de Análisis
Una de las personas que más ha aportado al mundo del desarrollo de software es, sin duda, Martin Fowler. [openbook booknumber="9780201895421"] Este autor, en su afán por facilitar dentro de lo posible el desarrollo de software para todo tipo, se ha introducido en las entrañas de lo que es el
Leer más...
Resolviendo Shikaku
Esta es una práctica que realicé (y comenté) en diciembre de 2008 para la asignatura de Programación III de la UNED. La práctica se basaba en realizar un sistema para resolver tableros de shikaku, mediante el algoritmo de vuelta atrás. Mi solución es óptima pero no del todo correcta desde
Leer más...
Clojure: más sobre concurrencia.
El término closure (clojure en francés y cláusula en castellano) se emplea en informática (según la wikipedia) como: una función que es evaluada en un entorno conteniendo una o más variables dependientes de otro entorno.; o dicho de otra forma, lo que se conoce como un código evaluado, es decir,
Leer más...
Calidad Interna
el tema de la calidad ha llenado páginas y páginas de la literatura informática en todos los idiomas. Es tal la necesidad de la búsqueda de la calidad, que hay estudios, técnicas y departamentos dentro de empresas, e incluso empresas, que se dedican en cuerpo y alma a establecer parámetros
Leer más...
Deuda técnica
mi amigo Guillermo me remitió un email hace poco en el que detallaba un concepto que ya conocía hace tiempo, pero que no había visto tan bien explicado hasta el momento (sí, tenía que haber leído antes a Cunningham :-P), el tema era: La deuda técnica en scrum, en un
Leer más...
Lógica de negocio en la base de datos
Desde mi punto de vista, esto puede suponer una locura total y una falta de forma en lo que respecta al uso de un almacén de datos visto como tal. No obstante, hay sistemas de base de datos que implementan una capa de negocio bastante interesante, donde otros sistemas solo
Leer más...
SIP desmitificado
Desde que comencé a trabajar en esto de la informática, hace ya seis años, me he dedicado a entornos que tienen que ver con la VoIP (Voz sobre IP) tocando los protocolos típicos de VoIP como son: SIP, H.323, MGCP (o megaco) y IAX; pero también con interconexiones de tipo
Leer más...
NoSQL: sistemas de almacenamiento en lugar de bases de datos
Hace poco me topé con una definición que me causó un poco de desconcierto, no llegaba a entender bien el porqué había muchas empresas y profesionales que comenzaban a usar el NoSQL. Leyendo el blog de dos ideas con referencia a un artículo que publicaron llamado NoSQL: el movimiento en
Leer más...
Pretty URLs
Muchas veces hemos visto las URL de algunos sitios que tienen, tras una interrogación de cierre (?) una hilera de valores con iguales (=) separados por ampersand (&). No obstante, hay otros muchos sitios que sus URLs, más específicamente sus URIs, son palabras en minúscula, con algunos guiones y números
Leer más...
Modelo de Dominio: la importancia de los nombres
Actualizado: se ha corregido el concepto, ya que se confundía con la definición de glosario, cuando se quería detallar que era algo más que un glosario. En todas las empresas en las que he trabajado, siempre surge el problema de que, cuando sale algo nuevo o se crea un cierto
Leer más...
El futuro de la web: HTML 5
Con este título he encontrado una presentación de Derek Bender, gracias a un artículo en la web del IES Gran Capitán de Córdoba (España), en el que se presentan datos significativos de cómo será la programación web a partir del año que viene, que es cuando ya todos los navegadores
Leer más...
Gestión Documental en Blog
Hace tiempo, en reuniones mantenidas por todo el departamento técnico, sobre todo la parte de I+D, de la empresa en la que trabajo, mi compañero Juan Sebastián me comentó: podemos hacer la documentación en un blog. Después de haber empleado métodos tradicionales como MS Word, OpenOffice Writer, LaTeX, DocBook... y
Leer más...
Kanban y Scrum
En este blog he escrito bastante sobre estos temas, y ahora, después de haber terminado de leer un gran libro, escrito sobre uno de los autores que más ha aportado a estas metodologías con su trabajo incansable, hablo de Henri Kniberg, me complace poder aconsejar la lectura de este libro,
Leer más...
La duplicación en Ruby
Durante el día de hoy, hemos estado dando vueltas, tanto Daniel como yo, para ver si encontrábamos alguna forma de solucionar este problema que se nos había cruzado: irb> a = [[1,2,3], [1,2,3]] [[1,2,3], [1,2,3]] irb> a = b [[1,2,3], [1,2,3]] irb> b[0][0] = 0 0 irb> b [[0,2,3], [1,2,3]]
Leer más...
¡Shoes vive!
Hace tiempo escribí una entrada sobre este entorno de programación para GUI de Ruby, desde ahí a unos meses después, el creador del entorno, denominado why en la red, cerró todo su material en la red, eliminó su twitter, sus webs y dominios, eliminó sus códigos de github, etc. Después
Leer más...
Haciendo buen software
Hoy he reparado en una web (que he agregado a mis enlaces) que trata sobre temas de la programación y, en definitiva, se centra en hacer buen software. Es algo complejo determinar qué es buen software y qué no lo es, por lo que estos siete consejos pueden ayudar a
Leer más...
Programación para Administradores de Sistemas
Cuando estuve estudiando el título de Administración de Sistemas Informáticos es cuando me acerqué a los lenguajes de scripting (por el año 2002), y fue cuando comencé a aprender lenguajes como PHP, Python, Ruby y Perl. El lenguaje Perl me llamó la atención, sobre el resto, porque había sido un
Leer más...
Motivación, Estudios y Profesionalidad
Ayer, además de dar la conferencia que publiqué (en el post anterior), asistí a una conferencia denominada Y tras la Facultad ¿Ya soy Profesional?, impartida por Oshcar Vidal (no, no me he equivocado al escribirlo, la h es un valor añadido para crear branding). En principio, supongo que por prejuicios
Leer más...
Conferencia: Metodologías Ágiles en la Práctica
ayer dicté la conferencia con el nombre del título de este post en la Universidad de Córdoba ante unos 40 alumnos y algunos profesores de la misma universidad. Las metodologías ágiles no es un tema muy de moda en los ambientes académicos y universitarios, puesto que el desarrollo de software
Leer más...
Scrum Casero
Vale, vale, lo sé, es un poco freaky, pero la verdad es que ayuda bastante en varios aspectos: Por un lado, ayuda a interiorizar el sistema, usándolo fuera del contexto habitual, dándole un matiz más desenfadado a las tareas del hogar, por otro lado, las tareas del hogar se hacen
Leer más...
Programando en Ruby
Llevo tiempo escribiendo sobre este lenguaje de programación, como una joya redescubierta, ahora me gustaría centrarme en un libro que leí hace tiempo, pero que me resultó muy útil para comprender y adentrarme mejor en este lenguaje. [openbook booknumber="1934356085"] Este libro, escrito por uno de los firmantes del manifiesto ágil
Leer más...
Joe Armstrong y Erlang
Llevo bastante tiempo hablando de Erlang, y nunca había comentado la mejor fuente que había encontrado para descubrir el lenguaje y adentrarse en la programación concurrente de la mano de uno de sus creadores: Joe Armstrong. La fuente, referida como tal, es el libro que escribió Joe Armstrong por la
Leer más...
Scrum y XP desde las trincheras
Un año y medio después de haber comenzado con las tecnologías y metdologías ágiles, no tengo más que recomendar el libro que me ayudó a comenzar y que ha sido una guía durante todo este tiempo. [openbook booknumber="1430322640"] Este libro (y su traducción al castellano), han supuesto una guía práctica
Leer más...
Extreme Programming explained
Este es uno de esos libros pioneros que hacen que nos planteemos muchas de las cosas que hacemos y, sobretodo, el cómo lo hacemos. [openbook booknumber="0201616416"] La metodología de la programación extrema fue acuñada por Kent Beck, como un conjunto de buenas prácticas y una forma de realizar los desarrollos,
Leer más...
El futuro de MySQL
Desde que MySQL fuese vendida a Sun Microsystems, ha habido bastante gente que ha visto con otros ojos el proyecto, mostrándose algo escépticos a que MySQL pudiera seguir siendo lo que venía siendo, una base de datos libre sin mayores pretensiones. Pero siendo Sun Microsystems una empresa que ha realizado
Leer más...
La importancia de la actualización
Desde hace años, me vengo encontrando con sistemas instalados que hay que mantener o sobre los que hay que desarrollar, que son instalaciones de hace 5 ó 7 años. Estas instalaciones suelen ser máquinas con RedHat 9, RedHat EL 2, 3 ó 4, o Fedora Core 2 ó 3. En
Leer más...
WordPress y los ataques DoS
De aquí a un tiempo he visto algunos scripts bastante simples que, sorprendentemente, hacen bastante daño a malas configuraciones de sitios con wordpress. El sistema de DoS (Denial of Service, Denegación de Servicio) que se usa para el ataque es de tipo flood (inundación) enviando un número muy alto de
Leer más...
Spam por relay
A la mayoría no solo le sonará este artículo, sino que lo habrá experimentado en propias carnes. Esto se detecta fácilmente, cuando comienzan a llevar emails que vienen con el remitente MAILER-DAEMON. En este momento puedes planteartes dos posibles escenarios: han entrado en tu servidor y han comenzado a enviar
Leer más...
Los sabores de Windows
Las liberaciones de Windows, de Microsoft, suelen realizarse siempre por triplicado, es decir, de cada línea interesante que saca la compañía, hay tres versiones, después es abandonada por los motivos que se verán obvios. La triada de Microsoft consiste en sacar una versión primera, una versión más elaborada gráficamente y
Leer más...
¿Qué se busca conseguir en un desarrollo?
La respuesta rápida y obvia podría ser: que lo desarrollado cumpla con los requisitos pactados. La realidad, muchas veces, nos demuestra que esto no su cumple, ya que, o los requisitos pactados se engordan, o nos fijamos más en que se cumpla el tiempo pactado, lo cual realmente no es
Leer más...
TDD, ¡libro en castellano!
Ayer leí un email de la lista de TDD en la que se anunciaba el publicación del libro TDD de Carlos Ble. [openbook booknumber="9781445264714"] Es de agradecer que se haya publicado en castellano un libro sobre esta metodología (o técnica) de programación que es el desarrollo dirigido por pruebas (o
Leer más...
Los sectores del software
De siempre, se va viendo que las empresas de software se decantan por una forma de hacer las cosas, mientras que otras eligen otro camino distinto y, muy pocas, mezclan elementos de doctrinas tan establecidas y dogmáticas como son: el mundo del software libre, el mundo java o el mundo
Leer más...
Comet ha muerto, ¡larga vida a websockets!
Leyendo el artículo de Joe Armstrong, sobre este mismo título, comenta que con la aparición de websockets (una nueva característica que ha aparecido en HTML5), el sistema comet y otros derivados, están abocados a la extinción. Desde siempre, el sistema HTTP, llamado también web, ha sido un sistema cliente-servidor, donde
Leer más...
Ruleta Rusa en Unix
Navegando por la red he topado con un blog en el que he visto la ruleta rusa de unix. La idea es jugar, como si de una pistola se tratase, con el comando rm -rf / (lo cual elimina TODOS los ficheros del disco duro y unidades montadas que se
Leer más...
La Regla de los Nueves
Esto es algo que aprendí, ahora hace ya unos 5 años, cuando comencé a instalar mi primer servicio de alta disponibilidad. En un artículo sobre el tema, la alta disponibilidad, se decía que la disponibilidad de un servicio, servido únicamente por una máquina, normalmente es de un 90%, con lo
Leer más...
Sistemas de Mensajes Encolados (MQ)
Hace poco me he encontrado con un problema. Tengo un entramado de servidores y comunicaciones entre cada uno de ellos. Cada servidor puede notificar, ya sea vía SOAP, HTTP, XMPP o mediante cualquier otro protocolo, un evento o una información a otro servidor del entramado, con lo que cada servidor
Leer más...
La Técnica Pomodoro
La técnica de pomodoro al igual que GTD (getting things done) o ZTD (zend to done), son técnicas para realizar las tareas diarias de forma ordenada y evitando distracciones. Esta técnica debe su nombre a un reloj de cocina con forma de tomate (pomodoro), ya que, la propia técnica se
Leer más...
Entrenador (Coach) de Desarrollo de Software
El término de entrenador (coach) de desarrollo de software es un papel que suele ser muy importante en el quehacer diario de una empresa que tiene desarrollos de software, ya sean internos o para clientes externos. ¿Qué hace el entrenador (coach)? Los cometidos del entrenador son dos, que pueden parecer
Leer más...
La Historia de Erlang
He encontrado un documento (en inglés) que redacta la historia de Erlang contada por su desarrollador principal, en los laboratorios de Ericsson: Erlang fue diseñado para escribir programas concurrentes que se ejecutasen eternamente. Erlang usa procesos concurrentes para estructurar el programa. Estos procesos no tienen memoria compartida y se comunican
Leer más...
Cuánto cuesta un Proyecto de Software
Hoy ya hace unas semanas que en la empresa en la que trabajo se ha comenzado un movimiento positivo en favor de medir lo que cuesta realizar desarrollos de software, dentro del departamento de desarrollo, lo cual es positivo desde el punto de vista del desarrollador, del programador y de
Leer más...
PHP 5.3
Llego algo tarde, cosas del verano, pero voy a comentar algunas de las mejoras que vienen incluidas en la nueva liberación de PHP, la 5.3. Para mi, esta versión, además de corregir fallos de la anterior, aporta características que le hacen acercarse aún más a la forma de programación profesional
Leer más...
Manifiesto Ágil
El manifiesto ágil fue fruto de una reunión que se mantuvo en Salt Lake City en marzo de 2001. Diecisiete críticos de los modelos de mejora del desarrollo del software basado en procesos, convocados por Kent Beck, padre del Xtreme Programming, escribieron el siguiente manifiesto: Estamos poniendo al descubierto mejores
Leer más...
Lenguajes Funcionales para el Desarrollo Web
La web concurrente, a prueba de fallos y distribuida ya va siendo más fácil de desarrollar gracias a dos iniciativas paralelas. Una de ellas es Erlyweb, el entorno desarrollado por Yariv Sadan que permite realizar de forma fácil sitios web en lenguaje Erlang. La otra es Lift, un framework de
Leer más...
¿”Ingeniería” del software?
El creador de menéame, Ricardo Gallí, escribió hace unos días un artículo en su blog bastante interesante sobre lo que respecta a la llamada Ingeniería del Software. Ricardo sostiene que el título de "ingeniería" ha sido dado de forma errónea al desarrollo de software y, en muchos aspectos, tiene razón.
Leer más...
Kanban: el método Toyota aplicado al software
Después de haber aplicado un alto porcentaje de Scrum en los proyectos de software en los que trabajo, siento curiosidad por todas las demás metodologías ágiles que existen, sobre todo, para saber si hay alguna práctica que pueda emplear que me permita optimizar algún aspecto de la actividad diaria a
Leer más...
Planificación de Póker
Leyendo un artículo de una página de una empresa suiza (Crisp), he visto a lo que se refiere la planificación de póker. Voy a traducir gran parte del artículo para explicarlo. Introducción La estimación es una de las actividades del núcleo de Scrum y otros procesos ágiles. Este proceso se
Leer más...
Lo justo y lo estándar
Desde hace unos meses, he estado envuelto en algunos proyectos, en los que he intentado dar un enfoque basado en patrones y estándares, para facilitar y simplificar los problemas. Solo que, hay patrones y sistemas, o frameworks, que son algo incompatibles entre sí. Por ejemplo, el uso de un sistema
Leer más...
Escalado de Ruby on Rails
Después de liberar el primer proyecto escrito en Ruby on Rails, cuando lo pasamos a producción, nos dimos cuenta de que el sistema funcionaba realmente lento. En algunos casos, incluso, no respondía, con lo que buscamos información por internet y vimos: Mongrel y Thin no son multi-hilo Fue algo que
Leer más...
Shoes: programación fácil de GUI en Ruby
Actualización: ver nueva entrada. Cuando se realizan scripts para ciertas tareas para automatizarlas, pero que tienen que tomar datos del usuario, así como los datos que se presentan son útiles, tanto para rápida consulta, como para dar dicha información por teléfono o usarla en el código, otra interfaz, etc. surge
Leer más...
De Programador a Desarrollador
Cuando tenía doce años, comencé a programar en Basic, en un ZX Spectrum de 128K... en esos momentos, y los años siguientes, hacer un programa, para mi, era sentarme delante de mi ordenador, durante unas cuantas horas, incluso echando noches en vela, para al final ver el resultado... un pequeño
Leer más...
El Principio de Peter
Hace tiempo ya escribí algo relacionado con esto, en el artículo despide a tu jefe. Hoy, después de haber leído la definición del principio de Peter en la wikipedia, se le puede dar más forma, precisión y color :-P El caso es que en la mayoría de empresas, lo normal,
Leer más...
¿Cómo funciona el sistema de correo?
Esta es una pregunta que no todo el mundo se formula y, realmente, no es tan simple contestar. Quizás de todos los servicios de Internet, el sistema de correo es uno de los más complicados que existe (si no tenemos en consideración la VoIP, claro :-P ). Conceptos En principio,
Leer más...
CASE: escribiendo código más fácilmente
Las herramientas CASE (Computer Aided Software Engineering, Ingeniería del Software Asistida por Ordenador), son herramientas diseñadas para dar soporte al programador a través de una interfaz intuitiva y gráfica que le permita, mediante el posicionamiento de objetos gráficos concretos, relacionados entre sí siguiendo una nomenclatura específica, desarrollar la base de
Leer más...
La liebre y la tortuga
En este cuento voy a intentar explicar lo que significa programar rápido y lo que significa programar de forma ágil. La primera forma sería la que se considera comenzar lo antes posible, para terminar lo antes posible... pero ciertamente, sin planificación, dar palos de ciego a ciertos niveles de implementación,
Leer más...
Reia: Ruby sobre Erlang
Al igual que en Java se pueden ejecutar lenguajes scripting tales como Ruby (JRuby), Python (Jython), Groovy... es posible hacer esto mismo en otros lenguajes, como C y Erlang. Erlang, es un lenguaje funcional, del que ya hablé en otro artículo, lo cual tiene sus ventajas para ciertos algoritmos... pero
Leer más...
MVCC: Control de Concurrencia para Múltiples Versiones de PostgreSQL
El sistema de base de datos PostgreSQL integra un sistema de control de concurrencia para múltiples versiones, en principio. Esto no es más que un sistema que se encarga de mantener copias sobre los datos de forma paralela, para acelerar el sistema de escritura de datos a disco duro, haciendo
Leer más...
ETL: Extracción, Transformación y Carga
Este término, ETL, se acuña a la mayoría de transformaciones de datos que deben de realizar empresas para compatibilizar sus datos con los de sus proveedores y/o clientes. Este sistema se basa en los tres pasos de los que salen sus siglas: Extration: la extracción se refiere a obtener datos.
Leer más...
Pruebas Unitarias
Después de haber estado adentrándome en TDD, muy poco a poco, he visto que el primer paso para hacer más fácil esta doctrina, son las pruebas unitarias. Las pruebas unitarias son pruebas que se realizan sobre unidades aisladas de código, generalmente objetos, para asegurar que, con unos ciertos valores de
Leer más...
Scrum: 7 sprints y 3 proyectos después
Mi última entrada sobre Scrum, hablaba de la implementación del gráfico Burndown, de esto hace ya casi 3 meses, aunque realmente, comenzamos la andadura en algo antes. En principio, tengo que tener presente que he estado usando algunas otras metodologías, como la Espiral de Boehm y Metrica-3, con lo que,
Leer más...
CouchDB: REST y Base de datos documental
Tal y como comentaba en otro artículo anterior, el sistema REST permite un acceso a los datos basado en la mezcla entre localizaciones de elementos (URL) y verbos de HTTP para indicar lo que se desea hacer con ese elemento. Eso, agregando un almacén de datos que permita albergar elementos
Leer más...
Debootstrap: probar sin ensuciar
Desde hace tiempo, llevo usando esta herramienta para generar jaulas de modo que pueda probar nuevos sistemas, servidores y/o configuraciones, sin necesidad de desconfigurar mi sistema actual. El sistema se basa en tener una copia exacta y nueva de un sistema operativo basado en Debian GNU/Linux, que se instala en
Leer más...
PostgreSQL: configuración de acceso
Esto es algo que siempre me toca buscar en Internet, puesto que es algo que hago una vez cada tantos meses, y siempre se me olvida de cómo empezar, así que, para tener la chuleta a mano, he decidido escribir esta entrada que, además de servirme ahora, seguro que me
Leer más...
Mentalidad de Suficiencia
Citando a Kent Beck, de su libro Extreme Programming Explained: En la Gente del Bosque y la Gente de la Montaña, el antropólogo Colin Turnbull dibuja el contraste de dos sociedades. En las montañas, los recursos eran escasos y la gente estaba siempre al borde de la hambruna. La cultura
Leer más...
REST: Representational State Transfer
Después de haber usado durante unos años sistemas RPC para la compartición de la información, XML-RPC, SOAP y Elm; llego a REST, un concepto que mencionó primero un compañero de trabajo, Juanse, y después vi en profundidad en un curso de Ruby on Rails que se organizó en la empresa
Leer más...
¿Informáticos en paro?, no en el software libre
Hay varios sitios en Internet, como Software Libre y Cooperación, El Blog de Juantomás García y el blog de La Pastilla Roja, en donde se habla de lo mismo. En el sector del software libre NO hay paro, sino que hay déficit. Los que nos dedicamos a las tecnologías abiertas,
Leer más...
¡Debian Lenny 5.0 ya es estable!
La liberación de etch se produjo el 8 de abril de 2007, ya hace 20 meses de eso, en informática es mucho tiempo, pero sin embargo, es un tiempo de liberación muy corto, teniendo en cuenta los lapsos a los que nos tenía acostumbrados Debian. Desde entonces, en el mundo
Leer más...
Documentos en bosqueviejo.org
Después de unos días desarrollando un sitio apto para incluir mis manuales y documentos más largos, puesto que considero que el blog está bien para vivencias y experiencias, descubrimientos y "recetas", pero, para los manuales, tutoriales y documentos, en sí, de mayor calado, es mejor tener algo un poco más
Leer más...
Ruby para programadores de PHP
Mi amigo Dani me indicó una página, ya que estamos más metidos en Ruby on Rails, que nos permitiría tener un sitio de referencia y comparación con las cosas, tal y como las hacíamos en PHP, cómo hacerlas ahora en Ruby on Rails. [openbook booknumber="1934356042"] La idea es muy buena,
Leer más...
Información y Formación
En los tiempos que vivimos, donde en todos los medios y las comidillas de cada calle y esquina la palabra crisis acecha como la mayor preocupación de esta época, el paro crece desmesuradamente y, curiosamente, la informática y el sector del software libre es el único que registra aumento de
Leer más...
Business Process Management
Según se puede ver en la definición de la wikipedia BPM es una metodología empresarial cuyo objetivo es mejorar la eficiencia a través de la gestión sistemática de los procesos de negocio. Cuando una empresa tiene una actividad comercial, por ejemplo, basada en un almacén, con varios sistemas que requieren
Leer más...
JavaScript y CSS no intruso en HTML
Cuando se pensaba en MVC, la capacidad para dividir las tareas obvias de tratamiento de datos, en lógica de negocio (el modelo), control de flujo de ejecución (el controlador) y la presentación de datos (la vista), aún quedaban en el aire muchos problemas en lo que respecta a las interaces,
Leer más...
SQL Server vía ODBC en Debian Etch
Casi a punto de asistir a la liberación de lenny (la versión 5.0 de Debian), seguimos viendo que con etch, aún, tenemos lo suficiente para tirar perfectamente, y sin agregar paquetes de backport. En este caso, voy a explicar como instalar y usar SQL Server vía ODBC desde cualquier aplicación
Leer más...
Lenguajes: nuevas versiones
En estos últimos días he visto los nuevos lanzamientos, o lo que se espera lanzar en varios "mundos" del desarrollo del software. Por un lado, hay varios puntos donde la interfaz pasado-futuro corre bastante peligro. Los desarrolladores de ciertos lenguajes han creído conveniente romper con el pasado de uso de
Leer más...
Lenguajes de Programación
Revisando los tipos de lenguajes de programación existentes, llego a esta clasificación de los mismos: Lenguajes imperativos Lenguajes Spaguetti Lenguajes Estructurados Lenguajes Modulares Lenguajes Orientados a Objetos Lenguajes lógicos Lenguajes declarativos Lenguajes funcionales Todos estos lenguajes de programación obedecen a una necesidad y/o ideología subyacente, que motivó el desarrollo del
Leer más...
Proxy: Patrón de Diseño para Seguridad
Entre los patrones de diseño que ya comenté en otro post, quiero agregar uno que dejé pasar, y al que he retomado hace poco, tanto de forma teórica, como para implementación en algunos desarrollos. Es el patrón de diseño Proxy. Este patrón es usado para agregar una capa de seguridad
Leer más...
Desarrollo Web
Hace tiempo, comenté acerca del desarrollo web en plataformas como Java, PHP, Erlang, Python... en ese momento, veía la maraña en la que está tejida la red de redes, el abanico de posibilidades a la hora de desarrollar una aplicación web y comenzaban a sonar términos como CRUD, SOA, MVC,
Leer más...
Lenguajes esotéricos
Otro viernes... las oficinas a medio gas y toca trabajar... me da por buscar información, ahora que aprendo más sobre Ruby y Erlang y, topo con un lenguaje llamado COW. Un lenguaje esotérico. Ves cosas como la serie de fibonacci: MoO moO MoO mOo [[ main loop ]] MOO [[
Leer más...
Ruby… esa pequeña joya
El lenguaje de programación Ruby, creado por Yukihiro Matsumoto (a.k.a. Matz), fue ideado para ser un lenguaje que simplificara las actividades diarias y necesidades de programación de su creador, al igual que Perl (la otra joya) fuera creada por Larry Wall para cubrir sus necesidades como administrador de sistemas, Matz
Leer más...
Sistemas de Control de Versiones: ¿centralizados o distribuidos?
Desde hace tiempo, la tendencia de uso de los sistemas de control de versiones, ha sido el uso centralizado mediante sistemas tan populares como CVS o Subversion. Ahora, desde que muchos grandes proyectos optaran por los sistemas de control de versiones distribuidos, cada vez hay más gente que se va
Leer más...
Desarrollo Orientado a Pruebas (TDD)
El desarrollo orientado a pruebas (TDD, test driven development) es una forma de desarrollar basándose en que un cierto algoritmo responda de una forma específica a unos datos específicos. Para explicar mejor esto, voy a explicar primero el enfoque tradicional y luego expongo las mejoras que introduce esta forma. Enfoque
Leer más...
Base de Datos Relacionales: SQLite, MySQL y PostgreSQL
Sobre los SGBD, cabe destacar, entre los que son libres, estos tres motores, de los cuales, dos de ellos son sistemas servidores y gestores de base de datos relacionales (MySQL y PostgreSQL) y otro es tan solo un motor embebido para aplicaciones monousuario o de muy baja carga (SQLite). Los
Leer más...
Servidor de hora en GNU/Linux
En las redes internas de la mayoría de empresas, se sucede la necesidad, muchas veces, de tener sincronización horaria en las máquinas para mejorar el rendimiento y la calidad de los datos a almacenar, de cara  a anotaciones y lanzamiento de tareas programadas. La sincronización horaria es completamente posible de
Leer más...
Gráfico Burndown (más de Scrum)
En estos días, después de haber pasado más de 24 horas en el último Sprint, sin descansar, donde comenté la experiencia de haber usado Scrum y XP en otro artículo, volvemos a la carga. Esta vez, con dos semanas de Sprint, bastante más tiempo, podemos realizar algunas técnicas más para
Leer más...
Algoritmos heurísticos y algoritmos voraces
Realizando una práctica de la asignatura de programación 3, de la Universidad Nacional de Educación a Distancia (UNED), he podido comprobar la diferencia, en coste computacional y rendimiento, que supone realizar un algoritmo mediante un algoritmo heurístico, como puede ser el de vuelta atrás (backtracking) y un algoritmo voraz (reducción).
Leer más...
Scrum y XP en la práctica
Hace un tiempo escribí sobre Srum y XP, en ese mismo artículo, comentaba que estas técnicas, tanto Scrum como XP, eran dos técnicas que me gustaban mucho y que probaría en un futuro... bueno, pues ese futuro ya es presente :-) La semana pasada, tuvimos, en la empresa en que
Leer más...
Libros electrónicos
Hay mucha gente que piensa que este será el punto de partida de un dispositivo que permitirá reducir el consumo de papel, del formato de libro convencional y que, a nivel ecológico, tendrá un gran avance hacia un ecosistema más sostenible. Otros lo consideran un juguete y algo no muy
Leer más...
Paradigmas y Patrones
Al desarrollar un programa, normalmente, el desarrollador elige un paradigma de programación y algún patrón de diseño, ya sea desarrollado por él, por su forma de trabajo a través de los años de experiencia, o tomado de alguna teoría o grupo de trabajo que lo haya conseguido transmitir. Los grandes
Leer más...
Erlang y Asterisk… ErlAst
Para permitir una forma más dinámica de programar el plan de marcado (dialplan) de Asterisk, se emplea lo que se conoce como AGI (que viene a ser como el CGI), pero a través de la entrada estándar (stdin) y la salida estándar (stdout). Como hacer fork dentro de la misma
Leer más...
Menos SPAM, ¿los spammers están en crisis?
Hoy he revisado las estadísticas de mi servidor web, como cada día desde hace ya años y veo que, el flujo del correo entrante, en lo que se refiere a SPAM, que se había mantenido en 1000 mensajes diarios, aproximadamente, con un 80% de SPAM, desde hace dos días se
Leer más...
Debate sobre la Ingeniería Informática
Reconociendo al sector informático como la cuarta parte de los estudiantes de las ingenierías que se estudian en las universidades españolas, la regulación de las titulaciones y el asegurar que dichas titulaciones son de calidad y corresponden a la calidad de nuestros vecinos europeos, se cierne sobre Estado y Universidades
Leer más...
Documentación de Proyectos Libres
Se ha hablado mucho sobre la escasez de documentación en proyectos libres, tanto de manuales técnicos o de administración, que expliquen como instalar y administrar el software, como manuales de usuario, que expliquen cómo realizar las actividades que propone el software realizar. Es claro que, cuando una persona aprende a
Leer más...
Programación Rápida de Webs
Cada lenguaje que es potencialmente útil para el desarrollo web, termina teniendo un framework para el desarrollo de aplicaciones web de forma rápida. A continuación pongo un listado de los lenguajes con sus respectivos entornos (los más usados y/o conocidos): Ruby: este lenguaje dio el salto al desarrollo web con
Leer más...
Scrum y XP
Después de darle un repaso al libro Scrum y XP desde las trincheras, he visto que muchas de las técnicas en las que se basa, son como las que usaban nuestros profesores dinámicos en el colegio para motivarnos a participar en clase. En esencia, es eso, que cada analista/programador se
Leer más...
La nueva revisión de C++ se llama C++0x
Las últimas revisiones de este lenguaje fueron en 1998 (C++98) y en 2003 (C++03). Ahora se ha presentado el nuevo borrador para lo que será la siguiente revisión C++0x. Las novedades, muy numerosas, se listan al completo en la wikipedia. Listo las que más me han llamado la atención: Inicialización
Leer más...
Serialización de Información
En los tiempos que vivimos, de la red 2.0, la programación de elementos aislados comienza a ser cada vez menos frecuente, mientras que el desarrollo para la web, para Internet, de aplicaciones que sean escalables, redundantes y tolerantes a fallos, se incrementa de forma vertiginosa. En ese aspecto, los programas
Leer más...
El SIMO se suspende
Parece ser que ya es oficial, según fuentes de la organización del evento que se lo han hecho saber a El Mundo y el País entre otros, que el SIMO en este año 2008 no se va a celebrar, por el motivo de que faltarán las grandes empresas (Telefónica, Orange,
Leer más...
Desmitificando: software y su mantenimiento
Desde siempre, cuando una empresa apuesta por software privativo frente a software libre o de fuente abierta, lo hace por tener cubiertas las espaldas, por tener garantías y saber que hay una empresa que responde por ese software, tanto en mantenimiento, como en incidencias graves, que pueden llegar a pagar
Leer más...
Erlang: concurrente, distribuido y en tiempo real
Después de tiempo desarrollando aplicaciones casi exclusivamente en PHP, me encuentro en el problema de que PHP no es, ni mucho menos, un lenguaje de uso general, sino un lenguaje desarrollado y pensado para la creación de aplicaciones web de forma rápida y, de forma controlada, útil y potente para
Leer más...
¿Está mi empresa organizada?
Cuando una empresa se forma, se intenta organizar el trabajo entre las pocas personas que la inician y si su estructura es buena y sus productos/servicios asequibles para el mercado, la empresa crece y con ella su personal. Es el inicio de los problemas. Cuando una empresa crece, se contrata
Leer más...
¿Se nos hunde Internet?
Después de varias noticias algo catastrofistas, ha llegado la última que, en sí, podría afectar a todos los usuarios de Internet, puesto que se basa en el propio protocolo TCP/IP. Hasta el momento, la compañía sueca Outpost24, solo ha dejado caer la noticia y la promesa de extenderla en una
Leer más...
¿Mi sistema es realmente seguro?
Es una pregunta que llega a plantearse mucha gente muchas veces, ¿es mi equipo realmente seguro? Estas preguntas surgen siempre por desconocimiento y, realmente es bueno que nos las hagamos, ya que hay también mucha gente que dice saber y, cuando dicen eso de: "en mi equipo es imposible que
Leer más...
Filosofía Unix
Desde que comencé en GNU/Linux, sobre el 2002, siempre se ha resaltado la filosofía con la que se fundamentó el sistema al que "copia", que es Unix. La filosofía Unix se basa en algunos apartados básicos que todo buen informático debería de emplear en sus desarrollos, ya sea a nivel
Leer más...
Inteligencia de Negocio
Le he estado dando vueltas hoy a herramientas de Business Intelligence (Inteligencia de Negocio) tales como Pentaho y ver cómo están estructurados todos los departamentos de negocio que he visto en muchas empresas. La valoración, en comparación con talleres de coches, sería que estas empresas trabajan con mucho personal debido
Leer más...
Cloud Software
Con este título, comienza a surgir una tendencia a usar más servicios en web. Esto viene acompañado de la liberación hace unos días de Google Chrome, el cual, aseguraban muchos expertos que no hace la competencia a Internet Explorer, Safari o Firefox, sino que se la hace a Windows. Esto
Leer más...
Despide a tu jefe
Hoy he leído en el blog de Enrique Dans (le he dejado un comentario también ;-) ), que hay un artículo (en inglés) que habla sobre cómo prepararse para la crisis, haciendo lo que realmente pueda ayudar a una empresa recortando por arriba. La idea base es despedir al encargado
Leer más...
HP quiere su propio S.O.
se ve que tanto tiempo vendiendo licencias de Microsoft en sus equipos, le ha hecho a este gigante de la venta de hardware, replantearse si vender sus equipos con Windows, y sobre todo con Vista, es buena idea. La idea que tienen es desarrollar algo simple para el usuario, basado
Leer más...
Microsoft no es ingeniería, sino comercio
Uno de los grandes avances que ha conseguido Bill Gates no ha sido como informático, como muchos creen, sino como comercial. Microsoft ha sido, quizás, una de las más grandes empresas de software que más se han basado, para sus grandes proyectos, en software adquirido a otras empresas. Con lo
Leer más...
PHP no es para todo
La popularización de los lenguajes de programación, hace que muchas veces, una aplicación que se desarrolló en otro lenguaje, sea portada a ese nuevo lenguaje, para demostrar su potencia, sencillez o capacidades. Algunas veces, esos nuevos lenguajes, resultan ser muy buenas herramientas que nos permiten trabajar más rápido sin necesidad
Leer más...
Interfaz Natural con el Sistema Operativo
Hace tiempo leí a alguien que se había frustrado porque consideraba que la interacción ratón-gráficos no era algo tan natural como pedir en palabra, tecleando en consola, lo que se quiere hacer a la máquina. En esto considero que los videojuegos nos llevan ventaja en lo que será el manejo
Leer más...
Redes en Linux
Este artículo ha pasado a formar parte de bosqueviejo.org, puede verlo en sus formatos html y
Leer más...
Asterisk: Configuración de Zapata
Este artículo ha pasado a formar parte de bosqueviejo.org, puede verlo en sus formatos html y
Leer más...
Software empaquetado y listo para usar
Los paquetes son una forma de distribuir software compilado para una arquitectura concreta. En Windows se distribuyen en comprimidos autoejecutables que autoconfiguran el entorno y en GNU/Linux también, pero de forma más controlada. Los paquetes de GNU/Linux tienen que cumplir la especificación de ordenación de ficheros que establece la distribución
Leer más...
MVC en PHP, ¿es correcto?
Después de haber realizado una investigación sobre el tema, he hallado una serie de enlaces, donde se destacan cosas como que el único MVC oficialmente creado es phpMVC, o cosas como que MVC no es para PHP. En principio, buscando alternativas, además de phpMVC tan solo encontré Kenda, el cual
Leer más...
Bienvenida de Bosque Viejo
Hola a todos, después de algún tiempo, ya he conseguido poner en actividad el sitio organizacional de Bosque Viejo. En principio, no hay nada, no hay contenidos ni hay textos (salvo este) que leer... pero espero con el tiempo y la pequeña dedicación que pueda ofrecerle, ir llenando este sitio
Leer más...

Deja un comentario

Tu dirección de correo electrónico no será publicada.