Tuesday, November 17, 2009

Connect to the internet from Linux through a Windows Mobile phone

*Post en inglés por si le es útil a alguien ;)
_______________________________

Maybe with *buntu it's stupid easy, but as far as my experience goes, they probably tried to make it easy but it fails catastrophically in 50% of the cases. This is how to connect you linux box to the internet using the "Share connection" funcion of many phones, directly from the command line, so it should work in any linux distro, even in *buntu! Of course, some commands must be run as root, so be warned that if you type "rm -rf /" by mistake, I accept no responsability for your (incredibly dumb) actions.

Via USB: plug the phone to the computer, select "USB" as the PC connection in the application, press conect on the phone screen and type "dhcpcd eth1" in the console. If the browser gets stuck in a "Waiting for [domain]" step, try "ifconfig eth1 mtu 1394" and the reload the website again.
Good to go? Then I'm glad.
Something failed? Try: modprobing rdnis_host, using dhclient instead of dhcpcd or trying a different interface. To find out which one is the correct one just do a "ifconfig -a" before and after pressing connect on the phone screen. Or try with different MTU values, of course for the USB network interface.
If it still doesn't work, something definitely sucks: you with linux, me as a teacher or life. I'm sorry either way.

Via Bluetooth: ok, pay attention because this one is not as straightforward as the USB one. Of course you need BT working in your computer, so if you don't, go read some howto, install bluez utils and keep reading.
- First select "Bluetooth PAN" as the PC connection on the phone screen and press connect.
Now, if you haven't used bluetooth between you linux box and your phone before, you have to introduce them to each other. If you have, it'll be enough to do the pand and dhcp steps.
- Ok, let's start with the phone. In the application's menu, go to BT config and under "Mode" make sure your phone is "discoverable" by other devices.
- Now with the computer. First, activate the BT device, either by a physical switch or any other specific method your hardware manufacturer happened to use.
- After your BT light is on and shining, find your phone by typing "hcitool scan". Among all kind of crap, including "hello kitty" depending on your location, you should see your phone. And its MAC address. So remember it. Or copy it to paste it in the next step if you are not a geek.
- Next step: connect to the phone. Type "pand -c MAC_ADDRESS". If it's the first time, your phone will ask you if you really want him to talk to this stranger. Now pay attention: on your computer, open a new console and run "bluez-simple-agent" and on your phone answer yes. You will be prompted a code on both. Enter the same code in both. Press enter/ok on both. You can close the new console on the computer now and on the phone, the messages that will pop up.
- Ok, so the computer and the phone are connected now, or at least they should be. Confirm it by looking for "Connected" on the phone and doing a "hcitool con" on the PC. You should also have a new network device, bnep0 on the linux box.
- Last step, similar as with the USB process: "dhcpcd bnep0", or your dhcp client of choice for that matter. You shouln't need to modify the MTU here.

If you have some problem you can leave a comment and we'll figure out what's sucking in that moment :)

Friday, October 9, 2009

¡Vaya día! ¡Y acaba de empezar!

Hoy tiene pinta de que va a ser un día ajetreado. Entre que la NASA va a estampar un cohete contra la luna y a Obama le han dado el Nobel de la paz, todo el mundo está que echa humo.

Y como opinar es gratis, ¡yo no voy a ser menos!
Acerca del tema NASA: van los tíos a buscar agua en la luna para ver si pueden establecer bases permanentes y algunos americanos se piensan que van a volar la luna. Y que Dios se enfadará por ello. Vivir para ver. Al menos, alguno se lo toma con humor.
Acerca del tema Obama: nada más que añadir....

Wednesday, October 7, 2009

La ciencia en España no necesita tijeras

Siguiendo la iniciativa de La Aldea Irreductible pongo mi granito de arena. Como estoy muy vago y ocupado al mismo tiempo, seré breve.

La ciencia en España no necesta tijeras... porque, para empezar, apenas hay de dónde recortar.



PD: algunos artículos son geniales...

Oktoberfest

Quien quiera una descripción detallada que lea la wikipedia o las miles de "Guías de Viaje" que habrá acerca de Munich.

Yo me limitaré a resumir mi impresión en una frase: el Oktoberfest es igualito que las fiestas de un pueblo, solo que éste pueblo tiene millón y medio de habitantes.

Thursday, October 1, 2009

Encontrar un sitio donde vivir en Munich

Bueno, mucho tiempo sin escribir, muchas cosas por contar, pero poco tiempo para hacerlo. Entre Facebook, twitter y Google Reader voy compartiendo mis inquietudes y contando todo lo que me apetece, por lo que estoy dejando el blog un poco de lado. De todas formas, antes de darlo por muerto, aún contaré alguna que otra cosa que pueda ser útil a alguien en el futuro, aparte de note-to-self de cosas que me pueden venir bien a mí.

Hoy hablaré un poco sobre el alojamiento en Munich, cosa que todo el mundo dice que es muy difícil y muy caro y esto sólo es cierto en parte.

El precio de una habitación en un piso compartido no me ha sorprendido nada, pero será porque Madrid tampoco es una ciudad barata. Dependiendo de la zona, el tipo de piso y el tamaño de la habitación, el precio oscila entre 250€ y 500€, lo más normal son habitaciones entre 320€ y 390€ y suelen ser grandecitas, de unos 14 m^2. La dificultad de encontrar algo si que puede ser más grande, por la enorme cantidad de demanda que hay, a un anuncio pueden llegar a contestar 70 personas. Los apartamentos y estudios son más caros pero suele ser mucho más fácil encontrar uno, puesto que no hace falta "conectar" con gente, ya que no vive nadie ahí. Vas a verlo y si te gusta te lo quedas.

Por supuesto, la búsqueda hay que hacerla desde ahí, así que hay que ir con antelación. Nadie quiere un compañero de piso al que sólo ha conocido por internet, así que es casi imposible encontrar algo desde España. Yo recomiendo alojarse temporalmente en los hostales/albergues que hay cerca del Hauptbahnhof (estación central de tren). Son baratos, limpios, con gente muy amable y bien situados. He estado en el 4you y en el wombats y no tengo nada que reprochar a ninguno. El 4you incluye desayuno, así que sale un pelín más rentable ;)
IMPORTANTE: si se va en septiembre, ir la primera quincena. La segunda quincena está ocupada por el Oktoberfest (irónico, la "fiesta de octubre" es en septiembre) y es im-po-si-ble encontrar sitio en ningún albergue ni hotel a 100km a la redonda de Munich.

El mejor sitio donde buscar es la página http://www.wg-gesucht.de donde hay más de 30 anuncios nuevos cada día. Un par de consejos sobre su uso:
- Lo primero, aprender algo de alemán. Con lo básico basta, para entender los anuncios tampoco hace falta ser un experto. Si hay dificultades, san google traductor al rescate.
- Filtrar por precio máximo y fechas de entrada. Los resultados vienen ordenados por fecha de publicación, lo más seguro es que los anuncios de más de un día ya no sean válidos por la alta demanda.
- No vale la pena filtrar por dónde están las habitaciones. La red de metro y cercanías (UBahn y SBahn) es tan buena que desde cualquier lado al centro hay menos de 20 minutos. Además, también hay buses y tranvías.
- Si el anuncio incluye número de teléfono, toca llamar, no hay verguenza que valga. Por supuesto, a no ser que uno sea rico (entonces mejor buscar un apartamento o un piso para uno solo) lo suyo es comprar una tarjeta SIM alemana. En la Neuhauserstrasse/Kaufingerstrasse (entre Stachus y Marienplatz) hay un montón de tiendas de móviles e incluso un Saturn (como el MediaMarkt). Si alguien pone su número de teléfono, recibirá tantas llamadas que lo más seguro es que los mails los ignore. Si en el texto del anuncio pone que llameis o mandeis un mail, da igual: mejor llamar. Es mucho más fácil conseguir una cita por teléfono que por mail. Respecto al idioma, pues lo ideal es hablar alemán, pero si no es tu fuerte tampoco es una tragedia. Casi todo el mundo habla inglés asi que con un "Good morning, I'm calling for the room you announced on the internet" se darán por aludidos que el alemán no es lo tuyo y te contestarán en inglés (o te mandarán a la mierda, que tampoco pasa nada: siguiente anuncio).
- Si se escribe un mail, también es mejor escribirlo en alemán. De nuevo, no pasa nada por escribirlo en inglés, pero en este caso, poner alguna que otra frase en alemán, que se note que hay interés en aprender e integrarse. Aunque no lo exijan, siempre, siempre, siempre hay que poner un parrafito sobre uno mismo: descripción, intereses, que es lo que se busca, etc.
- Hacerse con el vocabulario. WG (WohnGemeinschaft, piso compartido), Kalt/Warm Miete (mensualidad sin/con gastos incluidos), Zwischenmiete (disponible por tiempo limitado, por ejemplo alguien que se va de Erasmus y alquila su cuarto sólo durante 6 meses)... Muy importante es la expresión "Zweck-WG": significa que es un piso compratido sólo para dormir, donde no se busca la convivencia entre los compañeros. Normalmente la gente NO busca "Zweck-WG".
- Suscribirse a las alertas por email. No funcionan del todo bien, pero vienen bien para enterarse el primero de anuncios nuevos, lo cual es una ventaja para llamar / mandar mail. Lo ideal es también visitar la web por si hay algún anuncio que no llega.
- Si alguien va a estudiar a la TUM física, mates o informática (alguna más creo que también, no se cual), el campus está en Garching, un pueblo a 10km al norte de Munich. Se llega en metro en la línea 6 (azul). En este caso vale la pena buscar pisos no sólo en Munich, sino también en el pueblo (en la web "Garching bei München").

