28 de mayo de 2008

El horterismo de los 80

Esta mañana comentaba con un compañero lo horteras que habían sido los 80, con su bola de cristal y su Alaska cuando aún era jovencita (Olvido! Perdona! Es sólo una forma de hablar!).

He conseguido escenificar esto con dos vídeos de la misma canción: "Como un lobo", de Miguel Bosé. El primer vídeo es la versión de 2009, con su sobrina Bimba y en versión discotequera molona (por favor, cambien negros por marrones en la letra):


El segundo, es la versión del 87. No os perdáis los vestidos de los coristas!:


El nombre de usuario de quien ha colgado en youtube el segundo video lo dice todo: 80hortera90 :)

Ale, ahí queda eso!

23 de mayo de 2008

Promou CatTech!

No m'agrada la traducció que es fa habitualment del nou de la Universitat Politècnica de Catalunya a l'anglès. "Technical University of Catalonia" no és un nom comercial ni es res de res.

Proposo això:


Els logos i d'altres queden per als dissenyadors gràfics :)

Us agrada?

20 de mayo de 2008

Web Services en J2ME

(Hoy no tengo sueño. El puteo que me ha cogido hoy con el bicing me lo ha quitado. ¡Más estaciones de bicing ya!)

El otro día le comentaba a Ludo que había probado la "nueva" versión de NetBeans (6.1) y que me había dado cuenta de que mis conocimientos se habían quedado anticuados en cuando a cómo consumir web services desde j2me. Este año no se ha abierto el posgrado de Desarrollo de Aplicaciones Móviles en el que dábamos clase y, en un año, esto ha avanzado una barbaridad. En definitiva, que ahora es todo más fácil (por suerte, que antes era "mu complicao"!).

Para muestra, un botón. Ahí van mis dos primeros screencasts. Tienen bastantes fallos (no están editados) y he usado un trial para grabar la pantalla. Los próximos serán mejores.

En el primero se puede ver cómo crear un web service usando el asistente de NetBeans 6.1



Y en este otro, cómo consumir el mismo web service desde una midlet generada con el editor visual.



Por suerte, Ludo tenía razón cuando decía que, sabiendo lo que está pasando "por debajo", te puedes poner al día en una tarde. No las tenía todas conmigo.

Espero que os sirva.

Para próximas ediciones:
- Un proyecto básico con Hibernate
- Atancando a la BD con JDBC
- Cómo iniciar un proyecto con Django

¿Algún órden de preferencia?

16 de mayo de 2008

Conocimiento ¿inútil?

Sé que muchas veces hago o digo cosas que muchos conseideráis de "colgao" o de "friki", que sé o conozco cosas inútiles y que no sirven para nada. Pero...

...hoy he demostrado que no es así!!!

Llamaba a cierta operadora de telecomunicaciones para darme de alta en sus servicio de ADSL. Después de decirle el nombre de mi calle 2 veces, me seguía diciendo que su operadora no podía ofrecerme los servicios de línea y que tenía que darme de alta en telefónica primero y, después, hacer la portabilidad de la línea.

Dado el acento marcadamente gallego de la persona que me atendía por teléfono, decidí que el problema es que no estaba escribiendo bien el nombre de la calle y que por eso no le "salía" el nombre de la calle entre las que disponían de "cobertura" para activarme la línea ellos mismos.

Así que me salió la vena paramilitar que tengo oculta y le deletreé el nombre de la calle, en versión OTAN:
SIERRA - ALFA - ROMEO - DELTA - ECHO - NOVEMBER - YANKEE - ALFA

Y mirad por donde, ahora sí que le figuraba la calle! Total, que ya estoy dado de alta y dentro de una semana tendré ADSL y teléfono (que sólo sirve para que te llamen de Gas Natural, pero vaya).

¿Veis, queridos amiguitos, como no todo mi frikismo es inútil?

14 de mayo de 2008

Choose the right language

(This post is a continuation for this one)

Many students find themselves in a trouble when they have to decide which programming language to choose when they are developing the final project of their university studies. As a lecturer and director of some of them, i always try to recommend them one the the most comfortable languages for web development: PHP.

