El llanero solitario (the lone ranger)



Hoy hablo del que fué un héroe de mi infancia: el llanero solitario (eeeei siiiilver!).

Mi abuela tenía en su casa dos tomos gordos con cómics del famoso vaquero… al que acompañaba siempre en sus aventuras, sentado en la cama, disfrutando como un enano, con él y su fantástica puntería, con Silver (su inseparable caballo blanco) y con Toro su amigo indio, juntos haciendo frente a todos los bandido y ladrones del oeste.

En referencia a Toro, un dato curioso: en la versión original se llamaba Tonto! pero claro, en la versión española tuvieron que traducirlo de alguna forma, menos peyorativa para “uno de los buenos”, así que le dijeron Toro, sin duda, acertaron, pues el cómic original hubiera perdido mucho teniendo a un protagonista que se llame Tonto.

Lo que no sabía es que el cómic venía de una serie de TV, que se ve que es lo que le hizo famoso a nuestro querido y leido Llanero solitario. Información sobre la serie como siempre en IMDB (Internet Movie Data Base)

Posted in Geek, Paranoia Personal

What if there is no tomorrow? There wasn’t one tod…

What if there is no tomorrow? There wasn’t one today.

Phil (Atrapado en el tiempo – Groundhogday)

Posted in Resistance

Feed icon


Se está creando polémica con el icono del feed RSS o sea, la base de la polémica es una vez más Microsoft (porque siempre estan en todas las polémicas), puesto que ha anunciado que lo adoptará para representar el contenido sindicado, para de esta forma “estadarizar” con un icono todo lo referente a contenido sindicable.

Btw, el icono de la polémica és el que lleva el Firefox por defecto para marcar contenido sindicado, siendo distinto en caso de Safari (navegador Mac) o en Opera. Pues la polémica radica en el uso de este icono.

Bien pues hay dos facciones: una que dice que no hay que usar un icono específico para marcar el contenido sindicado, que tiene que haber libertad, multiculturalidad, etc y otra facción que defiende que se use el icono para así de esta manera acabar de estandarizar y popularizar el estándar RSS.

Yo me cuento a favor de los últimos, es decir apoyo a que se contribuya a estandarizar y popularizar el RSS, y si hay un icono para ello pues vale mucho mejor, pero dejando claro una cosa: independientemente de que Microsoft se posicione. O sea me da igual que hayan escogido este icono, lo que me da rabia es que hasta que Microsoft no se posiciona aquí van cada uno por su lado, y cuando lo hace, se crea polémica. Vamos a ser serios, cuál es la idea fundamental? el principio básico?… es marcar un estándar para el RSS, no? pues a ello gente…

Posted in Resistance

Quines

Como todos sabéis ya, soy bastante friki (prefiero el término geek, pero no entraré en polémica).
Recorriendo los tags de la gente en del.icio.us, he encontrado uno que me ha interesado bastante: las Quines.

O sea una Quine, es un programa que imprime en tiempo de ejecución todo su código. Como el que se muestra a continuación extraído de wikipedia:
#include
char*i=”\#include“,n=’n’,q=’”’,*p=
“%s%cchar*i=%c%c%s%c,n=’%cn’,q=’%c’,*p=%c%c%s%c,
m=%c%c%s%c%c;%s%c”,m=
“int main(){return!printf(p,i+1,n,q,*i,i,q,*i,q,n,q,p,q,n,q,m,q,n,m,n);}”;
int main(){return!printf(p,i+1,n,q,*i,i,q,*i,q,n,q,p,q,n,q,m,q,n,m,n);}

Brutal.

Posted in Geek

Recuerdos de Aachen


Holas!

Resulta que un colega colombiano que trabaja en mi empresa se ha triunfado una novia alemana… jejeje me ha preguntado cómo se dice Feliz Navidad y próspero año nuevo (“Frohe Weichnachten und ein glückliches neues Jahr”) y me he puesto melancólico… qué tiempos, qué histórias…

Os acordáis del foro? Qué grande… aún está activo… y hay alguna que otra incauta que aún pica, observad los dos últimos miembros del foro.

Para más info sobre nuestra vida aacheniana, podéis consultar las siguientes pages:

Blog de CristinaWeb de ÁlexWeb de Christian (continuación de la web de Álex)

snif…

Posted in Paranoia Personal

¿De dónde venimos? ¿A dónde vamos?… ¿Hay posibil…

¿De dónde venimos? ¿A dónde vamos?…
¿Hay posibilidad de tarifa de grupo?

Woody Allen

Posted in Citas

deviantart

Holas gente,

Hoy os recomiendo una web fantástica si os gusta el diseño. Si sois fans de la fotografía artística también aplica. Si lo que os mola son los wallpapers para dejar tu escritorio con un toque geek o con una diversidad de colores alucinante vais a disfrutar.

