Yo quiero trabajar en telcel !


Hace un momento platicando por IRC con los cuates ilustres de #[email protected] salió el tema de los SMS de celulares, y por ahí alguien comentó que ya se podía mandar SMS a celulares telcel gratis, obvio siendo cliente telcel se me ocurre ir a ver si es cierto y no lo es.

Pero eso no es lo que más me llamó la atención, de hecho estaba seguro que no era cierto, lo que me llamó más la atención es que los diseñadores de la página (nunca han sido muy destacados) han hecho una maravilla en lo que se refiere al concepto de redireccion, la crónica va así:

  • Te hacen cargar un archivo html de 12K, el cual trae en su mayoría JavaScript, y en el cuerpo un par de animaciones el flash
  • El archivo html tiene directivas para bajar a su vez un par de archivos .js, y uno .css
  • El css (estilos.css) tiene 3 directivas para atributo “class”, de las cuales se usa una sola (en el pié :), y dentro del HTML hay una seccion de “style” que define una directiva para un “class” que si es usado, obviamente prácticamente todos los estilos están definidos al más puro estilo noventero de meterlo en los tags, digo no está mal, pero no es lo mejor, mencioné que el HTML tiene identificacion de xhtml genérico de 1999?, pasa sin errores el tidy, y con 11 warnings que no son realmente importantes.
  • En la parte de JavaScript podemos comentar por ejemplo que uno de los archivos es específico para que lo usen las animaciones flash (no lo crearon ellos pues)
  • El otro archivo JavaScript (cookie.js) hace 2 grandes cosas, una es que identifica de manera muy rudimentaria la version del navegador que utilizas (solo llega hasta WinNT por ejemplo), y si no caes entonces eres “unix”.
  • Lo otro que hace es poner una cookie que “recuerda” si has visitado o no el sitio, hay una buena cantidad de debugueadas con “alert” y codigo comentado que nunca fué terminado, en esencia no hace nada esta parte
  • Ahora vamos al JavaScript dentro del HTML, lo primero que salta es que se definen funciones que sobreescriben a casi todas las que se definieron en “cookie.js”, supongo que es el resultado de 2 equipos de trabajo que no se comunican, o más probablemente de que un equipo heredó el trabajo y por si las dudas no modificó lo del otro equipo, sino que “sobreescribió” las funciones (en realidad casi todo es un copy-paste)
  • Otra cosa que hace el JavaScript embebido en el HTML es detectar si estas en un móvil, y redirecciona a una página hecha para móviles
  • Uh, se me pasaba comentar que también trata de determinar la “plataforma” sobre la que corres, segun yo varios windows caen como “unix” porque está mal hecho el código en ambos casos.
  • Siguiendo con el JavaScript embebido (esto no parece tener fin), hay una rutina ya cerca del final que llama a una funcion (obtener_estado(variable)), lo malo es que cuando llaman a la funcion, le meten como variable una cadena estática, no entiendo para que validas algo para lo cual ya sabes el resultado, pero eso no es todo, la funcion checa que la cadena de entrada esté dentro de la cadena de entrada !!, parece que esa funcion debía tomar un valor del URL (algo que tiene que ver con los estados) y hacer algo con él, pero nunca fué terminada y dejaron todo funcionado con una cadena estática. Entiendo que esa funcion debería rediraccionarte a una página con una variable, probablemente con la intención de que la página presentara algo diferente cada vez, en la práctica, independientemente de la variable, te rediracciona a http://www.telcel.com/redireccion/portal.html que a su vez te redirecciona a /portal/telcel.portal y no me voy a poner a buscar que otras babosadas hacen en el proceso.
  • Bueno, pa acabarla de amolar, al fina del JavaScript embebido te redirecciona redireccion/portal.html que como dije redirecciona a /portal/telcel.portal, o sea que todo lo que he comentado sirve para nada porque al final es otra página la que se presenta al usaurio, y a lo mejor alguna cookie sirve de algo, y bueno, lo único que podemos rescatar es que hay una redireccion diferente si tienes móvil.

