Thursday, December 28, 2006

Videos Charini

Aunque no tiene que ver con la informática os dejo aqui un par de enlaces a unos videos de Bodyboard y Surf en Mundaka y Bakio realizados por Jose Manuel Navas Charini.


Por no cargar el blog, dejo simplemente los enlaces a yotube.

Hay que ver qué currados están los videos.

Monday, December 25, 2006

Cambio de profesión o no?



podría ser una opción, convertirme en el primer "AgroAnacoretaInformático" y dedicarme al desarrollo de Sistemas de Gestión para "Caserios" o simplemente a la vida contemplativa en el campo.

Eh, un momento.... hay cobertura Wi-Fi en este paraiso?

por que si no la hay creo que tendremos que vover a la Ciudad :)

Friday, December 22, 2006

Vacaciones

Las necesitaba, pero YA están aquí, sólo unos pocos días, pero necesarios.

Nueva seccion de Feeds/Podcast en la web





He introducido en la página web una sección en la que he añadido los feeds / podcast a los que estoy escrito y los fichero OPML para suscribirse a los mismos.

Visitad directamente la sección en:

Feeds/Podcasts a los que estoy suscrito

Wednesday, December 20, 2006

Si los desarrolladores hicieran aviones




Se que lo habreís visto en otros sitios pero no me he podido resistir (gracias Roberto por el enlace, IMP-PRESIONANTE :)

Conferencia Software Libre 3.0


Un Reto para la Imaginación


Del 7/Feb/2007 al 9/72007, en El Palacio de Congresos “Manuel Rojas” de Badajoz se celebrará las terceras conferencias internacionales de software libre. Entre los puntos más interesantes puede estar la intervención de Diego Gomez Deck, mostrando Squeak en la OLPC y otros desarrollos interesantes

Sunday, December 10, 2006

Los limites de los Sistemas

Según más van pasando los años y con la experiencia, más claro me queda que normalmente las dificultades de cualquier sistema (normalmente de de objetos) están en lo que podríamos llamar "Los límites" , bien del sistema o bien por lo menos de la parte de objetos.

Me explico, los objetos permiten "jugar" a ser Dios creando un "universo" en el que existen objetos que simplemente cumpliendo ciertas reglas (normalmente mínimas) pueden vivir en el y hacer que todo el universo en conjunto evolucione simplemente por la interacción entre los objetos. Esto tiene grandes ventajas, puesto que puedes cambiar las "reglas de juego" del universo y de sus habitantes, pudiendo facilmente ampliarlo, reducirlo, modificarlo, etc... 

Hasta ahora todo son ventajas. Evidentemente esto no es del todo cierto, puesto que este "universo" vive en un entorno limitado con sus reglas (S.O), sus lenguajes (programación), sus bases de datos, su arranque, las caidas de tensión, etc. Estos puntos podemos identificarlos como los límites externos de nuestro sistema y típicamente son:
  • El Sistema Operativo
  • El hardware (diferencia memoria / disco duro, volatilidad del universo, comunicaciones, etc)
  • Los lenguajes que normalmente no permiten expresar más que un conjunto limitado de cosas (especialmente los estáticos)
  • Incluso los propios desarrolladores / usuarios y sobre todo su deformación / condicionamiento por lenguajes estáticos, conocimientos de bajo nivel (bytes, memoria, ...). Ficheros, Registros... Bases de Datos. Incluso condicionamiento para trabajar con metaforas como la del escritorio, los formularios, etc. Que hacen que pensemos en Archivos, Bases de Datos, Ficheros, Registros...
  • ...
Esto hace que se tienda a dedicar demasiado tiempo a solucionar problemas relacionados con estos límites, cuando en muchos de los casos estos problemas no existen realmente sino que nos los creamos nosotros mismos al tomar ciertas decisiones técnicas. Por ejemplo:
  • Mapear obejtos a BD Relacionales, para almacenar datos que en la mayor parte de los casos son menos de un decimo de la memoria de cualquier ordenador.
  • Representar cualquier información en una tabla, puesto que estamos condicionados a pensar en que la información siempre tiene está estructura... o en un árbol en algunos casos. Normalmente este tipo de diseño de interfaz de usuario es porque no somos capaces de diseñar un interfaz adecuado a la tarea a realizar.
  • Optimización temprana del sistema puesto que estamos condicionados por una experiencia y una educación que hablaba demasiado de "bytes" y poco del comportamiento y evolución de la información.
