27 de enero de 2006

Como ser idiota y que te paguen por ello haciendote consultor de seguridad

Si señores, la veda esta abierta. La prueba la pone este artículo de eWeek - que por otra parte, es un excelente sitio de noticias y no suelen tener deslices de este tipo - en el que nos cuenta que el cambio de Apple a x86 va a hacer a Mac OS X más vulnerable

Lo divertido, es evidente, comienza con el título. Uno se para a pensarlo dos veces y llega a la conclusión de que como ese cambio va a afectar a la mala o buena calidad del código de Mac OS X. Dejando a la mente que se interne por vericuetos senderos, se le ocurre a uno que quizás se refieran a la capacidad de marcar la zona de memoria destinada a la pila como no ejecutable - algo que los PPC tienen y que x86 nunca tuvo porque siempre fue una (y siempre tendrá algo de) mierda, hasta que AMD lo incorporó y lo vendió a la gente como "protección antivirus". Protección contra ejecutivos drogadictos es lo que necesitan los usuarios. En fin

Volviendo al tema, Intel siguió el ejemplo de AMD y incluyó tambien la protección - hay que joderse - "antivirus", solo que Intel lo llamo "Execute Disable Bit", para que la gente viera que la mayor empresa de procesadores del mundo en el 2006 es capaz de hacer lo que hacía multics a finales de los 60. Pero no incluyen el juguete, creo, en todos los procesadores, y a estas alturas con la mezcla de nombres de productos de Intel uno ya no sabe cuales lo tienen y cuales no. Pero el Core Duo lo tiene. Y si Mac OS X usaba esa capacidad en los power, en este tambien es de esperar que tambien lo haga en el core Duo, asi que esa protección no debe ser (lamento no poder dar más detalles sobre el tema, pero es que tengo suspendida física de primero y ya se sabe que para hablar de estas cosas la física...)

Eso lo se yo mirando un poco en google. Pero el del artículo debe ser chino y debe sufrir la censura del gobierno chino, porque dice: ""Every part of memory is executable by default," Grenier said. "Just about every place you can stick data into memory, you can get it to execute". O sea, se cree que el core duo no tiene lo que tiene. Pues vaya. ¿Veis porque es malo el comunismo? Porque luego los expertos chinos no pueden hacer buenos estudios

Pero eso es al final. Si uno mira al principio del artículo, encuentra que las razones reales son otras: There are many more malicious hackers who understand the x86 architecture in-depth than understand the PowerPC. And attackers have access to hundreds of documents and examples of how to exploit common vulnerabilities on x86, whereas exploits for PowerPC are far fewer, Friedrichs said.

Claro, como no había caido. Un tipo que sabe explotar un buffer overflow en una plataforma x86 no tiene ni puta idea ni capacidad para aprender a ensamblar en ppc sin hacerse una carrera, no te cuento nada de echar un vistazo a www.power.org y la extensísima documentación de apple e IBM y a otros exploits ya existentes. Y el argumento continua "With Complex Instruction Set instructions, there are more of them, and they do more for you. It's just simpler to read and write to CISC systems and get them to do something," she said.. Claro. Claro. Esta todo clarísimo. Si es que CISC te abstrae más del procesador, y es más sencillo escribir exploits. El que las plataformas RISC se caracterizen por un menor número de instrucciones de mayor simplicidad que permiten un mayor número final de combinaciones no influye en este razonamiento. Ya ves: Toda la vida creyendo que en windows muchos gusanos funcionaban porque se crean cuentas con permiso de administrador por defecto, y al final va a ser que la razón real es que el visual studio se lo pone más fácil a los crackers para hacer virus, mientras que en linux como los IDEs son una mierda, pues no es lo mismo. Si es que hacer usar vim a los crackers es inhumano. Y no te cuento nada de emacs.

Algunos informáticos tienen vocación de físicos y no se dan cuenta

