Still true after almost 5 years…no rules, just one BE OPEN

I love this video, and it is still true!

  • Everyone connected
  • Is that a good thing, or a bad thing?
  • The wisdom of the crowd
  • Time and place matter anymore?
  • Who decides? We do!
  • It is a mass collaboration
  • Could we create a world without borders?
  • Who is driving it. You. Me. All of us.
  • No rules, except one: BE OPEN!

En que programan los chapines?

A ver quiénes contestan esta duda que durante algún he tenido. Imagino que el espectro es bien amplio.

Sin duda estarán los clásicos,  que se deleitan con C o C++, e incluso pienso que más de alguno goza escribiendo Asembler. 

Habrán quienes ya llevan su tiempo en el campo y sienten cierta nostalgia por RPG, COBOl, FORTRAN. Algunos que aprendieron con Pascal disfrutaran todavía usarlo, o recrearse con Delphi.

Sin duda habrá Javeros, que programan en cualquiera de las tecnologías que Java ofrece. Habrán los que usan Struts, Velocity, Cocoon, J2EE y sus hijas, Servlets, Hibernate, Seam, Swing, SWT, JPA, Drools, Castor, jasper, etc. Algunos preferirán Tomcat, otros JBoss, algunos Gerónimo, etc. Aparecerán los amantes de Netbeans y los defensores de Eclipse. 

Read more En que programan los chapines?

Que pasa con la RAM cuando la apagamos?

¿Qué pasa con nuestra memoria RAM cuando apagamos nuestra computadora? Si me lo hubieran preguntado antes de leer este artículo, sin dudarlo y con mucha confianza hubiese dicho “se borra”. Nunca pensé que con enfriar un poco el chip de la RAM puede mantenerse los datos por más de 10 minutos!!

Read more Que pasa con la RAM cuando la apagamos?

Leyes con Wikis

Dando vueltas por ahí, me encontré con una noticia que me dio mucho que pensar: Nueva Zelanda puso en marcha un proyecto mediante el cual los ciudadanos pueden aportar sus ideas y comentarios para un proyecto de ley. Nada nuevo ¿verdad? En una democracia todos aportan a las nuevas leyes y lo hacen por representación. Lo innovador es que las personas no colaboran a través de sus diputados, sino que a través de un wiki que el gobierno abrió para tal propósito.

Las leyes en cuestión es la Police Act de 1958 y las Police Regulations de 1992, que al parecer no son nada superficiales. Actualmente el proyecto sirve para darle forma a la ley, que de todos modos tiene que pasar por el congreso para ser aprovada. La página está en MediaWiki, que es el mismo motor de Wikipedia y que está a disposición de quien lo quiera bajar. El sitio estuvo caído algunas veces por el tráfico internacional, pero poco a poco el tráfico ajeno se reducirá para que la página sirva para la finalidad que tiene.

 

Poco a poco irán apareciendo nuevos conceptos como este, y aquello que hace diez años se leía en libros futuristas, poco a poco está tomando forma. Se acercan tiempos en los que tendremos que repensar conceptos que antes creíamos etéreos, como la representatividad.

 

¿Será una buena idea? ¿Estaremos en veinte años haciendo las leyes de esa manera? ¿Que pasaría con la figura del diputado? En vez de “designar” a algunas personas que decidan por nosotros, tendremos la oportunidad de realmente influenciar. El concepto de “pueblo” puede afianzarse o el concepto de individuos que eligen revalorizarse.

 

 

Si a veces le temo a la tiranía en que puede derivar la democracia, ¿que pasaría en un entorno así? ¿Estaríamos dispuestos a que las leyes que nos rijan las decidan personas con pensamientos tan diversos? Si en un país sajón alguien decidiera proponer una ley para esclavizar a los que no son canches, y una mayoría apoya la idea en un wiki ¿sería justo? Justo o no sería una desición totalmente “democrática”.

