22 marzo 2007

La carrera de informática

Yo creo que la carrera de informática es una cosa rara. Después de estar estudiándola varios años y después de pensar unos segundos voy a disertar sobre los estudios que he cursado.

Existe la Ingeniería Técnica de 3 años y la Ingeniería de 5. Después de estudiar los 3 o 5 o más años, obtienes un diploma firmado por alguien que firma en nombre de otro alguien y ese alguien de otro alguien que firma en nombre del ministro de educación o del mismo rey. Con ese papel bajo el brazo ¿qué sabes de informática? ¿qué es la informática?

Veamos...
- sobre circuitos e ingeniería de computadores seguramente los que estudian ingeniería electrónica sabrán más
- en robótica, automática y todo eso están más preparados los de industriales
- en redes seguramente dominan los telecos
- en diseño gráfico o de webs nos barren en bellas artes o diseño industrial

La informática es tan amplia que como mucho nos pueden dar unas pinceladas de cada cosa, de forma que realmente no somos expertos en nada. Sin ir más lejos, la asignatura de base de datos tenía mucho más temario en el módulo de formación profesional que en la ingeniería técnica. No veo un campo que sea propiamente "informático".

Lo único que queda es la programación, la ingeniería del software. Y esta parte de la informática está plagada de gente que realmente no ha estudiado informática.

Entonces, tenemos una carrera muy amplia que no se centra en nada concreto, salvo el último año, pero con unas pocas asignaturas de especialización poco vas a especializarte. Eso es la ingeniería informática que veo ahora mismo.

Hace bastante años informática no era una ingeniería, era una licenciatura (cómo matemáticas, física...). No sé muy bien porqué se cambió.

El caso que yo he pensado una nueva estructura para la informática. Primero habría que separarla en 2 ramas
- Una licenciatura a la antigua usanza donde se centren en la informática como ciencia: computabilidad, algorítmica, grafos, teoría de lenguajes, teoría de códigos, etc.
- Una nueva carrera que sea Ingeniería del Software, donde se centren en el desarrollo de aplicaciones y bases de datos y en luchar contra "la crisis".
- Administración de sistemas sería un módulo, aunque a lo mejor tendría que ser de 3 años, porque 2 se queda corto creo yo.

El objetivo es eliminar la ingeniería informática que no es más que un pupurrí de asignaturas que poco tienen que ver unas con otras y que se podrían aprender en otras carreras. En algunas universidades se han creado dobles titulaciones como informática+teleco o informática+matemáticas. Que realmente informática+telécono no son 2 carreras sino 1 y media.

Bueno dejo de rallarme ya la cabeza. Si alguien lo ha leido entero y me dice que le parece le pago las llamadas de ONO a ONO.

Salud.

18 marzo 2007

Damn Vulnerable Linux distro

A veces pongo creaciones de gente con bastante tiempo libre y hoy lo voy a volver a hacer.

Resulta que alguien ha pensado que es más fácil hacer un sistema inseguro que uno seguro, así que se ha puesto manos a la obra y ha creado Damn Vulnerable Linux. Incluye versiones viejas de aplicaciones con agujeros de seguridad, configuraciones horrorosas para permitir juanqueas y todo ese tipo de cosas que nos hacen más alegre el día a día.

Además tiene una función didáctica para enseñar a los futuros a hackers...

Texto extraído de su web:
Actually, it is a perverted Linux distribution made to be as insecure as possible. It is collection of IT-Security and IT-Anti-Security tools. Additional it includes a fullscaled lesson based environment for Attack & Defense on/for IT systems for self-study or teaching activities during university lectures. It's a Live Linux Distro, which means it runs from a bootable CD in memory without changing the native operating system of the host computer. As well it can be run within virtual machine environments, such as qemu or vmware. There is no need to install a virtual machine if you use the embedded option. Its sole purpose in life is to put as many security tools at your disposal with as much training options as it can. It contains a huge ammount of lessons including lesson description - and solutions if the level has been solved by a community member at crackmes.de.

Los 7 pecados capitales de los programadores

Los 7 pecados capitales de los programadores. Está en inglés, a quien lo entienda le puede hacer gracia.

Otra parida: La jerarquía de los programadores.

Particiones encriptadas en linux

Filesystem encryption in mixed environments with TrueCrypt

He encontrado este interesante artículo en Linux.com sobre sistemas de ficheros cifrados. Utilizando TrueCrypt podemos cifrar una partición sin que las aplicaciones se vean afectadas. Truecrypt se encarga de dar a las aplicaciones los datos descrifrados para que trabajen y cifra lo que las aplicaciones escriben en disco.

Para descifrar una partición hemos de escribir la contraseña en el momento de montarla. Puede ser útil para tener en un pendrive cosas cifradas que no queremos que nadie pueda ver si perdemos el pendrive. Tendríamos que poner la contraseña cada vez que lo montamos en un ordenador y el sistema operativo debería de soportar TrueCrypt.

También funciona en Windows...

01 marzo 2007

Subversion mola 2ª parte

Primera parte del artículo.

Hoy vamos a crear un "servidor" de Subversion en el que guardaremos nuestras cosas, que podremos descargar desde cualquier ordenador y guardar los cambios otra vez en el servidor cuando queramos. Es decir, lo que hace Subversion desde siempre...

Quería comentar que a mí me gusta que cada proyecto esté en un repositorio independiente. No es necesario pero a mí me gusta más.

Necesitamos:
- Un ordenador en el que estén los repositorios. Ha de tener el servicio de SSH iniciado. Así que debería ser un UNIX para facilitar las cosas.
- Un ordenador desde el que nos conectemos para obtener la última versión del repositorio. Puede ser el mismo ordenador que el servidor. Ha de tener el cliente SSH.

Lo llamo "servidor" (con comillas) porque realmente no habrá un demonio de Subversion esperando conexiones, símplemente es que nuestro cliente de Subversion se conectará por SSH normal a la máquina servidor y hará sus cosas, sin necesidad de abrir ningún puerto más.

Crear un repositorio en el "servidor" es fácil y sencillo. Ya lo expliqué el otro día:
$ svnadmin create ~/tmp/repositorio
Debería crearse con el usuario que después vayamos a usar para conectarnos, para que no haya problemas de permisos. No hace falta permisos de administrador para nada.

Pues ale, ya está el servidor montado...

Ahora los clientes, para obtener la última versión del repositorio hemos de hacer un checkout. Para hacerlo de una máquina remota tendremos que usar algo así
$ svn checkout svn+ssh://localhost/home/x/tmp/repositorio proyecto
Con esta línea le indicamos que ha de coger el contenido del repositorio /home/x/tmp/repositorio que está en la máquina localhost (¡qué lejos!) y guardar los ficheros en el directorio local proyecto.

Al ser una conexión SSH normal nos pedirá la contraseña, nos preguntará si confiamos en la máquina remota y todo eso que sale siempre.

Luego para mandar al servidor nuestro cambios, lo que ya expliqué el otro día:
svn ci
No hace falta indicar el nombre de servidor ni nada porque Subversion ya lo recuerda y conectará al mismo. Eso sí, volverá a pedir la contraseña.

Nada más. Quien tenga dudas que las pregunte o busque en Google.