Archive for the 'Programación' Category

Android en el Google Developers Day 2008 de Madrid

Viernes, Septiembre 26th, 2008

Ayer fue una jornada intensa en el GDD, el escenario era bastante lúdico un parque de atracciones, a las 9 empezaba la acreditación, en cuatro filas por orden del primer apellido, una fila de A-G, otra de la H-M, otra de la N-T y otra de la U-Z. Como podeis imaginar la primera fila era kilometrica, la segunda y tercera de tamaño normal y en la última no había nadie. En el último momento han tenido que pasar letras a otras taquillas porque sino los de la fila 1 no hubiesen entrado a tiempo. Google no ha tenido en cuenta que la distribución en España de los apellidos no está uniformemente distribuida en el abecedario.

Como nota decorativa teneis esta chincheta inflable gigante típica de Google Maps.
GDD08MAD

Antes de entrar al auditorio nos podemos tomar un desayuno muy decente, bollitos, zumos y café.

El primer acto era la bienvenida donde Chris DiBona todo un showman, nos presenta el programa y a los ponentes que después estarán en los talleres y las ponencias.

El primer taller era sobre OpenSocial, donde de forma práctica se vió la codificación de gadgets, que pueden interactuar sin modificar su código en Orkut, MySpace, Plaxo, Hi5, LinkedIn y otras redes sociales que se unen al standard.
http://code.google.com/apis/opensocial/

Después de comer en la sala R2D2 la gente de MadPixel, nos cuentan su experiencia/calvario con OpenSocial, ya que usar una tecnología basada en un estandard pero que dependen de sandbox que gestionan terceros te hace llevarte más de una sorpresa, e incluso llegar a pararte el desarrollo sobre alguna de las plataformas por no haber disponibilidad física del servicio del alguna sandbox. Interesante de todas formas el desarrollo que llevan a cabo de un servicio de mapas con POI para grupos cerrados de amistades.
http://www.madpixel.es

La siguiente conferencia era AppEngine, interesante solución para despliegue y almacenamiento totalmente escalable, las tarifas para Europa no están cerradas pero parecen bastante economicas, eso si olvidate de las clásicas bases de datos sql y el único lenguaje soportado hoy por hoy es Python.
http://code.google.com/appengine/

Por último en la ceremonia de Cierre, se entregaron los premios a los mejores trabajos realizados en los talleres.

Como colofón una demostración en vivo de un HTC G1 con Android, destacar su velocidad y un funcionamiento muy suave, reproduciendo video y en los scrolls, tiene teclado deslizante, tarjeta SD y GPS de verdad, como desventaja es más gordo que el iPhone. A diferencia de Apple, cualquiera podrá desarrollar con Android en Java y probar su aplicación en su telefono, sin tener que pagar caras licencias de desarrollador.

Para ver más fotos

Barco de esclavos programadores

Viernes, Septiembre 19th, 2008

Ya hace tiempo mencioné en una entrada de soygeek estos barcos.

Unix-Hell me dio más detalles hoy. Leed y flipad:

http://www.aporrea.org/actualidad/n60599.html

La noticia es de Mayo del 2005. A modo de resumen rápido, es una forma de abaratar costes deslocalizando, pero acercando físicamente los programadores a tu negocio. Uno de los problemas de la deslocalización es la comunicación. Acercar a tus programadores te permite reducir ese problema. Se aprovechan de resquicios de la ley, ya que en aguas internacionales la ley de Estados Unidos en material laboral no se aplica.

El barco está anclado a 3 millas naúticas de la costa (las aguas nacionales llegan hasta 2 millas).
A dia de hoy, su web está activa. Si leeis su presentación, los 600 indios trabajan turnos de 10 horas y el tiempo libre les permiten ir a tierra.

En fin… cada vez que hay leyes internacionales con el tiempo alguien las usa a su favor como nuestros amigos del Principado de SeaLand, los trucos para dar hipotecas NINJA o la crisis de Enron


Cual de las dos fotos será más parecida al barco de SeaCode?

El peor bug de mi vida (Sinclair Basic)

Jueves, Septiembre 11th, 2008

Con el post sobre el Valhalla y el Spectrum me vino a la memoria el peor bug de programación que he visto en mi vida.

Era el verano de 198X y mi madre me había regalado un libro con el código fuente de distintos juegos de Spectrum. Pensaba que copiar los juegos a mano sería más educativo que simplemente comprármelos (todavía no habiamos descubierto el Rastro).
Los 2-3 primeros juegos (el primero recuerdo era del estilo nibbles) me costó mucho copiarlos. Eran más de 3000! líneas de código (iban de 10 en 10 eso sí), en un inglés raro (Sinclair Basic). Yo tenía 12 años y no sabía que significaban esas palabras raras tipo IF, FOR, etc…