Todo esto se traduce a que están gastando tanto su ancho de banda como el de los usaurios porque no pueden simplemente reemplazar una versión con la otra de su portal, y no solo eso, además no saben que sería mucho más barato, y sencillo en todos los sentidos, ya sea poner un html con el redirect y ya (no todo el JavaScript y HTML con Flash, CSS…) o la clásica alternativa del “rewriteRule”, vamos !! están usando apache !! ni siquiera es que tengan que buscar como se hace en IIS, o cualquier otra cosa, usan apache por el amor de Dios !!

fsking sh*t, todo parece estar en PHP, por qué, un header() sería suficiente tambien !!

Como es que llegas a tener redirección doble, y uno de los 2 pasos anteriores a la página final en serio tiene contenido a pesar de que solo los va a poder ver alguien que tiene demasiado tiempo libre como yo en este momento?? y el segundo redirect si está hecho decentemente !!!

Y podría apostar a que la “solución” no salió nada barata.

p.d. Ni siquiera tienen implementado un sistema de compresion de CSS y JavaScript, que para el tráfico que debe tener telcel creo que ahorraría varios miles de pesos al día seguramente.



Hoy no tengo ganas de mucho


Como que hoy no tengo ganas de casi nada más que estar con mis nenas.

Que todos tengan buena tarde y noche, nos vemos mañana



DBDesigner 4.0.5.4 en Debian lenny/sid


Ya alguna vez había intentado instalar DBDesigner en Debian “unstable”, y no lo logré :), pero hoy ya no fué por curiosidad, como necesito diagramar (acto de hacer un diagrama) una propuesta para almacenar unos datos X en donde estoy trabajando, estuve buscando algún programa para diseñar bases de datos (realmente lo que me interesa es poder hacer un par de diagramas que se vean decentes) y simplemente no encontré ninguno accesible fácilmente en Debian, por lo que tuve que irme a la opción de instalar manualmente (eso no califica como accesible fácilmente) el paquete “tar.gz” que se puede bajar de MySQL, y un par de paquetes más, acto seguido pasarme por el arco del triunfo que ya no uso paquetes obsoletos de x11 instalas un dummy de xkeyboard-config (amablemente anunciado aqui) para poder instalar estos dos paquetes que si vienen en “deb”, y descomprimir el DBDesigner, y correrlo.


wget http://heanet.dl.sourceforge.net/sourceforge/kylixlibs/kylixlibs3-borqt_3.0-1_i386.deb
wget http://www.silcom.com.pe/soft/xlibs_6.8.2-77_all.deb
wget wget http://develcuy.com/files/debian/xkeyboard-config_0.1.0_all.deb
sudo dpkg -i xkeyboard-config_0.1.0_all.deb
sudo dpkg --ignore-depends=xkeyboard-config -i xlibs_6.8.2-77_all.deb
sudo dpkg -i kylixlibs3-borqt_3.0-1_i386.deb
cd /usr/lib
ls kylix3/
sudo ln -s kylix3/libborqt-6.9-qt2.3.so
sudo ldconfig
wget http://downloads.mysql.com/DBDesigner4/DBDesigner4.0.5.4.tar.gz
tar zxf DBDesigner4.0.5.4.tar.gz
cd DBDesigner4
./DBDesigner4
echo "soy 1337" | awk '{print $0}' | sed -e 's/\(.*\) \(.*\)/\1 \2/'

Visualmente hay problemitas, resultado de andar diciendo que uso una biblioteca que no uso, pero el programa funciona normal.

En algun capítulo posterior de mi interesante Blog estaré explicando lo que el prefijo “sudo” en varias de las lineas en el código anterior hace, por lo extenso del tema no puedo explicarlo hoy.

[UPDATE] Encontré un dummy para no tener el problema de “ingnorar” la dependecia de xkeyboard-config