Deviantart

Ejemplos:






Posted in Geek, Web 2.0

Lord of the Rings: Easter Eggs en las versiones extendidas!


Acabo de ver por la tele en el programa de Albert Lesán (de debò, UrBe TV) que los DVD’s de “El señor de los anillos” en sus versiones extendidas tienen Easter Eggs!

He podido ver 3 de ellos correspondientes a los tres discos de las películas. Para acceder a ellos, id a selección de escenas, id a la última escena y pulsad la flecha para bajar, veréis un anillo de oro que debéis clicar (con ok o enter) y accedereis al contenido extra. Lo que he podido ver es lo siguiente: – La comunidad del anillo: parodia de Jack Black (protagonista de king kong) y Sara Michelle Gellar (buffy, la cazavampiros) sobre el consejo de N’Elrond donde toman la decisión de crear la comunidad del anillo. – Las dos torres: parodia de golum en los MTV Movie Awards. Hilarante. – El retorno del rey: entrevista fake a Eliah Wood hecha por otro de los hobbits, Dominica Monaghan haciéndose pasar por un periodista alemán.

Más info en:
The Fellowship of the Ring

The Two Towers
The Return of the King

Posted in Resistance

Va de navegadores

Buenas gente,

Hoy me motiva hablar de navegadores. Un navegador web és un intérprete de html que lee los archivos en este formato, los interpreta y los muestra en una ventana / interface, eso es lo que yo entiendo por navegador, no obstante podéis encontrar una definición más completa en wikipedia: navegador web.

Cuando el sistema operativo que más usaba era Windows, claramente usaba el Internet Explorer (ahora le llamo cariñosamente Exploiter o Exploter). ¿Por qué? coño pues por que no había otra cosa (maticemos, existía el Opera, pero era de pago leñe, y la versión gratis iba con unos banners publicitarios la mar de majos y petaba más que una escopeta de feria). También eran tiempos de Netscape Navigator, el qual usaba en la facultad, pero era feo de morirse.

Ahora gracias a Dios, podemos elegir. Hay una amplia gama de posibilidades si usas Mac OS X / Linux y más de una alternativa a Exploiter si usas Windows.

Los que son más populares, que he usado y puedo vertebrar una opinión de sus pros y contras son los siguientes:

Windows – Internet Explorer – Firefox – Opera
Linux – Konqueror – Firefox – Opera – Galeon
Mac OS X – Safari – Firefox – Camino – Opera – Internet Explorer for Mac

Veréis que hay un nombre que se repite en los 3 sistemas operativos mayoritarios: Mozilla Firefox.

Firefox es para mí el mejor navegador web que existe. Mucho más que Internet Explorer y otros rivales como Opera (que con el tiempo ha ido mejorando mucho y se ha convertido en un digno rival). Incluso en Mac OS X en el que recientemente han salidos versiones optimizadas que van la mar de bien.

Pero no puedo afirmar algo sin dar razones en las que apoyar esta argumentación. Bien ahí van:

Navegación por Tabs: se puede navegar por distintas páginas en una misma ventana (clicando botón derecho y “abrir en una pestaña nueva” o haciendo ctrl+clic). Realmente, para hacer búsquedas, o para la navegación en general va perfecto, prueba de esto es que Internet Explorer 7, lo incorporará (basta que hagan esto para que la comunidad en general piense:”Que buenos los de Microsoft, lo que inventan!”). – Extensiones: se pueden añadir extensiones de casi todo al navegador, extensiones que facilitan la navegación por tabs, extensiones que muestran la previsión del tiempo en la barra de status, extensiones de control de sesión… en fin, puedes personalizarlo hasta el extremo. – Skins: Seguimos con la personalización… que no te gustan los iconos que tiene? pues cambiate de skin, instantaneamente, con muchísimos dónde elegir – Rapidez: Es de los navegadores más rápidos que he provado, deja al exploter a la altura del betún en este tema. – Seguridad: Es muchíssimo más seguro que Internet Explorer y está actualizado casi cada semana con mejoras, optimizaciones, parhces…

Otra grandíssima entrada al respecto es ésta.

Creo que con las opiniones que he dado, estaria bien que en adelante usarais:



Posted in Firefox, Geek

Office Space: Trabajo Basura (II: oír gilipolleces)



Un amigo me ha enviado un mail con un artículo bueníssimo. Brutal. Aún estoy descojonándome.

Ahí va:


¿Cuál es la parte más difícil del trabajo de un desarrollador de software? ¿La arquitectura, el análisis funcional, el técnico, la programación?

No. La parte dura de verdad es tener que oír gilipolleces.

