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
Subscribe to:
Posts (Atom)