DBDesigner en Debian lenny/sid



El aporte de Ubuntu a la comunidad Linux


Todos sabemos que desde que apareció Ubuntu hace 4 años, Linux ha tenido una proyección mucho mayor hacia el público en general, pero cual es realmente el aporte, y que podemos esperar en el futuro cercano ?

Desde el punto de vista de un administrador experimentado, en general Ubuntu genera más problemas de los que corrige sobre la base de Debian, sobre todo en cuestión de actualización de versiones, con Debian normalmente el proceso es bastante transparente (digamos 90% de las veces), con Ubuntu simplemente no es fácil actualizar a una nueva versión del SO porque mucho va a fallar. En esencia volvemos al rudimentario mundo de las actualizaciones con disco y sacando de funcionamiento la máquina mientras se realiza la misma.

Para los usuarios de escritorio la historia es bastante diferente, Debian tiene algunas versiones de instalación muy amigables para el usuario, pero solo Ubuntu logra la amabilidad que tienen distribuciones como Mandrake o Suse, eso es una gran ganancia, ya que un usuario sin experiencia puede fácilmente particionar su disco e instalar Ubuntu sin darle cuello a la instalación de Windows.

Y hablando de la ganancia de Linux en general con la aparición de Ubuntu, la cosa se ve medio fea realmente, ya que si bien linux ha ido aumentando discretamente su uso en escritorios, Ubuntu se lleva al rededor de un 30% de las instalaciones, lo cual significa que la aparición de Ubuntu no aceleró la adopción de Linux en escritorio, sino que les quitó a las demás distribuciones una rebanada de su pastel.

Ahora, realmente hay detalles más importantes que podemos ver de Ubuntu, y el principal en mi opinion es que mantiene desarrolladores de SL, eso es algo que no se puede valorar suficiente, aun cuando la empresa sigue siendo “no productiva” en cuestion de ganancias netas, Mark Shuttleworth sigue invirtiendo dinero para que la empresa continue avanzando.

Como conclusión, en mi parecer Ubuntu no ha hecho un gran cambio para Linux, pero si para los desarrolladores que tiene contratados 🙂



Minefield – Firefox 3.1


Estoy escribiendo esta nota desde la version beta 2 de Firefox 3.1 (Minefield).

No está mal, supuestamente es mucho más rápido, pero eso todavía no me queda clarisimo, y para comprobarlo estoy corriendo el benchmark de sunspider, los resultados son estos:

Browser Resultado Liga
FF 3.1b2 6122.4ms +/- 8.1% Liga
FF 3.0.3 11782.4ms +/- 3.2% Liga

Firefox 3.0.3 (iceweasel en realidad) es casi 2 veces más lento que el Minefield, lo cual ya es ganancia :), todavía no es tan estable, pero hasta el momento todo lo típico funciona bien, gmail, reader, slashdot…

Y nunca está demás probar el acid3, que vemos en las siguientes 2 imágenes.

Minefield

Estable

En general me quedo bastante contento con la version beta, todo parece indicar que la versión 3 de FF va a lograr consolidarse despues de una larga etapa de dudas con respecto a regresiones de todo tipo.

Excelente !! 🙂



Actualización a WordPress 2.6.3


Hoy salió una actualización para WordPress la cual ya apliqué tanto a mi blog como a SLM

Esta version contiene una corrección a un problema de seguridad del sistema que importa noticias, puedes encontrar más info en el .



La evolución de la web


Recuerdo mis inicios en el interneis, hace como 13 años, cuando empecé a trabajar en la tesis de mi licenciatura, todo era feo, lo mejor era webcrawler y lycos, y en menos de lo que canta un gallo cada búsqueda en ellos nos daba un 90% de resultados relacionados con p0rn.

