Wednesday, April 25, 2007

Un cordobés @Mendoza ... hacia Google Zurich

Gracias a todos mis amigos por su buena onda ... no hay palabras para contar la emoción que siento :~)
--jjo




Sipp ... me voy a trabajar a Google Zurich, obbbbviamente familia included.

La historia es larga en anécdotas, pero vertiginosamente corta en tiempo: hace NADA MÁS que 2 meses y medio me llegó un mail @google.com invitándome a realizar el proceso de entrevistas técnicas para ver si calificaba.

Y así fue ... aprobé las entrevistas telefónicas --hardcore-- y una onsite en las oficinas de Google Zurich --que constó de varias entrevistas muy hardcore-- ... todo el proceso fascinante y muy desafiante.

Y bueh, acatamo' ... tratando de (no)entender cómo se dan las cosas en la vida, sino de just disfrutarlas =)



Thursday, April 12, 2007

Instalando Debian 4.0 a ver q'onda...

Standard disclaimer


Ésto no pretende ser un review ni nada que se le acerque, simplemente un "dump" de las cosas que me gustaron y no luego de probar una instalación de la flamante Debian-4.0. Please dont troll.

Metodología


Nah... meramente un toque virtual usando qemu:

$ sudo /sbin/modprobe kqemu
$ qemu-img create -f qcow2 debian4.qcow2.img 4G
$ qemu -cdrom /path/to/debian-40r0-i386-CD-1.iso -hda debian4.qcow2.img -boot d
(instalación...)
$ qemu -cdrom /path/to/debian-40r0-i386-CD-1.iso -hda debian4.qcow2.img -boot c
(booteo...)

Instalador


verso: "instalador gráfico": en momento de booteo es posible seleccionar el "instalador gráfico" tipeando installgui. No es un instalador gráfico, es meramente un gui-ficador de la interfaz de texto. Recomendación: usá el de modo texto, más rápido y no tiene menos funcionalidad (excepto seleccionar con el mouse las opciones :-P ).

groso: como siempre, el control full y la capacidad de tener el "estado" de instalador en cualquier momento, y poder ir y volver de cada paso.

groSísimo: la posibilidad de particionado clásico, LVM y LVM+cifrado.

flojo: es demasiado burocrático para particionar "a gusto" (del experto) comparado con otras distros (Fedora por ej.); _entiendo_ que la funcionalidad "modo texto" no permite mucho juego aquí, pero lo mismo creo que se podría achicar la cantidad de "Enter"s necesarios para hacerlo.

Primer booteo


groso: booteo limpito en modo texto (bien!)

groso: apenas unos 300Mb luego de instalado (!). Ok, sin entorno gráfico, ni de devel, etc; pero bien sabemos que Debian permite una GRAN versatilidad/disponibilidad en la instalación posterior de paquetes.

pateticamente-insoportable-as-always: la falta de los siguientes comandos por default:
  • less: sin comentarios :-P
  • ip (pkg iproute): agaaain, la única distro que conozco que no lo instala (!), pero eso sí ... tengo ipmaddr, iptunnel (cuaK?!)

Conclusión


Ninguna :-) --no era el objetivo--, probala vos mismo.

Thursday, April 05, 2007

Boing Boing: Stop-motion Space Invaders using human pixels

Probablemente para los más "nostálgicos" (aka dinosaurios):

Boing Boing: Stop-motion Space Invaders using human pixels

Impecablemente molidos del mate :)

roameando más libremente en otras plataformas

Seguro te ha pasado.

Sos tan adicto al software libre como yo, pero te has visto obligado a sentarte en un típico winpork de cyber ú hotel para leer mail y/o hacer algo de IM, o peor, echarle mano a un putty.exe para alguna emergencia (o meramente para leer mail con mutt ;).

Dado que internet exploder ES insoportablemente inusable y tanto éste como la plataforma es comprobadamente amigable al spyware y otros bichos, resulta imposible usarlos tal como vienen.

