Archives for: May 2007

Javascript avanzado

29.05.07 | by enlavin [mail] | Categories: Programación, Web, Javascript

Tengo que reconocer que no me gustaba nada Javascript. En uno de mis anteriores trabajos tenia que hacer web scraping de páginas web y me solían joder bastante las que generaban contenido dinámicamente por código. Aparte por aquellos tiempos el código se escribía pensando en Internet Explorer ya que Netscape, hay que decirlo, era un truño.

La película ha cambiado un poquito en los últimos 2 o 3 años, y ahora Javascript es lo más cool del universo conocido. Profundizando en el lenguaje se ve que tiene cosas muy interesantes como clausuras, herencia basada en prototipos, las funciones son tipos de primer orden y mil pijadas más. Lo cuenta mucho mejor Douglas Crowkford.

Charla de Douglas Crockford sobre características avanzadas del lenguaje que se encuentran mucho en todos los toolkits que hay pululando. Este hombre trabaja en Yahoo! y es un auténtico gurú de Javascript. En concreto, usar la clausura del constructor para definir variables y métodos privados en Javascript me parece una genialidad de lo simple que es.

Parte de los problemas de Javascript vienen de las inconsistencias en la implementación de los intérpretes que hay dentro de los navegadores, así como el API que proporcionan para manejar eventos, el DOM, etc. Han salido recientemente muchas librerías para homogeneizar el acceso a la funcionalidad de los navegadores ocultando los posibles fallos o inconsistencias con un API común. Una presentación interesante sobre el tema:

Simon Willison es otro figura del mundo Javascript, así como cabeza visible de la comunidad de Django.

Pues eso, aprendan Javascript que es una de las plataformas de desarollo más extendida del mundo (si no la que más).

[Meme] Los 10 comandos más usados recientemente

28.05.07 | by enlavin [mail] | Categories: Linux

Recojo el meme. No pongo el del usuario root porque casi no lo uso. Intento usar sudo y familares siempre que es posible.

Servidor:
103 v
 97 sudo
 88 cd
 30 svn
 14 less
 12 vim
  7 ls
  7 ln
  7 apt-cache
  6 ps

Ultimamente algo de programación web y de administración de svn. Los sudo serán probablemente del apt-get.

Sobremesa:
213 cd
 69 v
 23 mv
 19 sudo
 16 chmod
 15 df
 14 ls
 11 mkdir
  9 ssh
  9 find

El sobremesa lo uso para navegar y p2p. Mucho mv para estrujar los discos duros, que los pobreticos están siempre al límite.

Cygwin del trabajo:
 25 sed
 20 exit
 20 cd
 19 grep
 19 for
 18 find
 15 egrep
 10 ls
  7 rsync
  7 pwd

Los comandos que más uso son para filtrar ficheros de log de los clientes y para hacer copias de seguridad de los servidores.

Mediacenter:
115 sudo
 49 cd
 36 v
 32 killall
 28 mount
 20 ls
 16 cat
 13 ps
 10 less
 10 find

Mucho mount porque a veces me falla el NFS sobre TCP por las desconexiones de un punto de acceso.

Portátil
115 v
 77 sudo
 50 cd
 28 ssh
 21 ping
 19 svn
 19 ipython
 15 ps
 11 killall
 11 ifconfig

En el portátil es donde hago mis pruebas con python y django, por eso ipython y svn.

En windows también uso mucho la línea de comandos, pero como no guarda histórico de comandos no puedo ponerlo por aquí.

Nueva edición del Curso de Django

24.05.07 | by enlavin [mail] | Categories: Web, Python, Django

Se ve que el año pasado no lo hicimos muy mal del todo y nos han dejado organizar la segunda edición del curso: Programación Web 2.0: Desarrollo Rapido de Aplicaciones con Python y Django

Si quieres hacer webs con python y django, aprender algo de ajax con dojo y pasar calor en las aulas de la ETSIIT, no lo dudes, este es tu curso :) En el curso vienen incluidas técnicas básicas para tus páginas luzcan super web2.0 de la muerte, como letras gordas, fondos claros y logos color pastel con muchos reflejos.

Como en la otra edición he colgado el tríptico en flickr (cubierta, interior).

El curso será entre los días 24 de Septiembre y 3 de Octubre. Sale por unos 190 leuros y es convalidable por 2.5 créditos, que siempre vienen estupendamente :-)

La web más alta del mundo

21.05.07 | by enlavin [mail] | Categories: Minipost

Fíjate tú que alguien se ha entretenido en hacer la web más alta del mundo solo con HTML y CSS. Se han quedado en unos 19 km (concretamente 18.939583 km).