Con un diccionario inglés-español y mucha paciencia me escribia el código fuente. Recuerdo especialmente las largas lineas DATA (así iban los arrays en Sinclair Basic). Siempre que acababa de escribir un juego y me moría de ganas de jugar me encontraba con decenas de errores de sintaxis. Siempre miraba la línea y me daba cuenta que había escrito mal.

NOTA: Todo aquel que no haya tenido un Spectrum no lo sabrá. No escribía los comandos (IF, THEN, FOR, GO SUB, GO TO) sino que cada letra equivalía a una instrucción. Mirad el teclado:

Para escribir PRINT “hola” habría que pulsar P (para print) y luego “hola”. Con las teclas Cap Shift y Symbol Shift accedias a los comandos en colores encima de la tecla y debajo. Si alguien no se aclara, aquí está explicado.

El caso es que en un juego me quede tirado en una línea de código (era el último error de sintaxis que me quedaba):

3020 IF a <> 5 then

Por mucho que la miraba estaba bien. Miré y remiré la línea y estaba bien. Por lo poco que sabía de sintaxis del spectrum estaba bien: IF variable OperadorLogico valor THEN.. Grabé el juego y pasé. No tenía a quien preguntarle. No conocía a nadie que programase en Spectrum, de hecho apenas habían 3-4 niños en mi clase que tuvieran un Spectrum. (Con el tiempo fueron mis amigos).

Cada cierto tiempo cargaba el código fuente y lo miraba. Llegué a escribirme en un folio en letras mayúsculas 3020 IF a <> 5 then y ponerlo en una pared de mi cuarto. Estuve así como dos semanas. Me copié el código fuente de otro juego, busqué programadores que me ayudaran en vano, jugué al futbol, fui a la piscina, etc… Y un día caí en qué fallaba. A mitad de una partida de Manic Miner vi algo en el teclado, reincié el Spectrum, cargué el código fuente y funcionó.

Os doy esta pista:

Alguien se le ocurre que era? La respuesta os la dejo en el primer comentario.

Valhalla, Spectrum, MicroHobby… programación.

Jueves, Septiembre 4th, 2008

No sé si alguno conoce este juego de Spectrum. Para mi fue el segundo paso para programar en mi vida. Era una aventura conversacional (de esas de open door, go north, etc…) con la peculiaridad que en vez de ser solo texto o tener una pantalla para mostrar que había (ej: El Hobbit), había muchos personajes animados por la pantalla, con inteligencia propia. Podías pedirles cosas (Skadi attack Thor) que a veces hacían y otras no. Si te quedabas quieto los personajes hacían cosas por su cuenta. Te sorprendía ver como Loki le mangaba delante tuya algo a Freira y luego Freira cada vez que le veía le atacaba.

En fin.. lo interesante es que tenía un bug por el que a veces daba un error y salía el código fuente del programa. Era de los pocos juegos comerciales que estaban hechos completamente en basic en vez de código máquina como era lo habitual.

Esto lo convertía en un juego como los que copiabas del Microhobby:

(Pulsa para ampliar)

Por cierto os recomiendo si os gustaba que visitéis esta página http://www.microhobby.org.

El caso es que pude tener acceso al código fuente de un juego de verdad, en el Sinclair Basic. Aprendí a hacer los gráficos definidos por el usuario

Los gráficos definidos por el usuario (UDG) era una forma de editar las fuentes para crearlas a tu gusto. Con la fuente de una letra hacías las piernas y con otra el torso. Así tu muñeco eran dos “letras” que iban encima una de otra. Y para animarlo según se movía podías hacer varias versiones de las piernas (según andaba) y usarlas según movías las “letras”.

En fin… que tiempos…

Quieres ser un hombre que programa sus propios Drivers? (Cultura Geek II)

Miércoles, Julio 23rd, 2008

Donde estabas el 5 de Octubre de 1991?
Yo en el colegio. Linus Torvalds posteando un mensaje mítico en las News en el que pedía ayuda para un proyecto personal.
El mensaje es mítico porque fue el comienzo de Linux.

Aquí lo tenéis:

Do you pine for the nice days of minix-1.1, when men were men and wrote
their own device drivers? Are you without a nice project and just dying
to cut your teeth on a OS you can try to modify for your needs? Are you
finding it frustrating when everything works on minix? No more all-
nighters to get a nifty program working? Then this post might be just
for you :-)

Gracias a DEJANEWS (comprado por google) tenemos el mensaje original.

A que Linus se parece al niño de nuestro logo? Por cierto aquí tenéis otra imagen de Linus que os hará cambiar la imagen mental que tenéis de él.

