lunes, 25 de agosto de 2008

Más sabe el diablo por viejo

Tras unos cuantos años ejerciendo de informático (programador, administrador, webero, etc.) he tenido la suerte de pasar a la industria y el cambio es tan radical que me da para un post.

La idea general es que en industria más vale el que más tiempo lleva. No vale más el que más ha estudiado, ni el que ha practicado en casa, ni el que en su tiempo libre ha hecho proyectos por su cuenta. Aquí el sueldo estratosférico del que lleva quince años está plenamente justificado, lo que en la informática tiene casi exactamente el efecto contrario.

Es chocante hablar con un tipo de 40 años sobre rectificadores trifásicos y que te suelte:

Claro que la masa es flotante, ¡eso es obvio!

La trifásica para mí ha sido muchas cosas pero obvia...

El jefe.

En programación, un experto puede llevar tres o cuatro años trabajando y cuando salen nuevas tecnologías tarda semanas en probarlas. Si sale un nuevo lenguaje, un nuevo sistema operativo para móviles o un nuevo entorno de desarrollo, se puede poner al día en un par de semanas o en un par de meses. Su jefe, el que lleva quince años trabajando y es manager, no sabe ni quiere saber de nuevas técnicas ni soluciones. Además, lo normal es que las aplicase mal.

En la industria, el que lleva tres o cuatro años es poco más que un becario (lo sería, si no hubiese tanta demanda de ingenieros). La industria es la misma que hace cinco años y si hay tecnología nueva, no tiene porqué usarla o ya le vendrá aplicada en los componentes que utilice para diseñar su sistema. Su jefe, el que lleva quince años trabajando y es manager, lo sabe todo sobre hidráulica, mecánica o documentación, porque aquí se aprende al toparse con los errores y un tornillo o una válvula ha cambiado bien poco desde que a él le tocó solucionar un problema parecido.



Aprendizaje.

Si un programador cambia de empresa puede ponerse a tirar líneas y a producir el primer día. Un industrial que lleva un mes aún no sabe de dónde sacar la documentación para empezar a trabajar...



Un programador puede ponerse en su casa a practicar con lo último en tecnología web desde su portátil de 499€. Un industrial lo tiene más difícil si quiere hacer experimentos caseros con materiales compuestos o aviones supersónicos.



Transcendencia.

En informática hay una base teórica creciente y un fondo que es capaz de generar discusión política (open source frente a sistemas propietarios), se plantean problemas filosóficos (heredados de las matemáticas), cuestiones sociales (OLPC) y surgen movimientos importantísimos (soft e ideas libres, wikipedia). Hay trasfondo más allá de las líneas de código.

En la industria hay plazos que cumplir y hojas de características. Creo que nadie ha escrito un libro comparando a Kirchoff con Jesucristo. Los números son discretos y finitos. El tornillo se aprieta en el sentido que diga la especificación. Punto.

Valía.

Un programador puede tener talento y hacer uso de la intuición en cada línea de código que escribe. Un buen programador se detecta a leguas y en dos minutos de conversación. Un ingeniero industrial utiliza mucho más la experiencia y se apoya más en el equipo, por lo que es más difícil destacar.

Habla con fulanito que es quien sabe de esto.

Conclusión.

Es un poco desesperante el cambio pero, la verdad, no es lo mismo ver una gráfica de uso de ancho de banda que un avión levantando el vuelo.

martes, 19 de agosto de 2008

HTC Touch Diamond y el teléfono inteligente




El Diamond es mi nuevo terminal móvil, porque lo de teléfono móvil es muy 2007.


Tras una semana utilizándolo, puedo dar algunos consejos y aclarar cosas.

En general es un maquinón y los fallos que tiene son debidos a que la tecnología aún no ha llegado a la perfección; no creo que ningún pocketPC sea perfecto en términos de rendimiento y velocidad.

Hay que tener en cuenta que es un sistema Windows multitarea, no un autómata programado para funciones básicas por lo que hay que acostumbrarse a esperar a que las aplicaciones y pantallas se abran. Es irónico que cuanto más avanza la tecnología móvil, más tardamos en hacer cosas básicas como buscar a alguien en la agenda.