Las minorías podrían correr peligro, las ideas populistas podrían revolotearse como virus, y podrían haber problemas. ¿Y la minoría más común y más importante de todas, el individuo, estaría a salvo en un mundo así?

 

Estamos entrando en una época en que el conocimiento, la información, tiene especial valor. Las demás personas pueden beneficiarse cada vez más de lo que śe, y de lo que opino, así como yo puedo beneficiarme de ellos. Los lazos entre personas distante físicamente se afianzan para crear proyectos interesantes, y tenemos que comenzar a pensar que el mundo cambiará más rápido de lo que creemos, y eso puede ser algo muy malo, o puede ser algo fascinante que haga mejor a cada ser humano en el mundo. Comencemos a hacer las cosas para que suceda lo segundo.

Generación de código

Cuando se aprende a programar, se encuentra el arte que hay detrás de ello. Cada paradigma y cada estilo llevan su arte dentro. Cualquier persona que gusta de escribir programas, añora los retos que un proceso complicado conlleva. Ante un problema cuya solución es complicada, las horas pasan rápido y la cantidad de neuronas que se ponen a funcionar dan una sensación equivalente a la adrenalina.

 

 Lastimosamente, en el mundo de la programación, también hay muchas tareas que son sencillas y amargamente tediosas. Existen procesos en los que es necesario hacer algo una y otra vez, y en las que los métodos convencionales de reutilización de código son poco eficaces con algunas tareas.

 

 Muchos años atrás me topé con ese problema: las tareas repetitivas no son agradables de realizar, y representan un porcentaje sustancial de un sistema de cómputo. Odiaba estar frente a esos casos en lo que había que hacer muchos catálogos, que en escencia eran mapear la base de datos a una pantalla para presentarlos al usuario y este fuera capaz de modificarlos.

 

 ¿Qué hacer para quitarme de encima esas aburridas tareas? Fui buscando soluciones y probando varias técnicas, y poco a poco fui llegando a la conclusión de que hay una forma eficiente y divertida de solucionar esas tareas: generando código. Haciendo programas que hicieran programas. Un concepto sencillo que se aplica todos los días al momento de utilizar un compilador.

 

 Una vez tomada la desición de que la generación de código hacía el trabajo más emocionante, comencé a darme cuenta de las muchas otras ventajas que este método tenía. El trabajo se podía estandarizar de una gran manera, los errores se reducían en un gran margen, al solucionar un error en un lado se solucionaba en todos lados, se podían implementar mejores prácticas de manera sencilla, y muchas otras que iré mencionando con el tiempo.

 

A la fecha me sorprende el poco uso que se hace de la generación de código. Fuera de los compiladores comunes, pocas tareas se autimatizan. Estamos todavía con el concepto de hacer software como artesanía. Cada programador tiene su estilo y sus preferencias, sus estándares, sus reglas, su método de documentación. Un sistema que involucra un equipo de cinco programadores tendrá cinco estilos de programación, cinco paradigmas a veces convergentes.

 

Pronto apareció el concepto de industralización del software. Creo que hemos llegado a un punto en el que no es factible seguir haciendo software a la antigua. Los recursos humanos son muy limitados, y hay que asignarlos a las tareas más difíciles. Por todos lados aparecen frameworks que hacen más sencilla, o más legible, o más inteligente la programación, pero hay un problema de fondo: estamos mejorando los mangos de las herramientas, su ángulo de filo, las estamos haciendo ergonómicas, pero la producción sigue siendo manual. Es momento de hacer máquinas que hagan esas tareas, máquinas que corten, máquinas que permitan la producción en masa de nuestro producto final: programas.

 

 La idea de realizar un programa en assembler, salvo casos muy específicos, aparece en nuestros días como una estupidez. Todos se han habituado al uso de compiladores. Pero falta dar un paso más allá y darnos cuenta de que escribir el código como se hace hoy, es también una estupidez.

 

 Es sorprendente que no existan más lenguajes de dominio específico (DSL por sus siglas en inglés). El uso de los DSL’s debe ser una herramienta importante en una organización. Hay muchas tareas que se pueden automatizar y no se hacen. En muchos casos XML se utiliza como herramienta de parseo, para crear lenguajes específicos. Si bien esto es una mejora, tiene sus limitaciones.

 

 Cada vez hace falta más software, y los encargados de dar el producto tenemos que hacernos más eficientes, tenemos que producir más en menos tiempo. La generación de código no es la herramienta única, ni la que solucionará todos los problemas, pero es de las que más me gusta. En diez años creo que será tan común encontrarla entre las herramientas de un equipo de desarrollo como un compilador, y ojalá muchos de los proyectos que aparezcan comiencen en este lado del mundo, porque tenemos la habilidad de hacerlo. Póngamonos pilas y comencemos a generar código.