Uno recibe un mail del IT manager, ese individuo que según currículum ha “colaborado en la conceptualización de proyectos de convergencia” y ha sido “director de expansión de estrategias de cuarta generación”, y cuyo trabajo consiste en reenviar los emails de los clientes a los técnicos y viceversa, y leer cosas en internet para tener algo que decir (con Google y un par de reglas de outlook ya se podía ahorrar la empresa 80.000 euros al año). El mail lleva por subject “Brainstorming”. Ahí ya estás bien jodido.

El “brainstorming” o “tormenta de cerebros” es (o debería ser) la reunión en la que todos aportan su talento y experiencia para encontrar soluciones óptimas a problemas. La realidad es que en la tormenta de cerebros, el manager suele poner la tormenta y tu tienes que poner el cerebro. Y en la tormenta, como en el río revuelto, la ganancia es para los pescadores. Tu piensas, diseñas y solucionas, que para algo querías ser ingeniero. El se apunta el gol, que para algo hizo un master en “strategy business janderklander”.

Así que uno llega a la sala de reuniones con la mosca detrás de la oreja. Ahí está él, con el portátil, la taza de café, y un montón de papeles (normalmente emails de los clientes con sus requisitos, es decir el problema en sí mismo, y ni un solo folio extra que indique que se ha dedicado algo de tiempo a solucionar nada).

Ya sabes a lo que te expones una vez más. Te van a preguntar el consabido “y ahora que hago” pero sin que se note. De soslayo. Como si tu fueras imbécil. Pero no queda ahí la cosa: vas a ser el conejillo de indias con el que poner a prueba los últimos discursitos aprendidos en los foros o “cookbooks”, para que los valides o rechaces, los corrijas, y en definitiva ayudes a perfilar esa superficial sabiduría, ese “arte de aparentar tener razón” (véase Schopenhauer) con la que estos individuos justifican sus desorbitados salarios ante la directiva (que normalmente no suele saber distinguir una churra de una merina).

Así que te lo tomas como algo personal. Se trata de dejar claro que:

A) Una churra es una churra y una merina es una merina, es decir, una idea es una idea y una gilipollez es una gilipollez, y uno sabe distinguirlas.

B) Se puede hacer demagogia hablando del sexo de los ángeles o quizás de pintura abstracta, no de software.

C) no se aprende en un foro en una hora lo que le ha costado a uno varios añitos de carrera, otros cuantos de trabajo, mucho café y muchas horas extras.

D) Un inútil con un libro no es un ingeniero.

E) Un master, una corbata y una PDA hacen juego, pero no proporcionan sentido común al que carece de él.

Total, que empieza el circo. Abróchense los cinturones. Aférrese uno con fuerza a sus principios, porque le van a aplicar el método Ludovico (véase La Naranja Mecánica). Le van a inmovilizar en una silla, a administrar una droga, a colocar unos soportes en los párpados, y le van a obligar a visionar dos horas de Power Point. Le van a someter a uno a espantosas torturas psicológicas con el doble objetivo de sacarle información, y a la vez convencerle de realidades alternativas.

A continuación reproduzco fragmentos reales (palabra de honor) de reuniones con mi actual IT manager acerca de varios proyectos Java y VB en los que “hemos” trabajado.

Perla 1: Hibernate

[manager] ¿Qué utilizamos para la capa de datos?

[yo] Usemos Hibernate

[manager] Es mejor usar Entity Beans

[yo] ¿Por qué?

[manager] Entity Beans son J2EE estándar, y además están en un pool, Hibernate no tiene pool así que va mas lento.

Cuando quise explicarle la burrada que había soltado, eran tantas las ideas que se me vinieron a la cabeza de golpe que sufrí un shock y tuve que ir a por un vaso de agua. Creo que esto es una técnica deliberada de argumentación, que debería denominarse “tan gorda es la burrada que no se puede rebatir”. Si alguien dice que “dos y dos son cinco”, se puede argumentar que son cuatro. Pero si alguien dice que “dos y dos son una constelación cercana a Alfa-Centauri”, sólo se puede rebatir “¿pero de qué estás hablando?”, y te pueden replicar “Cómo se nota que no has hecho un Master Janderklander”.

Perla 2: Easy Upgrade

Aquí estábamos reunidos con unos clientes americanos a los que les habíamos vendido una aplicación (por llamar de alguna manera a ese desastre programado por un “Senior con 10 años de experiencia” y que yo tuve que mantener posteriormente). El proceso de instalación consistía en descomprimir un ZIP en el disco duro y luego ejecutar un Setup.exe (no funcionaba instalando desde CD). El zip incluía los ficheros de la base de datos. Cada vez que les dábamos una nueva versión, si no querían perder los datos anteriores tenían que renombrar la base de datos antigua, instalar la versión nueva completa (la base de datos nueva había que instalarla también forzosamente, porque parte de la lógica y los recursos de la aplicación residían en ella no me pregunten por qué, pregúntenle al “senior”), y luego importar algunas tablas mediante scripts (me costó una semana que el técnico de la franquicia japonesa lo realizara correctamente).

