martes, 18 de noviembre de 2008

Como deshacer un commit en SVN

Si, ya se que esto no es ninguna ciencia, pero nunca me acuerdo este comando y cuando lo necesito tengo que andar buscando por toda la web porque misteriosamente no esta muy bien documentado.

Supongamos que queremos hacer un rollback de la revisión 1234 del trunk de my_project. Desde el directorio de trabajo local (si no tiene archivos modificados, mejor) ejecutamos:

svn merge -c -1234 file:///path/my_project/trunk

Si, a la revisión hay que ponerle un guión adelante. Es necesario para lograr el efecto de 'rollback'.

Esto va a dejar nuestro repositorio local actualizado con los cambios para deshacer la revisión indicada, entonces hacemos un svn commit y listo.

jueves, 16 de octubre de 2008

Se viene la release party para Intrepid

Como de costumbre, el gupo local de Ubunteros porteños/bonaerenses están organizando la release party de la nueva versión de Ubuntu, Intrepid Ibex.

El ágape se celebrará el jueves 20 de Octubre, en el bar Dr Mason (Aráoz 1199, Palermo).

Es un buen momento para conocer en persona a algunos de los que constantemente leemos via mails o en los foros. Por supuesto, nunca faltan un par de cervecitas, y algúna partida de pool.

Más información en la página de Ubuntu-ar, no es necesario registrarse, pero sí es útil para saber cuantos vamos a ser.

Nos vemos!

miércoles, 10 de septiembre de 2008

Cómo ejecutar un programa no ejecutable

En un post anterior puse un problema que me pareció muy interesante para ejercitar la creatividad de los sysadmins/linuxeros ahí afuera.

El tema era como volver a darle permisos de ejecución si le sacamos estos permisos al chmod. En los comentaros se publicaron respuestas relacionadas con usar lenguajes de scripting (en el enunciado decia que no se podía compilar) pero la idea era ser un poco más creativos.

La primer solución que encontre fue:

cp otro_ejecutable xxx
cat /bin/chmod > xxx
mv xxx /bin/chmod

Lo interesante de esto es que los permisos de ejecucion de la copia original se mantienen al 'llenar' el archivo con otro contenido.

Isart, quien me propuso el acertijo, encontró otra un poco mas simple que es:

cp otro_ejecutable xxx
cp --no-preserve=mode /bin/chmod xxx
mv xxx /bin/chmod

Yo sabía que tenía que haber otra forma de ejecutar un archivo a la fuerza, y me encontré con esto:

/lib/ld-linux.so.2 /bin/chmod

Si lo dejamos estrictamente en el enunciado del acertijo, cualquiera de las tres sirve para cambiar los permisos de un archivo sin que el chmod sea ejecutable, pero la última me llamo mucho la atención porque incluso la puedo usar como un usuario normal sin ningún privilegio.

¿Puede ser esto una falla de seguridad?

No creo que sea demasiado grave porque no encontre la forma de cambiar el propietario de un archivo a root con un usuario común, pero hay que tener en cuenta que un usuario comun puede ejecutar cosas sin importar los permisos que tengan los archivos (bueno, por lo menos tiene que tener lectura)

lunes, 8 de septiembre de 2008

Acertijo para sysadmins

Hoy a la tarde, Isart me propuso un acertijo interesante, que suena más a pregunta de examen que otra cosa, pero me dio un buen rato de entretenimiento super geek.

Seguramente más de uno lo conoce, pero esta bueno para investigar un poco sobre el sistema, aca va el enunciado:

Alguien ejecutó el comando:
chmod -x /bin/chmod

¿Cómo lo arreglás sin reinstalar ni recompilar ningún programa?


Cada uno encontró una solución diferente, y después encontré una tercera solución más académica. Conclusión, somos un poco chapuceros, pero creativos :P

Que se diviertan, y dejen que el resto se divierta un rato antes de postear alguna solución ;)

domingo, 1 de junio de 2008

Firefox Download Day 2008