Una vez se ha conseguido una cita, pues a ver la habitación. Las habitaciones y los pisos en general están genial, así que lo realmente importante es ir a conocer a la gente y que ellos te conozcan. Ahí evidentemente las primeras veces uno se pone nervioso, pero tras un par de "entrevistas" le coges el tranquillo. Por supuesto, creo que no haría falta decirlo pero por si acaso, hay que ser uno mismo ;)

Por último, tomárselo con calma, ¡no desesperarse ni deprimirse! Es normal que se tarde bastante, hay muuuchos candidatos a cada habitación. Aprovechar para pasarlo bien, conocer a gente en los albergues (algunos también buscando piso) e ir viendo la ciudad. Si, como yo, no se encuentra nada a la primera, pues a retirarse estratégicamente durante el Oktoberfest y volver con más ganas a principios de octubre :D

Yo por suerte, he aprovechado las amistades hechas en la primera ronda y voy a llegar a ver el Oktoberfest este año, alojándome dos días en el piso de un chaval que conocí en el albergue y tuvo la suerte de encontrar habitación en Garching. Luego para no abusar, otra vez al albergue a seguir buscando.

¡Seguiré informando!

Thursday, August 13, 2009

Microsoft WGA y la seguridad.

Microsoft se preocupa porque sus usuarios estén seguros y no usen software pirata. Y sobre todo se preocupan por su bolsillo, pa que nos vamos a engañar. Y ojo, esto no me parece mal, son una empresa y no una ONG y su objetivo es ganar dinero.

Lo que pasa es que como para ganar dinero hagan cosas como el WGA lo llevan claro. Para bajarse el DirectX SDK por ejemplo, hace falta pasar el test del WGA. Lo primero, (por el bien de los usuarios, será) el modo de validación es un control ActiveX... en una página http. Así de primeras, ya puede venir alguien y hacernos todo el lío sólo por intentar validar el software. Como los ActiveX no me gustan ni un pelo, y con origen desconocido pues casi que menos (entre otros motivos...), decidí buscarme la vida. Y por buscarme la vida me refiero a una consulta a google:


Lo lógico sería que la URL que aparece, tan aleatoria ella, fuera un link de un sólo uso para algún cliente que en su día pasó el test del algodón. Pues casi. Yo lo dejo para que veais que pasa. Será que buscar en google es sinónimo de pasar el WGA, porque mientras escribo esto se están bajando los 500+ MB de DX9...

Saturday, August 8, 2009

Seguridad en PHP

Muy buenas a todos! ¿Que tal va el verano? Después de un mes de Julio sin posts, empiezo con algo ligerito, ya despotricaré más tarde.
Via el sobresaturado developerworks de IBM, he encontrado un buen artículo que nos recuerda las bases de seguridad a la hora de programar en PHP, que muchas veces nos ponemos a tirar código y pueden pasar cosas malas.

Tuesday, June 30, 2009

Intel & Linux: algo no termina de funcionar

Antes de nada, quiero decir que me parece muy bien por parte de Intel hacer sus drivers de código abierto: desde un punto de vista filosófico, no hay nada que reprocharles. Pero a efectos prácticos, la cosa cambia. Para que luego la gente se extrañe de porqué linux no triunfa en el desktop.

He tenido cuatro portátiles, 3 de ellos con graficas Intel (uno con nVidia) y 3 de ellos con wifis Intel (uno con atheros). El primero, tenía una gráfica 945 y una wifi 3945. Con la gráfica nunca tuve grandes problemas, pero la wifi era mejorable. El driver ipw tenía la desventaja de necesitar un blob binario corriendo de demonio pero a cambio funcionaba todo. El nuevo, el iwl que sigue hasta hoy, no conseguía manejar el LED de conexión. Una desventaja menor, aceptamos pulpo.

El siguiente tenía la nVidia con una wifi 4965. La wifi funcionaba cuando quería y a veces había que cargar y descargar el módulo para que volviera a la vida, otras veces habia que dar 3 vueltas en sentido contrario a las agujas del reloj saltando a la pata coja y cantando el aserejé. La nVidia también era como para darle de comer aparte, pero eso si acaso lo dejo para otro día.

Luego viene el mini-chisme de 150€, con su tarjeta 950. Extrañamente, este va muy bien e incluso uso compiz fusion sin ningún problema. Vaya, no puedo decir nada malo de este. Pasemos al siguiente.

Flamante ThinkPad X200s de Lenovo. La leche de máquina: Gráfica x4500 y wifi 5300. Con el kernel 2.6.27 a veces no conseguía despertarse de suspensión, pero encontré por internet un workaround que desactivaba un core al suspender y con eso se solucionó todo. El tema gráfico daba penita, la gente del kernel y la de xorg no se pusieron de acuerdo y unos quitaron un subsistema antes de que otros estuvieran listos para usar el nuevo. Increíble pero cierto. Con el kernel 2.6.28 ya no hacía falta ni el workaround y el tema gŕafico mejoró. Fue el momento de gloria, todo funcionaba y era estable. Los kernels 29 y 30 trajeron muchas novedades, oh alegría y alboroto. Que si kernelmodesetting para el tema gráfico, que si selección de frecuencias para la wifi en función del país... y todo a la mierda.

El modesetting funciona a veces. La suspensión sí, es mucho más bonita y rápida (cuando funciona), pero al volver o no se puede cambiar de consola virtual, o se reinicia el xorg, o se pone a llover en la calle.

La wifi en en 2,4Ghz va bien, pero en 5Ghz es un show. Para que funciona hay que aplicar un algoritmo primo del del aserejé (que raro queda, dos "del" seguidos...). Hay que establecer el pais de la tarjeta ("iw reg set ES"), desconectarse de la wifi, por algun medio (por cable o por la wifi 2.4) cambiar el canal del router, 36 a 44 por ejemplo y luego conectarse. ¡Bien, hay wifi! Si, pero sólo hasta la siguiente desconexión, ya sea se suspenda el portatil, se apague, o se conecte a otro punto de acceso. A partir de ahí, la wifi se conecta, recibe IP por DHCP pero empieza a ignorar los ARP entrantes. Para que vuelva a funcionar, no queda otra que volver a ejecutar el algoritmo maravilloso descrito arriba.

De bonus, el consumo del portátil en batería ha aumentado de 6,3-6,5W a 7,5-7,7W, sin motivo aparente.

Ojo, lo del tema gráfico quizá sea cosa de Xorg y no del kernel, pero al fin y al cabo es Intel la empresa responsalbe. El tema de la wifi y del consumo evidentemente es cosa del kernel. Yo me rindo y me vuelvo al único kernel que vale la pena hasta la fecha, 2.6.28. Si alguien quiere intentar otras cosas, parece que hay soluciones por ahí.

Señores de Intel, no digo que no hay que implementar nuevas funcionalidades, pero por favor, marquen como estables sólo aquellas que realmente son estables. Y por último, no es por ser impaciente; pero si tienen unos drivers para Windows que funcionan, tienen las especificaciones del hardware a su disposición y al menos decenas de voluntarios capaces en internet, ¿por que narices tardan tanto? Nunca he sido desarrollador de sistemas, pero a ojo me parece que una sola persona trabajando a tiempo completo durante un mes debería ser más que suficiente para solucionar cada problema. Sin embargo los gráficos llevan rotos más de 6 meses. ¿¡WTF!?

Tuesday, June 16, 2009

Redes sociales

Hasta hace poco no usaba nada las redes sociales, por ninguna razón en particular, simplemente no tenía interés en ello. Medio por obligación me hice cuenta en tuenti y facebook.

Tuenti la verdad que me parece demasiado simple y apenas lo uso, dos veces por semana miro a ver si veo algo que me llame la atención y cada vez menos. Mensajes de estado, fotos, comentarios publicos y poco más.

Facebook sin embargo me parece mucho más interesante, en gran parte gracias a que es muchisimo más completo. La funcionalidad de tuenti es sólo un pequeño subconjunto de lo que ofrece: hacerse fan de cualuiqer cosa, compartir links, videos, hacer publico el perfil con una url, aplicaciones, grupos, integración con youtube, filckr (que (aún) no uso), google reader... en fin, está bien para pasar el rato.