Creo que la solución general a este problema, es simplemente pasar de evaluar esos problemas y no plantearselos excepto que sea totalmente imprescindible y en ese caso retrasar la decisión todo lo posible. Esto se resume en:
  • Usar lenguajes que sean ampliables (por tener metaprogramación, introspección, ser open source, etc...)
  • Abstraerse en lo posible del S.O. usando sistemas interpretados, multiplataforma, etc
  • Evitar meter objetos en BD Relacionales, lo que permite:
    • No dedicar recursos en intentar meter cosas en forma de circulos en agujeros que son cuadrados
    • No pelearse con sistemas de mapeo que ni permiten pensar en objetos, ni pensar en relacional, sino que obligan a tener que pensar en las dos cosas y además en todo el mapeo, es decir el triple de trabajo.
    • Evita terminar pensando en registros (por comodidad)
    • Mejora el rendimiento de una forma asombrosa, puesto que no tienes que convertir una y otra vez de un formato a otro, ni implementar complicadas politicas de cache y de bloqueo
  • Intentar que el sistema sea "Vivo" en el sentido de que se difumine en todo lo posible la fase de desarrollo / ejecución.
Al final resulta que normalmente y simplemente por inercia pasamos la mayor parte de nuestro tiempo y esfuerzo resolviendo problemas que nada tienen que ver con el problema "lógico" a resolver, es decir nuestro tiempo se pasa con el interfaz de usuario, mapeo de objetos a relacional, resolviendo problemas que nos genera el propio lenguaje de desarrollo que usamos, etc...

Con respecto a esto es interesante estudiar los conceptos:
En cualquier caso y una vez sabiendo estos problemas típicos y conociendo los conceptos listados en el punto anterior, hay siempre que tener mucho cuidado con la tendencia natural que tenemos los infomáticos (simplemente por el hecho de serlos) hacia la MentalMasturbation Así que por muy divertido que sea  hacer un programa C++ que en compilación crea la mayor parte del programa, que interpreta un lenguaje inventado por nosotros debemos evitarlo sea como sea.


Wednesday, November 29, 2006

Psicodelia Web





Esta web me ha alegrado el día. No sabia que el Dr Albert Hofmann realiza desarrollo web a sus 100 añitos... Para mearse. La Tripi web.

Consejo, se debe interactuar con la web con las lueces apagadas mientras se escucha Jefferson Airplane, Pink floyd o alguna de
Jimi_Hendrix

Sunday, November 19, 2006

Tenemos claro dónde se Desarrolla?

GoogleTrends
No se si a estas alturas alguien no tiene claro donde se realiza el software, pero por si acaso aquí van unas gráficas de unas pocas busquedas (C++, Linux, JBoss, J2EE...) realizadas al azar en Google Trends, que creo que revelan claramente dónde se hace el desarrollo....

Trends

Así que ya podemos ir espabilando....

Susi descrita por ella misma

Le he enseñado a mi mujer Susi la dirección http://www.southparkstudios.com con la que hice el "Papa Noel " de otra entrada del blog y estuvo enredando un poco hasta diseñarse Su personaje tipo South Park..... A que está guapa...

Pase a Ubuntu 6.10 Edgy


Esta noche he pasado a la versión Edgy de Ubuntu, y excepturando un problemilla con el wireless todo ha ido perfecto. Además he aprovechado para pasarme a Automatix2, para todo el tema de codecs multimedia, java, y alguna otra cosilla..... La verdad es que esta gente de canonical se lo curran.

Ya llego, ya está aquí....


