2006/06/20

Mejor pedir perdón que permiso (dijo un método)

EAFP
Siglas en inglés de ``Mejor pedir perdón que permiso''. Este estilo de programación, común en Python, asume la existencia de claves o atributos válidos y captura las excepciones que se producen si tal suposición se revela falsa. Este estilo limpio y rápido se caracteriza por la existencia de muchas sentencias try y except. Esta técnica contrasta con el estilo LBYL, común en muchos otros lenguajes, como C.
Me ha llamado muchísimo la atención este "estilo" por varios motivos.
Primero, porque me recuerda a una escena de "El cortador de césped" en la que el protagonista intenta desesperadamente salir de su encierro virtual probando montones de opciones.
En segundo lugar, porque si llego a haber presentado algo así durante la carrera probablemente me hubiesen echado a patadas o bien estaría de becario innovador.

Creo que es una táctica costroñosa de programación pero, a la par, debe ser flexible al extremo. Si te gusta mirar como explotan las palomitas de maíz mientras las preparas te encantará depurar código hecho así; una traca de excepciones que invade tus sentidos.

Esto y el duck-typing me han dejado perplejo. Va a resultar que algunas cosas que me resultaban código chapucero eran código de gurú.

mi 7 por ciento

7% es lo que tengo ocupado de mi cuenta de Gmail principal.

Sólamente eso, desde hace meses y meses. Ya no estoy dentro de todas aquellas cosas por las que recibía cientos de mensajes diarios, casi todos de listas de correo (están en otras cuentas). Esta cuenta correo la tengo principalmente para cosas personales y debo tener una modestísima media de 15 o 20 correos diarios.

El caso es que me llama la atención el que sin forzar por debajo ni por arriba el número de mensajes diarios, el porcentaje se mantiene constante gracias al aumento del tamaño de la cuenta.

Nota:
Sí, ya sé todos os esforzais por poner cosas trascendentes en vuestros blogs, webs y demás, pero este es mi rincón y pongo lo que me sale de las narices, que para eso tengo mucha.

2006/06/16

Obligado a pecar

Hoy me han obligado a hacer el MAL.

Y me refiero un mal con mayúsculas puesto que es un mal grande, que no sólo me afecta a mí o a quien tengo cerca.

Hoy mi jefe me ha obligado a arrojar chatarra electrónica súmamente contaminante a un contenedor que será vaciado en algún vertedero de los pueblos de alrededor sin preocuparse del contenido (supongo). Puede que intenten recuperar la chatarra metálica más grande, pero los componentes electrónicos estoy seguro de que se quedarán igual que ahora: sumergidos en el agua de lluvia esperando a corromperse.

Los lixiviados que salgan da ahí la van a montar parda. Contaminarán acuíferos, fauna y flora.
Si el plomo y el fósforo no matan a nadie vamos bien. Veremos qué ocurre con el cadmio.

Después de dedicar un blog al reciclaje de este tipo de chatarra, aquí me veis; una vez más la cobardía y el miedo a perder el trabajo hacen su labor.

Durante el último año y medio he cometido algunos de los errores más grandes de mi vida.
Éste es simplemente uno más, aunque en un área en la que siempre me he caracterizado por un cuidado bastante escrupuloso. Al fin, no quedará un área en la que sentirme persona; ni como marido, ni como yerno, ni como hermano, ni como amigo, ni como informático ni como alguien con respeto por el mundo que lo acoje.

Al fin, eso de "me han obligado" es una pobre disculpa para ocultar mi propia flaqueza tras la inconsciencia de otros. Aún así, espero que el Seprona dé caña a todo aquel que lo merezca.

Por cierto, estas fotos muestran parte de la fechoría de hoy. Fueron sacadas con un móvil en medio de la faena.

2006/06/12

K.I.S.S.me

Keep It Simple, Stupid

"Mantenlo simple, estúpido"
es una regla básica para el diseño de cualquier cosa y es, al mismo tiempo, una de las que más veces rompemos.