Lo que sí me ha parecido más útil de manera práctica es twitter. Resulta que en GMail esta tarde me desapareción una de las opciones labs más interesantes: poner por defecto "contestar a todos". Buscando en google salían resultados "relevantes", si, pero de hace meses/años. Se me ocurrió mirar en twitter, y los resultados fueron instantaneos, decenas de personas comentando lo mismo: algo habían hecho en GMail y le había desaparecido a todo el mundo. Convencido de la utilidad, vencí la pereza y me hice una cuenta.

El problema es: qué de sitios, ¿no? Hay que hacer limpieza. Por suerte, eso es fácil. Tuenti se margina, facebook se mantiene y twitter se integra en facebook y en GMail. Sencillo, bonito y eficiente.

Tuesday, June 2, 2009

Viva el progreso.

Alucinante. Si hubiera existido esto hace tan sólo 4 años, aprobar cálcuclo y análisis hubiera sido un juego de niños. No sólo resuelve integrales de manera simbólica, sino que te dice los pasos... ¡en tu navegador! Viva Wolfram|Alpha

Sunday, May 31, 2009

Redescubriendo la Biblia

Yo creyendo que la Biblia es "ese libro grodo y aburrido", y resulta que tiene sus puntazos. Uno hasta se acaba preguntando quién es realmente el malo de la peli ;)

Wednesday, May 27, 2009

Erasmus München / Munich 2009 - 2010

Por si alguien se topa con esto, aquí dejo enlaces que pueden ser útiles a la gente que va de Erasmus a Múnich ahora en octubre. Nada que google no pueda encontrar, pero nunca se sabe:

http://www.erasmusworld.com/portal/modules/newbb/viewtopic.php?viewmode=flat&topic_id=35398&forum=37
http://www.facebook.com/group.php?gid=33504104404
http://www.facebook.com/group.php?gid=175314195257j
http://portal.mytum.de/international/index_html_en (obviamente)

Si me cruzo con alguno más, actualizaré :)

Sunday, May 24, 2009

Subtítulos en las bandas negras con mplayer

Pequeño truco para mplayer. Casi todas las películas/series vienen un un formato más panorámico que las pantallaas de los ordenadores. Las pantallas suelen ser 16:10 y el contenido como mínimo 16:9 y hasta 2,35:1., lo que conlleva las famosas barras negras por debajo y por arriba de la imagen. Y cuando las pelis están en otro idioma y hace falta subtítulos, éstos aparecen encima del video, tapando partes de la acción, ya que las bandas negras es algo que el reproductor no gestiona, por tanto no puede dibujar ahí.
Para optimizar un poco y aprovechar las bandas negras para mostrar los subtítulos, existe una opción de mplayer que viene como anillo al dedo: filtro de vídeo expand. Esta opción hace que el mplayer dibuje de manera forzada más imagen de la que viene en el archivo, creando bandas negras a la fuerza, pero ya que las crea él, puede dibujar en ellas y por tanto mostrar ahí los subtítulos. La sintaxis es la siguiente:
$ mplayer -vf expand=0:-70:0:0 nombre_archivo

Con esto se crearía una banda de 70 pixeles debajo de la película, con lo que se haría hueco para subtítulos pero el video quedaría desplazado hacia arriba al ponerlo a pantalla completa. Para evitar eso (si hay espacio de sobra), se pueden poner 70 pixeles por debajo y por arriba con:
$ mplayer -vf expand=0:-140 nombre_archivo

En caso de usar smplayer (recomendado), basta con ir a Opciones->Preferencias->Avanzado->Filtros de vídeo y ahí escribir "expand=opciones_desadas", sin el vf ni espacios (ni las comillas).

Friday, May 22, 2009

Wifi 5GHz en Linux

Hace poco comenté sobre un problema con la wifi en linux, en el "nuevo" kernel 2.6.29. Pues parece que el problema es la configuración de país de la tarjeta. Cada país tiene una lista de frecuencias en las que se permite emitir sin licencia, y que se usan para (entre otros) las redes inalámbricas. Pues bien, entre las versiones 28 y 29 del kernel, cambió el modo de administrar este ajuste y as cosas dejaron de funcionar, hasta el punto de que ni me detectaba la red 5GHz del punto de acceso.

La solución: decirle que estamos en España (o el país que sea... ¡yo no me hago responsable!):
# iw reg set ES

Y voilá! Problema arreglado, ya funciona con normalidad. Para que sea permanente, lo mejor es añadirlo a "/etc/rc.local", para que se ejectue cada vez que se enciende el ordenador.

UPDATE: por desgracia, esto sólo resuelve el problema de no ver los puntos de acceso. El problema de "semiconexion" sigue presente. A ver cuendo sale el 2.6.30.

Sunday, May 17, 2009

Wireshark sin root

Todo el mundo recomienda ejecutar wireshark sin privilegios de root, lo cual es lógico. Según la propia web, son un millón de líneas de código analizando datos potencialmente maliciosos. Suena lógico, pero por desgracia para capturar tráfico hacen falta privilegios de root.

Así que para usar wireshark hay dos opciones:
  • Arrancar un tcpdump o dumpcap como root, guardar el resultado en un archivo y ejecutar wireshark como un usuario sin privilegios. Bastante incómodo pero efectivo.
  • Permitir a un usuario capturar tráfico. O más general aún, a un grupo de usuarios. Así, cualquiera en ese grupo puede arrancar wireshark y ponerse a capturar tráfico sin más molestias. Normalmentee esto se haría ajustando los permisos del dispositivo en cuestión, como el caso de /dev/sdX para los discos duros, pero las interfaces de red por desgracia no parecen tener estaa opción (hoy en día, en algún sitio leí de dispositivos /dev/tcp, pero me lo puedo estar inventando). La solución es la siguiente:
  • # which dumpcap
    /usr/bin/dumpcap
  • # chmod 750 /usr/bin/dumpcap
  • # chmod +s /usr/bin/dumpcap
  • # chgrp GRUPO_CAPTURA /usr/bin/dumpcap
Y cualquier usuario del GRUPO_CAPTURA (por ejemplo, wheel) puede inicar wireshark normalmente y empezar a analizar tráfico en vivo.

Tuesday, May 12, 2009

Historia de la programación

Gracias a Barrapunto llegué a este genial resumen, lleno de mala leche, de la historia de los lenguajes de programación. Según el autor es "en su mayor parte erróneo", pero yo diría que simplemente "no es literal".

Para quien lo prefiera en español, una traducción.

Monday, May 11, 2009

No Review de Arch Linux

Igual que quise en su momento hacer una review del ThinkPad X200s, pero dado que salieron 10 o 15 por internet lo dejé, también pensé en hacer una de Arch, mi "OS of choice" (¿como cohones se traduce eso? ¿mi SO elegido? hmmm).

Pero voy a hacer lo que hacen los grandes programadores: reusar código. En este caso, reusar reviews.

Aquí una review concisa, aquí uno que se queda a gusto despotricando y aquí para los que tengan mucho tiempo libre y quieran seguir leyendo.

Mi recomendación: si te gusta Ubuntu, prueba Mandriva. Si te gusta Debian, prueba Arch.

Sunday, May 10, 2009

Best plasmiod evar

Haciendo un repaso a mi KDE, aparte de cambiar de wallpaper he rescatado el que para mí es el mejor widget de KDE4: Command Watch. Lo que hace es super simple: ejecuta un programa de consola y muestra la salida, ya sea en el escritorio (para esto conky es mejor) o en el panel, donde más se puede aprovechar. El intervalo de actualización es configurable asi como el tipo de letra, no tiene mucho más. Muy estilo conky. A partir de ahí, cada uno decide qué le interesa. Los comandos más obvios serían del tipo "uptime", o "tail /var/log/loquesea", pero tampoco hay que descartar algo de creatividad/frikismo, como echo "IP $(ifconfig wlan0 | grep "inet addr" | sed -e 's/.*inet addr:\([^ ]*\).*/\1/') SSID: $(iwconfig wlan0 | grep "ESSID" | sed -e 's/.*ESSID:"\([^ ]*\)"/\1/')", por ejemplo. El uso que le doy es principalmente como "conky para el panel".

Ya lo usé en KDE4.1 pero con la versión 4.2 desapareció, seguramente por un problema en el archivo de cmake, que por lo que he visto en el hilo de discusión se ha tenido que adaptar para que compile. El proceso de compilado por cierto, es bastante mas enrevesado de lo común, y desde luego nada intuitivo. Detalle de menor importancia para un widget genial.Enlace

Friday, May 8, 2009

urpmi vs DNS

Curioso fallo de urpmi, el sistema de paquetes de Mandriva. No sé si es debido a que es un entorno virtual, pero sería muy raro, dado que el resto de programas funcionan bien, urpmi es el único que falla.

El caso es que si el servidor DNS primario no es accesible, urpmi se queda esperando indefinidamente. No ignora EL servidor secundario, ignora AL servidor secundario, que es distino: le hace la query, pero pasa de la respuesta.

Solución: si urpmi se queda colgado, poner como servidor DNS primario uno que funcione.