En aquellos tiempos ni siquiera había estándares decentes de HTML, es más, JavaScript apareció después, y no fue aprovechado para algo productivo hasta bien entrada la década del 2000. Una página bonita era la que tenia buenas animaciones en GIF !!, despues ya finalizando los 90’s, empezaron los frames, y se empezó a popularizar más el contenido multimedia (antes el internet servia para ver fotos y chatear en IRC/BBC), recuerdo que era la neta bajar cortos de películas (Pulp Fiction era mi preferida para buscar), curiosamente el formato MOV era la neta, luego MPEG llegó a ser popular también, hasta que llegó la era de la locura en los formatos de video con RealPlayer sacando el propio, luego M$ haciendo lo suyo, y así sucesivamente.

Recuerdo cuando empezó el royo del DHTML, que ahora conocemos con JavaScript/DOM, ahi fué cuando empezó a ponerse buena la cosa, ya se usaban los lenguajes para algo más que poner un texto movil en las páginas, ya podíamos ver layouts complejos !!, dinámicos, etc. Y bueno, más o menos por la misma época dimos el salto de páginas etáticas a las dinámicas, todo era CGI !!! afortunadamente no me metí a programar para web en esos entonces, que miedo !!, recuerdo que Perl se consolidó como “EL” lenguaje de programación, claro con otros como Java y no recuerdo que más, pero no se tardaron en crear lenguajes realmente amigables, como PHP (aunque ya existian desde hacia algunos años, no se hicieron populares hasta entrado el 2000), python, e incluso ruby, entre muchos otros menos populares, y bueno, no voy a dejar de mencionar cosas propietarias como las versiones de Java que sacó M$, que luego degenerarían (por las demandas en contra) en lo que es .NET ahora.

Pero bueno, ya desde hace unos 5 años a todo mundo le queda claro que el lenguaje no es realmente demasiado importante (sobre todo si no manejas demasiado tráfico), sino las habilidades de los programadores, y de los diseñadores para hacer cosas agradables a la vista, y funcionales de verdad.

De unos 3 o 4 años para acá (la cita aquella famosa del web 2.0), entramos en la transición más relevante que hemos tenido en esta década. Durante bastante tiempo Flash (no lo había mencionado !) acaparó totalmente el tema de las animaciones (los GIF simplemente se movian, pero no podría reaccionar facilmente a la interacción), la verdad es que Flash aportó mucho, pero hizo de la navegación web una experiencia frecuentemente desagradable para muchos de nosotros, no solo se llenaron las páginas de animaciones sin sentido, y menus con movimiento, sino que nos acostumbramos a entrar a una página para ver una barra con un mensaje de “Cargando n%”, que simplemente se volvió una locura, nadie podía hacer una página sin meterle flash, incluso me tocó trabajar (mi primer trabajo !) en una empresa que sucumbía a flash a la menor provocación, hasta recuerdo que hice el core de una aplición que en ese tiempo no era realmente muy factible con JavaScript (era demasiado lento todavía), en fin, una época horrible !!, pero no duró demasiado, porque justo por ahí del 2004-2005 empezó JavaScript a tomar muchisima fuerza (se usaba mucho desde antes) al grado de que dió paso a lo que ahora conocemos como web 2.0, que podría existir sin JavaScript, pero que se enriquece muchisimo de este.

Esta transición fué en 2 areas, una fué el inicio del uso de AJAX (curiosamente un invento genuino de M$ !!), así como la transición de páginas dinámicas a páginas comunitarias (wikis, blogs, foros, etc).

Afortunadamente con las mejoras que se le hicieron a JavaScript, de unos años para acá es dramáticamente menos probable encontrarse con páginas que tengan flash, y con ello no solo la vista mejoró, sino que hemos dejado de sufrir por la inestabilidad que Flash tenía a bien en darle a los navegadores.