...y no les gusta que diga que estudiar física en informática es absurdo. Los físicos se meten a informáticos, y los que estudian informática sienten pasión por estudiar cosas que no son de informática, porque asi les considerarán mejor que a los telecos. La ciencia de la computación, señores, no es "la construccion de un sistema informático de los pies a la cabeza". Si la electrónica, física, matemáticas y telecomunicaciones son carreras separadas de la de informática, es por una buena razón: porque cada disciplina del saber tiene su campo más o menos definido y sus bordes más o menos difusos con otras disciplinas:p ara la química es muy importante la física, por ejemplo (o eso creo), y para la informática lo son las matemáticas. Pero siempre tiene una identidad claramente definida que es en la que debe centrarse especialmente. Por eso no somos matemáticos ni debemos saber todo sobre matemáticas.

Me hace mucha gracia eso de "en general un teleco puede hacer el trabajo de un informático". Me hace gracia porque no me extraña en absoluto. Debería algo asimilado a estas alturas en el sector. Porque es verdad.

La gran mayoría de los informáticos que salen de las facultades tienen un nivel de conocimientos deplorable. Y asi está el mundo: Proyectos que se alargan, programas que no son usables para los clientes hasta la versión 2.5 por la cantidad de fallos: para que contarselo aquí a personas que han llegado aquí a través de un feed RSS que su cliente de RSS baja cada x minutos para comprobar si hay actualizaciones en vez de poder mirar una "fecha de última actualización" en el protocolo y ahorrar ancho de banda. Es decir, chapuzas. Las vemos cada día y afectan a todos. Vemos esas chapuzas cuando utilizamos un CreateProcess de la API de windows y miramos la documentación de sus 10 parámetros (y esto lo hace la mayor empresa de software del mundo) .

¿Que ocurre? Pues que un teleco, obviamente, tambien puede hacer nuestro trabajo. Hacer chapuzas, las puede hacer igual un teleco que un informático. Y un físico, y un matemático. No hace falta demasiado: Librito de "aprende C++ en 10 días", y a correr: el código que haga un matemático despues de leer dicho libro y un par de holas mundo y una lista doblemente enlazada en C que no de violaciones de segmento no será de calidad muy inferior a la de un informático medio recien salido de la universidad, y será similar a la de un informático medio despues de un poco de práctica en el mundo real. A los telecos les meten el contenido de ese "aprende C++ en diez días" en la carrera asi que se libran de comprar que compran los matemáticos.

La invasión laboral que sufrimos los informáticos por parte de los telecos, físicos, matemáticos etc es debido a que es totalmente cierto que cualquier teleco puede hacer el trabajo de un informático medio leyendose un libro de mierda un fin de semana (no literalmente, espero que la gente haya captado la analogía). Si durante la carrera se preparara mejor a un informático, pues no sería un genio, pero sería mejor informático. Y siendo mejor informático logrará estar un peldaño mas arriba de los telecos, físicos y matemáticos. Y eso, señoras y señores, no se consigue metiendo física como asignatura troncal de la carrera (si alguien lee este post por primera vez, llegado a este punto probablemente le interese el post "padre" que le dió origen: Porqué pienso que no se debería enseñar física en las facultades de informática - y no, no hablo de quitar teoría para meter práctica, todo lo contrario, meter más teoría relacionada con la informática y quitarla la que que está relacionada con la informática como la física)