Lo más curioso es que no pueden hacerla más "alta" por errores en los navegadores. (por cierto, ese enlace lo mismo no funciona en exploder)

Cosas veredes.

Actualización: jugando con Firebug he comprobado que la página más gorda también mediría de máximo eso mismo en Firefox. Podeis dormir tranquilos, que sé que todo el mundo estaba con la intriga.

Desenrollando la diagonal

08.05.07 | by enlavin [mail] | Categories: Matematicas, Mapas, Cebolleta, Mashup

Hoy me apetece contar una tonteriica que me rondaba la cabeza desde hace algunos años y no ha sido hasta hace un par de semanas que vi la solución con la ayuda de un foro de ciencia y matemáticas. Algunos pensarán que es como descubrir el agua tibia, pero a mi me ha hecho ilusión comprenderlo.

(ahora toca cara apretada de Hiro viajando en el tiempo)

Hace ya unos cuantos añicos, antes de ir a clase me pasaba por casa de malglam para recogerla e irnos juntos para la facultad. Cogía la línea 11 desde el Zaidín que dejaba un poco antes de la Caleta. Entonces empezaba la ascensión hasta la plaza de toros subiendo por Doctor Olóriz y luego girando a la izquierda hasta casi llegar a Beiro. Más o menos como pinto en el mapa:

La caminata no era larga ni mucho menos. Sin embargo, algo que haces más de 3 veces seguidas pide a voces ser optimizado. Lo más natural dado el trazado de las calles es intentar buscar la diagonal para ahorrar unos cuantos metros. Pero claro, a no ser que te vaya el parkour hay que ceñirse al trazado de las calles. El recorrido puede verse como 2 aristas de un cuadrado de lado L. En vez de recorrer esa distancia (2*L) se me ocurrió lo que a todo hijo de vecino: callejear algo más para intentar aproximarme a la diagonal, cuya longitud seria sqrt(L2+L2).

Al segundo o tercer día de seguir el nuevo trazado me di cuenta de lo obvio (yo es que muy avispao tampoco soy). Teníamos entonces 4 segmentos de recta, cada uno de ellos de longitud L/2, que sumándolos nos sigue dando 2*L. Joder. No le había recortado nada al trayecto. Pero lo peor no es eso. La cuestión es que aunque siguiera subdividiendo tramos para aproximar aún más el trazado al de la diagonal en realidad seguía andando los mismos metros. En cada división por la mitad de la longitud de los tramos se duplica su número, así que nos quedamos en las mismas. Incluso da igual que los tramos sean de longitudes distintas, ya que al ser ángulos de 90º la distancia final será la misma.

La cuestión que me tenía perplejo hasta hace poco es que podemos elegir un número arbitrariamente alto de subdivisiones (infinito si queremos), tantos como para que aparentemente tengamos una diagonal y aun así estaríamos andando una distancia de 2*L. ¿Cómo puede ser que teniendo una curva tan próxima a la diagonal nunca se consiga aproximarla? Curiosamente, antes de conocer la solución, me sugería un fractal, como la curva de Koch. Pero no, no van por ahi los tiros.

La respuesta es tan sencilla que me da vergüenza no haberla visto yo solico. La escalera que vamos dibujando con los tramos de recta forma una aproximación imperfecta de la diagonal, con un error de aproximación constante siempre igual a 2*L - sqrt(L2+L2) por muchas divisiones que hagamos. Aunque visualmente las dos curvas se parecen mucho, analíticamente no tienen nada que ver. Misterio resuelto. Más que una paradoja era un problema mal planteado. Cienmil millones de veces mejor explicado en los foros de 100cia.

¿Aplicaciones? Lo que podemos sacar de esto es que si tenemos que realizar un trayecto similar al que he expuesto arriba (calles formando una rejilla) y las calles son más bien estrechas, realmente no merece la pena callejear por el mero hecho de recortar. La longitud recorrida es igual e incluso puede ser que tardemos más al tener que dar más giros y cruzar más veces la calle. Vamos, lo que viene siendo una perogrullada.

Corolario de la perogrullada: Si las calles son anchas o hay parques cambian un poco las tornas dado que cruzando podemos aproximar mucho más la diagonal y el resultado final es que sí que podríamos ganar algo de tiempo.

Esto por supuesto hay que tomárselo con una pizca de sal :)

PD: los esquemas los he creado en Google Maps y luego los he integrado en la página con una utilidad para poner MyMaps en un blog.

Vocación de Morlock

May 2007
Mon Tue Wed Thu Fri Sat Sun
 << < Current> >>
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      

Categories

Misc

XML Feeds

What is RSS?

powered by b2evolution free blog software