Por el otro lado, es un Windows multitarea y este hecho es el que le da ventaja frente al iPhone. Sólo hay que visitar los foros sobre HTC para ver que hay muchos desarrolladores haciendo aplicaciones en un suspiro para Windows Mobile, ya que gracias a las SDK y al .net framework que lleva instalado el S.O. es muy fácil acceder a las funciones del móvil. Por ejemplo, el acelerómetro ya tiene su wrapper para utilizarlo desde C#.

Más ventajas de utilizar Windows es que se puede programar un servicio, es decir, un programa que corra en segundo plano para por ejemplo hacer una alarma-despertador. Esto según he entendido, no se puede hacer para el iPhone ya que las SDKs que han liberado son para hacer aplicaciones puras, como meter cartuchos en una supernintendo.

También se puede tocar el registro para hacer cientos de tweaks que ya están documentados por los foros.

En pocos meses empezará a haber aplicaciones serias para Windows Mobile porque por ahora lo que hay es bastante básico y amateur. Es una lástima que medio mercado esté gobernado por el iPhone ya que la gente no se atreverá a hacer aplicaciones sin un estándar claro, como pasaba antes del monopolio de Windows en los PCs. Esperemos que sea Android el que desbanque al resto y se imponga como sistema operativo para móviles definitivo, por el simple hecho de ser abierto. Lo que está claro es que Apple será siempre un segundón en la carrera ya que está cerrado a su inflexible hardware.

Sobre la interfaz gráfica, hay variedad. Los operadores están haciendo sus propias ROMs que son "paquetes" de aplicaciones, tweaks y estilos para que tengan su propia identidad. La que me venía con vodafone no estaba mal pero la de Movistar es bastante fea. Es una lástima que la gente que vea expuesta la Diamond de Movistar se quede con esa idea. Hay usuarios haciendo sus propias ROMs muy superiores a las proporcionadas por los operadores aunque hay que "formatear" para instalarlas. Yo estoy probando la del usuario Vauss del foro htcmania:


El TouchFlo3D es la aplicación que han hecho en HTC como interfaz gráfica principal, para intentar no utilizar el Menú Inicio de Windows y esconderlo un poco, aunque se puede utilizar como un Windows Mobile común. La forma de pasar las fotos y los mensajes es muy original y vistosa, aunque poco práctica, claro.

El hecho de que no tenga teclado es acostumbrarse. Para escribir cosas largas está el puntero aunque con un poco de práctica se escribe bastante bien con los dedos.

Se ensucia bastante. Es imposible tenerlo limpio. La versión de Vodafone lleva una tapa trasera angulada y brillante muy bonita pero poco práctica. Movistar ha puesto la tapa lisa, que afea bastante. La lámina protectora de la pantalla se ensucia mucho más fácilmente que la pantalla directamente, por lo que creo que la voy a quitar. No pesa nada y es bastante más cómodo de llevar que el iPhone, ya que es de grande como un nokia pero la mitad de ancho. Bastante sorprendente el tamaño. Al reproducir un divx por Wi-Fi se calienta bastante.

La batería dura muy poco con el Wi-Fi, el bluetooth, la cámara, el reproductor de divx, el acelerómetro... pero es perfectamente normal. Al menos la batería se puede cambiar ya que tiene toda la pinta de que va a durar pocos meses si se le da un uso intensivo. En el iPhone no se puede cambiar.

Para fardar, pero de dudosa utilidad:

- Ver un divx a través de la red, conectado por Wi-Fi desde la piscina con la colección de películas y series en un PC en casa.

- Escuchar música por GPRS/UMTS desde last.fm o desde un servidor en casa (utilicé gnump3d hace tiempo para esto pero no lo he probado desde el móvil)

- Usar WebCamera Plus para utilizar la cámara del móvil como webcam completamente compatible con Skype o Messenger y conectarla por Bluetooth o Wi-Fi con un PC. Funciona sorprendentemente bien.
- Usar el GPS con el TOMTOM. Además tiene una función para coger satélites mucho más rápido.
Vínculos:
- Foro de HTCMANIA, la comunidad más activa de habla hispana.
- Foro de xda-developers, la comunidad más activa en el i+d de las máquinas HTC, en inglés.

martes, 8 de julio de 2008

Lowrey Symphony Holiday