Las cosas simples son mejores para el diseñador, para el usuario y para el concepto diseñado.
Para el diseñador porque podrá asegurarse de qué es lo que hace su creación, sin fallos ocultos. Podrá mejorarlo fácilmente y aún más fácilmente corregirlo.
El usuario no tendrá que leerse montones de manuales enormes para hacer cosas simples. En realidad, los usuarios tienden a no leer nada (RTFM), por lo que hay que facilitarles lo que quieren hacer y complicarles lo que "no van a querer" hacer (ej: borrar la configuración del aparato o sistema).
Los diseños simples son más elegantes, más bonitos y además, al tener menos partes, existen menos partes que puedan fallar (lógico, ¿no?).

La simplicidad y la usabilidad pueden y deben aplicarse a todo.
Software, máquinas, interfaces de usuario, electrodomésticos, formas de comunicarse entre personas... todo.
Albert Einstein aplicaba siempre la simplicidad a sus teorías. Si algún cálculo o expresión tenía un aspecto (sí, ASPECTO) farragoso o excesivamente complicado lo desechaba o agrupaba cosas dentro de constantes universales hasta que quedase simple, claro y bonito. Él decía que la naturaleza no es innecesariamente complicada.

Hoy he vuelto a encontrar a más gente a lo que le preocupa esto mismo, así que enlazo algunos sitios:
Creating Passionate Users: Good usability is like "water flowing downhill"
Design with stupid in mind.
Mobile Phones and Usability

>>> Muy útil >>> ErgoList
Laboratório de Utilizabilidade da Informática

Iré poniendo más a medida que los encuentre en mis marcadores (a ver si termino de clasificar mis de.icio.us)

Al final, mi propio consejo:
Nunca pienses sólo en tí mismo cuando escribas o diseñes algo.

Siete acciones fáciles para mantener código heredado

A veces es bueno que te den una serie de consejos para enfrentarte a las cosas más comunes.
Aquí enlazo un artículo de O'Reilly en el que da 7 (siete) consejos para el mantenimiento de código antiguo.

Se pueden resumir en lo siguiente:

Besides working for Project Managers who set ridiculously short deadlines the other worst nightmare for a programmers is having to maintain legacy code. At O'Reilly they offer 7 tips on how to improve that legacy code that either you programmed (shame on you) or the person you replaced programmed.

  1. Use a Stronger Compiler for Your Code
  2. Use a Code Formatter to Reformat Your Code
  3. Introduce final All Over Your Code
  4. Remove Commented-Out Code
  5. Refactor Classes to Remove Anonymous Classes
  6. Replace Listeners with Weak Listeners
  7. Replace Integer Constants with Constant Objects or Enums

ONJava.com -- Seven Low-Cost Ways to Improve Legacy Code

Algunas cosas ya las hacía y otras las empezaré a seguir hoy mismo al escribir mi nuevo código. No dejes para el tester de mañana lo que puedas corregir hoy.

2006/06/08

Acer , una pesadilla en forma de servicio técnico

He pasado el nivel de harto con Acer.
Después de grabar cintas y cintas con sus excusas telefónicas pelotudas veo las decenas de reclamaciones que gente en mi misma situación ha hecho.

NUNCA, JAMÁS, COMPRES UN ACER (portátil, PDA, monitor ...) NADA

2006/06/04

Están locos estos ... Yankees!

Si, soy infiel, y que pasa?
Para un día que no tengo que estar delante del ordenador y aqui ando, dejándome la retina hasta las tantas.

Y es que no me puedo creer cuanta estulticia hay por el mundo. Echaba un ojo a Yonkis, que hace mucho que lo tenía olvidado, y me encuentro con que un pavo cuenta como casi le vuela la cabeza un vecino. Vale, sé que solo puede ocurrir en EEUU y no me sorprende. Lo que sí me deja helado son las webs a las que rápidamente se puede llegar desde ahí y que me muestran cómo ¿funciona? la cabeza de un yankee promedio. Test de penetración de armas, soluciones personalizadas para tus necesidades armamentísticas ¿?, tienda de regalos para tarados armados,
A mi los gallinas me ponen
Pero no todos los yankees son así; hay algunos que siempre han estado por la paz. Para ellos, los tejanos (como Bush) tienen siempre un lugar en el corazón y llevan estas bonitas camisetas (Footprint of the American chicken).
Además los tienen siempre presentes a la hora de navegar por internet para chatear, comprar y vender sus cosillas.