La gente de Firefox esta preparando un evento para entrar al libro Guinness: batir el record de downloads de un software en 24 horas.

Actualización: Ya está definido el día del evento: el 17 de Junio (el próximo martes) es el día elegido para poner a Firefox en el libro Guinness.

Ayuden a incluir el software libre en el libro Guinness, y de paso aprovechen para descargar y usar la nueva versión de este excelente navegador.

Firebug para Firefox 3

Para los que extrañabamos el firebug en Firefox 3, acaba de sarlir una beta de la release 1.2, que funciona con la nueva versión del navegador.

Para el que no lo conocía, Firebug es un plugin indispensable para cualquiera que tenga que hacer algún trabajo relacionado con páginas web: desde el diseño (o maquetado) hasta debugging, SEO, etc.

Para instalarlo, simplemente hagan click en el link Firebug 1.2 en la página de betas de Firebug. Y si... es un beta, y no lo probé demasiado, pero parece que funciona.

Eso sí, para hacerlo funcionar tuve que deshabilitar el plugin Yslow. Se ve que esta diseñado para la versión anterior del firebug y con este no funciona aún, así que si tienen este plugin y al abrir el Firebug no ven los queridos paneles de inspeccion de código, prueben deshabilitando el Yslow.

(gracias a Genki)

Actualización:

Gracias al comentario de Ubuntips, encontré una forma más fácil de instalar el Firebug en Ubuntu. Simplemente hay que buscarlo en los repositorios. De paso busqué otros plugins y también encontré el WebDeveloper. Ubuntu no deja de soprenderme...

sábado, 17 de mayo de 2008

¿Es Ruby tan bueno como dicen?

Hace unos años pasé por la disyuntiva de elegir un nuevo lenguaje de programación y, como les pasará a unos cuantos, llegué a la definición entre python y ruby. En ese momento me decidí por python, ahora no recuerdo bien los motivos en detalle, pero hasta ahora no me arrepentí.

Hoy encontré este post (larguísimo) de por que ruby no es un buen lenguaje. Sinceramente, es la primera vez que leo algo escrito por este tipo, pero a menos que le haya puesto muy pocas ganas a la comparación (o al aprendizaje de ruby), ruby esta en problemas.

¿Es realmente ruby tan malo e inconsistente? Ya sabía que ruby no era muy bueno en cuanto a performance, pero e sorprende que maneje tan mal el soporte de unicode, y los metodos/funciones que hacen cosas similares con nombres diferentes, y peor aun los que hacen cosas diferentes con nombres similares...

Antes que lo lean, aclaro que al tipo le gusta python, y cada tanto manda algunos comentarios que no hacen más que meter ruido, pero mas allá de eso el post me parece muy bueno, y con muchos links a otros articulos relacionados, también interesantes.

Por supuesto, este post generó un montón de comentarios, críticas y también tenía algunos errores. La semana pasada publicó otro post con algunas correccciones y comentacios interesantes.

martes, 13 de mayo de 2008

Vulnerabilidad en openssh - como arreglarla

Aviso importante para los que usan Debian y sus derivados (entre ellos Ubuntu)!

Para el que todavía no se enteró, esta mañana se reportó una falla grave de seguridad en el OpenSSH para Debian y Ubuntu. Resumiendo, las claves generadas después del 2006 son potencialmente vulnerables dado que las función que genera números aleatorios en openssl era predecible.

Gracias a la velocidad de respuesta del software libre, ya están disponibles los paquetes de actualización para Debian y Ubuntu. Supongo que otras distribuciones pueden tener el mismo problema, pero no lo comprobé.

Para solucionar el problema de seguridad hay que seguir los siguientes pasos.

En primer lugar, actualicen sus sitemas:

$ sudo apt-get update
$ sudo apt-get upgrade

Con esto se arreglan los problemas de las futuras claves que se generen.

Para validar las claves actuales, los desarrolladores de Debian subieron un script para validar las claves personales y de host

