Archivos de Categoría: Programación - Paginas 2

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.

Leer más »

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!

Leer más »

AJAX no es AJAX

AJAX es uno de los términos de moda en el mundo de la Web 2.0 y las aplicaciones web. Como usualmente ocurre en estos casos, aparece rodeado de un manto de misterio y mucho palabrerío. ¿Es una tecnología? ¿un lenguaje? ¿una librería? Tratar de explicar qué es AJAX me recuerda a un pasaje de la película «The Matrix«:

Niño: No trates de doblar la cuchara, eso es imposible. En cambio, sólo trata de darte cuenta de la verdad.

Neo: ¿Qué verdad?

Niño: La cuchara no existe.

AJAX es simplemente una técnica, o mejor dicho, la combinación de varias técnicas. Si bien su nombre significa «JavaScript y XML asincrónicos«, no tiene necesariamente que ver con Javascript ni con XML. De ahí el título de este artículo.

Leer más »

No tener ni idea

Hace ya un tiempo algún alumno de la Universidad Tecnológica Nacional (Fac. Buenos Aires) elaboró un video basado en la grabación de una clase, en la cual el docente a cargo de la cátedra de «Diseño de sistemas«, el Lic. Rubén Fernandez Iriart, explicaba qué son los «Enterprise Java Beans«.

Leer más »

Tutorial sobre TCP/IP

En este tutorial realizaremos la «disección» de una comunicación TCP/IP muy simple, con el fin de analizar qué ocurre a cada nivel.

A través de este sencillo experimento, podremos recorrer los conceptos fundamentales de las redes TCP/IP, para reafirmar la idea de que este protocolo es muy simple. El objetivo es lograr, sin demasiados conocimientos previos, una comprensión profunda de sus mecanismos.

Leer más »

Por qué UML no sirve

En el año 1999 cursé una materia de ingeniería de software y tuve la desdicha de encontrarme con el «lenguaje» de moda para el análisis y diseño (supuestamente) orientado a objetos: UMLUnified Modelling Language» o «Lenguaje Unificado de Modelado«) y su metodología asociada: el «Proceso Unificado«.

Leer más »

Programación para redes y concurrencia (IV)

En esta última entrega analizaremos algunos de los problemas que se plantean a la hora de desarrollar programas concurrentes.

La programación concurrente (implementada a través de procesos separados o de threads) plantea una serie de inconvenientes respecto del uso de recursos o datos compartidos, que abren un campo de investigación interesantísimo y con muchos puntos aún no resueltos. Presentaremos aquí solamente una introducción a esta problemática, ejemplificando cada situación con nuestro servidor concurrente.

Nota del 19/11/2006: Ahora puede descargar el tutorial completo.

Leer más »

Programación para redes y concurrencia (III)

Luego de que en la entrega anterior complicáramos un poco las cosas introduciendo concurrencia en el servidor, un amigo me hizo notar que quizás sería mejor dar un ejemplo un tanto más «real» de lo que estábamos haciendo.

Es por eso que dejaremos por un rato el camino planificado para jugar un poco explorando las posibilidades con un cliente en PHP (en una especie de «recreo«).

Leer más »

Programación para redes y concurrencia (II)

En la entrega anterior abordamos el diseño de un protocolo y la implementación de un servidor secuencial muy simple y un cliente. Haciendo esto, inspeccionamos los conceptos fundamentales de la programación de aplicaciones usando sockets.

En esta segunda parte, desarrollaremos un servidor capaz de recibir conexiones de varios clientes de manera concurrente (en paralelo). Para ello utilizaremos dos técnicas distintas: procesos múltiples e hilos de ejecución (threads).

Nota del 19/11/2006: Ahora puede descargar el tutorial completo.

Leer más »