Wednesday, May 6, 2009

Mandriva 2009.1

Hace poco salió la nueva versión de Mandriva y dado que anunciaban mucho su soporte para netbooks, decidí probarla en mi Acer Aspire One. Para los que tengan prisa, veredicto: pse, no es gran cosa.

Lo primero es la instalación. Mucha publicidad y mucha tontería, pero casi en ningún sitio hay nada concreto. Al final, tras mucho googlear, leí en una lista de correro que lo que significa que la iso sea "hibrida" es que se puede hacer un dd de la iso al pendrive y funciona. Es impresionante que poniendo "Mandriva install from USB" en google todo lo que salga sean cosas de 2007. Un SEO pésimo, no tengo ni idea como una empresa comercial puede hacerlo tan mal. Uno normalmente no aprecia que Arch o Gentoo son una delicia en estos aspectos.

Segundo, el funcionamiento. No voy a decir que va mal, pero tampoco se notan las "optimizaciones". Es cierto que lo unico que tengo para comparar es Arch que va como un tiro, así que digamos que aceptamos barco. El firefox va bien, incluso compiz no deja nada que desear. Eso en cuanto al rendimiento. En cuanto a la adaptación a un netbook, la cosa está muy malita:
  • No ofrece ningun programa para comprobar/grabar con la webcam.
  • No trae skype preinstalado NI TAMPOCO EN LOS REPOSITORIOS. Hay que ir a la pagina de skype y bajarse el rpm correspondiente. Alucinante.
  • El botón de suspendido no funciona por defecto.
  • No trae absolutamente ninguna aplicacion de "menu para netbooks".
Resumiendo: eso de "optimizada para netbooks" significa que han probado que el netbook no muere al instalar Mandriva, punto pelota. El sistema final es un Mandriva normal y corriente, ni punto de comparación con ditros tipo eeebuntu, REALMENTE optimizadas y diseñadas para miniportatiles.

Nota aparte: Lo que si que funciona de maravilla es como sistema para ser virtualizado. En virtualbox detecta automaticamente el entorno y carga las herremientas de integración ya en el LiveCD, a diferencia de openSUSE que hay que montar un jaleo enorme para ello. Eso sí que lo han hecho bien, y lo gracioso es que en ningún sitio lo anuncian.

Un cero para los de marketing, un 6 para los desarrolladores.

Sunday, May 3, 2009

Regresiones en el kernel de linux: iwlagn

No sé si mi caso es especial, porque no he encontrado nada parecido por Internet, pero con el kernel 2.6.29 he dejado de poder conectarme a la wifi, en concreto a la de 5GHz. Hay algún bug relacionado con WPA2, pero en mi caso da igual el cifrado, depende únicamente de la frecuencia. Tanto con el 2.6.28 como con Windows, el tema funciona, así que definitivamente no es culpa del AP. Lo más gracioso de todo es que sólo falla parcialmente: es capaz de solicitar y recibir una IP por DHCP e incluso responder peticiones ARP, pero no es capaz de ver las respuestas a las peticiones ARP propias. Los dejo aqui por si alguien más tiene este problema, que no se rompa la cabeza buscando qué es lo que hace mal. Más tarde abriré un bug en el bugzila del kernel, a ver que me dicen.

Actualización (2009 May 20): La solución no es difícil.

Saturday, May 2, 2009

Aprendiendo al estilo Matrix

Por alguna extraña razón, mi lenguaje favorito es C. Por supuesto, aprecio las enormes ventajas de Java, PHP y demás, pero cuando realmente me siento en casa es cuando hago mallocs, sumo chars con enteros para conversiones, manejo cualquier tipo de dato como puntero, etc. Y aunque el mundo ha relegado a C a un segundo plano dejándolo sólo para programación de sistemas y aplicaciones en sistemas limitados, tipo microcontroladores, C no ha muerto.

Me acuerdo aún en el instituto, estudiando literatura, que había 3 tipos de vida: la vida terrenal, la vida eterna religiosa y el tercer tipo: la vida eterna gracias a la fama. Pues C tiene un nuevo tipo de vida eterna: la vida eterna gracias a la herencia (¡no hablo de objetos!).

Cualquier lenguaje "que se precie" (amantes de haskell abstenerse) hoy en día, a nivel sintactico es realmente un C un poco expandido. En los último días he tenido que hacer dos pequeños programas, uno en Java y otro en C#. En ambos era "mi primera vez" y en ambos tuve la misma sensación: con ver un ejemplo de código en internet me basta para hacer un programa sencillo que funcione. Por supuesto, llegar al "nivel maestro" con cada uno de ellos lleva años, como cualquier cosa, pero el nivel necesario para hacer un hola mundo o un bubble sort, se alcanza en cuestión de minutos, gracias a su enorme parecido con C.

Ahora tengo que hacer un proyecto para una asignatura de la carrera, y como tenía ganas de aprender python, he estado buscando cosas por google. A ser posible un cursillo/tutorial que me explique por encima todo el lenguaje sin enrollarse en cuestiones como qué es una variable, qué es un objeto y a qué hulen las nubes. Total, sabiendo C seguro que en nada lo domino ;)

Y en efecto. En el autobús volviendo a casa de la oficina y como siempre gracias a google, aprendí python. Me subí sin tener ni idea y me bajé con los conceptos claros. De aquí a Matrix sólo queda un paso.

Wednesday, April 29, 2009

Problemillas con ext4

Hace relativamente poco que ext4 esta en la rama estable del kernel, así que quizá sea por novedad o desconocimiento, o porque yo voy a mi bola, pero da algunos problemillas con Arch. En mi caso, al compilar un kernel se rompió todo el proceso de arranque.

El primer error fue por los UUID en el menu.lst de grub. Se puede hacer un workaround cambiando el UUID por el archivo de particion (sdxX). La solución correcta no la conozco aún, el problema suele darse con gente que no usa initrd, pero en mi caso todo parece estar bien... hasta que se intenta arrancar.

El otro problema lo da al intentar montar la particion de home. Por defecto (/etc/mke2fs.conf) al crear una partición ext4 se usa la opción "huge_file". Pero ya que no necesito trabajar con archivos de chorrocientos gigas, tengo desactivado el soporte de "archivos grandes" en el kernel (para este tipo de cosas uso kernel personalizado). Y esto efectivamente causa problemas. Pero la solución es fácil:
# tune2fs -O -huge_file /dev/sdxX
# fsck.ext4 /dev/sdxX
# mount /dev/sdxX
Y todo listo para funcionar!

En cuanto encuentre una solución limpia para el primer problema lo dejaré por aquí, lo mismo le sirve a alguien :)

Friday, April 3, 2009

Ay, debian, debian...

Hoy sí que toca despotricar. Y nunca creía que llegaría este día, pero esta vez le toca el turno a ¡Debian! Siendo mi primer "Linux de verdad" y el que mas tiempo he usado (ininterrumpidamente desde la 3.0 en un server, casi 7 años ya) le tengo un especial cariño, pero parece ser que últimamente todo se está yendo a la mierda en un intento por ser user-friendly.

El tema es que en un portátil con openSuse, el NetworkManager dejó de funcionar, lo cual por cierto no hace más que confirmar mi opinión sobre el "programa". Dado que el usuario principal del portátil no tiene ni idea de informática y no va a tocar absolutamente nada aparte de encenderlo y "poner el Internet", el sistema a usar es prácticamente indiferente, con tal de que funcione y no se rompa (lo cual elimina Vista, cualquiera con NM y potencialmente XP, por temas de virus, etc). Dado que Debian hasta ahora había funcionado perfectamente siempre que lo había instalado y el equipo era bastante antiguo (3-4 años, Centrino con intel 2200bg), no lo dudé y fui a bajarme la imagen de instalación.

- Primer FAIL: para instalarlo con un pendrive hay que leerse el howto, un README en el ftp y bajarse dos archivos distintos: la imagen USB y... ¡una iso de instalación!
- Segundo FAIL: la imagen USB que ofrecen al escribirse en el pendrive, crea un sistema FAT de 256 MB en el disco raiz, es decir sin particiones. Luego hay que montar el disco (qué raro se hace escribir "mount /dev/sdb /mnt/dest" en lugar de sdb1) y una vez montado, copiar en el destino la iso.
- Tercer FAIL: Una vez arrancado, no detecta NINGUNA de las interfaces de red de un sistema de hace 3 o 4 años, a pesar de tener una opción en el menú que dice explícitamente "detectar interfaces de red".
- Cuarto FAIL: en el paso de "buscar iso de instalación", busca la iso de instalación. Lo cual es gramatical y semánticamente correcto, pero yo lo que esperaba es que además, ENCONTRARA la iso de instalación, que está en la raíz del pendrive con el que ha arrancado. Por alguna razón que no me explico, busca en todos los discos duros y particiones del ordenador, pero no en el disco de instalación, con lo que evidentemente no lo encuentra. Por supuesto, aunque la instalación era en "modo experto", añadir un botón de "indicar la ruta manualmente" en caso de no encontrar la iso, era muy complicado. No vaya a ser que alguna abuela se líe. Tristemente, la filosofía GNOME se extiende por el mundo. User-friendly que te cagas.

