2006/06/29

Generando strings aleatorios

Pregunta: ¿Cómo generar de manera eficiente en tiempo y memoria una cadena de caracteres aleatorios?

Respuesta: ¿Encontrando un fichero Perl y leyéndolo?


Visto en: Generating a large random string

2006/06/28

Chiste: San Pedro de guardia

No puedo resistirlo:

San Pedro llama a un ángel y le dice:

- Esta mañana tengo que ir a hacer un par de trámites a una nube, así que te dejo cuidando las puertas del Cielo.

El ángel, aterrado, le dice que no tiene idea de a quién tiene que dejar pasar o no, pero San Pedro lo tranquiliza:

- 'Mira, por hoy vamos a simplificar. Aquí tienes una Biblia y un fajo de billetes de cien euros. Dale a elegir a los que lleguen: si cogen la Biblia les dejas pasar, y si cogen un billete los mandas al Infierno. Y aquí tienes mi número de móvil por si hay algún problema'.

San Pedro se va, y pasa la mañana en sus cosas, hasta que suena el teléfono. Es el ángel:

- 'Mire, San Pedro, hasta ahora todo iba bien, pero acaba de llegar un tío que cuando le di a elegir me dijo: '¿Puedo ver un poco?' Se puso a hojear la Biblia, y cada tanto decía '¡Hum, qué interesante!', y cogía un billete de cien y marcaba la página; y así hasta quedarse con la Biblia y todos los billetes. ¿Qué tengo que hacer?'

- 'Déjalo pasar, hijo, que ése es del Opus...'

2006/06/27

Cita: entrañables diskettes

Floppy disks are the media format parallel to Paris Hilton.

They simply refuse to get impopular despite how crappy they are.

(Jugalator)

revelaciones en el cuarto de baño