Hoy en plan suicida se nos ha ocurrido hacer una pasadilla por el supermercado de un Centro Comercial y por lo que hemos podido ver parece que "los mercaderes" han adelantado un año más el comienzo de las Navidades.... Cada año comienzan un poco antes, va a llegar el momento en que se junten al final de las vacaciones de septiembre.

Bueno ya saben, no se resistan, saquen su "Tarjeta de Crédito", ponganse en forma, entrenen un poco y ala, a correr los San Fermines por los centros comerciales.
Me ha dado la sensación de que la frase de "Hay más gente que en la guerra" no es necesariamente una exageración. Que Caos, y luego hablan de los proyectos informáticos....

Un año más se alcanza el climax de la sociedad consumista occidental.

Notas:
- Papa Noel creado en http://www.southparkstudios.com
- Icono navideño elegido no por absorción cultural, sino por ser más inocuo un "señor obeso en pijama rojo", que tres reyes. Por lo menos para un republicano, ateo.

Wednesday, November 15, 2006

WxPython seleccionado para desarrollo GUI multiplataforma en el trabajo

Después de evaluar varias posibilidades para desarrollo de aplicaciones GUI internas multiplataforma para el trabajo nos hemos decantado por wxPython que es bastante flexible y nos evita la problemática que hemos tenido anteriormente con pyGtk sobre todo por problemas de versiones.

Ahora toca ponerse las pilas al respecto, pero la verdad es que simplemente con las demos que vienen con el paquete ya tienes la mitad hecha y el resto es cuestión de aprender mediante la experimentación que para eso python es un lenguaje muy dinámico.

Tuesday, November 14, 2006

Ya era hora!!!!


Si te conectas a la web de sun te encontrarás con la imagen que pongo.... Vamos que se han hecho esperar pero al fin lo han hecho... Ya tenemos Java libre. Mañana con un poco de tiempo habrá que echar un vistazo a la licencia a ver si lo han dejado bien clarito.... Veremos cuales son las reacciones.

Monday, November 13, 2006

Disponible nuevo Binding para el Middleware Ice




Los chicos de ZeroC siguen mejorando el impresionante producto de Middleware Ice que según lo voy probando más me gusta.

Ahora además de la cantidad de bindings que ya tenían (C++, Java, Python, ....), acaban de sacar un binding para Ruby. Se me ponen los pelos de punta de sólo pensar en las posibilidades que tiene un Middleware como Ice con un lenguaje tan dinámico como Ruby. Sólo falta que lo saquen ara Smalltalk y ya no habría freno a las posibilidades:
  • Generación de comportamiento al vuelo.
  • Distribución al vuelo de comportamiento, disponible previamente o generado en ese momento....
  • Además de todas los servicios ya proporcionados por Ice (sistema de nombrado, contenedor para facilitar el deployment, bus publish/subscribe, más todo lo que puedes esperar de un ORB clásico).

Sunday, November 12, 2006

Citas sobre depuración



Unas pocas citas sobre una de las tareas preferidas de cualquier desarrollador, la depuración:
  • "Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it" Brian Kernigan
  • "Any fool can write code that a computer can understand. Good programmers write code that humans can understand" Martin Fowler. Y así se puede depurar añadiria yo.
  • "Time is so short, you can't make a debug..." Scott Adams (Esta es sin duda la mejor)
Y con esto en mente, mañana a por unos cuantos de estos bonitos bichitos que solemos buscar:

Wednesday, November 08, 2006

Ordenador como "Metamedio"

Los ordenadores se usan principalmente como soporte para la realización de tareas de gestión,rellenar formularios, algunos cálculos y poco más... o al menos es para lo que lo usan el 99% de la población. Gran parte de esto es debido a que se usa un sistema de interacción con el usuario que simplemente limita la forma de interactuar a la introducción de datos y la consulta de información. En mi oponión, este uso tan pobre que damos a los sistemas informáticos, no refleja el potencial real que tienen los ordenadores de hoy en día como medio de expresión y de ampliación de la creatividad humana...