Lowrey Symphony Holiday (1975)

Este órgano sufrió una inundación de sótano y desde entonces dejó de funcionar. Al encenderlo se escucha algo de ruido y el pedal de volumen provoca carraspeo.

Al activar el Leslie suena un ruido parecido a lo que debió ser el Big Bang. El motor no está en las mejores condiciones, pero funciona.

El problema es que las teclas no suenan, directamente. No sale sonido, sólo ruido.



Al abrirlo vemos que el hecho de que no suene es lo de menos. La electrónica de este órgano es pura artesanía. Vamos a analizarlo:

Placas:
- Sonidos de ritmo
- Secuenciador de ritmo
- Generador de chorus
- Filtros de las cuerdas
- Filtros de las flautas

Otros:
- Tanque de reverberación (es la misteriosa bolsa negra, en medio)
- Cabina del subwoofer
- Leslie (original, tapado con gomaespuma)
- Fuente de alimentación, volumen general y amplificadores
- Pedales




Arriba: Circuitería de ritmo. Frente: Filtros de chorus.


Arriba: Circuitería de ritmo. Frente: Filtros de flautas.


Arriba: Circuitería de ritmo. Frente: Filtros de cuerdas.

Lógicamente toda la circuitería es la parte interesante del órgano. Teniendo en cuenta que un simple filtro puede estar compuesto por tres amplificadores operacionales, media docena de resistencias y tres o cuatro condensadores, es fácil entender la gran cantidad de componentes que tiene el órgano, con todos los instrumentos que permite generar. Se puede ver que ahorrar en espacio no era importante ya que la circuitería está pensada claramente para la intervención humana. En la era digital todos estos componentes se reemplazarían por diez líneas de código grabadas en un espacio como la punta de un alfiler.

En vez de operar con bits y bytes, por el tamaño de los condensadores y las resistencias, está claro que se usan tensiones y corrientes considerables. También la gran cantidad de componentes, necesariamente imperfectos, generan el ruido y la distorsión que esperamos para que un órgano eléctrico suene a órgano eléctrico. Aunque en el diseño se buscara perfección, es la distorsión y la incompleta emulación la que se imita hoy en día con los sintetizadores digitales.

Tener en las manos un circuito resultado de tantísimo esfuerzo, estudio y erudición es impresionante. La fragilidad de los componentes exhaustivamente colocados y elegidos resta mérito a los simplistas circuitos digitales actuales.


Filtros de audio


Pedal de volumen, fuente de alimentación y amplificación


Abajo: Fuente de alimentación (Transformador a la izquierda y regulación a la derecha). Arriba: Circuitería de amplificación. Alrededor: Transistores en el chasis para disipar el calor.


Altavoz Leslie. Consiste en hacer girar un altavoz para conseguir un trémolo (fluctuación de volumen). Este efecto se puede apreciar en Lucy in the Sky with Diamonds, por ejemplo. Ojo a las instrucciones de mantenimiento (click para agrandar).


Pedalera en regulares condiciones.


Colocación de los altavoces frontales. Leslie a la izquierda, subwoofer arriba a la derecha, graves abajo a la derecha.

Algunas preguntas:
  1. La obvia: ¿Por qué no funciona? La fuente de alimentación y amplificación es lo que se llenó de agua por lo que seguramente el problema esté ahí. Desde luego consume potencia por lo que el problema no es de alimentación general. Habría que comprobar los condensadores electrolíticos grandes y los transistores.
  2. ¿Qué integrado se utiliza en las placas de coro, flauta y cuerda? No he encontrado nada en Google con la referencia P-24103 RAYT7643.
  3. ¿Qué valor puede tener? Según he leido aquí, se habla de $1000.
  4. ¿De qué material está hecho? Pesa como un camión...
  5. ¿Por qué la web de Lowrey parece una asociación cristiana de la tercera edad?

lunes, 7 de julio de 2008

Tantos años de evolución en el desarrollo de virus para nada

Si lo más fácil es hacer una web con un formulario donde introducir dirección de Messenger y contraseña y dejar que entren incautos deseosos de ver fotos de sus amigas.