Me ha ocurrido decenas de veces.
Aquella idea feliz que te resuelve un problema. Ese diseño que no sale.
Un guión para una animación, un corto... El proyecto fin de carrera. Lo que realmente sería el proyecto fin de carrera :( . El diseño del aparato que nunca tengo tiempo de fabricar, pero que está todo ahí, en el papel...
todas estas, y otras muchísimas cosas se me pasan por la cabeza mientras empiezo a dormirme o en el cuarto de baño. Hace tiempo solía tener una libreta al lado de la cama para anotar las ideas que me viniesen a la cabeza antes de quedarme roque.
La paja mental de hoy ha sido (es) sobre energía y materia. Algo me ha hecho recordar que la relación existente entre masa y energía, y que ondas electromagnéticas como la luz se ven afectadas por el campo gravitatorio. Inmediatamente me ha venido a la cabeza que, si la luz gana masa al disminuir su velocidad, ese aumento de masa la hace más sensible a la gravedad y podría enlentecerla aún más; en fin, la luz, la energía, caminaría hacia su conversión en masa.
Al final la paja mental no tal y resulta que más bien es que caer en la cuenta de que una explosión puede generar un universo completo y que los cálculos que se hacen de materia en el universo no pueden dar resultados ni siquiera aproximados a menos que se calcule antes la cantidad de energía libre en el sistema. Igual la materia oscura resulta no ser oscura, sino luminosa.
Primeras conclusiones:
- el universo, como han escrito tantos, terminará de expandirse y volverá a contraerse hasta una gran cantidad de energía pura.
- debería dormir más.
- debería leer más.
- las pajas mentales no son ciencia. Son castillos en el aire hasta que se demuestren.
- en igualdad de condiciones la solución más sencilla es probablemente la correcta.

2006/06/23

No seas hombre-bomba, que es mu malo para la salud

Si blogger tuvise categorías este sería un artículo más dedicado a "estupidez humana".
Quien me conoce sabe que no tengo especial simpatía por EE.UU. (USA), y que pese a saber que la condición humana es igualmente sorprendete, maravillosa y patética al mismo tiempo, creo que la combinación de sorpresa y patetismo es más densa en Estados Unidos. Allí tienen por costumbre intentar utilizar la televisión para llevar al país por el camino que les da la gana a "los jefes"; lo malo es que les suele salir bien y la población actúa en muchas ocasiones como una manada de borregos. Como ellos son el centro del universo, lo que vale allí debería valer en todas partes, aunque no sepan localizarlas en un mapa, así que, ¿por qué no hacer un anuncio publicitario para que los irakíes dejen de usar hombres-bomba? Cada día hay más militares yankees criando malvas, y eso se le está pudriendo en las manos al sr. Arbusto. Bueno pues según esto Think Progress » “Don’t Suicide Bomb.”
ya están produciendo el vídeo, al estilo Hollywood. Seguro que los convencen de que es mu malo matar al enemigo invasor y, además, renunciar a las recompensas que el paraíso ofrece a los mártires.
Si se atreven a parecer tan idiotas no me extraña que no se hayan cortado para desmentir el calentamiento global, la influencia de éste sobre los huracanes que cada día les azotan más ...

2006/06/22

La información no es perenne


Esta tarde estaba haciendo una búsqueda sobre un programa de CAD/CAM llamado Cimatron que sólo conozco porque lo utilizan mis compañeros de trabajo.
No es ni de lejos tan popular como los Autocad y esas cosillas para hacer un poco de todo, por lo que Google no da tantos resultados (si quito los cracks para versiones antiguas).
En uno de los enlaces que aparecía encontré el siguiente extracto de una publicación de 2001 especializada en CAD/CAM.
Creo que no tiene desperdicio, pese a ser un simple ejemplo, de que la información no es perenne. No ha estado siempre en la misma forma en la que está ni permanecerá de la forma en la que está ahora.
Cuando le dices a la gente que deje de utilizar formatos de fichero propietarios, desconocidos y que renueve las copias de seguridad antiguas casi se te rien a la cara. Total, para qué, si mi Word 2015 abrirá los documentos de mi Word 2.0 para DOS ¿o no?
Llevo poco tiempo en esto de la informática, más o menos desde el 92 (1992), pero lo suficiente para haber querido o necesitado recuperar información con más de 15 años de antigüedad en varias ocasiones; nunca sabes qué, cómo ni cuando vas a necesitar algo, así que:

  • Guarda tu información de la forma más estándar posible.
  • Haz las copias por duplicado y comprueba que funcionan.
  • No dejes las copias tiradas ni en el mismo sitio. Si se estropea una, se estropearán todas.
  • Guarda siempre hardware antiguo, al menos durante algunas generaciones.
A ver si consigo que el colega Abilio me pase tu proyecto fin de carrera sobre seguridad física de la información para que todo el mundo pueda aprender que no solo los virus y los "piratas" hacen pupa a los datos.

Este es el extracto:

http://www.geocities.com/cjmaccio/upfronts/upFro237.txt


Editorial Invitado: Los Padecimientos del Archivista
por Shane Beaman
Sealcorp Computer Products
. . . .
¿Ha estudiado alguien seriamente el sistema de almacenamiento y recuperación de dibujos electrónicos? Me refiero a la posibilidad de tener acceso a datos de diseño creados y almacenados electrónicamente hace 15 años o más, o bien a información archivada hoy para ser recuperada en el futuro.
¿Cómo se extrae información de un dispositivo de hardware obsoleto (discos flexibles de 8" y 5-1/4", cintas, etc.), almacenada en base a un software de diseño en desuso que probablemente no pueda ser leído por el software de hoy?
Supongo que se debe guardar una copia del software de diseño obsoleto, pero
¿Podrá éste funcionar con el nuevo hardware?
Todos hoy en día somos alentados a almacenar la información electrónicamente debido a que es barato, razonablemente seguro frente a la corrupción de archivos, y se pueden almacenar fácilmente grandes cantidades de información. ¿Qué ocurrirá dentro de 20, 30 o 40 años, cuando desee leer o recuperar un diseño creado en un software o hardware obsoletos?
Imagine a una firma de consultoría que ha creado cientos de dibujos día a día en todo el país, y los ha venido almacenando durante años. Cuando se libera una nueva versión del software o hardware, ¿Puede el nuevo producto cargar los diseños creados con cualquiera de sus versiones anteriores y convertirlos para el nuevo hardware o la última versión del software? Creo que no.
¿Qué pasa cuando un fabricante de software discontinua un producto de diseño o se sale del negocio, y usted necesita leer algunos dibujos que fueron creados años atrás y no dispone del software para hacerlo? Algunos dicen que se debe optar por un gran fabricante de software, quien presumiblemente estará operando en el mercado de alguna forma durante los próximos años. Otros dicen además que se deben mantener copias impresas y otra documentación adicional archivada.
Aún cuando dispusiéramos de un formato de datos universal, tendríamos el problema de no poder extraer los dibujos del hardware obsoleto. Por la forma en que la industria de las computadoras evoluciona, ¿Quién sabe si tendremos los mismos dispositivos de almacenamiento o formatos que podrán ser leídos dentro de 20 años.
Bienvenido sea el pensamiento de los lectores. RG responde: "La industria del CAD es todavía lo suficientemente joven como para que esto represente un aspecto significativo, pero pronto lo será.
"Tengo una computadora provista de una unidad de disco flexible de 5-1/4", pero aún eso no es lo suficientemente bueno. Quería ilustrar uno de mis libros con captura de pantalla de un AutoCAD para DOS, el cual cabe en varios discos flexibles. No pude finalizar la instalación del mismo debido a que uno de los discos arrojó error de lectura. (Pude sin embargo instalar una versión para DOS de AutoSketch, la cual reside en un único disco flexible.)"

<----->
Por favor, NO utilice formatos de archivo propietarios para el intercambio de documentos, como DOC, PPT y XLS, sino HTML, PDF, RTF, TXT, CSV o cualquier otro que no obligue a utilizar un programa de un fabricante concreto.
<----->

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"