Ves como Chuck Norris, George Bush, Schwarzenegger y el hombre simio nos ayudan a vivir en este inseguro planeta?

Alimentando a la bestia ... ¡y un cuerno!

De todos es sabida la relación entre los grandes del hardware y Microsoft:

  • Los fabricantes y diseñadores de hard hacen lo posible para endosarte un Windows con cualquier PC - si te descuidas ahora, hasta con un Mac -; facilitan que sus productos funcionen en Windows dando toda la información que MS necesita.
  • Microsoft, a cambio, aumenta su voraz fiera Windows con los megas (hertzios y bytes) que le proporcionan esos fabricantes. Y las fieras es lo que tienen, que cada día están más hambrientas; hambre que da de comer a los fabricantes de máquinas.
Hoy la bestia ha estado apunto de devorarme. Hay ocasiones en las que aún arranco Hasefroch, últimamente demasiadas. Realmente nunca lo he dejado, es un mal hábito, como el tabaco o comerse las uñas; sé que me hace daño, pero ... lo sigo haciendo.

Buscar ficheros en Windows siempre fue una tarea jodida. Lo es porque se empeña en buscar directorio por directorio y en discos de varios gigas esto lleva muchíiiiisimo tiempo. Otros sistemas operativos lo mejoran mediante una base de datos e incluso Microsoft tiene una función equivalente.
La misión del servicio Index Server de Microsoft es petarte el disco duro. Acelerar las búsquedas no es motivo para crear un fichero temporal de 5 MB cada 3 minutos hasta llenar la partición del sistema. Creí que Google desktop consumía recursos, pero 1,5 GB de Google contra 5 (hasta que llenó el disco) de Index Server es una comparación odiosa, especialmente si tenemos en cuenta que Index Server realmente acelera poco o nada el proceso de búsqueda, no busca dentro de los ficheros, no indexa el contenido multimedia y no permite búsquedas avanzadas. Comparar con el eficiente "locate" de Linux sería más odioso aún.

Apple construyó hace 30 años ordenadores para el día a día de la gente, para escribir cartas, dibujar y jugar; ese día a día ha cambiado mucho sólo encuanto a conectividad. Las tareas que hacemos casi todos con los ordenadores de hoy son muy parecidas a las que hacíamos antes; más pulidas y rápidas, pero casi las mismas si no contamos las conexiones a Internet. Yo empecé tarde a conectarme, allá por el año 96, con esos pedazo modems de 14.400 bps y un 486 pelao, y seguí durante muchos años conectándome con ese mismo 486 a pesar de que las comunicaciones avanzaban.
Me pregunto cómo será ese Windows Vista. Los requisitos mínimos que dan para ese S.O. asustan y realmente, ¿qué diferencias va a tener? Al fin, procesador de textos, chatear, ver cuatro fotos y jugar al solitario. Veo un mundo con más hijos de *nix. (Linux OS X)

Todo esto me hace recordar un mítico tag de Fido:
"9600 bps para unos dedos de 800 bps: glorioso"

2006/05/31

Sintiéndome informático (gracias, PyChart)

PyChart es una biblioteca libre para generar gráficas en Python.
Yo pertenezco al típico grupo de "evangelizadores" del software libre, pero en realidad pocas veces me he visto en la necesidad de utilizar todas las libertades que esta forma de entender el software ofrece. Es muy fácil decir que la gente tiene que dedicarse a liberar su trabajo mientras tu únicamente te aprovechas de ello.
Una de las libertades del soft libre que hasta ahora no he necesitado realmente ha sido la modificación de un programa para repararlo y adaptarlo a mis necesidades y cuyo código no perteneciese un amigo o una empresa para la que trabajase.