La catedral y el bazar (Cultura Geek I)

Viernes, Julio 18th, 2008

Un Geek en España es como un Inglés en New York… te hablan del código libre, de Richard Stallman y piensas… ya.. pero yo estoy en España y mi jefe flipa cuando me oye decir Wiki o Firefox… como para explicarle lo de la catedral y el bazar.

Si lo piensas… seamos sinceros:

El código libre son cuatro tonterias de un barbudo raro y una panda de chalados utópicos similares a los anarquistas, comunistas o ecologistas…

Si piensas más en el software libre… desde el punto de vista de un programador se te erizarán los pelos de la espalda:

Te apetece/necesitas hacer un programa, te tiras programando cientos de horas y luego llega un geek y te dice: Por qué no liberas el código? Y entonces vas y lo flipas!
Tu reacción natural es:

Liberar el código? MI TESSSORO. El feo y sucio hobbit Sam quiere quitarnos nuestro códdddigo…

Imagina que aún así pruebas y lo liberas… metes el proyecto en Sourceforge o Codeplex.. siendo su dictador benevolo… Inmediatamente te asaltan una serie de miedos:
- Entregas el código así que alguien puede copiarlo y usarlo sin tu permiso o sin pagarte (lo suyo es que si alguien usa algo tuyo que cobre por ello)
- Otro tio que sepa más que tu puede coger una copia de tu código, hacer un fork y hacerlo mejor.. quedando tu ego al nivel del ego del patito feo.
- Montón de gente empieza a opinar sobre tu proyecto o incluso a proponer mejoras que no te gustan.

Pero si miras a tu alrededor parece que tu pensamiento inicial de la utopía no es correcto del todo. Vale, el mundo es de Microsoft y de su Windows pero las “tonterias esas del software libre” no deben ser tan tonterias cuando de él han salido muchas cosas útiles que tienes en tu vida diaria:

- Linux
- Firefox
- OpenOffice
- ThunderBird
- Notepad++
- Opera
- AdShield
- BSD
- Free AV
- Winamp
- PGP
- Apache
- FileZilla
- WarFTPD
- Google Talk
- Hamachi
- NMap
- PuTTY
- Python
- Google Toolbar
- XviD
- VideoLAN VLC
- Memtest-86

De esta lista cuantos usas o has usado habitualmente? Bastantes seguro… Realmente esto del código parece que funciona algo… ¿Son chalados utópicos?

Aquí tienes un artículo de un programador Erich S. Raymond digno de leerse ya que muestra un acercamiento razonado al software libre por parte de alguien técnico:

Explica cómo hizo el FetchMail y en que pensó. Para que lo entiendas rápidamente:
- Modelo Catedral: Enciclopedia Británica, Windows.
- Modelo Bazar: Wikipedia, Linux.

Aquí tienes al artículo, digno de leerse:
http://biblioweb.sindominio.net/telematica/catedral.html

Aquí tienes al autor (Raymond):

Si quieres saber más:
- http://es.wikipedia.org/wiki/Software_libre
- http://es.wikipedia.org/wiki/Richard_Stallman
- http://es.wikipedia.org/wiki/Free_Software_Foundation

Otra tira genial de Dilbert

Jueves, Julio 10th, 2008

Antigua pero no debe caer en el olvido…

Es parte de la cruzada contra los estúpidos de Dogbert

http://www.dilbert.com

Despedida & consejo

Miércoles, Junio 25th, 2008

Cambio de trabajo… y al despedirme de los secuaces de mi departamento nos pusimos a hablar de lo humano y lo divino… relacionado con los proyectos, la carrera laboral, etc.. Y en el email de despedida no he podido hacer otra cosa que mandarles esto para que lo lean: http://www.alfredodehoces.com/press/el-zen-del-exito-profesional-en-20-actos

No se me ocurre consejo mejor para que sobrevivan en mi curro…

LISP II, El retorno del Rey

Lunes, Mayo 19th, 2008

Después de casi 1 año… vuelve LISP a nuestras pantallas.

Cosas que he descubierto:

  • Tiene su punto… sobretodo para cuando salte a C#3.0
  • No he encontrado un compilador para windows mejor que el WinLisp (Apteryx Lisp)
  • Apteryx significa KIWI

  • El Apteryx Lisp al ser una versión 1994 en vez CTRL+C y CTRL+V tiene otros atajos de teclado distintos (CTRL+INS e INS)
  • En Autocad parece que se usa bastante… pobres.
  • Aquí dejo parte de mi flamante práctica