About a month ago, one of my students decide not no follow my advise. She wanted to develop her whole project (an enterprise calendar integration solution involving mobile phones, a web and SOA) in Java. She wanted to use Java, Struts and Hibernate.

At first, i was upset because of her decision: not many students are strong enough to "face" the director of their projects. But since I've been studying the evolution of her project, I realize that she was right in that decision. Many of you know that I'm not a Java fanatic. In instead of Java, I do prefer some other languages (at this time I'm involved in a BIG project using Python). But I have to accept that Java IS the language for corporate. Why?

First of all, because Java is fast to develop. Using an IDE like Eclipse, you only have to type a dot (.) following an object and you'll get a complete reference of the methods of it (this can be done because Java is statically typed).

Secondly, because of the cost of the development. The most expensive part of any project is people's time. As Java is "easy" (put lots of ditto marks here) to learn and fast to develop, you need less investment in development time. Even when Java needs more expensive machines to run fast than other languages (Sun Microsystems' business model is server hardware, not the Java language), the cost of that hardware is lower than the cost of the additional development time for other languages.

In the third place we found the structure of the language. Java is good for rookie developers because they can learn a lot of software architecture while they are writing their own code. Perhaps you can think that this is obvious, but having each public class in a separate field or the way that Java implements the messages using methods defined in functions can not be easily taught by drawing in a chalkboard.

And fourth and final, because of the lots of know-how that can be found by querying google. Lots of tutorials, how-tos, screencasts and other training documentation can be found at no cost. In addition to that, almost every developer that has had a trouble with Java will be pleased to publish the solution on the internet and pleased to become useful to any other developer in the world. Java has a great community of users that have developed lots of useful plug-ins for Eclipse, frameworks or libraries that can ease your work. Almost everything can be done with a dozen of clicks!!

So, the right language is the right for you and for your project. If you need to decrease development time, use Java (No! Do not do that! Use python! XD). If you need performance use assembler (Just kidding, use C/C++). Think about scalability and what will happen if your system grows up. Python and Java are scalable and maintainable. Many other languages are not. If your system is not going to grow (at a reasonable level of doubt), use whatever you are trained to.