Resultado: mandar a la mierda el invento de Debian, arrancar openSuse, arrancar Yast, mandar NetworkManager al agujero de donde nunca debió haber salido y sustituir en "/etc/init.d/network" por un script de 3 lineas que levante la interfaz, la conecte a la wifi y arranque dhclient para configurarla. Elegante no es, pero "el Internet funciona", que era el objetivo inicial.

Thursday, April 2, 2009

Me voy a Munich!

Aún no lo había anunciado aquí: me ha llegado la confirmación de que me han adjudicado una plaza para hacer el PFC en la Technische Universität München, lo que en España viene a ser la "politécnica de Munich".

Aparte de todas las ventajas de estudiar de Erasmus, la TUM está en todos los top100 de universidades, y en el top10 de universidades de ingeniería en Europa. Por no hablar de Oktoberfest...

Muy mal no me lo voy a pasar :)

Wednesday, April 1, 2009

Servicio técnico de Lenovo

Hoy es uno de esos días en los que no voy a despotricar contra nada, sin que sirva de precedente. De hecho todo lo contrario.

La historia emieza como las novelas policiacas: con una muerte. En este caso la del disco duro del Thinkpad. No se si justificada, por que aunque lo uso mucho no creo que le de tanta caña como para que el disco muera a los 2 meses... En cualquier caso, que le disco tuvo una muerta lenta y agónica. Primero al iniciar Vista (seamos buenos y demos por hecho que Vista esta vez no tiene la culpa) se empezaron a instalar unas actualizaciones, a velocidad superlenta. Luego se quedo pillado en 16% y al reiniciar daba error en todas las opciones. Al iniciar Linux daba error al montar la partición /home, de sector de superbloque dañado. Mal rollo. Intenté arreglarlo con el spinrite, pero tras dia y medio de forzar lecturas, el disco dijo basta y empezó a hacer unos clics muy poco saludables. En efecto, a la hora de arrancar la BIOS me da el pésame.

Pues a llamar a Lenovo. No tengo la transcripción exacta, pero la conversación fue mas o menos así:
- Buenos días, le atiende XXXX, ¿en que puedo ayudarle?
- Buenas. Verá, tengo un portatil Thinkpad y se le ha estropeado el disco duro, asi que quiero llevarlo a la garantía.
- Muy bien, deme sus datos de contacto.
- [Datos de contaco]
- Y necesito el "Type" y el "Serial Number" del portátil para verificar la garantía.
- [Datos del portátil]
- Me decía que falla el disco duro, ¿verdad? ¿Podría meterse en la BIOS y verificar el mensaje de error?
- El error es el 2100: initialization failed.
- Muy bien, parece que en efecto el disco duro ha fallado. ¿Le parece bien que le mandemos uno nuevo por mensajero a la dirección de contacto?
- Perfecto.
- En la caja le vendrán las instrucciones para enviar el estropeado de vuelta. ¿Alguna otra consulta?
- No, eso era todo. Muchas gracias.
- A usted, que tenga un buen día.

Tiempo total de conversación: menos de 3 minutos. Problema solucionado. Un 10 para IBM/Lenovo por el soporte técnico, así da gusto.

PD: aprovechando que este finde me he hecho cuantas en facebook y tuenti, he subido mi foto al perfil de blogger. Quién sabe, puede que incluso un día me presente y cuente algo sobre mí en el recuadro de "Acerca de mí". Quizás.

Friday, March 27, 2009

Energy management in Linux

Nota: este post es una continuación de este otro. Para más info, mirar ahí.
Note: this article is a follow-up of this one. Please take a look at it for extended info.
____________________________________________________

UPDATE: Check this post for related info.

I've been concerned about the energy consumption of my Thinkpad X200s for a while now. It's not that electricity is that expensive or I am sooo worried about global warming, it's more about squeezing the most out of the battery while trying not to damage it. My X200s has the 9cell battery which means 13 hours Lenovo-stated battery time. I'm going to use that twice in it's whole life. The point is in maximizing the long-time battery health. Lithium-ion batteries don't like to be deep-discharged too often, so my goal is to (almost) never let the charge drop below 20%. If someone only needs 2-3 hours of battery time and can charge it back to 100% after that, there is nothing to worry about. There is no way to burn 80% of the battery in that time with this laptop. Of course, if someone travels a lot and can't plug the laptop for a whole day, it makes sense to spend as few watts as possible.

Now, about battery life and energy consumption. Lenovo has made some serious effort to optimize the power drain in software and their Vista drivers are as of now unbeatable. In Vista, the minimum I've seen was 5.2W, in Linux 5.9W or 5.8W. Maybe 0.6W doesn't seem too much, but we are talking about more than 10% here! I've discussed this issue here with some folks, I recommend reading it.

First of all, use common sense. Don't expect 13 hours of number crunching, full-brightness video watching, usb-gadget powering or high-speed downloading. Turn down/off everything you don't use. If you are in a dark room, lower the screen brightness. If you are not listening to music, mute the volume. If you are, use headphones or set the volume a tad lower. Kill all the daemons you don't need. You got it, right?

Second point, my main source of info for all this stuff was this website. Follow all the steps you can. Make sure you have a tickless kernel. Turn on laptop-mode to spin down your hard drive when idle (ONLY if you have a SPINNING drive, you'll gain nothing if you have a SSD). Activate processor energy management and set the cpu frequency governor to ondemand or conservative. When you are familiar with all the goals, keep reading.

Now we are going to get our hands dirty. I'll explain this things for Arch Linux, the exact configuration files / paths may be located in a slightly different place in you distribution, use "locate" command or google to find them.

- General powersaving settings, aka laptop mode: Install and then activate laptop-mode editing the file "/etc/laptop-mode/laptop-mode.conf". After that, check all the files in "/etc/laptop-mode/conf.d/*" and activate all the things you can. Except maybe cpufreq, I rather let cpufreqd do that job, it's much simpler. Start laptop-mode with "/etc/rc.d/laptop-mode start" and add it to your daemon list in your rc.conf file. In case you skip something here, I'll probably mention it anyway, but laptop-mode comes in handy for automating it.

- Cpu frequency scaling. I recommend using cpufreqd, it is very very simple. Install it, do a "echo ondemand > /etc/conf.d/cpufreq" and start the daemon as shown above, also adding it to the daemon list.

- Turn off the video outputs. It sounds weird, but with the xorg 1.5 and the old intel 2.4 drivers, the video chipset doesn't detect the outputs right and turns on HDMI. The newer xorg 1.6 and intel driver 2.6 didn't have this problem when I tried them, but check it anyway. You can do it with "xrandr". If you see a star ( * ) on some line, that output is active. Turn it off with "xrandr --output HDMI-2 --off". You should check again on restart.

- Turn down the wifi power. This is a real power hog, it can drain more than 1.5W doing nothing. The control file is "/sys/class/net/wlan0/device/power_level". With "echo 5 > file" you maximize powersaving. Obviously, "cat file" gives you the wifi status. I've noticed some misbehavior lately, if you are not connected and with some network manager daemon running, it keeps going back to level 0 (maximum power usage). I usually fix it with:
# killall wicd-manager
# /etc/rc.d/wicd stop
# killall wpa_supplicant
# ifconfig wlan0 up
# echo 5 > /sys/class/net/wlan0/device/power_level
# ifconfig wlan0 down
# cat /sys/class/net/wlan0/device/power_level

If the last command shows a "INDEX:5", it'll probably stay that way, but checking it some time later would be good. As usual, let a script do that for you. If it is not 5 but 0, repeat the previous 3 steps. If you are conncected to some network, it usually stays at level 5 without any issue after a simple echo.

- Turn off bluetooth if you are not using it. As easy as "echo disable > /proc/acpi/ibm/bluetooth". Sometimes it doesn't want to wake up again, try a "lsusb" after re-enabling it. Again, acpid is a great way to handle it, here is a chunk of my handler:
*1005)
if [ "$(cat /var/local/bluetooth)" = "disabled" ]; then
echo "enable" > /proc/acpi/ibm/bluetooth
echo "enabled" > /var/local/bluetooth
lsusb > /dev/null
logger "ACPI bluetooth on"
else
echo "disable" > /proc/acpi/ibm/bluetooth
echo "disabled" > /var/local/bluetooth
logger "ACPI bluetooth off"
fi
;;



- Turn on SATA link powersaving. This one is pretty straightforward: "for i in /sys/class/scsi_host/host*/link_power_management_policy; do echo min_power > $i; done". Once every power cycle. If you connect the power plug and disconnect it, only one link file will go back to powersave, so you have to execute it every time you go on battery. Acpid, again, is a great way to do that.

- Turn on PCIe powersaving. The control file is "/sys/module/pcie_aspm/parameters/policy". You can "echo powersave" to it to turn it on and "echo performance" to turn it off. As always, cat will tell you the actual status.