También hemos ganado que cada empresa/grupo/organización que hace un navegador de web se preocupe realmente porque respete estándares, no solo de JavaScript, sino de CSS y HTML, hace 10 años era terrible ese problema, y ahora sigue siendo un dolor de cabeza (en gran medida por el MSIE), pero ya no es un problema tan serio, y existen buenas bibliotecas de JavaScript que “corrigen” los problemas de despliegue de MSIE principalmente.

Ahora vivimos en la época en la que es posible crear aplicaciones muy al estilo de lo que estabamos acostumbrado a usar en el escritorio, para ejemplos concretos y fáciles de acceder están todos los servicios de google, pero incluso hay ejemplos muy populares, que seguramente te has encontrado muchas veces en esta misma semana, como los editores de “texto rico” como tinymce, y otros menos populares, que son un muy buen ejemplo de lo que se puede hacer con JavaScript, no solo es una aplicación sencilla y completa para crear texto complejo en HTML, sino que además es totalmente portable es fácil de integrar a cualquier otra aplicación web, y funciona en prácticamente todos los navegadores que tiene las características para soportarlo.

En poco más de una década pasamos de maravillarnos con simples animaciones GIF, a tener una cantidad impresionante de juegos en Flash que hacen real gala de lo que es una animación dinámica, y ahora estamos en un punto en el que seguramente muy pronto va a ser posible crear grandes juegos en 3D a través de bibliotecas estilo OpenGL adaptadas a JavaScript, de tal manera que podamos abrir nuestro navegador, y visitar una página en la que podamos empezar a explorar un escenario de Quake Arena y empezar a disparar a diestra y siniestra.

Al menos eso espero yo 🙂



Seguridad para mortales


Como dice mi buen amigo Kwame, te vas a volver loco leyendo tanto de seguridad.

La verdad es que el asunto de seguridad es un tema ya sea para genios o para paranóicos, normalmente los moratales, aquellos que no andan por arriba del ±10% del IQ promedio, no tienen gran interés en el tema: “Mientras no pierda datos que me hagan perder el trabajo, no hay problema”.

Entonces qué puede esperar una persona normal (en cuestion de inteligencia y estabilidad emocional) cuando tiene interés en la seguridad computacional?

Respuesta rápida: Leer mucho, entender poco, aplicar conceptos básicos a sus sitemas (actualizaciones, seguridad permietral básica, monitoreo interno básico).

<Respuesta larga>

El proceso va a ser mucho más doloroso que para los afortunados genios y paranóicos, normalmente la falta de obsesión no ayuda a aprender cosas complejas como jugar ajedrez bien, cualquer matemática que vaya más allá de una derivada (integrales ya no califican como sencillas), o la razón por la que la teoría de cuerdas, o la de funcionales de la densidad han fallado en explicar cosas que otras teorías si han logrado (o para el caso, entender porque son usadas por tanta gente).

Pero a pesar de que va a requerir mucho trabajo (más que para los genios, y esos trabajan como locos), necesitamos mucha gente involucrada en la seguridad, no podemos dejarle el tema exlcusivamente a los “inteligentes”, no son suficientes, y normalmente no se ocupan de temas triviales como asegurar la red de una empresa que no tiene cientos de servidores y miles de PCs.

Lo básico es entender TCP/IP, jeje, si, ya se, pero es necesario, se puede aprender bastante sin entenderlo, pero eventualmente se llega a un punto en el que si no puedes entender al menos lo más básico de la salida de tcpdump (o incluso los argumentos de tcpdump correctos para cada situación típica) simplemente no vas a poder mejorar tu conocimiento, y mucho menos detectar problemas y solucionarlos (una intrusión califica como problema).

Desgraciadamente muy pocas escuelas le entran al tema de redes con una profundidad más allá de saber decir “trama de paquetes” o “modelo OSI”, pero tenemos internet !!, así que material para estudiar si hay.

