Category Archives: Programación

Programar en tercera persona

Andres Valloud escribió en la lista de Smalltalk a la que estoy suscripto este correo, y la verdad que me gustó tanto que lo guardo para releerlo y de paso lo comparto con el que quiera

Si te ayuda… una de las cosas mas importantes para sacarle el maximo provecho a Smalltalk (y en general a otros lenguajes tambien) es separar claramente lo que es uno de lo que es el programa. Quiza parece una tonteria, pero la sutileza de dejar de escribir codigo como si uno diera ordenes, y en realidad concentrarse en como estas entidades (en Smalltalk, los objetos) van a interactuar entre si es liberador.

No es necesario gastar ni un atomo de pensamiento en controlar cuando uno diseña para que las propiedades emergentes de la red de interconecciones de conducta tengan como unico resultado posible que suceda lo que uno esta buscando… es decir, que el programa tambien quiera, dentro de lo posible, que suceda lo deseado.

Al tratar de controlar por la fuerza, los programas en general terminan haciendo agua por todos lados… no es posible tener el control absoluto de todo salvo en casos chicos. O peor: los programas terminan siendo una especie de exteriorizacion de la necesidad de controlar del que los escribe.

Pensar programas en tercera persona concentra el esfuerzo en lo que realmente vale la pena.

Dos enlaces importantes por si nunca programaste en Smalltalk:

The Original Hacker #5

logo_TOHTras casi quince días sin aparecer por estos lares, vuelvo un año más viejo y con un ejemplar de The Original Hacker bajo el brazo, gentileza de Eugenia Bahit.

Como repaso rápido (no se que hacen leyendo esto y no yendo a bajar la revista) hago un respaso rápido de los contenidos (por si el modem de 2400bps les tarda mucho en descargarla 🙂 ):

  • Modelos de seguridad permisivos o como volvernos más “invulnerables” gracias a este concepto que está muy cerca de la ilusión óptica.
  • Creando menues dinámicos simples o complejos en Bash. Con esta explicación de Eugenia hasta el más porfiado puede encontrarle el gusto y volverse un artista.
  • En la sección dedicada a Europio Engine, Eugenia plantea el concepto de Dict. Son diccionarios para el tratamiento de vistas.
  • Para la sección Pythónica, se mete con la carga y manejo de formularios web desde Python con WSGI y Apache sin frameworks.

La revista cierra con un acertijo de pensamiento lateral que hay que contestar antes del 25 de mayo de 2014, así que a bajar la revista que la neurona tiene bastante para procesar durante este mes.

The Original Hacker #4

tapa4

Antes de finalizar febrero, Eugenia no se aguantó las ganas (la gente “normal” la hubiese largado como número de marzo, pero esta chica es una máquina de trabajar y no puede con su genio) y publica, a partir del martes 25 de febrero de 2014, el número cuatro de The Original Hacker.

En este número, de la mano de Europio Engine profundiza en temas de seguridad (y ni hablar de la sección exclusiva de ingeniería inversa) y va desde la liberación de Europio Code a la explicación del uso y funcionamiento de SecurityLayer. Para los lectores pythónicos, viene la explicación “blanco sobre negro” de Wrappers y Decoradores.

Les dejo el resumen oficial de cada una de las secciones:

Bash Scripting Avanzado: sustitución de parámetros y manipulación de variables
Este artículo sigue la serie de scripting en bash que comenzó unos
números atrás. La sustitución de parámetros en bash es un tema que no
tiene desperdicios y en este artículo se abarca minuciosamente
(incluye chuleta!!) [Nota de Magoo/aka NdT: Chuleta=Machete para los sureños americanos atlánticos]

Seguridad Informática: EuropioCode, un sistema de codificación de
caracteres basado en el modelo SAC de 3 capas
EuropioCode es un nuevo sistema de encoding (codificación de
caracteres) especialmente diseñado para la codificación de campos de
formulario y persistencia de datos de forma segura, previniendo de
forma absoluta y definitiva, la inyección de código a través de
entradas en web forms. Este paper es un completo manual tanto de uso
como de desarrollo. Como sistema de codificación, aplica además, un
modelo de seguridad en 3 capas (server-application-client /
servidor-aplicación-cliente) con lo que su implementación podría
significar el comienzo de aplicaciones 100% invulnerables.

Ingeniería Inversa: solo el “qué” puede desvelar el camino hacia el “cómo”
Este paper no es apto para todo el mundo. Si bien intenta explicar no
solo en teoría sino en la práctica pura y exclusiva, los pasos que la
ingeniería inversa aplica en el desarrollo de Software, no deja de ser
un tema complejo que podría resultar hasta incluso contradictorio en
muchísimos programadores. Su publicación está solo expuesta a título
informativo y no pretende servir de guía para la ingeniería de
software ni mucho menos, servir de único material de consulta. Su
único objetivo es servir de auto-evaluación al programador que tenga
interés en comenzar a inmiscuirse en el uso de la ingeniería inversa
para desarrollar software.

Ingeniería de Software: wrappers y decoradores en Python (la
explicación definitiva)
En la edición pasada, se introdujo a los conceptos de funciones lambda
y closures en Python, prometiendo abarcar también, wrappers y
decoradores. Y lo prometido es deduda. Con este artículo, uno de los
temas quizás más complejos de abarcar en Python, queda finalmente
expuesto en blanco sobre negro a riesgo de garantizar que el 99,9% de
los programadores, lo entenderá de forma definitiva. Lejos, el
artículo estrella de esta edición 🙂

EuropioEngine Lab: SecurityLayer, una capa de seguridad inteligente
Hace dos ediciones atrás, se introdujo al concepto de capas de
seguridad inteligentes en PHP. Toda la investigación sobre el tema, se
aplicó -y probó- en una capa de seguridad para EuropioEngine,
explicada paso a paso en esta edición. Lectura recomendada no solo
para usuarios de EuropioEngine, sino también, para todos aquellos que
se hayan interesado en el paper sobre capas de seguridad inteligentes
y quieran una referencia de base para desarrollar una propia.

Si llegaron leyendo hasta aca, les dejo el enlace a mano para poder descargar este número y cualquier número anterior que les falte desde la página oficial.