$ wget -c http://security.debian.org/project/extra/dowkd/dowkd.pl.gz
$ gunzip dowkd.pl.gz
$ chmod u+x dowkd.pl
$ ./dowkd.pl user
$ ./dowkd.pl host hostname

Si al script le pasamos el argumento user, chequea las claves del usuario. Con el argumento host, se puede indicar un nombre de host al cual se le quiere hacer el testeo.

Si las claves fueron generadas con esta versión defectuosa del openssl, seguro el script va a dar algun mensaje diciendo que la clave es débil. En este caso hay que regenerar las claves del usuario y del host.

Para regenerar las claves de usuario:

$ ssh-keygen -t dsa -b

Para regenerar las claves del host:

$ sudo rm /etc/ssh/ssh_host_{dsa,rsa}_key*
$ sudo dpkg-reconfigure -plow openssh-server

Recuerden que deben limpiar el archivo ~/.ssh/known_hosts y volver a transmitir su clave pública a sus servidores, o es posible que no puedan volver a entrar ;)

sábado, 3 de mayo de 2008

Instalación de Hardy en la Macbook

Estuve probando la instalación de Ubuntu Hardy en modo 32 bits en la MacBook, ya que había encontrado algunos problemas con la paca wifi al actualizar la versión de 64 bits.

La instalación fue sorprendentemente rápida, en unos 25 minutos la máquina estaba instalada y corriendo con la versión de 32 bits, pero tuve los mismos problemas con la placa wifi. Tuve que compilar los módulos a mano, pero no se asusten que es algo muy simple, solo un par de comandos.

Por ahora parece que me quedo con los 32 bits. El consumo de memoria es un poco menor, y aparentemente debe haber alguna diferencia en los drives de video (placa intel) ya que el X levanta un poquito más rápido.

Más allá del problema de la placa wifi, cabe destacar lo fácil y rápido que es instalar Ubuntu. En menos de media hora tenés un sistema funcionando con un sistema operativo de última generación, en el idioma que hayas elegido, y con todas las aplicaciones que un usuario normal pueda necesitar: suite de oficina, un navegador como la gente, mensajería instantánea, reproductor de medios, etc, etc.

domingo, 27 de abril de 2008

Actualizando Ubuntu de Gutsy a Hardy

Finalmente, ayer me pasé a la nueva versión de Ubuntu: 8.04 LTS, Hardy Heron.

Para los que no están en el tema, Ubuntu es una de las distribuciones de Linux más populares, principalmente por su facilidad de instalación y soporte de hardware. Cada seis meses sacan una nueva versión, de ahí que los números de versión crezcan tan rápido: el primer número es el año, y el segundo el mes.
En el caso de Hardy, es una release especial ya que es una LTS: Long Term Support (Soporte a Largo Plazo). Las versiones comunes de Ubuntu tienen soporte por dieciocho meses, después de los cuales se dejan de liberar parches de seguridad y actualizaciones. En el caso de las LTS, el período de soporte es de tres años para el escritorio, y cinco para servidores.

La impaciencia y los embotellamientos

El año pasado, cuando salió Gutsy Gibbon (7.10), los servidores se habían saturado... bajar un imagen del cd o actualizar directamente había sido bastante tedioso. Este año, por lo menos para mí, fue directamente una tortura. Bajar 1Gb de paquetes para actualizar me llevo unas doce horas. Me da la sensación de que cada vez hay más gente ansiosa por probar las nuevas versiones de Ubuntu, lo cual es buenísimo, lástima que se arman unos embotellamientos como los de semana santa yendo para la costa ;)

Supongo que para la nueva release (8.10) deberíamos ser un poco más pacientes y no tratar de actualizar todos juntos en los primeros tres días, o lo que sería mejor, conseguir algo de fondos para configurar un mirror local ya que en Argentina no tenemos ninguno todavía. ¿Alguna empresa o universidad solidaria?

Para no esperar tanto, si consiguen un cd de instalación o un alternative de Hardy, pueden acelerar la descarga de paquetes copiando los archivos que están en el directorio pool del cd. Una vez dentro de ese directorio, ejecuten lo siguiente:

sudo -i
for file in `find ./ -iname '*.deb'`; do cp $file /var/cache/apt/cache/; done
exit


Luego lancen la actualización y solo tendrán que bajar los archivos que no estén en el CD.

Actualizando la notebook

En mi caso, no todo funcionó automáticamente ya que estoy usando la versión de 64 bits y no todos los drivers funcionan bien. Para los que no tengan ganas de andar resolviendo problemas menores, les recomiendo la versión de 32 bits.

La actualización la hice mediante el Update Manager, la utilidad de actualización de programas y versiones de Ubuntu. Luego de esperar esas 12 horas descargando paquetes de actualizaciones, comenzó el proceso de actualización propiamente dicho.

Este proceso tardó unos 35 minutos. Solo me preguntó si quería actualizar ciertos archivos de configuración o remplazarlos por los nuevos para algunos servicios determinados que dudo que utilice un usuario no técnico (webservers, bases de datos, etc)

Luego de reiniciar el sistema el nuevo Hardy estaba listo, aunque como me pasó en la instalación de Gutsy, la placa de wifi no funcionó automáticamente. Supongo que está relacionado con la instalación de 64bits, porque cuando había instalado Gutsy de 32bits funcionó de entrada. Cuando tenga tiempo pruebo la instalación de Hardy de 32bits.
De todas formas, hacer funcionar la placa fué simple. Solo tuve que instalar los drivers siguiendo los mismos pasos que para Gutsy.

La webcam tampoco funcionó, y encontré que hay un bug reportado en el que están trabajando activamente. Esperemos las primeras actualizaciones para ver si se arregla.

Actualizando un server

Hace rato tengo un server en SliceHost para hacer pruebas y mantenerme un poco al día en el trabajo de sysadmin, ya que ahora estoy trabajando sólo como programador.

En este server estaba corriendo MySQL, Lighttpd, TurboGears, y un par de cositas más, todo sobre Gutsy.

La actualización fue de lo más simple. Hay que bajar el actualizador con el siguiente comando:

sudo apt-get install update-manager-core

y luego, ejecutar la herramienta de actualización de consola:

sudo do-release-upgrade

Otra vez a esperar la descarga de paquetes, pero en este caso la velocidad fue increíble. Se nota la diferencia de acceso a internet que tenemos en sudamerica y la que tienen en EE.UU. En mi casa los paquetes se bajaron a unos miserables 30k/s, en el server, a unos 1000k/s de promedio con unos picos bastante mas altos. En menos de cinco minutos había bajado todos los paquetes para el server.

El proceso de actualización tardo unos 15-20 minutos, las mismas preguntas sobre archivos de configuración de servicios, reiniciar... y todo funcionando exactamente igual que antes: bases de datos, servicios, todo 10 puntos. Ahora tengo un server con 5 años de soporte! Aunque supongo que no me voy a aguantar y en octubre lo paso a la nueva release :)

Conclusión


Sacando los temas conocidos para las MacBook con la placa wifi en 64bits, la actualización fue excelente. Sólo tenemos que conseguir uno o dos mirrors locales en Argentina, porque con cada release, el embotellamiento es más grande.

Cuando pruebe la instalación de 32bits (recomendada para los menos experimentados), les cuento como me fué.

miércoles, 23 de abril de 2008

OpenStreetMap: Mapas libres tipo wiki

La semana pasada encontré un sitio que se está convirtiendo en mi nuevo vicio: OpenStreetMap.

Es un sitio donde se puede definir y consultar mapas de calles de todo el mundo. Tienen un editor de mapas muy fácil de usar, y lo más interesante es que resulta divertido... ok, supongo que soy un geek, pero me resulta divertido.

Lo bueno es que cualquiera puede registrarse y empezar a editar mapas de cualqueir parte del mundo: funciona como los wikis, cada uno es libre de modificar lo que quiera, por lo que el mapa va creciendo según las ganas de los que participan del mapeo.