(DEFUN PartidosGanados (LIGAAUX equipo ContadorVictorias)
(cond
((null LIGAAUX) ContadorVictorias)
(t
(cond
((equal ‘GANA (if (equal (cadaar LIGAAUX) equipo) (GanadorPartido (car LIGAAUX) equipo))) (PartidosGanados (cdr LIGAAUX) equipo (+ 1 ContadorVictorias)))
(t (PartidosGanados (cdr LIGAAUX) equipo ContadorVictorias))
)
)
)
)

Si alguien conoce algún compilador de LISP para windows mejor que el Apteryx LISP (nada de los basados en EMACS que personalmente me aberran) por favor que lo comente…

Open Solaris vs Linux… Democracia vs BDFL?

Jueves, Marzo 27th, 2008

El otro dia tomando unas cañas con Futur3 acabamos hablando de un tema interesante.
Cómo gestionar un proyecto de software libre? Es algo que parece trivial pero si piensas en ello es muy parecido a la política.


La guerra de siempre fue entre Windows, Linux y MAC. Pero ultimamente hay más sistemas operativos en el campo de batalla…

Todo vino por el “pique” que tiene Linus Torvalds con Open Solaris y por la entrevista a Alvaro Lopez Ortega, creador del Servidor Web Cherokee que hicieron en El Geek Errante, en la que le preguntaron por su opinión al respecto.

Según dijo Linus:
It’s generally hard to build a community around a commercial entity that also wants to be in control because everybody else around that commercial entity will always feel like they’re at the mercy of Sun. And I’m not even going to go into Open Solaris because, quite frankly, I don’t even care.”

O más escueto:
Open Solaris is a joke“.

Parece que a Linus y a la Linux Foundation no le ha sentado muy bien la aparición de Open Solaris. Por un lado es comprensible ya que una gran empresa está detrás… creen que es más parecido a una catedral que a un bazar.

Por otro lado que Solaris sea libre es algo bueno aunque sea competencia directa de Linux. Cuanta más competencia mejor.

Lo que está claro es que la guerra Linux-Windows en servidores tiene un nuevo competidor: Open Solaris.

Futur3 defendía que Open Solaris es un proyecto donde los líderes se eligen democráticamente mientras que Linux tiene un dictador (Linus Torvalds) que cada vez está más alejado del código.
Así que acabamos hablando como gestionar un proyecto de software libre.

¿Cómo gestionar un proyecto de software libre?

- Aproximación tipo Linux (Dictador Benevolente de por vida BDFL)
Si un proyecto comienza desde cero lo normal es que comience como una dictadura donde el desarrollador principal valide y decida el código fuente que se sube al proyecto. Esta es la historia de Linux y de otros muchos , que comenzó el proyecto desde cero con Linus Torvalds como dictador benevolente.
Cuando el dictador es bueno (recomiendo leer sobre Cincinato ) el sistema funciona. Pero si se aleja de todo o si la gente empieza a no estar a gusto con su forma de decidir pueden surgir problemas. Por ejemplo Linus marginó ReiserFs en favor de ext3.

Aún así siempre se puede hacer un fork del proyecto. En el Kernel del Linux han habido forks de Alan Cox que no han durado demasiadas versiones. De hecho cuando hablamos de Linux en este post hablamos del Kernel del Linux… porque en distribuciones los forks han sido permanentes con las ventajas e inconvenientes de las múltiples distribuciones existentes.

La idea de Dictador Benevolente de por vida está asociada a Guido van Rossum, creador de Python ( y actual jefe de desarrollo de Google.. por cierto en Google le dejan el 50% del tiempo para mantener Python ), aunque hay muchos más como Larry Wall (Perl) y Linus Torvalds (Linux).

- Aproximación tipo Open Solaris (Elecciones):
Open Solaris en cambio es distinto. El código fuente existía ya en estado muy avanzado. Los líderes del proyecto son elegidos democráticamente por una votación entre los miembros de la comunidad. Esto tiene sus ventajas (si el BDFL deja de tener razón se le puede cambiar) pero también sus inconvenientes (quien tiene derecho a votar? bajo que criterio? quien puede ser elegido? Y si alguien gana por su popularidad pese a ser técnicamente malo?)

Al ser código libre comparte la ventaja de que siempre que alguien quiera puede hacer un fork del proyecto.

Preguntas:
- Cual es el mejor método de gestionar un proyecto libre grande?
- Y tu propio proyecto personal según crece?
- Está Linus perdiendo el norte? Está Linux perdiendo la batalla?
- Acabarán ciertas bases del GNU/Unix (Perl, Linux, Apache, Sendmail) muriendo en favor de otros proyectos(Pythom/Ruby, Open Solaris, Cherokee, Qmail)?


(Pulsa para ampliar)