- Activate the sound auto-suspend. Echo the timeout to "/sys/module/snd_hda_intel/parameters/power_save". If you are not using the sound at all, mute it with the hardware button, just in case.

- This one may be VERY DANGEROUS. You can turn off the fan if you are going to do lightweight work and you trust your programs to be infinite-loop-free, so firefox is out of the question here. You have to load the thinkpad_acpi module with "fan_control=1" parameter and then manage the control file "/proc/acpi/ibm/fan". Again, "echo" stuff to set the fan on/off, "cat" to get info. I HIGHLY recommend to use the watchdog function and some script to make sure the processor won't melt. You can read the temperatures at "/proc/acpi/ibm/thermal", "/sys/class/thermal/thermal_zone*/temp" and "/sys/bus/platform/devices/coretemp.*/temp1_input", among others. Google is your friend ;)

- If hal is polling you nonexistent (on a X200) CD drive, kill it.

- If you are not using it, close firefox. The diffrerence may be 1W. If you plan on use it later, a simple "killall -STOP firefox" will do the trick. When you are going to use it again, "killall -CONT firefox". Bind it to a hotkey if you want.

- Also, "ifconfig eth0 down" sure doesn't hurt if you are not using the good ol' ethernet interface.

- Unloading modules doesn't usually work, but you may try it (and post a comment with your findings!). Some people unloads uhci, snd_hda_intel, or iwlagn. I haven't seen any difference trying, but your mileage may vary. You can also take one core of the cpu offline, but it seems to cause to actually consume MORE power than sitting idle. I haven't measured it myself, so if you do, please let me know! The control file is "/sys/devices/system/cpu/cpu1/online", 0 takes it offline, 1 brings it back to work.

- Last but not least: install and run powertop. It's a wise program. Follow it's suggestions. I use it to activate USB autosuspend and see which programs and wreaking havoc. Firefox, amarok2 and any java-based ones are on top positions, but some other programs may be broken and causing the processor to work more than it should. Knotify4 in KDE 4.1 had a 100Hz timer, for instance.

If I remember any other tweak, I'll post it here, stay tuned.

With all these tricks, brightness at minimum, everything off and doing _nothing_, the X200s drains 5.8W. With wifi on, brightness 5/15, browsing and programming (without heavy compiling), it goes at around 6.5W. On full brightness, no wifi, just above 7W. Full brighness + wifi it's under 7.5W. You have to do some pretty heavy stuff to take it above 10W, watching HD movies at full volume and brightness will do it, but anyway, at 10W the battery still lasts more than 8 hours. If you want me to try any specific combination, let me know.

Finally, for more info, try these:
http://www.nabble.com/X200-Battery-Life-td20188937.html
http://www.nabble.com/Linux-Thinkpad-f13633.html
http://www.mail-archive.com/ibm-acpi-devel@lists.sourceforge.net/
Or ask a question in the comments.

Tuesday, March 24, 2009

Energía nuclear

Un tema algo offtopic respecto a la temática habitual, pero que me ha parecido muy interesante: las centrales nucleares.

Leo un post a favor de la energía nuclear digno de leerse y sobre todo (como pasa muchas veces) los comentarios tras el artículo. Antes de nada, aviso que de elegir una postura me inclino más hacia el pro, así que cualquier cosa que diga podría estar condicionada....

Lo más llamativo me ha parecido las menciones a las centrales nucleares de torio, que parecen tener muchas ventajas sobre las de uranio y la mención de las termosolares de 50MW, que parecen una alternativa viable económicamente ya a día de hoy. Aunque me ha hecho gracia que los anti-nucleares critican con dureza la "hulla cero de carbono" de las nucleares mencionando la maquinaria de extracción de uranio, etc, pero casi nadie se da cuenta de que una "huella cero" es imposible. Incluso las energías renovables generan CO2, si no, ¿cómo se extrae el acero para hacer molinos? Pero vamos, no es nada raro, teniendo en cuenta que tumbarse a tomar el sol produce dióxido de carbono, a menos que uno se aguante la respiración.

En fin, recomiendo leer el debate para sacar ideas y fuentes de información, pero desde luego yo tendría que mirar las cifras con lupa antes de dar una opinión definitiva. ¿Cuántos molinos harían falta para satisfacer la demanda con garantías? ¿Que superficie ocuparían? ¿Cuantas centrales solares harían falta? Cuanto costaría construirlas todas? Etc, etc...

En principio está claro que el futuro son las renovables, pero a día de hoy me parece a mi que para ver la tele mientras se calienta la cena en el microondas hay que ceder y dejar el idealismo para las charlas con los amigos. Eso sí, espero estar equivocado y que pronto seamos una raza ecológica, verde y feliz y podamos dedicarnos a oler las flores por el campo mientras unos robots trabajan por nosotros. Robots ejecutando linux, eso por supuesto.

Tuesday, March 17, 2009

Collección vacía en amarok 2

Dejo esto aquí por si le sirve a alguien:

Si el amarok 2 os vacila y la "colección local" os sale vacía a pesar de indicar bien la ruta, seguramente sea un problema de dependencias, en concreto base de datos. Según este hilo hace falta mysqle, por lo que con instalar el paquete que lo proporcione debería funcionar de nuevo.

En Arch, usando kdemod (paquete kdemod-extragear-amarok) esto se resuelve instalando "kdemod-playground-mysqle".

Friday, March 13, 2009

Sarcasmo vs Discograficas

Seguro que casi todo el mundo lo conoce, yo mismo ya lo había leído, pero me sigue haciendo la misma gracia que la primera vez que lo leí, así que para el viernes una dosis de humor:

http://thepiratebay.org/legal

Algunas contestaciones son geniales; otras menos buenas, con un simple "que te den", pero todas merecen leerse.

Thursday, March 12, 2009

Wireless en Linux y Windows

Algo que ya he comentado en alguna ocasión es mi profundo odio hacia NetworkManager y su forma GNOME de hacer las cosas. Ahora uso wicd en todos mis equipos y la verdad es que comparado con NM funciona estupendo, pero en general sigue teniendo muchos fallos. Al menos usa ficheros de configuración en texto plano en "/etc/wicd/*.conf" y permite el uso de scripting, con lo que a las malas es posible ignorar la lógica de wicd y usarlo como una gui para scripts propios.

Lo que mejor funciona suele ser la línea de comandos, y por tanto los scripts suelen ser bastante fiables, pero parece ser que el progreso de la tecnología no lo llevan demasiado bien.

Hace unas semanas me compré un modem/router con soporte para 802.11n, en concreto el Belkin F5D8635. Aparte de que el modelo sin modem tiene switch gigabit y este no, mi portatil no conseguía conectarse a la wifi si se dejaba el modo N activado, sólo si desde la interfaz web se ponía "802.11g only" o "b/g". Temiendo que fuera un tema de drivers, ya que era mi primer contacto con una wifi N, me puse a indagar.

El comando "iwconfig" no ayuda mucho ya que muestra un bitrate de 54Mb/s o como mucho 60Mb/s. Un escaneo con iwlist scan tampoco ayuda, ya que no muestra por ningún lado que la wifi sea N o que llegue a los 270/300 Mb/s anunciados. Buscando más, resulta que hay un nuevo comando, "iw", que parece que va a ser el nuevo estándar, como el comando "ip" para la gestión de red. Igual que ip sustituye a ifconfig, route, etc, iw sustituirá a iwconfig, iwlist, iwpriv, etc. Para el caso da lo mismo ya que "iw list" tampoco muestra más de 60Mb/s. Desde luego algo raro es, ya que es más de los 54mbits de 11g, pero no deja muy claro qué es lo que significa.

Tras intentar todo lo que se me ocurrió, decidí devolver el router como defectuoso y comprar otro. Esta vez busqué por internet alguno que tuviera de todo:
  • 802.11n (indispensable)
  • Radio de 5GHz (importante, para evitar interferencias de hornos microondas, walkies, bluetooths, las mil wifis de los vecinos....)
  • Posibilidad de meterle Linux (importante)
  • Modem ADSL
  • Puerto USB para discos
  • Switch gigabit
Dado que ninguno cumplía con todos los requisitos acbaé comprando en pixmania el Linksys WRT610N, que tiene de todo menos modem ADSL, pero además puede usar las bandas de 2,4GHz y 5GHz a la vez, dado que tiene 2 radios.

Con el WRT610N sí que me pude conectar a la wifi en modo N, tanto en 2,4 como en 5 GHz, pero con resultados un tanto decepcionantes. Pra las pruebas conecté el X200s a la wifi a 5 GHz, para evitar cualquier tipo de interferencia de la banda de 2,4. Ejecutando como root "ping -f -s 20000 192.168.1.1" me daba una velocidad por debajo de 3,5MB/s. Teniendo en cuenta que con 802.11g me daba por debajo de 2MB/s, supone un rendimiento de apenas el 170%, cuando supuestamente debería dar un 600%.