Solución (parcial): PortableApps : contiene, entre otros: PortableFirefox, PortableGaim y PortablePutty.

Instalé estos tres en mi pen-drive, arranqué PortableFirefox y le instalé mis extensiones preferidas: Mouse Gestures, AdBlockPlus y TabMix Plus --ésta última útil para almacenar correctamente la última sesión--.

Luego arranqué PortableFirefox (desde el pendrive, obviamente), entré a gmail (claro que el password no lo tipeé, sino que tipeé una cantidad de (human-non)random text en un "Nuevo archivo de Texto" tal que contuviera los caracteres de mi password, los cuales copié y pegué uno a uno); lo bueno de ésto es que el contexto de Firefox (cookies, etc) queda almacenado en el pen-drive, con lo cual la próxima vez que arranques, por ej gmail, no requerirá reingresar el password; asimismo quedarán los tabs, bookmarks, etc de la última sesión.

Algo similar hice con PortableGaim; y para PortablePutty usé el agente "pageant.exe" para cargar mi privatekey de ssh que llevo siempre en el pendrive (ésto anula un ataque de keylogging al logueo vía ssh porque no es replicable sin la privatekey).


Enjoy! ... más que recomendable para llevarlo encima (estos tres en total unos 80Mb).

Wednesday, March 28, 2007

Confirmado: uno vé @hotmail y piensa....

... lo mismo que esta empresa de recursos humanos al momento de contratar especialistas de Internet y afines:

Link: Catorze.blog - Blog Archive - El criterio Hotmail

Así que ya sabés: no pongas ese @hotmail en tu Currículum :-P

Sunday, March 04, 2007

[en] powerful arrays in bash

Doing some experiments with advanced bash array features. I created a bash implementation of insertion sort algorithm.

UPDATE: This example is already part of the great Advanced Shell Scripting Guide :)


Enjoy :-D




#!/bin/bash
# insertion-sort.bash.sh: Insertion sort implementation in bash
# Heavy use of bash array features: slicing, merging, etc
# URL: http://www.lugmen.org.ar/~jjo/jjotip/insertion-sort.bash.d/insertion-sort.bash.sh
#
# Author: JuanJo Ciarlante jjo \O/ irrigacion gov ar
# License: GPLv2
#
# Test with: ./insertion-sort.bash.sh -t
#

: ${DEBUG:=1} # debug, override with: DEBUG=1 ./scriptname ..

# Global array: "list"
typeset -a list
# Load whitespace separated numbers from just stdin 1st line
if [ "$1" = "-t" ];then
read -a list < <(od -An -w32 -t u2 /dev/urandom )
else
read -a list
fi
numelem=${#list[*]}

# Shows the list, marking the element whose index es $1 by surrounding it with
# the two chars passed as $2; whole line prefixed with $3
showlist() { echo "$3"${list[@]:0:$1} ${2:0:1}${list[$1]}${2:1:1} ${list[@]:$1+1}; }

# loop "pivot" from 2nd elem, to end of list
for((i=1;i<numelem;i++))do
((DEBUG))&&showlist i "[]" " "
# From current "pivot", back to 1st elem
for((j=i;j;j--))do
# search for the 1st elem less than current "pivot" ...
[[ "${list[j-1]}" -le "${list[i]}" ]] && break
done
((i==j)) && continue ## no insertion was needed for this element
# ... move list[i] (pivot) to the left of list[j]:
list=(${list[@]:0:j} ${list[i]} ${list[j]} ${list[@]:j+1:i-(j+1)} ${list[@]:i+1})
# {0,j-1} {i} {j} {j+1,i-1} {i+1,last}
((DEBUG))&amp;amp;amp;&showlist j "<>" "*"
done
echo $'Result:\n'${list[@]}

Friday, February 16, 2007

sistemas criticos funcionando con sistemas operativos de juguete (?)

Si sirve de consuelo ... ver que no solamente en estos lares abunda la mediocridad en quienes toman decisiones de IT.

"Quebec health officials are battling a fast-spreading virus that struck its entire computer network system late Tuesday." link