But do not use Java, PHP, Ruby or Python without trying them, or just because somebody tells you to use them. Test them all, compare them all and finally choose one. Do not depress if things do not work at the first attempt (it can take a week until you've got all the environment properly configured!). Keep trying until you've got enough information to make up your mind and take a decision.

This was what my student did a month ago. And she is getting very good results. You can follow her progress in her blog

11 de mayo de 2008

¿Por qué mi jefe es un ingeniero industrial si no sabe programar?

Esta pregunta es una de las típicas que los estudiantes formulan en clase cuando se explica gestión de proyectos.

Desde hace años, cada promoción de estudiantes se encuentra con ingenieros industriales (o físicos o químicos) que son sus jefes en las empresas de consultoría. La respuesta a esta pregunta ha sido, clásicamente un "porque antes no había informáticos y ellos llegaron antes". ¿Estamos seguros de esta respuesta?

Yo creo que no. Sí que hay parte de razón en el "antes no había informáticos", pero hay una explicación añadida que se omite con frecuencia. Los ingenieros industriales pasan la mitad de la carrera estimando horas, haciendo cálculos de costes de proyectos, diseñando procesos y, finalmente, planificando obras industriales.

¿Cuál es exactamente la importancia que a todo eso se le da en la carrera de informática? Una asignatura obligatoria de 4'5 créditos en la ingeniería técnica en informática de gestión. Cero en la ingeniería técnica en informática de sistemas y otro cero en la ingeniería superior en informática, a menos que se coja una asignatura optativa.

Por tanto, mientras que esto no cambie, seguiremos teniendo ingenieros industriales como jefes. Porque la mayoría de los ingenieros en informática son incapaces de sumar con el excel y ya no digamos de hacer una estimación del esfuerzo con el project.

Mientras sigamos explicando qué es un Integer y un Char y nos pasemos meses con las secuencias o enseñando a dividir restando, no conseguiremos nada. Lo importante no es tanto saber programar (eso ya lo hacen mucho mejor que nosotros los que salen de la FP) sino saber gestionar el tiempo y planificar el uso de los recursos, por ejemplo.

Pero bueno... así nos luce en la profesión.

4 de mayo de 2008

Autocrítica universitaria: ¿Qué estamos haciendo mal?

Hace un par de semanas que vengo pensando que algo hacemos mal en la universidad. Hay algo enfermo dentro del sistema educativo que consigue hacer que nuestros estudiantes estén al borde de la crisis nerviosa cuando van a presentar su proyecto de final de carrera. A mi mismo me pasó durante el proyecto de la ingeniería técnica y el fenómeno se repitió cuando estaba decidiendo sobre mi futuro al acabar la ingeniería superior (gràcies Ludo per portar-me pel bon camí).

No sé exactamente por qué, pero presentar un proyecto, algo que debería representar casi una fiesta, porque coincide con el fin de los estudios y el fin de la tensión de los exámenes, se acaba convirtiendo en una fuente de tensión mayor que el resto de la carrera. Un proyecto de final de carrera debería ser un paseo triunfal. Un paseo largo y cansado, porque son muchas horas de trabajo, pero un paseo, sin mayores dificultades, en que se apliquen los conocimientos que se han adquirido durante la carrera.

Pues no. Resulta que a los y las estudiantes se les hace un mundo su proyecto. Empezando por qué hacer, cómo gestionar su tiempo, qué tecnologías usar, qué lenguajes de programación utilizar... y eso sin entrar en detalles técnicos sobre "cómo hago esto?"

Las preguntas anteriores son sintomáticas de que la universidad está un paso (quizá no muy grande, pero un paso) por detrás de la realidad de las empresas. Los/Las que me conocéis sabéis de sobras que yo soy muy crítico con las tecnologías que se usan en las software factories, los frameworks y con que las herramientas se conviertan en doctrinas de fe, pero no puedo obviar que esas herramientas no se explican en la universidad. Así se consigue que nuestros/as estudiantes despotriquen de la universidad diciendo cosas como "en la universidad no te enseñan nada" o "no sé para qué he hecho la carrera, si no he aprendido nada".

De esta manera, las empresas tienen la impresión de que nuestros/as titulados/as valen muy poquito cuando salen al mundo laboral ya que no conocen las tecnologías que en ellas se usan. Por suerte, la mayoría de nuestros/as estudiantes son suficientemente inteligentes como para aprenderlas en pocos meses. Por desgracia, el hecho de tener que olvidar lo aprendido y aprender nuevas tecnologías y formas de hacer causan aún más resentimiento entre los/as recién titulados/as. Puede que la investigación universitaria esté a años luz de lo que se pueda aplicar en las empresas, pero no se transmite el conocimiento entre lo investigado y lo aplicado. Y eso en el mejor de los casos, cuando lo investigado es mínimamente aplicable a la industria.

De vuelta a las preguntas anteriores, considero que la primera de ellas es crítica. Habitualmente, los proyectos se convierten en la enésima tienda virtual (incluso mi proyecto de técnica hubiese sido algo así si Ludo no me hubiese llevado por el buen camino), pero no es eso lo que debería pasar en una escuela tecnológica. ¿Dónde está el espíritu emprendedor? ¿Acaso se lo hemos apagado en la universidad? ¿Por qué no hay ninguna conferencia en horario lectivo con un emprendedor de éxito?

Y esto me vuelve a llevar a la ansiedad que causan los proyectos de final de carrera. Quizá sea que los/las estudiantes no tengan espíritu emprendedor, o quizá sea que los que estamos dentro no conocemos las tecnologías que se usan fuera de la universidad. Sumémosle la poca capacidad docente de algunos profesores (todos hemos tenido malos profesores) y su nula intención de contestar preguntas. El resultado es que no podemos transmitirles la más mínima confianza en su potencial ni en su futuro profesional.

Algo estamos haciendo muy mal entre todos.

Se esperan críticas.