Una vez que se tiene la contraseña sólo hay que programar un bot que inicie sesión de Messenger con esos datos y diga a todos los contactos "Mira qué fotos me he sacado" con un link a la misma página. Una sorprendente cantidad de gente pica distribuyendo el link de forma exponencial.

Esto no es un virus. No descarga ningún fichero ni ejecuta código malicioso. Simplemente se queda con la contraseña del Messenger del pobre usuario y se conecta, desde otra máquina, para poner el mensaje a todos los contactos.

Solución para los infectados: Cambiar la contraseña de Messenger. Eso sí, la dirección de e-mail y la de todos los contactos se guarda y se mete en una base de datos para hacer futuro spam de viagra, casinos y demás basura.

La lógica (y tener el windows actualizado cada día) sigue siendo el único arma para luchar contra virus, malware y demás usos malvados de la informática. Los antivirus siguen siendo puros consumidores de CPU y memoria.

Abrir el precinto invalida la garantía

Intento generar siempre contenido original y no vincular a otros blogs o noticias así que traduciré este artículo que he encontrado en el genial Keith's Electronics Blog y de paso explico cómo hacer un potenciómetro rudimentario.

Se trata de recuperar un antiguo pedal de órgano (Baldwin Model 5) para hacer un pedal que controle un equipo moderno. Un proyecto simple, retro, muy funcional y con una curiosa sorpresa.

Auténtico gear pr0n. Abatiendo el pedal movemos el brazo que presiona una barrita a la izquierda.


Atención a la pegatina: "Abrir el sello invalida la garantía en este control de volumen" en una tipografía cincuentera. Lo está pidiendo a gritos.


Como dice Keith: Ésta es la parte que nos hace decir "wow". Parece que aún no se habían inventado los potenciómetros (es broma, creo) o no existían con una potencia suficiente.

Al bajar la palanca se mueve la barrita verticalmente para activar pequeños interruptores de hoja (traducción libre, mirar la foto en alta resolución para entenderlo) y van cerrando circuitos en la escalera de resistencias. Si no está presionada la palanca, hay una pequeña distancia entre los contactos y según se va apretando, van empujando unos a otros, empezando desde arriba. Cuantos más estén conectados, menos resistencia habrá.

Para entender la escalera de resistencias hay que imaginar que originalmente hay una manguera llenando una piscina. Si se pone otra manguera en paralelo llenando una piscina, se llenará más rápido; más agua entrará cada segundo. Cuantas más resistencias en paralelo, más corriente pasará entre dos puntos. No es intuitivo que cuantas más resistencias haya, menos resistencia se produzca.


Ningún contacto conectado hace que entre Gnd y Out en este ejemplo, haya una resistencia de 2R + R + R + R + R = 6R. Según se van conectando contactos, entran más resistencias en juego y el valor resultante se reduce con lo que se deja pasar más corriente y por lo tanto produce más volumen. Este circuito está diseñado para convertidores analogico/digital así que podemos simplificarlo bastante para entender nuestro potenciómetro.



En este otro caso, cada interruptor que se cierra cortocircuita una resistencia. Una resistencia cortocircuitada no afecta al resto del circuito.



Al ser sólo resistencias, la señal puede ser continua o alterna por lo que se puede poner en serie con un altavoz o un amplificador para limitar su corriente o se puede utilizar una corriente continua fija y leer el valor Out, en un circuito digital, utilizándolo como un potenciómetro común. Ésta opción es genial, permitiendo el uso de un componente vintage en un circuito moderno para por ejemplo controlar un sistema basado en Arduino.

Para controlar valores de audio normalmente se utilizan potenciómetros logarítmicos (o exponenciales), que hacen que el incremento no sea lineal (cuanto más girado esté, más varía el valor de resistencia, o menos, según se conecte). Eligiendo bien el valor de las resistencias podemos hacer una aproximación a una curva exponencial para que cada vez que se conecte un nuevo interruptor, se incremente más que lo que incrementa el anterior. La lista de los 16 valores que buscamos es esta:

1.000
0.741
0.549
0.407
0.301
0.223
0.165
0.122
0.091
0.067
0.050
0.037
0.027
0.020
0.015
0.011



Por lo que podemos, por ejemplo, construir la siguiente serie de resistencias:

0.008
0.003
0.004
0.005
0.007
0.010
0.013
0.017
0.024
0.032
0.043
0.058
0.078
0.105
0.142
0.192
0.259

Todos estos valores suman 1, por lo que si ningún conector está cerrado, habrá 1 unidad de resistencia (multiplíquense los valores al gusto) y si están todos pulsados, no habrá resistencia ninguna. El resto de valores seguirán una acumulación de resistencia exponencial.

El potenciómetro del pedal es un poco más complejo pero la idea es la misma.

viernes, 27 de junio de 2008

jesusibanez.com


Hoy hemos publicado la nueva web de Jesús Ibáñez en la que he colaborado como programador. Puesto que se trataba de un estudio de paisajismo y debía tener estilo y elegancia y no era crítico el posicionamiento en buscadores, acepté el uso de Flash. Ha sido el primer contacto con AS3 serio, ya que el Tensegrity fue sólo un experimento.

Respecto a AS2 hay algunos cambios que no me convencen en absoluto. El uso del antiguo _root no tiene nada que ver con el nuevo root lo cual complica el uso de varibles entre películas incrustadas. El orden z de los objetos (definir cuáles están encima de otros) ha cambiado también. Ya no es posible darle orden 1000 a un objeto y orden 1100 a otro.Para que un objeto se ponga encima de otro, se deben intercambiar sus posiciones para que todos estén seguidos.

Por lo demás, ActionScript sigue siendo un lenguaje de programación limitado. Creo que voy a seguir más de cerca el desarrollo de SilverLight y me voy a poner con ello cuando saque un rato.

Aprendiendo a ser geek


Entre el 16 y el 20 de Junio organicé un taller de electrónica basado en Arduino para enseñar a futuros geeks de 15 y 16 años la programación de la placa y algo de electrónica analógica.

Acostumbrado al taller del Aula de Propulsión Escópica (Enero 2008), en el que me encontré a cuarenta y cinco personas adultas escuchándome en la primera clase, hubo que enfocarla de otra forma ya que los apenas ocho asistentes estaban pensando en las vacaciones de verano y en pasar el rato de una forma entretenida. Por ello fui a lo práctico sin dar demasiadas explicaciones teóricas, que ya se darían durante el desarrollo del taller.

Puesto que era una actividad optativa en el colegio, tuve la suerte de recibir a los chavales más ingeniosos y despiertos y aunque hay que animarles mucho más que al grupo de adultos, aprenden rápido y están acostumbrados a recibir clase.



Además, promocionar la Arduino por los ámbitos docentes es bastante interesante. Es una placa que por 22-25€ nos hace entender muy rápidamente la forma de utilizar un sensor, la potencia que tiene un microcontrolador, la utilidad de multiplexores, encoders, registros de desplazamiento... Por lo que he podido ver, la clase de tecnología que se imparte en E.S.O. y Bachillerato se podría basar enteramente en esta placa y se cubriría un espectro mucho más amplio, interesante y escalable de lo que se hace ahora.

Mucho se habla del pasotismo de los adolescentes y mucho puedo hablar de lo que he visto en la misma carrera de electrónica, donde una terrorífica parte del alumnado no tenía ningún interés ni le veía las posibilidades a nada, más allá de aprobar la práctica o el examen. No creo que sea culpa suya, ni de la televisión, Wii o Internet sino de que llegados al primer laboratorio de la carrera hay alumnos que no saben hacia qué lado se aprieta un tornillo. Es cierto que es difícil tener un cuarto en casa completamente dedicado al bricolaje y al D.I.Y. como fue mi caso, pero más vale un padre/tío/profesor geek, que, ilusionado por haber encontrado la forma de arreglar un vídeo, nos haga querer llegar a saber tanto.

Organizar talleres, concursos, páginas webs, blogs e incluso contribuir a la wikipedia son acciones que no reemplazarán a un padre comprometido con la educación, pero ayudará a que el hijo se pueda buscar la vida para aprender.

Animo a todo el mundo que sepa de algún tema a organizar cursos y talleres. Si no es suficiente realización el mero hecho de darlos, hay otras motivaciones como, por ejemplo, practicar el hablar en público o que queda muy bien en el C.V. Cualquier razón para contribuir a la comunidad de conocimiento libre me parece lícita.