Por supuesto el informático experto dirá que no, que él es experto y que tambien hay telecos haciendo competencia (de hecho puede que haya algunas personas que sin gustarle el tono de este post, intente buscar la excepción a todo esto echándomela en cara, sin darse cuenta ya a estas alturas de lo que me importa es la informática en general, lo común y lo típico no las excepciones, podría incluso jugarme el cuello a que alguien se intentará lucir por eso del quedar bien y pondrá un post sobre ello "haciendome ver la luz"). Pero eso es culpa nuestra, por haberles dejado entrar y haberles dejado ganar experiencia: Porque la carrera es un mundo, pero el mundo laboral es otro muy distinto, y hasta un carpintero puede acabar siendo un informático experto si le das años para adquirir experiencia. Una vez que un teleco trabaja como informático gana experiencia y aprende porque el trabajo real te enseña informática por las buenas o por las malas (no te enseñan las bases matemáticas etc. pero te enseñan a ser informático y a hacer lo que hay que hacer, que no es poco). Y una vez que gana experiencia ya es un poco más informático. Y su curriculum se alarga, y con esa experiencia como informático tiene más probabilidades para conseguir otro empleo como informático (la experiencia laboral lo es todo). Y una vez que consigue otro empleo como informático, comienza la cadena de nuevo. Y al final, te encuentras a un teleco que ya no es un teleco: Es un informático. Incluso puede que sea bueno (comparado con el nivel medio, claro). Y si un teleco, matemático o físico se mete a informático y llega a ser buen informático, como dijo alguien en el planet de augcyl (siento no recuerdar quien fue), bienvenido sea al club. Que bastantes informáticos malos hay ya como para desestimar a los buenos.

Lo que cuenta para reducir el intrusismo profesional no es el nivel de formación del mejor de la clase de informática ni las excepciones a la regla, sino el nivel de formación del alumno medio que estudia en una universidad media y que aspira a un trabajo medio. Si el nivel de formación del alumno medio no es bueno, das más oportunidades a un teleco. Cuanto más alto, se lo pones más dificil. La mejor oportunidad (que no la única) que tenemos los informáticos para luchar contra el "intrusismo profesional" son los años de universidad. Hacer que para que un teleco pueda hacer programas de la misma calidad que un informático medio necesite hacerse otra carrera, que no valga con un cursillo de programación en java. Gracias a cosas como las clases de física, la informática está lejos de ese objetivo. Haciendo lo que decia mi primo en el comentario del post anterior (estudiar mas cosas de las que estudian los telecos) solamente se lo pones (aun) más fácil. Joel Spolsky tambien tiene un buen artículo sobre ello: Un artículo sobre las "universidades java" que usan java para todo porque está de moda: "The lucky kids of JavaSchools are never going to get weird segfaults trying to implement pointer-based hash tables. They're never going to go stark, raving mad trying to pack things into bits.

Y la culpa es nuestra. Y no me firmen con la gilipollez de que no solo física deberiamos estudiar sino tambien mucha más física y por si fuera poco química para parecernos a otras ingenierías y sonido e imagen para hacer el cimbel y aprender el proceso de fabricación de la fibra óptica. Son ustedes los que hacen que esta profesión de asco, no yo. Y no olviden contar todo esto a sus amigos ingenieros, asi cuando vaya yo por la calle y vea a gente riendose de mi, sabré perfectamente a quien y a quien no tengo que ignorar, que a veces tener una conversación para adivinarlo se hace demasiado pesado

26 de enero de 2006

¿Te gusta youtube pero no puedes descargar los videos? KDE powah (R) al rescate

Es bien conocido youtube, un sitio donde la gente sube videos, análogo a google video

La "pega" que tienen estos sitios es que no te dejan guardar el video de manera local - quieren que entres en su web a verlos. Utilizan flash como reproductor (Macromedia, que estúpida has sido, tantos años con una tecnología de gráficos vectoriales revolucionaria como flash y ahora todos te van a comer el mercado) para reproducirlos y lo tienen bien montado: En el código html ves que incluyen un archivo swf, pero ese archivo no es el video, el reproductor tiene la lógica suficiente como para bajarse luego el video. Yo incluso he intentado ir al cache de firefox y cojer el supuesto archivo del video que se baja el reproductor, y no funciona. Lo tienen bien montado. No quieren que la gente se baje videos, quiere que la gente visite la página

Pero aquí llega KDE con su Powah (r): un tipo que ha creado un script de kommander que te permite guardar esos videos e incluso pasarlos a avi. Kommander es una especie de lenguaje script que utiliza tecnología de KDE como DCOP (sorpresa, sorpresa) para funcionar. Dudo mucho que sea ilegal, porque al fin y al cabo el copyright es de los videos no de youtube