sábado, mayo 02, 2015

Cartogramas



El otro día, mientras leía un post en un blog de política local, encontraba un mapa de Argentina con la provincias deformadas, con el tamaño aumentado o disminuido según la cantidad de habitantes.

Desde ya que despertó mi curiosidad inmediatamente y comencé a googlear para averiguar cómo se consiguen hacer estos mapas.

jueves, febrero 05, 2015

Javascript, procesamiento de arrays al estilo programación funcional...

... con filter, map, reduce.



La últimas versiones de Javascript incorporan tres funciones usualmente encontradas en los lenguajes que permiten programación funcional para trabajar con arrays: filter, map y reduce.

Estas tres funciones son pilares necesarios para programar en paradigma funcional. Esto es sin utilizar variables ni iteraciones.

El clásico, famoso y tan utilizado lenguaje para realizar consultas en base de datos relacionales, SQL, aunque no se mencione frecuentemente, propone un paradigma de computación netamente funcional.

¿Podría ser más sencilla la aproximación a dicho paradigma si trazamos un paralelismo con el viejo SQL?

Aquí se hace un breve recorrido por estas tres funciones y su analogía en SQL standard.

miércoles, marzo 09, 2011

Las Interrupciones en los Procesadores 80x86

1. Origen de las interrupciones.


En las computadoras con procesadores 80x86 las interrupciones pueden ser originadas por la CPU (las excepciones), “disparando” el pin INTR (interrupciones enmascarables) o el NMI (interrupciones no enmascarables), o por las instrucciones INT 3, INT n, INTO o BOUND (interrupciones por software).

1.1. Excepciones.


Como ya se ha dicho, se nombra de esta manera a las interrupciones originadas por la CPU. INTEL las clasifica, según la dirección de retorno de la rutina o proceso que atiende la interrupción, de la siguiente manera:
  • Faults: la dirección de retorno es la de la instrucción que se ejecutaba cuando se originó la excepción. Esta excepción permite solucionar el problema y volver a ejecutar dicha instrucción.
  • Traps: la dirección de retorno es la de la instrucción que le sigue a la que se ejecutaba cuando se originó la excepción. Son usadas exclusivamente para propósito de depuración, como por ejemplo colocar un “breakpoint”.
  • Aborts: a veces no es posible determinar la dirección de retorno, por lo tanto tampoco es posible continuar con el programa luego de una excepción de esta clase. Son causadas por fallas graves, como errores en el hardware o entradas erróneas en las tablas del sistema.

Algunas excepciones generan un “error code” que proporcionan información sobre estas.

lunes, noviembre 22, 2010

La "reventa" del software



Es un pensamiento por ahí al que se llega facilmente, pero se me vino a la cabeza en estos últimos días. Quizás nuevamente, porque ya se me habría aparecido en algún otro momento.

El software se convierte en un negocio interesante si se consigue desarrollar un vez y vender mil. Y esto no debe tomarse tan literalmente, porque a veces, aunque no vendamos un producto mil veces, podemos reutilizar las ideas (fragmentos de código, si se desea ser más concreto) en otro desarrollo, con lo que estaríamos revendiendo también.

Desarrollar software es altamente costoso, requiere un gran esfuerzo en aprender tecnologías, entender problemas, desarrollar conceptos, etc, etc, etc. Desarrollar para utilizar o vender pocas veces sencillamente no vale el esfuezo.

Este concepto no es solamente posible en el software, sino en toda "industria" intelectual, como bien saben los malos columnistas de los diarios berretas. Por ejemplo en el arte vemos a los creadores aplicar sus conceptos y repetirse, repetirse y repetirse, hasta que ya no puedan robar más y tengan que sentarse a crear algo nuevo.

El punto es que el "desarrollar una vez y vender mil" no sólo es una buena idea, sino que es la única viable para que este negocio funcione.

Es verdad que por ahí estoy descubriendo la pólvora en el siglo XXI, o por ahí ya reutilizaba y revendía pero no me había puesto a darme cuenta... ¡bueno che, soy algo lento!

Aquí les dejo un interesante artículo sobre la trampa de la reutilización del software:

http://techdistrict.kirkk.com/2009/07/08/reuse-is-the-dream-dead/