Hoy me siento un poco diferente. Me he cabreado porque PyChart no me funcionaba, he visto su código y lo he comprendido; tras unas cuantas pruebas y juramentos sobre los testículos del Sr. Gates y su Hasefroch mi modificación ya está tirando gráficos en una web. Realmente ha sido un parcheado simple, pero es mio y soluciona problemas que he visto mencionar en varios foros.

Ahora sólo me queda una cosa para sentirme un poco parte de este mundillo. Pulir los cambios, pasarlos a alguien para que lo pruebe, y publicar mi versión.
Puede que un dia llegue a gustarme esto de programar.

PD: Ni los cgi tienen 'argv[]' ni es lo mismo '\' que '/'.

2006/05/30

Oh, no, more contents

Llevo tiempo pensando en el contenido escaso, pobre e inútil que empujo aqui arriba.
Leo (o lo intento) unos cuantos blogs de tecnología por día; me resulta imposible leer todo lo que me interesa y decenas de publicaciones se me acumulan diariamente.
¿Para qué quiero en blog en el que pongo chorradas? Ojalá hubiera encontrado esta herramienta cuando realmente necesitaba comunicarme con "el mundo" y tenía cosas de verdad interesantes que contar.
A ver si termino de personalizarme y corregir un módulo gráfico de Python (PyGraph) y por lo menos mi trabajo le sirve a alguien más.

2006/05/26

Internerds (I)

Citando a Baranda:
"Cada día nace un primo, dicen. Primo, en esta era de la información (que no conocimiento) es todo aquel que no contrasta la información, no la procesa, no la mejora. Desgraciadamente, este mundo estúpido está cada día más lleno de primos. Imagina que además tengan acceso a Internet."

Todos contra Fede (Jimenez Losantos)

Hay gente que tiene la capacidad de ser extremamente cargante.
Federico Jiménez Losantos pertenece a este grupo y por ello es alimentado y espoleado por la COPE, para dar un buen desayuno con choco-crispis (choco-crispantes) a la población española. Esos crispis hacen que algunos se carguen de energía para fortalecer sus burradas y que a otros se les indigeste.
Los hábitos nutritivos de este país mejorarían si este verdulero pegase gritos para otra cosa que no sea vender sus podridos lechuguinos y lo que le salga del nabo.
Al fin, la Iglesia fomenta un motivo más para la abjurar del catolicismo.

2006/05/22

35 pecados web que matan los negocios

La gente no tiene gusto o acaso lo tenga malo. Hablo de gente en general, no me meto en excepciones.
Esto puede verse en todo tipo de gentes, de toda condición, educación, poder adquisitivo ...
Figuritas de Lladró, (a)Tuneros llenos de florescentes y altavoces, modders con ventiladores y leds de colorines por doquier, abrigos de leopardo y tangas a juego, botas de peluche rosa, teléfonos móviles con diamantes... hay de todo.
Como eso, también hay sitios web y muchos de ellos creados por profesionales. Los sigo considerando como tales, a pesar de su pésimo gusto; los años 90 y sus "Venancios comiendo bocadillos de chorizo" anunciando webs en construcción, las novedosas animaciones tridimensionales metidas en gifs cíclicos, han deformado la percepción de muchos de los que empezamos con modems a pedales.
BeOSMan ya colgó cosas al respecto, así que esto sólo viene a incidir de nuevo en el tema. Por una web más limpia.
web site design: 35 Deadly Website Sins That will Kill Your Business!

2006/05/19

Solo tú tienes el poder de salvar a Toby

Lo que inventa la peña para sacar dinero y ... ¡por lo que es capaz de pagar la gente!
Mira que hay situaciones tristes y penosas, y que la gente pague antes para "ayudar al inocente conejito"... tiene bemoles.
Savetoby.com | Only YOU have the power to Save Toby!

Yo haré que maten a un cerdo y me lo comeré hecho filetes si no accedeis a pagarme 7.500 euros (pa un Dacia, joe)

2006/05/18

Pong, o el nacimiento del videojuego (I)

Ahora que vemos esos juegos con millones de polígonos moviéndose simultáneamente cada segundo, parece mentira que el primer videojuego tenga ya 40 años.
El Pong es el primer videojuego (1966-1969) pero aún hoy lo seguimos jugando y se porta a cualquier nuevo sistema posible (la web, teléfonos móviles, ...) porque, cuando algo realmente divierte, mola.

