Eduardo Ferro Aldama (eferro) personal blog... Expanding my comfort zone. Agile mindset. Software Developer #Python #Go #FLOSS #agile #extremeprogramming https://github.com/eferro https://linktr.ee/eferro Development, Agile, Software Crafter, and random tech and nontech stuff. Opinions are my own.
Sunday, December 31, 2006
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.
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:
Con respecto a esto es interesante estudiar los conceptos:
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...
- ...
- 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.
- 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.
Con respecto a esto es interesante estudiar los conceptos:
- Object-Relational_impedance_mismatch
- Object_prevalence
- Metaprogramming
- Language_Oriented_Programming
- Domain_Specific_Language
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?
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....
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.
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)
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:
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:
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.....
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....
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....
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.
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...
Subscribe to:
Posts (Atom)