[cliente] ¿No podríais simplificar el proceso de instalación?

[manager] Si, vamos a crear un proceso de instalación que al inicio haga un diff como en Source Safe e instale sólo lo que se ha modificado o añadido.

Me quedé pensando si este hombre sabría que el código fuente se compila.

Perla 3: Interfaces mágicos

En esta reunión me estaba pidiendo que diseñase un portal (una especie de carrito de la compra con los servicios de la empresa), y que para ahorrar tiempo nos atuviésemos sólo a las necesidades y especificaciones del primer cliente al que le habíamos vendido la moto.

[yo] Pero, si creo el portal específicamente para un cliente, no vamos a poder reutilizar el código. ¿Quieres que diseñe la lógica de negocio de forma genérica, aunque me lleve mas tiempo?

[manager] No, no tenemos tiempo.

[yo] Pues cuando tengamos un segundo cliente, vamos a tener que hacerle otro portal diferente

[manager] No, reutilizamos lo que hagamos ahora

[yo] Entonces, lo hago genérico, ¿no? Mas tiempo?

[manager] No, hazlo específico, pero teniendo en cuenta que lo vamos a reutilizar

[yo] A ver, explícame con qué técnica creo algo rápido y especifico pero reutilizable

[manager] Simplemente, mantén tus interfaces limpios

Me pregunté si no existiría un “Mr.Proper design pattern”. Luego intenté que me aclarase cómo se hace una lógica específica que implemente un interfaz válido para todo el mundo, y que si conseguíamos el milagro (algo así como definir un estándar tipo JDBC y crear diferentes drivers), al final íbamos a reutilizar nada más que el interfaz (¿media hora de trabajo?) así que estábamos en las mismas. Su discurso de respuesta es irreproducible.

Perla 4: Override autoincremental keys

Ésta vez se trataba de diseñar una lógica de negocio transaccional que operaba sobre dos sistemas diferentes, un workflow y un software de presupuestos (ambos con su API). Había que relacionar ambos de forma que cuando un cliente solicitase un presupuesto, se crease una tarea nueva en el workflow y un presupuesto nuevo asociado a ella.

[yo] Pues tenemos que crear un método que empiece una transacción, añada una tarea al workflow, se quede con el ID, luego añada un presupuesto, se quede con el ID, guarde la relación entre ambos en una BD, y haga “commit”

[manager] Para ahorrar tiempo vamos a hacer que el ID de la tarea y el ID del presupuesto sean siempre iguales, así no tenemos que relacionarlos
(esta sola podría ser la perla 4, pero no, aún hay mas)

[yo] Primero que aunque pudiéramos especificar nosotros las claves, necesitaríamos saber que Ids’s hemos usado ya para generar los nuevos, lo que es más costoso que el relacionar dos Id’s. Pero además resulta que las claves no podemos especificarlas nosotros, en el sistema de workflow y en el de presupuestos, las claves son campos autoincrementales

[manager] Pero hay un mecanismo en los Entity Beans que permite especificar las claves de los registros que se insertan.

Después del shock empecé a imaginarme el mecanismo:

EntityBean: InsertTaskWithKey(55)
DataBase:SQLException:KeyViolation
EntityBean:QueTeHeDichoQueInsertTaskWithKey(55)
DataBase: Bueno Vale.

Perla 5 – Java Word Parser

En ocasiones los usuarios del mencionado portal de servicios suben ficheros en formato Word para que la empresa (que principalmente se dedica a la localización de contenidos) los traduzca a diferentes idiomas. Se necesita estimar el coste de la traducción automáticamente, para entregar un presupuesto al cliente de forma inmediata. Simplemente hay que contar el número de palabras en el documento y multiplicarlas por el precio por palabra establecido.

[manager] ¿Cómo podemos automatizar los presupuestos?

[yo] Tengo que buscar alguna librería java de parseo de archivos doc, integrarla convenientemente en el portal, y crear una función que me devuelva el número de palabras.

[manager] Vamos a hacer algo más rápido. Podemos reutilizar las macros de Word que tienen en el departamento de Evaluación.

Fácil. Sólo necesitamos un “Enterprise Word Server” que pueda correr sobre Solaris, que se pueda instalar en cluster, y al que se pueda acceder por RMI.

Espero que el mundo comprenda mi sufrimiento. Hasta la próxima entrega

Posted in Geek