sábado, julio 11, 2009

Frase interesante

hoy leí esta frase:

Typesafe languages eliminate these problems by design. Instead of just exhorting programmers to be more careful, typesafe languages put mechanisms in place which guarantee that they cannot happen.

y mi cerebro pensó que esta buena la frase para aplicarla mas genéricamente:

Thing X eliminate these problems by design. Instead of just exhorting Users to be more careful, Thing X put mechanisms in place which guarantee that they cannot happen.

esto me paso después de leer sobre NewSqueak y Limbo en los cuales algunos problemas de la programacion concurrente no existen por cuestion de diseño. Pase a pensar en como se puede diseñar algo para que los problemas no puedan suceder.

lunes, julio 06, 2009

quotequotequote

soy adicto a los quotes :)

The cheapest, fastest, and most reliable components are those that aren't there.

-- Gordon Bell

One of my most productive days was throwing away 1000 lines of code.

-- Ken Thompson

Deleted code is debugged code.

-- Jeff Sickel

The most effective debugging tool is still careful thought, coupled with judiciously placed print statements.

-- Brian W. Kernighan, in the paper Unix for Beginners (1979)

Beauty is more important in computing than anywhere else in technology because software is so complicated. Beauty is the ultimate defence against complexity.

-- David Gelernter

UNIX was not designed to stop its users from doing stupid things, as that would also stop them from doing clever things.

-- Doug Gwyn

If you're willing to restrict the flexibility of your approach, you can almost always do something better.

-- John Carmack

All software sucks, be it open-source [or] proprietary. The only question is what can be done with particular instance of suckage, and that's where having the source matters.