Dejando el ping a un lado, ya que peude estar limitado por la CPU del router, conecté mi AspireOne por cable y me baje un fichero grande del servidor web en la wifi. Nada, los mismos 3,5MB/s. Para descartar un posible cuello de botella en la ethernet del Acer, conecté el server al switch, esta vez gigabit (el Acer es 10/100). Repetí la prueba y dió unos más que decentes 11,2MB/s, casi el límite teórico de una ethernet 100Mbps, así que la tarjeta del Acer estaba perfectamente.

Tras esta decepción pensé durante un rato alguna otra soulción, puesto uqe había leído por internet que la gente le sacaba 110Mbps al router y yo no llegaba ni a 35. Probé en el otro sentido, ya me sonaba que podía ser asimétrico, aunque no debería. El problema es que no estaba por la labor de instalar un apache o ftpd en el Acer sólo por probar, así que tocaba recurrir al ingenio:
# dd if=/dev/urandom of=/tmp/test bs=1M count=80
# pacman -S netcat
# nc -l -p 8080 -e "cat /tmp/test"

Y problema solucionado, ya tenía un servidor escuchando en el puerto 8080. Elegí usar urandom y no zero por evitar el uso de cualquier compresión a cualquier nivel, por si acaso. Y dado que el AspireOne tiene discos SSD que parece que son tirando a lentillos, /tmp era una punto de montaje tmpfs, es decir, en RAM.

Resultado: unos consistentes 7MB/s, oscilando entre 6,85 y 7,1. Ya era una gran mejora, aproximadamente un 400% del rendimiento de una wifi 802.11g. Pero por un lado no llegaba ni a 70Mbps y por otro seguía siendo asimétrico, como si en la subida no se usara canales de 40MHz.

Como no perdía nada, arranqué Windows Vista. Sí, sigo quieriendo demostrarme a mi mismo que no es tan malo. Y esta vez el Windows se portó bastante mejor que Linux. Para empezar, tanto Windows como la herremienta de Lenovo detectaron y listaron la wifi como 802.11n, sin lugar a dudas. Luego, tras conectarse sin problemas ni "glitches", me bajé el wget para windows para uniformizar el software y repetí la prueba. El resultado fue agridulce, pero dificilmente por culpa de Windows: la transferencia superaba los 10MB/s, llegando en ocasiones a medias de 11MB/s, pero a veces la conexión se caía por varios segundos o incluso una vez por minuto y medio, como si algo por el camino se saturase. Y dada la cercanía con los 100Mbps podía ser bien el Acer o bien el router. En todo caso, el rendimiento de la wifi en Windows parece ser sensiblemente mejor que en Linux.

Deberes para casa: echarle un vistazo a compat-wireless y repetir el benchmark de la wifi a ver si mejora el rendimiento con drivers "experimentales", aparte de buscar el culpable de la inestabilidad de la la wifi a altas velocidades.

Sunday, March 8, 2009

Mensajes en el login en linux

Hoy un post informativo/note-to-self, sin criticar nada. Para variar un poco.

Hace tiempo que tenía una tare en mi TO-DO: personalizar un poco los mensajes que dan mis ordenadores al loguearse. Todos mis equipos capaces de conectarse a una red (PCs, moviles, videoconsolas...) tienen nombres de sondas espaciales. Mi primer PIII 450MHz fue sputnik y por ejemplo mi portatil principal es ranger. La idea que tenía es que al loguearse saliera un mensajito con un resumen de "la vida y obra" de la sonda en cuestión, distinto por supuesto para cada máquina. Si bien cualquiera (eso espero) sabe de que se habla si se menciona el sputnik, si hablamos de explorer, vanguard, venera o transit la cosa cambia. Y al final de tanto nomre hasta yo mismo me olvido y no me viene mal refrescarme la memoria con un mensajito. Para esto en linux hay dos opciones: mensajes antes o después del login.

Antes del login se muestra el archivo "/etc/issue" si es login local, y si es por red (ftp, etc) se intenta primero "/etc/issue.net" si existe. En caso del login ssh, hay que decirle la ruta a sshd en "/etc/ssh/sshd_config" poneindo la ruta del archivo a mostrar en la variable "Banner". En el issue se suele poner un mensaje cortito identificando la máquina/sistema operativo.

Para que el mensaje se muestre una vez validados user y pass, el mensaje va en "/etc/motd", acrónimo de message of the day. Aquí es donde va el mensaje gordo, más que nada porque al ponerlo en issue, se podría hacer un ataque DoS por medio de logins fallidos, dada la asimetría del ADSL (no es el ataque más efectivo pero prudencia nunca hay poca).

Si alguien quiere logins más divertidos tiene muchas opciones. En polishlinux explican los programas cowsay y figlet para un poco de ASCII-art. Otro clásico es fortune, un programa que saca citas aleatorias, normalmente de fráses célebres o gracias de series de TV.

Y para opciones más serias pues se pueden meter avisos de discos a punto de llenarse, errores del log... sólo hace flata meter un script en cron que actualice el motd con la info deseada, eso es cuestión de cada admin, para gustos los colores.

Wednesday, March 4, 2009

OpenWrt en Fonera 2200

Me he quedado sorprendidísimo con FON. Monstando la instalación de red de la casa he decidido desempaquetar una fonera que llevaba año en la estantería tal como la trajo en mensajero. Como suponía, era el modelo 2200, que se alimenta a 7,5V y 1A (las otras iban a 5V, 2A) y dicen que se calienta mucho menos y tal. También me sonaba que la revisión del firmware en estas era más nueva, con lo que ya no funcionaba mi método favorito para abrir el ssh, usando script injection en un formulario web.
instrucciones
Volviendo a la página de los alemanes que sacaron todos los ataques busqué el kolofonium, que por lo visto funcionaba con solo cambiar el DNS y ellos usaban un RADIUS trucado para abrir el ssh. Dicen en la web que loguean la IP y la MAC de cada fonera que desbloquean, lo que no me hacía mucha gracia. También era un método que dependía del servicio de terceros y dado que es de hace unos años podía estar ya retirado, pero aún así lo intenté. En la web tienen estadísticas hasta de enero de 2009, así que puede que aún funcione. Renicio, espero, resultado: FAIL.

Sigue sin haber ssh. Enruto la fonera a través del portátil y arranco el wireshark. Bien, le problema está claro. La fonera intenta bajarse el heartbeat.php y el falso download.fon.com que tienen montado contesta con un 403. Mal asunto. Intercepto el puerto 80 de su servidor y me hago un hearbeat.php que devuelva vacío. No le gusta. Pues uno que devuelva "OK". Le gusta. Por curiosidad miro el original de fon.com. Devuelve "OK". Que originales somos los informáticos.

Bien, sigamos con el kolofonium... sin suerte. Otra vez wireshark, el RADIUS contesta con un ICMP de port unreachable. Maaaal asunto. Para comprobar el puerto de RADIUS (1812 UDP) pruebo un:

# nmap -sU -p U:1812

Y efectivamente que está cerrado. Estupendo, el RADIUS de kolofonium está caído, y por lo visto ya no está mantenido.

Busco por google, nada alternativo. Busco en la pagina de OpenWrt y dicen que ¡el RedBoot está activado por defecto! Ojo, la IP cambia de 192.168.1.254 a 192.168.1.1 aunque el puerto sigue siendo el 9000. Instalo putty para linux, arranco la fonera y ¡BINGO! Me bajo la última versión estable, flasheo según las instrucciones para la versión 2100 (en la wiki avisan que valen para la 2200, no era por jugar a la ruleta rusa) y ¡voilá! OpenWrt en la fonera funcionando perfectamente. O casi. Para ponerla en modo cliente+ap no vale con editar la configuración, hay que hacerlo más a mano, pero eso lo dejo para otra entrada.

El sistema ha mejorado mucho mucho desde la última vez que lo probé. Ahora ya funciona el led de la wifi, el de power es controlable por software desde "/sys/class/leds/gpio7/brightness", funciona el watchdog, la configuración del sistema es bastante más ampila, pudiendo personalizar el reset... en fin, merece la pena probarlo.

Si alguien tiene alguna duda, estaré encantado resolverla. Los scripts para el modo cliente+ap los pondre cuando estén terminados del todo.

Volviendo al tema del principio, me he quedado alucinado con fon. Al principio se tomaban tantisimas molestias por evitar que la gente trastee con el router y ahora lo dejan abierto para flasheos... aunque viendo su historial lo sería nada raro que fuera otro agujero de seguridad, jejeje.

Tuesday, March 3, 2009

Post 100!

Conociendome, creí que nunca llegaría a las 100 entradas en el blog, así que esto ya se puede considerar todo un éxito.

Coincidiendo con la ocasión, en el Media Markt hoy había "netbooks" Acer AspireOne por 150€, con 512Mb de RAM, 8Gb de HDD y Linpus Linux. El portátil mola pero Linpus es muy muy para novatos. Aparte de que los paquetes son del año de la polca. ¿Nmap 4.20? En fin, en cuanto tenga un rato cambiaré la distro.