Fuera de esta corriente central existen ciertos sistemas cuyo enfoque es completamente diferente y no se orienta a la introducción de datos y las pantallas grises con tablas de datos sino que pretenden ser un entorno para:
  • la experimentación
  • la creativada
  • la colaboración
  • un metamedio que amplie las capacidades creativas e intelectuales humanas tal y como lo haría un miembro bioníco con la parte física....
Estos entornos normalmente se suelen intentar representar mundos vivos con sus propias reglas.

A continuación pongo unos enlaces de proyectos que van por ese camino y que tienen un nexo "tecnológico" común, en este caso es que son sistemas que tienen como base "Squeak" (sistema Smalltalk open source) que permiten recrear mundos vivos dentro de un ordenador o una red de ordenadores. Está claro que el uso de esta tecnología de objetos es lo que permite realizar estos entornos pero en esta ocasión no es la tecnología la que me importa sino lo que se permite hacer con ella.....

Entornos/Aplicaciones/Sistemas:
  • OpenCroquet definido como "...a new open source software platform for creating deeply collaborative multi-user online applications". Lo mejor para hacerse una idea es probarlo o ver alguno de los videos de muestra.
  • SmallLand entorno centrado en educación y que deja en manos de los niños un entorno de libertad de creatividad total.
  • Squeak el entorno base sobre el que funcionan los demás.... se debe tomar como un mundo inicial que modificamos hasta llevarlo a ser nuestro mundo.
  • Pier entorno colaborativo mezcla de wiki y de aplicaciones generadas de forma dinmámica. Lo más didactico es ver algunos de los videos del enlace.
  • Scratch entorno especializado en creación de entornos interactivos y programables por cualquiera mediante manipulación directa.

Pensemos a unos años, juntemoslos con interacción con los sistemas mediante otras formas diferentes a las que conocemos actualmente (realidad virtual, dispositivos portatiles, gps, geolocalización, digitalización de información, 3D, colaboración en tiempo real y mucho ancho de banda) y podremos ver como "second life" es un juego de niños al lado de lo que se puede hacer de verdad.... si conseguimos quitarnos de en medio la "metafóra" del escritorio y el WIMP (Windows, Icons, Menus and Pointing device) quizas podamos ver cosas realmente interesantes.....

Me toca aprender CSS

Parece que ha me he quedado muy obsoleto desde que escribi mi primera página "telaraña" alla por el "94", el caso es que ahora mismo mis casi nulos conocimientos de html no valen de mucho en la "web" actual... parece que aunque sea un mínimo (ya que no lo requiero profesionalmente) me va ha tocar ponerme algo al dia en XHTML / CSS y otros "palabros" tan de moda actualmente. Y mira que pensaba yo que eso era para los profesionales ("Diseñadores")...

A recordar para no realizar una optimización prematura


Un problema que adolecen muchos proyectos es la "optimización prematura" que se evitaria facilmente si tuviesemos siempre en nuestra mente las siguientes citas:
  • Make it Work, Make it Right, Make it Fast (uno de los preceptos de XP)
  • It's easier to make a correct program run fast than to make a quick program run correctly! (OpenLDAP Programming Guidelines)

Actualización Fin de Semana


Este fin de semana creo que toca la dificil decisión de si esperar algo más o migrar el portatil desde mi querida "dapper" a la nueva y no demasiado renovada "edgy". Creo que le voy a dedicar al menos unos dias a ver que tal ha ido la experiencia a otra gente....

Por ahora lo que tengo oido es que para instalaciones desde cero va bien, pero que hay algunos problemillas para actualizaciones. En cualquier caso el cambio no parece ser muy radical puesto que se pasa de una versión "6.06" a una "6.10" y si se respetan todas las reglas sobre nombrado de versiones de software significa que no se trata de un cambio radical. Bueno el fin de semana lo veremos....

Foto para fondo

Monday, November 06, 2006

No lo toco más

Por hoy creo que el blog se va a quedar tal y como está aunque no me convence demasiado la plantilla que estoy usando actualmente...
Ya la cambiaremos.

Vamos que nos vamos

La intención es usar este blog como diario de bitácora de mi vida de infomático...