Por otro lado, la realidad es que aunque los congresos de Software Libre son tan informales como todo entusiasta de ellos, son la mejor fuente de información tanto “legacy” como nueva. En los congresos de SL puedes encontrarte con temas tan novedosos como seguridad en virtualización, y desde luego fuzzing, buffer overflows, ID[S,P], nuevas formas de ataque (web 2.0 sale al tema constantemente en estos días), y un gran etcetera.

En un congreso de computo tradicional, incluso en eventos especializados de seguridad que no sean enfocados al SL, puedes encontrar cosas interesantes, pero en general el fuerte de la información que proporcionan tiene que ver con la comunicación a niveles superiores del organigrama, con justificar gastos, y con actualizar el caló ejecutivo en cuanto a seguridad computacional. Entonces, tienen su valor, pero está más relacionado con mantener tu trabajo, o justificar aumentos de sueldo.

Y bueno, aunque ya lo mencioné, hay que puntualizarlo bien, en la actualidad la mejor manera de aprender sobre seguridad es buscar información en Internet. Existen blogs muy interesantes (al final pongo ligas) sobre casi cualquier tema de interes en esta área, aunque normalmente esos blogs no son muy explícitos, nos dan muy buenas pistas, y de vaz en cuando pruebas de concepto (PoC, de sus siglas en inglés) muy educativas. Las listas de correo sobre avisos de seguridad también son muy importantes, hay un par al menos que discuten abiertamente muchos ataques, siempre hay que expulgar entre toda la basura, pero es una habilidad que se aprende fácilmente. Y por último, y no menos importante, hay que estar visitando los sitios que publican exploits, y todo lo relacionado a ataques locales y en red, ahí no solo nos damos cuenta de que vulnerables somos, sino que tenemos material para experimentar y aprender a distinguir la diferencia entre un programa en C que va a borrar nuestra información y uno que va a atacar una vulnerabilidad (no hace script kiddies de mejor nivel).

La seguridad es tan complicada y tan extensa que simplemente nunca vas a lograr tener un panorama completo, pero si podemos tener el conocimiento suficiente para disminuír en gran medida la posibilidad de un ataque exitoso. Por lo pronto esto fue todo por hoy, el panorama de la autopista al DF está atrayendo cada vez más mi atención, y no me voy a resistir.

</Respuesta larga>

Buen día.

Update (Gracias por el aviso Alex!)

Corregí el desastre de formato que había, es lo malo de escribir offline y solo dar el copy/paste cuando llegas a la oficina :), sorry
Ligas interesantes



Que ondas con tu vida GaRaGeD


Este post es en esencia para mi 🙂

Esta semana ha estado medio fea, algo pesada, y además desde el jueves o viernes pasado me di a la tarea de migrar el sitio de SLM de postnuke a WordPress, lo cual creo que me salió bastante bien, a pesar de que realmente no está migrado todo.

Bueno, en el trabajo he andado haciendo cosas dispersas, en el proyecto que estoy actualmente hay que hacer un analisis y reporte que tiene que terminarse muy pronto, y andamos en la loca.

Personalmente tengo broncas con la familia, nunca falta, pero ni modo.

Y bueno, hoy (por tercera o cuarta vez en medio año aprox) algo me cayo mal de lo que comí, y traigo inchado el labio superior, lo peor es que no tengo ni idea de que es lo que me lo ocaciona, y ya me ha pasado varias veces en circunstancias muy diferentes.

Y bueno, mañana ya es viernes, así que como sea, la semana si la termino 🙂



NüNet


Ayer se lanzó el anuncio oficial del primer número de la revista de software libre “NüNet”, que estamos haciendo gente de SLM y Gruslic.

Anuncio oficial

La revista es un proyecto que estamos organizando entre varios de los entusiastas de SL en Morelos, y tiene como objetivo principal animar a todo aquel que desee escribir algo al respecto del SL o temas relacionados con computo, etc.

Pues nada, hay que hacer ruido, espero que la revista empiece a tener lectores desde ahora, y esperamos sacar el segundo número a más tardar en diciembre, si se puede antes 🙂