Yo comencé jugando con el editor (tiene una opción para probar sin grabar los cambios) y a la hora ya estaba mapeando (esta vez en serio) el barrio de Ituzaingo donde me crié.

Supuestamente estos mapas se pueden descargar al GPS, y son navegables. Todavía no me compré uno de estos aparatos, pero ya tengo una excusa para hacerlo. ;)

Los invito a que mapeen sus barrios, además de ser entretenido, es útil para los que tengan un GPS.

miércoles, 12 de marzo de 2008

Red social de fotógrafos


Gracias a un post que leí en el Planet Ubuntu, conocí un sitio muy interesante para los que gustan de la fotografía, sean fotógrafos profesionales, amateurs, o simples chapuceros como el que escribe.

El sitio en cuestión se llama JPG Magazine, y aparte de permitir crear tu perfil y subir fotos, podes poner a otros fotógrafos como tus contactos y luego ver las fotos que van posteando vía RSS. También el sitio organiza concursos regulares sobre temas determinados a los que podes subir tus fotos.

En algún momento me voy a dar el gusto de hacer un curso de fotografía, hasta ese momento estoy más que conforme con algunos fotos que me parecen lindas. No hay mucho crédito para mí, solo es cuestión de mirar y esperar, el resto es suerte, al menos en mi caso.


Si a alguien le interesa, pueden ver algunas fotos que subí en:

http://www.jpgmag.com/people/gepatino

miércoles, 27 de febrero de 2008

Gmail estilo Art Attack

Siempre me gustaron esos collages que hacen en Art Attak, formando dibujos con elementos cualquieras (ropa, pelotas, raquetas, etc).

Esta vez, los rusos de Google hicieron algo parecido para mostrar como se usa la interfaz de Gmail. Imperdible.

Pueden ver el video en YouTube, y el post original acá.

domingo, 6 de enero de 2008

Configurando vim para Python

Este post es más que nada un ayuda memoria personal, ya que mil veces configuré el vim para programar en Python, y mil veces termino perdiendo la configuración por descuido, reinstalaciones, etc.

Encontré una página donde resumen perfectamente la configuración que me gusta usar. Acá va mi .vimrc:

syntax on
set tabstop=4
set shiftwidth=4
set expandtab
set softtabstop=4
set background=dark
set autoindent

autocmd BufRead *.py set smartindent cinwords=if,elif,else,for,while,try,except,finally,def,class


Espero que a alguno le sirva. Por lo pronto espero acordarme que ahora dejo acá también esta configuración.

jueves, 3 de enero de 2008

Actualizaciones cuando las necesitas

Una de las ventajas que frecuentemente se mencionan sobre el software libre, es la rapidez con la que se generan actualizaciones.

La semana pasada, se aprobó la ley (en Argentina) que indica que tenemos que adelantar una hora durante el verano para ahorrar energía.

Todo fué muy rápido, y los archivos de configuración de zonas horarios no contemplaban este cambio. Actualizar las definiciones de estos archivos no fué nada problemática para los impacientes como yo, que queremos que todo esté como corresponde (gracias al post de Fer de soluciones3f)

Lo que sí me sorprende es que hoy, primer día hábil del año, veo que en mi Ubuntu tengo actualizaciones disponibles, y cuando abro el Update Manager veo que la actualización es justamente del paquete tzdata, que contiene las definiciones de las zonas horarias.

Quedé sorprendido con la velocidad de respuesta de la comunidad de software libre en general y de Ubuntu/Debian en particular. Teniendo en cuenta que se trataba del último fin de semana del año, y supongo que se debe haber festejado en todo el mundo, la comunidad lanzó el parche el 1ero de Enero a las 13hs GMT, según el changelog:

tzdata (2007k-0ubuntu0.7.10) gutsy-proposed; urgency=low

* Replace tzdata2007j.tar.gz with new version tzdata2007k:
- Updates DST rules for Argentina. (LP: #178924)

-- Martin Pitt Tue, 01 Jan 2008 14:00:20 +0100



No es por buscar pelea, pero...
¿Ya salió el parche para Windows? ;)