Aplicaciones esenciales para Mac

Hace ya un año que mi portátil es una Mac (en casa sigo con Linux 🙂 ). Una de las razones que más me detenía para decidirme por una Mac era mi duda sobre cantidad de programas que para este OS. Incluso al inicio estuve un poco preocupado por eso. Pero ahora estoy tranquilo, porque en poco tiempo descubrí que la la cantidad de software para Mac disponible es increíble. Aplicaciones para MacOSX hay por todas partes, y suelen ser muy buenas aplicaciones. Para contarles un poco de mi experiencia en este mundo, les comparto algunas de las aplicaciones que he encontrado más necesarias y las que suelo utilizar más. Claro, en gustos se rompen géneros, porque si alguna no les gusta siempre hay alternativas. A la larga cada computadora es un reflejo de su dueño, y lo que le quieras poner a la tuya es cosa tuya. Algunas propuestas, ojalá les sirvan.

[QuickSilver.-> http://quicksilver.blacktree.com/]


De todas las aplicaciones que listo aquí, mi preferida es QuickSilver. Resulta un tanto complicado explicar su funcionamiento y qué es en sí. La mejor manera de comprenderlo es instalarlo. Se puede considerar un reemplazo del spotlight, pero tiene mucho más. Cuando se aprende a utilizarlo, se dejan de utilizar accesos o menús para abrir aplicaciones, para hacer búsquedas, buscar personas, etc.

[BonEcho.-> http://www.mozilla.org/projects/bonecho/releases/2.0a1.html]

¿Qué es BonEcho? Es simplemente un Firefox optimizado para Mac. ¿Qué es Firefox? Mmm, esa la tienen que saber. Exactamente, el mejor browser que hay. Así es, el famoso explorador que tiene una cantidad asombrosa de plugins. Le pegaron, el que tiene menos grietas de seguridad. Sip, también es ese que sigue estándares y que todos queremos usar. Sip, ese mismo Firefox.

[NeoOffoce.-> http://www.neooffice.org/neojava/en/index.php]


Simplemente una versión basada en openOffice con la diferencia de que usa las gráficas nativas de MacOSX en vez de utilizar X para la interfaz gráfica, por lo que es más bonito. Por lo demás es un openOffice con todas las ventajas del popular paquete de ofimática.

Read more Aplicaciones esenciales para Mac

Songbird, el reproductor multimedia del futuro.

Firefox y Thunderbird son los dos mejores ejemplos del software libre y de código abierto que han demostrado funcionar y que la gente los use. Personalmente apoyo mucho a los programas de código abierto, y hace mucho que el 90% de programas que utilizo son de este tipo.

Songbird Hace ya algunos meses que entré en el mundo Mac, y una de las cosas que más me ha molestado es que no he encontrado una alternativa a iTunes. Siempre fui usuario de Winamp y sobre todo de XMMS. A la larga lo que yo busco es un reproductor sencillo, liviano, con búsquedas rápidas y capacidad de hacer playlists, lo demás es vanidad, y si no tengo que pagar por él mejor. Como no hay otro me he tenido que quedar con iTunes, pero hoy encontré una alternativa que me llamó mucho la atención: songbird. Lo bajé, lo probé y hasta ahora estoy contento con él. No es XMMS, es más estilo iTunes, pero tiene la ventaja de ser código abierto y de tener aspiraciones a ser el firefox de los reproductores multimedia.

Read more Songbird, el reproductor multimedia del futuro.

La nueva cara de los wikis.

tiddle.png       Hace algunos meses les conté sobre mi decisión de almacenar y organizar mi conocimiento por medio de un wiki. Todo hasta el momento ha funcionado bien excepto por un detalle: mi necesidad de tener todas las cosas importantes en mi computadora. No es que desconfíe del mundo en línea, pero hay cosas que siempre me gusta tener a mano. Incluso páginas que me gustan mucho prefiero guardarlas en mi disco duro (les recomiendo un plugin de Firefox que se llama ScrapBook).
 
    El caso es que comencé a tener problemas porque muchas ideas estaban en línea y muchas ideas en mi máquina. Ahora sí organizadas, pero en lugares distintos ya a veces. Estuve buscando algún plugin o programa que se encargara de mantener sincronizadas ambas versiones, pero no encontré. El concepto en sí es muy difícil. Hasta hace unos días que me topé con estos wikis escritos básicamente en javascript que corren del lado del cliente. Me impresionó que las páginas para bajar es un simple html. El html conforme va cambiando y creciendo para adecuar las nuevas páginas. También se introduce el concepto de Tiddle, que viene siendo como pequeños trozos de información.
    Hay varios plugins que hacen que el wiki se convierta en una herramienta muy completa de organización personal. Por ejemplo esta implementación muestra como este wiki puede ser utilizado desde agenda de teléfonos hasta calendario de cosas para hacer.
    Les paso algunos links y los invito a que prueben esta nueva manera de organizar el conocimiento, porque realmente está muy bonito y permite tener las ideas, memorias, pensamientos, planes y demás de una manera organizada al estilo de cada quien, con métodos de respaldo y copia bien sencillos. 

La vida sin Internet.

Recuerdo mis primeros contactos con la Web. La primera página que visité fue la de MTV en 1997 en casa de un amigo. Al poco tiempo la revolución llegó al colegio y había que estar haciendo cola para poder hacer uso de una de las máquinas que tenían conexión a la red. No olvido que un profesor se puso rojo al preguntarle sobre la naturaleza de las páginas que estaba visitando porque en su historial había un sitio “hotmail.com” que sonaba a algo extraño. Al año siguiente ya mandaba mis primeros mails y recuerdo que estando de viaje me comunicaba con mi familia por este medio.

En 1999 comenzaron las ofertas del acceso gratis, lo único que había que pagar era el tiempo usado por el teléfono. Pero ese único se convirtió en una gran cantidad debido a la gran cantidad de horas que pasaba conectado en Internet. Recuerdo querer investigar sobre tantas cosas, especialmente sobre esos sitios que aparecían en las revistas de computación que tanto me gustaban. Pero me impresionaba la cantidad de cosas que había en internet. Con un poco de paciencia podía encontrar cualquier cosa. Pero no pasaba de ser un juego.
Luego apareció el chat y los clientes de chat. Por un par de meses me emocionaba meterme a conocer nuevas culturas a través de personas que estaban conectadas en el otro lado del mundo a un chat client igual que el mío. Eran los tiempos de ICQ, Yahoo y más tarde MSN (que no entiendo como pudo quedarse con la mayor parte del mercado).
Y luego comenzó la Universidad. Ya Internet no sólo era un juego, era el lugar en el que podía encontrar esas canciones que durante tiempo había querido. En la Universidad había una muy buena conexión así que comencé mi amistad con Napster y a bajar todo lo que pudiese. Recuerdo un amigo tenía una grabadora de Zips y en mi casa tenía una lectora, así que en tandas de 100MB podía llevar mi nueva música a mi casa. Al año ya había quemadoras de CD baratas y el método cambio.
Comenzaron las primeras investigaciones y trabajos. De pequeño iba con cierta frecuencia a la biblioteca para buscar los temas que en el colegio me asignaban. Un día apareció la Encarta y pare de hacerlo tan seguido. Pero sucedía que muchas cosas que necesitaba investigar para la universidad no estaban en la Encarta (y en la biblioteca ni en sueño). Entonces recurría a Internet. La paciencia y los métodos de investigación poco a poco se fueron puliendo.
Y hoy que lo miro en retrospectiva me pregunto: ¿cómo hubiese podido estudiar sin Internet? Creo que la importancia de la web como medio de investigación llegó a ser tal que sobrepasó a mis libros de texto. En mis primeros años escuché muchas veces sobre la veracidad de los textos encontrados en Internet, pero ahora puedo decir que mucho de lo que sé, especialmente en cuanto a vida profesional, lo aprendí (literalmente) en internet.
Lo que comenzó como un juego se convirtió en un gran maestro, y una herramienta de trabajo de gran valor. De hecho sin Internet no tendría en qué trabajar. ¿Pero que nos depara todavía la web? No sé, pero lo que sea estoy seguro que lo haremos tan nuestro como lo es hasta ahora. Es asombroso como es hasta cierto punto más necesario tener acceso al email que al teléfono.

luishernan@gmail.com

Entrando en el mundo Mac.

macbookAsí es mis amigos. Desde hace unos días soy de los del ejército Mac. La legendaria manzanita por fin pudo seducirme, y he de decir que estoy muy complacido con ella. Dudo que hace un año me hubiera imaginado con una Mac, nunca me llamaron la atención, pero un par de personas por ahí lograron convencerme, y digo, afortunadamente me convencieron.

Luego de la acostumbrada emoción que se siente en el lapso que transcurre de ordenar algo y que ese algo llegue, finalmente pude llegar a casa y abrir mi nueva MacBook negra. Hasta fotos le tomé. La encendí y comencé a ver sus primeros prodigios. La interfaz gráfica simplemente encanta, seduce. Estuve durante algún tiempo jugando con la máquina: la cámara iSight que viene incorporada, las funcionalidades Bluetooth, su uso del Wifi, los 17 GB de software que trae, etc. Terminado el encanto por las cosas nuevas, me empezó a llegar la idea: ¿Qué ventaja tiene Apple OS sobre Ubuntu?

Con unos cuantos tips de usuarios Mac, rápidamente me comencé a acostumbrar, y debo decir que estoy contento por haber comprado esta maquinita. Primero que todo la integración hardware/software es magnifica. Realmente es una gran ventaja que el sistema operativo esté bien pegado al hardware: se siente miles de rápido, no hay problemas de drivers, etc. El hecho de que la interfaz gráfica esté pegada al OS también es una gran ventaja. A diferencia de Linux, donde es necesario correr X o alternativos, y que son unos elefantitos, el que esté pagado hace que todo sea y se sienta más rápido. Claro, Windows tiene también más o menos la interfaz gráfica pegada al OS, pero en cuanto a funcionalidad no hay competencia. Tal vez vista nos sorprende.

Luego de estar en el mundo Linux durante muuuucho tiempo, me acostumbré a las aplicaciones Open Source, GPL y compañía. Puedo decir que no me hizo falta nunca, especialmente el último par de años, una aplicación necesaria. Con la gran ventaja de que todo el software, absolutamente todo, era código abierto y sin costo, mi compu anterior tenía todo lo que necesitaba y más, mucho más. Pero adentrándome un poco en este nuevo paraje, he podido descubrir que afortunadamente existe todo el software que deseo para Mac, y hasta ahora eso me tiene contento. En otro Blog escribiré sobre alguna de las apps que más me han gustado.

Conclusión: Mac en Intel definitivamente vale la pena. Con la RAM necesaria el todo corre precioso, no hay pantallazos azules, se disfruta de una visualización que aparte de muy bonita está muy bien diseñada y pensada. Con un poco de costumbre se puede volver uno bien productivo. No sé, por ahora creo que estaré unos buenos años en el mundo Mac y Mac OS.