Un resumen de lo que es la carrera de informática en la UPC

Posted in De otro planeta, Hasta Los Cojones, Informática by Pryrios on November 14, 2009 3 Comments
No Gravatar

Estoy trabajando en una práctica. No es muy complicada, pero es de una materia bastante específica como para que no sea fácil. Vamos a usar un poco de vocabulario técnico para legos:

- Compilar: Pasar, mediante un programa específico para ello, de línias de código de programación a un ejecutable. Es una simple traducción de una cosa escrita a algo que el ordenador pueda entender para que se vean cosas por la pantallita y todo eso. El codigo ejecutable es ilegible para una persona (o al menos una persona normal).

- Arquitectura de un ordenador: Actualmente hay dos arquitecturas coexistiendo: la de 32 bits, más vieja, y la de 64 bits, más nueva. Seguro que habéis oido lo de Windows XP de 32 bits o de 64 bits y tal. Esto significa que, internamente, un ordenador hace las cosas de forma distinta según si es de 32 bits o de 64 bits.

Si sois un poco avispados, habréis notado que compilar un código en una máquina de 32 bits hará que la máquina de 64 bits no sepa como usar ese ejecutable y no funcionará. Si eso fueran idiomas, imaginad que vosotros sabéis escribir en castellano (código escrito vuestro) y que teneis ordenadores que o bien entienden el inglés (32 bits), o bien entienden el francés (64 bits). Si traducís al inglés (compilais a 32 bits), solo funcionará en el ordenador de inglés. Si lo traducís al francés (compilar a 64 bits) pues solo al francés.

- Libreria: Conjunto de archivos hechos por otras personas que puedes utilizar en tu programa. Digamos que son programas compilados (traducidos) anteriormente de modo que tu no ves el código pero te dan un libro de instrucciones de como se utilizan. Hay que ir con cuidado porque una misma libreria tiene una version en 32 bits y otra en 64 bits y tienes que utilizar la correspondiente al sistema para el que quieres compilar. Es decir, si quieres compilar para 64 bits, tienes que usar la librería de 64 bits o viceversa con 32.

Si no habéis entendido algo, volved a leer, que no es tan difícil :P En realidad, lo de 32 bits y 64 bits no depende de la máquina, sino del SO. Si la máquina es de 64 bits, soporta sistemas operativos de 32 también, aunque al revés no pasa lo mismo, pero eso tampoco tiene mucha importancia para lo que explicaré a continuación.

En mi práctica de la que hablaba al principio, tengo que compilar el programa que estoy elaborando. Ese código no lo he hecho desde cero yo, si no que me dieron una parte del código ya hecho. Y me dieron unos archivos de configuración para poder compilar con facilidad esa práctica. En principio esos archivos estan elaborados de tal manera que te detectan para qué máquina vas a hacer la traducción y utilizan los comandos adecuados para compilar o bien a 32 o bien a 64 bits. Eso incluye la selección de librerias, que en principio también la hacen esos archivos de configuración.

Yo en casa trabajo con 64 bits. En la universidad, al parecer, usan 32 bits (que por cierto, otro día hablaremos de lo “al día” que estan en una facultad de informática). Eso no sería problema porque, como ya hemos dicho, los archivos de configuración hacen la selección de compilador y librerias.

Bueno, pues hay una librería en concreto que, en un archivo de configuración de los que me han dado ellos, han puesto explicitamente a 32 bits. Así, con dos cojones, uno de acero y el otro de titanio. Una sola librería de las varias que se utilizan (que igual estamos hablando de 30 o 40 archivos de librerías o más) la han puesto para que los archivos de configuración solo puedan coger la de 32 bits. Que si eso fuese una cosa fácil de ver, oye, no hay problema alguno. Pero te dan como unas dos o tres docenas de archivos y en principio hay unos cuantos que no necesitas tocar. De hecho, sobretodo esos de configuración, no los debes tocar porque luego ellos tienen que poder compilar en los ordenadores de la facultad tu práctica y ver que funciona.

La solución, por suerte, es sencilla: cambiar el archivo aquí en casa (simplemente hay que añadir el numero 64 en un sitio concreto), tirar millas y luego revertir los cambios cuando lo quiera compilar y ejecutar en la uni (que lo haré solo por asegurarme).

Eso sí, era algo totalmente innecesario de hacer que encima no tiene nada que ver con lo que tengo que demostrar que conozco con esta práctica. Eso me ha hecho perder un par de horitas aproximadamente intentando localizar el error que me daba, dos horas que no me va a devolver nadie y que no me han servido para absolutamente nada.

Y ese párrafo anterior, damas y caballeros, es la tónica que se respira día sí y día también en la facultad de informática de la UPC. No solo en esa asignatura, sino en muchas más.

Por suerte, me queda poco en el convento.

Comments
  • Epi tiene los huevos cargados y hoy no puede salir porque está haciendo la misma pràctica que el que arriba escribe.:

    Cuánta razón. De hecho, me estoy pasando mucho más tiempo intentando descifrar cómo funciona la puta mierda de código que nos dan hecho que haciendo lo que nos piden.

    Que parece que lo que nos dan lo hayan escrito monos sin brazos, coño.

  • Bartserk sin embargo ya aprendió la lección:

    Yo soy de los que han adoptado una política conservadora en lo que respecta a las prácticas de la universidad. No hago ninguna práctica en C fuera de la facultad, siempre uso los pc’s de las aulas donde, a veces, todo funciona a la primera. Y remarco lo de “a veces”. Tiene ventajas e inconvenientes, pero me frustraba tanto perder todo ese rato configuando e instalando mierdas que no tenían nada que ver, que preferí ahorrarmelos a costa de perder rato con otros dramas puntuales. La cuestión es que te lo montes como te lo montes, siempre acabas perdiendo tiempo con gilipolleces que no vienen al caso.

    De acuerdo con lo de descifrar el código ya hecho. Después se llenan la boca con que hay que documentar el código, y torturan a los novatos con el calvario de P1 para que aprendan a ostias como programar “con estilo”. Para luego pasarselo los profes por el forro de las pelotas los primeros.

  • Yo también hago las prácticas siempre en el labo. Hay cosas puntuales de esta práctica que he hecho en casa, pero siempre bajo la certeza de que estaban ejecutándose en un entorno similar (igual, de hecho) a la uni y probándo luego allí.

Leave a Comment