Dynamic Drive DHTML Scripts- Phong II

2006/05/16

XiTi - Etude Xiti Monitor

Mucho ruido, pero pocos zorros.
Es una lástima tener que reconocerlo, pero somos el país de Europa con menor uso de Firefox (ergo, con mayor uso de IE). No pasamos del 11% mientras que en otros países, más y menos avanzados, llegan a pasar del tercio del total.
Al menos nos queda que aún estamos por delante de casi todo el resto de los continentes.
Espero que dentro de poco pueda ser más tajante con eso de "no se ve en Firefox" sin que me respondan que es una pérdida aceptable.

XiTi - Etude Xiti Monitor

2006/05/10

Nas en Linea

Llevo bastante tiempo sin ponerme a escribir. Nunca ha sido algo que me tome en serio quizá porque nunca he tenido nada de lo que hablar (al menos para escribir de forma continuada).

A ver si encuentro las libretillas de notas que rabiscaba todos los días mientras estaba en Brasil. En aquella época sí que corrían regueros de tinta completamente sorprendidos por todo lo que veían.

2006/05/06

Como chorizos

Si es que todos somos unos ladrones; sólo hay que vernos la cara.

Si vas a entrar a un centro comercial tienes que: dejar la mochila fuera, sellar lo que quieras llevar encima dentro de una bolsa de plástico, pasar por detectores, ser vigilado por cámaras y guardias de seguridad...

Hoy me he quedado acojonado. Un chico magrebí (por las facciones) estaba saliendo de la caja de un Dia % cuando han empezado a pitar las alarmas del arco detector de RFID. Sólo llevaba en las manos sus compras.
Cuatro personas entre cajeros y cajeras le han tenido un rato pasando entre los arcos, a veces pitando y a veces no, preguntándole a ver qué llevaba encima.
Si todos somos siempre sospechosos imagina un inmigrante magrebí, ese es un chorizo fijo.
El chico estaba flipando.

Después de cachearlo por encima a alguien se le ha encendido la bombilla. ¡ A ver si va a llevar encima algo que por casualidad también hace pitar esto! Eh, tu ¿qué llevas nuevo? ¿esos zapatos son nuevos?
Date! era eso. Ahora resulta que:
- no puedes comprarte unos zapatos sin estar seguro que el antirrobo de la tienda no haga saltar la alarma de otra.
- no puedes alquilar una peli en el videoclub sin que salte la alarma del super cuando vas a comprar las necesarias palomitas (en León es típica la relación Casablanca-Mercadona)
- cualquiera tiene derecho a cachearte por si acaso te llevas 300 pelas de gominolas, sin ser policía o cosa semejante.

Los sistemas antirrobo están en tantos sitios que ni te enteras; muchos de los productos que usamos los traen de fábrica. No he leído nada al respecto, pero espero que no se les ocurra meter chips RFID en el próximo carné de identidad porque paso de tener que llevar hasta los gayumbos apantallados para que en el Carrefour no sepan qué es lo que compro.

2006/05/02

Separando al usuario de la máquina

Mucha gente habla sobre nuevos sistemas operativos, diseños innovadores...
Una de las cosas que a mí me preocupan sobre los SO son las interfaces de usuario porque, al fin y al cabo, es con lo que el usuario va a tener que lidiar (y es para el usuario para el que se construyen ordenadores).
Ahora ando haciendo retocando una aplicación a medida para que pueda ser accesible mediante terminales tontos (o thin-clients, como se quiera llamar). El caso es que terminaré por cambiar la aplicación de forma que sea independiente de la plataforma (ahora no lo es) y podré ponerla donde quiera pero ... ¿mientras lo hago esto, es necesario que me gaste una pastísima en decenas de licencias de terminal?
Es la hora de los experimentos ¿un servidor X-windows en M$ Hasefroch? ¿correría una aplicación de M$ Windows en ese servidor X? y es que ... las licencias cuestan, y mucho.

Office OpenXML (OOXML) no debe ser ISO 29500