BackTrack tiene buena pinta para los usos que le voy a dar al bicho, aunque Debian sid, Zenwalk o Slax tampoco las descartaría. O quizá haya alguna distribución especial para el Acer One, me suena que para el Eee hay alguna...

La tarjeta Atheros se controla casi casi igual que una fonera:
# wlanconfig ath0 destroy
# wlanconfig ath0 create wlandev wifi0 wlanmode sta nosbeacon
# wlanconfig ath2 create wlandev wifi0 wlanmode ap
# ifconfig ath0 up
# iwconfig ath2 essid TONTO_EL_QUE_LO_LEA
# ifconfig ath2 up

Y a quedarse con la gente en todos lados :D

Parece que no soporta tantos APs como la fonera, pero con uno hay de sobra. Y siempre se le pueden sacar usos civilizados, como compratir una conexión 3G o una wifi "auditada" con éxito, por ejemplo.

Monday, March 2, 2009

Puerta trasera en routers ADSL

Llevo un rato trasteando con un nuevo router y he intentado poner el antiguo en "modo cliente" o al menos acceder a la tabla de rutas para redirigir el trafico VoIP por donde yo quiero. Parece ser que la interfaz web es "para idiotas(R), estilo GNOME (TM)" y poner un botón de "avanzado" sería mucho pedir.

El caso es que hay una "segunda interfaz" más avanzada con más opciones (aunque por lo visto sin acceso a la tabla de rutas) donde hay apartados como SNMP o un tal TR69. El SNMP vale, pero... ¿que coño es el TR69? Ahhhh, amigos, si alguno pensó que es alguna postura sexual no ha acertado, pero no anda lejos porque bien puede servir para dar por culo. El TR69 es un protocolo de acceso remoto que sirve para que los amables ingenieros de ya.com (en mi caso) accedan a mi router y cambien lo que haga falta. Eso si, cuando digo amables me refiero a incompetentes y cuando digo ingenieros quiero decir teleoperadores. Y quien dice cambiar lo que haga falta dice cambiar lo que les salga de las pelotas. MIEDITO ME DA.

Y ya puestos a pensar en un mundo perfecto donde los ISP tienen a ingenieros capacitados y competentes atendiendo las incidencias y solucionando los problemas... ¿qué pasa si tienen un fallo de seguridad en su sistema y alguien se hace con los datos de login? ¿Qué juanker maligno no estaría dispuesto a vender parte de su oscuro sótando a cambio de unos miles de routers de usuarios a su disposición?

El ataque es trivial: Se cambian las DNS, se redirigen las peticiones a servers con malware, se instalan bots/troyanos y a recolectar contraseñas y tarjetas de crédito. Y aún mejor, ¡incluso permite cambiar el firmware!. Se redirige todo el tráfico por gateways propios y se cambia el trafico en directo. ¿Que querías transferir 20 euros a tu primo? ¿Que tal si en vez de 20 son 2.000 y en vez de tu primo es una cuenta en Nigeria? Divertido, ¿a que sí?

Para mi, es sólo cuestión de tiempo que algo así acabe pasando.


Update 4am: poniendo urls he acabado sacando la página de routing estático, sólo para llevarme un mensajito 404: cgi-bin/AddStaticRoute.exe not found. Quizá por SNMP...

Update 5am: SNMP tampoco parece que tenga info de rutas. Lo más fácil será configurar un DNS local, apuntar el router al DNS, contestar las querys con la IP del server local y en el server redirigir el trafico a la IP real a golpe de iptables. Si, son las 5 de la mañana, momento de máxima creatividad. Y de irse a dormir. Buenas noches. Mañana más.

Thursday, February 26, 2009

¿Virus en linux?

Ya se publicó hace un tiempo (quiza tanto como en 2006) pero aún así me parece digno de resaltar un artículo (y varias observaciones) sobre como crear un virus para linux.

Muy interesante cómo se propone saltarse varias protecciones que siempre se resaltan como los puntos fuertes de linux.
- Proteccion contra ejecución: Los archivos ".desktop" son ejecutados por los gestores gráficos (KDE, Gnome) sin necesidad de que se marquen como ejecutables. Este es el fallo/despiste/feature que se explota y que posibilita todo el proceso.
- Privilegios de root: realmente no es necesario ejectuarse como root, si se quiere infectar a un solo usuario, pero suplantando a un programa "sudo" y esperando, al final se puede obtener privilegios de root. Esto se debe a que un usuario "casero" de linux al final está acostumbrado a meter el password cuando se le pide. Si alguien se suele loguear directamente como root desde una consola (sin hacer sudo/su) este paso sería (en principio) imposible.

Realmente es algo muy bien pensado, y si bien quizá ahora mismo pueda funcionar en cuanto los desarrolladores decidan requerir bit de ejecución para los ".desktop", el chollo se va a acabar.

Aún así el método tiene limitaciones, como que por ejemplo no sirve para cualquier distro de linux, tiene que ser adaptado a cada una por las rutas de los iconos o por programas no disponibles en cada una.

Si tengo algo de tiempo intentaré desarrollar una prueba de concepto por mi cuenta, aunque seguro que a estas alturas hay cienes y cienes rondando por internet.

Wednesday, February 25, 2009

KDE 4.2

Aprovechando el tiempo libre que tengo he instalado la nueva versión de KDE, la primera considerada "estable" y "user-friendly".

Lo cierto es que es una gran mejora respecto a las anteriores, ya tiene servicios como gestión de energía o bluetooth, se ha mejorado aún más el aspecto gráfico, todo tiene pinta de estar más integrado, etc. Aun faltan algunas cosas, como un gestor de red decente, pero con wicd me apaño perfectamente (NetworkManager sucks!!). Lo ideal sería que tuviera la coherencia gráfica de Vista (si, algo bueno tenía que tener Vista, ¿no?) y la funcionalidad de Mandriva, pero eso sería mucho pedir, aunque de momento va por buen camino. En general me ha gustado y excepto los detalles que comento a continuación todo esta bastante logrado.

La parte negativa es que sigue sin ser tan solido como la versión 3. Alguna vez ha petado algún componente (nada serio, solo se "reinicia el servicio", por ejemplo el escritorio, "plasma") y el rendimiento de QT4 sigue dejando mucho que desear. Por cierto, ¿habra alguna plataforma donde funcione bien QT4? Con nVidia va fatal, Intel con todo el lío de GEM no pasa de 320fps en glxgears y cualquier efecto de QT4 va a tirones y ATI nunca se ha caracterizado por su soporte de linux...

Otra cosa que no me gusta es que ciertas cosas no estan pulidas del todo. El bluetooth sin ir más lejos, no arranca a no ser que se haga un "/etc/rc.d/bluetooth start" como root. Si se arranca desde el menú simplemente no aparece, ni mensajes de error ni nada. Desde la consola si se fuerza algun componente pues intenta arrancar y falla.

Un detalle más es el ahorro de energía de la pantalla. La misma configuración, el tiempo de espera antes de apagarse, se puede configurar desde dos sitios distintos y NO comparten los tiempos: se puede poner en cada uno una cosa. A saber que pasará en ese caso, no me he puesto a probarlo, pero el caso es que ese tipo de detalles cuentan bastante y no se pueden descuidar.

Al final es como todo: "a ver si para la siguiente version...", pero ya está lo suficientemente usable para mí. Quizá los usuarios más novatos o sin ganas de trastear deberían esperar a julio a la 4.3, pero para los demás ya es hora de empezar a "disfrutar" del nuevo KDE.

Friday, February 20, 2009

Libre again!

Se acabaron los exámenes de febrero, así que vuelvo a ser (medio) libre! Como siempre tras un puñado de semanas estudiando, uno acaba con un montón de ideas para proyectitos, a ver que tal salen.

De momento me he hecho con una placa arduino para ir probando cosas, aparte de ir mejorando mis conocimientos de Javascript, PHP y symfony.

En fin, que el blog vuelve a la vida tras hibernar una temporada :)

PD: quizá me vaya de Erasmus a hacer el proyecto de fin de carrera, no estaría mal algún post del MundoReal por estos lares...

Wednesday, January 21, 2009

202 frases célebres de la informática

Vía barrapunto he descubierto una gran recopilación de frases célebres. Cada una de ellas merece ser leída, muy recomendadas.

Monday, January 19, 2009

Las brillantes mentes tras el canon

Los responsables de la... ejem... "fantástica" campaña "Si eres legal, eres legal" (la segunda parte se llamará: Si eres Juan, eres Juan") le temen al malvado virus que se alimenta de CPUs y roba fotos (y todo, todo y todo).
Seguramente antes de dormir miran en el armario, por aquello del hombre del saco.
Lamentable.

Actualización: a mi no me apetecía hacerlo, pero no hace falta ya que alguien lo ha hecho por mí. Una contestación punto por punto a las chorradas de la campaña. Y por cierto, otra web relacionada con el tema que tambien les da caña.