Artículos de la categoría: Programación

Los Riesgos de las Universidades-Java

Este artículo de Joel Spolsky es, desde hace tiempo, uno de mis favoritos. Publicado originalmente en el año 2005, el paso del tiempo sólo lo ha hecho ganar rigor y actualidad.

Spolsky alerta sobre la creciente tendencia de muchas universidades a sobre-simplificar la currícula de las carreras de Ciencias de la Computación (con Java como “lenguaje insignia”), con el único objetivo de producir mayor cantidad de egresados y en menos tiempo. La consecuencia es directa: cada vez más abundan programadores que poco entienden de conceptos de programación (corrección, recursión, complejidad, paralelismo, entre tantos otros) y para los cuales los mecanismos “internos” de los sistemas informáticos (gestión de memoria, interacción con el sistema operativo, comunicación entre procesos, etc.) son completamente esotéricos.

Seguir leyendo »

¿Cómo decimos verdades que pueden lastimar?

Lo que sigue es una traducción de un excelente artículo de Edsger W. Dijkstra titulado originalmente “How do we tell truths that might hurt?“.

Dijkstra es reconocido como uno de los pioneros de las Ciencias de la Computación por sus abundantes aportes, tanto en el área teórica como en la práctica. Resulta ser que, además de un notable científico, también fue un gran visionario. Una muestra de ello es el artículo aquí reproducido, publicado originalmente en el año 1975.

Realmente es penoso ver que, aún 35 años después, muchos siguen sin caer en la cuenta de cuestiones que ya en aquella época resultaban evidentes.

Seguir leyendo »

Programadores, ¿productores o consumidores?

Los programadores somos, casi por definición, productores de software. Esto es, producimos programas (que muchas veces hasta son llamados “productos”, según la definición que dicta el marketing). El gran sueño de muchos programadores es desarrollar un “producto” implementando una idea innovadora (o cubriendo un nicho insatisfecho) y vender una gran cantidad de copias, multiplicando las ganancias.

Esta visión, lentamente, está cambiando. Por un lado, las historias de aquellos que hicieron una fortuna (o establecieron una posición económica) mediante la venta de licencias de un programa son, a la vez, cada vez más lejanas y menos frecuentes. Pero, si empezamos a vernos a nosotros mismos también como consumidores de software, el razonamiento cambia radicalmente.

Seguir leyendo »

Is MySQL a toy RDBMS?

Since two days ago I’m trying to believe what I’ve found: MySQL (“the world’s most popular open source database“, as they say) is unable to resolve a simple SQL query in an efficient way, leading me (and the program I’m developing) to a dead end.

Seguir leyendo »

Charla sobre Ruby en Córdoba (7JRSL)

Siguiendo con la tendencia a desempolvar cosas viejas, aquí va la presentación que utilicé en mi charla “Ruby: ‘Orientación a Objetos’ y algo más…”, en el marco de las 7mas. Jornadas Regionales de Software Libre, realizadas en la ciudad de Córdoba, en agosto de 2007.

Ruby: “Orientación a Objetos” y algo más…

Seguir leyendo »

Charla sobre Ruby on Rails en Rosario (5JRSL)

Esta es la presentación que utilicé en la charla “Primeros pasos en Rails” en ocasión de las 5tas. Jornadas Regionales de Software Libre, en noviembre del 2005, en Rosario, Santa Fé.

Aunque se trata de material un tanto obsoleto, ya que está basado en las primeras versiones de Rails (en las cuales ni siquiera existían, por ejemplo, las “migrations”), decidí publicarlo de todas formas.

Primeros pasos en Rails

Seguir leyendo »

Mi charla en las 8vas. JRSL

Tal como comenté en el artículo anterior, tuve la gran satisfacción de dar una charla en las 8vas. Jornadas Regionales de Software Libre, realizadas del 20 al 22 de agosto pasado en la Universidad de Belgrano.

Aunque en algún momento estará disponible en el sitio del evento (junto con el video de la charla), no resití la tentación de publicar la presentación que utilicé.

Experiencias en la implementación de un ISP con software libre

La base de datos del sistema de escrutinio de MSA

Como comenté en el artículo anterior, tuve la oportunidad de tener cierto contacto con el sistema utilizado por la empresa Magic Software Argentina (MSA) en el escrutinio provisorio de las elecciones municipales de mi ciudad, Río Cuarto.

Los fiscales informáticos tuvimos acceso a la interfaz de consulta del proceso de escrutinio y a un volcado de la base de datos, que se realizaba cada 5 minutos. Lamentablemente, no tuvimos acceso al código fuente de la aplicación (aunque espero poder acceder al informe de los peritos contratados por la Junta Electoral).

Una vez finalizado el escrutinio provisorio, surgieron diferencias en los totales de votantes de los dos cargos electivos. A raíz de esto, decidí inspeccionar la base de datos con el objetivo de generar el listado de las mesas en las cuales se originaba dicha diferencia. De dicho análisis resultó el siguiente artículo, en el que me permito realizar algunas críticas.

Seguir leyendo »

El secreto de Ruby: Las “clausuras”

Uno de los mecanismos más potentes provistos por el lenguaje Ruby es la posibilidad de manipular bloques de código que pueden ser pasados como argumentos en la invocación a funciones.

Este mecanismo se denomina “clausura” (“closure“, en inglés), y aunque no es exclusivo de Ruby (es un viejo conocido en Smalltalk y Lisp, encontrándose aún en Perl y Python), la simplicidad de su uso lo transforma en una herramienta muy poderosa y flexible.

Seguir leyendo »

El silencio continúa

Hace ya casi un mes dije que retomaría la actividad en mi blog, pero lamentablemente los compromisos laborales me lo han impedido.

Y como no puedo conmigo mismo, decidí escribir este pequeño post para mostrar algo de lo que estoy haciendo. Se trata de una herramienta para generar diagramas de clases de aplicaciones Ruby on Rails.

Comencé a escribirla por necesidad (para los desarrollos en los que estoy trabajando), pero luego decidí extenderla un poco más (para, además, extender mis conocimientos de Ruby).

Por ahora, nada más (en los próximos días escribiré con mayor detalle sobre él). Les presento a mi nuevo juguete: RailRoad.

(En InfoQ han publicado una revisión sobre RailRoad.)

Quién fue Edsger Dijkstra

Muchos conocen a Edsger Wybe Dijkstra por sus aportes técnicos a las ciencias de la computación (algoritmos sobre grafos, semáforos, su crítica al “goto“, entre tantos otros). Otros quizás hayan leído sobre sus opiniones acerca de la programación como disciplina matemática y su lucha contra el avance de los intereses industriales sobre la ciencia.

Pocos saben, sin embargo, quién fue este gran hombre y su verdadero aporte a través de más de 40 años de actividad académica, científica e industrial. A continuación he traducido el discurso pronunciado por David Gries, otro notable científico de la computación, en oportunidad de un homenaje a poco tiempo de su fallecimiento.

Seguir leyendo »

Citas de Dijkstra

Releyendo los agresivos comentarios de un personaje pseudo-anónimo respecto del artículo sobre UML, recordé un excelente manuscrito de Edsger Dijkstra llamado “Respuestas a preguntas de estudiantes de Ingeniería de Software” (EWD 1035).

Para facilitar su difusión (y para tenerlo siempre a mano), decidí traducirlo. ¡Que lo disfrute!

Seguir leyendo »