-- viro [http://www.ussg.iu.edu/hypermail/linux/kernel/0404.3/1344.html]

It's not that perl programmers are idiots, it's that the language rewards idiotic behavior in a way that no other language or tool has ever done.

-- Erik Naggum, comp.lang.lisp

Simplicity is prerequisite for reliability.

-- Edsger W. Dijkstra

Beware of "the real world". A speaker's apeal to it is always an invitation not to challenge his tacit assumptions.

-- Edsger W. Dijkstra

Unix is a junk OS designed by a committee of PhDs

-- Dave Cutler

Forward thinking was just the thing that made multics what it is today.

-- Erik Quanstrom

I remarked to Dennis [Ritchie] that easily half the code I was writing in Multics was error recovery code. He said, "We left all that stuff out [of Unix]. If there's an error, we have this routine called panic, and when it is called, the machine crashes, and you holler down the hall, 'Hey, reboot it.'"

-- Tom Van Vleck [http://www.multicians.org/unix.html]

The key to performance is elegance, not battalions of special cases.

-- Jon Bentley and Doug McIlroy

Measuring programming progress by lines of code is like measuring aircraft building progress by weight.

   -- Bill Gates

Haskell is faster than C++, more concise than Perl, more regular than Python, more flexible than Ruby, more typeful than C#, more robust than Java, and has absolutely nothing in common with PHP.

-- Autrijus Tang

Object-oriented design is the roman numerals of computing.

-- Rob Pike

{ajh} I always viewed HURD development like the Special Olympics of free software.


We have persistant(sic) objects, they're called files.

-- Ken Thompson

Simplicity is the ultimate sophistication.

   -- Leonardo da Vinci

Increasingly, people seem to misinterpret complexity as sophistication, which is baffling---the incomprehensible should cause suspicion rather than admiration. Possibly this trend results from a mistaken belief that using a somewhat mysterious device confers an aura of power on the user.

-- Niklaus Wirth

y como cierre para divertirse un buen rato:

http://harmful.cat-v.org/software/java
http://harmful.cat-v.org/software/c++/

martes, junio 23, 2009

Anathema @ Bs As

Flor de recital el de Anathema en el ND Ateneo, si no escuchaste la banda te lo recomiendo encarecidamente por el bien de las focas bebes (?)

fui con mi hermano, nos pegamos un paseo de un dia por bs as y sali corriendo del recital un tema antes que terminara para llegar justo a tomarme el colectivo que me depositaria 12 horas despues en la silla del trabajo :D.

El sonido, la puesta en escena y las canciones estuvieron geniales.

Unas fotos sacadas por mi hermano( http://flickr.com/ignacioguerra)




lunes, junio 22, 2009

Funcionamiento extra#o de chrome con requests ajax POST

si haces requests POST con jquery $.ajax y no seteas data (probablemente lo estas haciendo como un GET encubierto para que el browser no se crea lo suficientemente vivo para devolverte lo que cacheo la ultima vez), setea data: "" porque sino chrome se comporta de formas raras.

miércoles, junio 03, 2009

Instalando archivos faltantes de paquetes en debian

Como seguro me pasa de nuevo y mi memoria es debil voy a documentar que hice aca asi la proxima me autoleo

luego de correr el script anterior copiamos los .deb culpables buscando con

dpkg -S /ruta/completa/al/archivo/faltante

a una carpeta, luego instalamos binutils para tener el comando ar que se usa para descomprimir los .deb

(Los .deb estan en /var/cache/apt/archives si no hiciste apt-get clean)

ar x archivo.deb

nos deja varios archivos, hacemos

tar -xvzf data.tar.gz

y despues

cp ./ruta/completa/al/archivo/faltante /ruta/completa/al/archivo/faltante

(notece que el primero tiene un "." adelante

bueno, esto fue el daytona USA para sega saturn, espero que lo hayan disfrutado y seguimos con mas nivel X (?)

Esto podria ser muy facil de automatizar, pero como no creo que le pase a alguien en el planeta mas de una vez lo dejo como ejercicio para el lector.

bash <3

por alguna razon un server que tengo no me esta instalando todos los archivos de unos paquetes, en varias instalaciones anteriores si lo habia hecho y no importa cuanto purge, rm -rf, locate y demases nunca se instalan todos los archivos, por eso necesitaba listar los archivos no instalados de un conjunto de paquetes con un patron de nombre comun. El script quedo asi.

for i in $(dpkg -L $(dpkg --get-selections | grep gforge | awk '{print $1}')); do [ ! -e $i ] && echo $i; done

ahora a usar ar e instalar a mano los archivos faltantes, por alguna razon son todos los scripts de cron y un archivo de configuracion en etc... vaya uno a saber que magia negra hace que no se instalen..

Hint: cambien gforge en el grep por el patron a matchear (aunque no creo que mucha gente necesite algo asi :P

martes, mayo 26, 2009

Querida AFIP

window.navigate no anda en firefox ni safari, por favor use window.location asi no tengo que levantar firebug para escribir la direccion a mano para poder validar mi domicilio.

atte.
el pueblo oprimido

PD: le mande el mail, esperemos su respuesta..

repiola 0.2

la nueva version permite saltar a labels que todavia no estan definidas, cachea los opcodes de las instrucciones que ejecuto con anterioridad, asi la proxima vez que las encuentra no las parsea. Tambien se puede ver mietras la aplicacion va dibujando en la version movil. Arregle algunos bugs en la "maquina virtual" que hacia cosas raras en algunos jumps.

para bajarlo: http://code.google.com/p/repiola/

el nuevo release tiene los jar para desktop y movil juntos y esta el jad para los moviles que lo requieran.

en la pagina del proyecto agregue una descripcion del lenguaje y mas ejemplos.

http://code.google.com/p/repiola/wiki/Help
http://code.google.com/p/repiola/wiki/ExamplePage

les dejo un ejemplito de codigo


set r0 100
set r1 100
: begin
eq r0 0 end
eq r1 0 end
eq r0 198 end
eq r1 198 end
add r3 2
set r6 r3
add r4 1
lt r4 4 next
set r4 0
: next
: draw
put r2
add r2 10
sub r6 1
ne r4 0 check-1
sub r1 1
jmp done
: check-1
ne r4 1 check-2
sub r0 1
jmp done
: check-2
ne r4 2 check-3
add r1 1
jmp done
: check-3
add r0 1
: done
eq r6 0 begin
jmp draw
: end


que hace lo siguiente:



si alguien hace algo que dibuje algo copado mandemelo para el hall of fame :P

domingo, mayo 24, 2009

Colonia

Siguiendo el rescate de fotos luego de la organizacion de las mismas viene colonia, Koeln o Köln, como prefieran. Para llegar a colonia, que queda cerca de belgica, nos tomamos un tren a la madrugada desde Heidelberg, tuvimos que esperar 4 horas aprox en la estacion de frankfurt para tomar el tren que nos llevaba a colonia que se tomo bastante. Llegamos y apenas salimos de la estacion de tren estaba la famosa catedral de colonia, donde me entere despues se dice que estan los restos de los reyes magos, despues de subir hasta la punta de la catedral fuimos a una feria que habia, caminamos un poco y a la tarde volvimos. Fuera de la catedral y la feria no hubo mas cosas interesantes, se podria decir que es la ciudad que menos rescato de todo el viaje. Si alguien de colonia me invita gratis para probarme lo contrario no tendria drama :D.
Lo que si es espectacular son los paisajes en el trayecto de ida y vuelta en el tren los cuales debido a la niebla en la ida y el sueño en la vuelta no pudimos retratar dignamente.

Aclaro que no soy bueno contando viajes por escrito y no es la idea, la idea es mostrar fotos con una breve introduccion :).

ahora si, las fotos.



"esperando" en la estacion de frankfurt


yo frente a la catedral