Archive for May, 2007

Unicode, wstring, wchar_t

Thursday, May 31st, 2007

Compilando el siguiente código en C++ con GCC:

C:
  1. wstring texto( L"/* lasldkj ksaka jkj àáäçÇ */" );
  2. int texto_len = texto.length();

Me apareció el siguiente error:

converting to execution character set: Invalid or incomplete multibyte or wide character

¿Cómo se resuelve? Cambiando la codificación del archivo fuente. En la línea de comandos de Linux usando iconv se puede hacer muy facil:

iconv fichero.in -f iso-8859-15 -t utf-8 -o fichero.out

Si usás algún editor de texto como KDevelop, con cambiarle la codificación el Herramientas -> Codificación -> Unicode (utf8) no alcanza, ya que solo estás cambiando la forma de interpretar el archivo, y no los caracteres mismos (en la parte en donde dice "àáäçÇ" aparecen signos de pregunta: "?????").

¡Viva Unicode!

Un Mundo Sin Abogados

Wednesday, May 30th, 2007

Via el blog de tincho:

Ley de matriculación obligatoria, Parte III

Wednesday, May 30th, 2007

Leyendo el blog de Beatriz Busaniche me encuentro con su comentario sobre la matriculación obligatoria. Y como no podía faltar, alguien en los comentarios compara la matriculacion de la informática con la medicina.

¿Por qué no son comparables?

La matriculación de profesionales tiene como propósito demostrar que alguien está en condiciones de ejercer su profesión sin necesidad de tener que demostrar que realmente es así. Alguien tiene un papelito que dice "Pedrito está certificado", y listo.

Si vas a contratar un mago para la fiesta de cumpleaños de tu hijo, ¿no te gustaría primero ver al mago realizando algún acto de magia? ¿Le pido una matrícula de mago? No, es tan simple como pedirle que me haga algun truco en el momento.

Si el mago no sabe hacer sus trucos de magia, es tan simple como no contratarlo y buscar otro. Lo único que me interesa es que sepa hacer bien sus trucos de magia. Y si no los sabe hacer, los niños de la fiesta se reirán de él por ser tan precario en su actividad. Y ni yo ni nadie que haya estado en esa fiesta viendo al mago hacer mal su trabajo volverá a contratarlo. De cualquier forma, será divertido verlo equivocarse :)

En el caso del médico, tampoco me interesa que esté certificado. Lo que realmente quiero es que sea capaz de hacer bien su trabajo. Siempre. El problema es que un médico cuando hace mal su trabajo, tiene efectos negativos en las personas. Una vez que una persona muere, no es posible resucitarla.

En ese caso lo que uno espera es que ese médico nunca más atienda a alguien, para que no siga matando a más personas.

¿Como demostrás que un médico es capaz de curar a alguien?

No se puede. Lo que sí se puede hacer es decir que un médico "hasta ahora no se equivocó". Cuando un médico comete muchos errores, pierde su licencia. Ése es el proposito de la matrícula de los médicos.

¿Qué ocurre en el caso de los informáticos?

La matrícula no tiene ningún propósito útil.

Cuando alguna empresa pretende contratar a un informático, lo más común es que esa empresa le realice algún tipo de evaluación para poder ver sus habilidades concretas. Y lo mejor de todo es que, a diferencia de los médicos, se pueden evaluar solamente con papel y lápiz. En Google, por ejemplo, son más de 10 las entrevistas que se realizan a las personas antes de contratarlas.

Incluso existen empresas que la evaluación la hacen en una computadora con conexión a internet, y se les permite utilizar algun buscador para investigar sobre cosas que no saben, o al menos se les da alguna clase de ayuda.

La informática es una disciplina que se desarrolla progresivamente. El trabajo de los profesionales se puede medir, ver cuales son los progresos y como van evolucionando a lo largo del tiempo. Si alguien no está haciendo bien su trabajo es posible detectarlo, y si se hace a tiempo se pueden tomar medidas para corregirlo.

Y si ese empleado hace las cosas mal o se equivoca, y si el empleador hace las cosas bien, los problemas nunca vas a ser demasiado graves. Al menos para el empleador.

Si alguien no es capaz de contratar a un buen informático, es problema de esa persona, y no de ninguna otra. Por ejemplo, yo vivo en la ciudad de La Plata. Si alguien me pregunta cual es el mejor local de venta de productos de computación en esta ciudad, tengo una o quizás dos respuestas.

Finalizando, esto es lo realmente interesante: como dije en un post anterior, hay personas que nunca realizaron estudios formales en informática, y son excepcionales profesionales con grandes contribuciones a la sociedad en general en temas informáticos.

Como siempre, esa fue mi opinión. Les recomiendo que lean el mensaje en Via Libre.

Los 10 comandos que mas uso en Linux

Tuesday, May 29th, 2007

Via pilas.net y Mundogeek.net (a su vez via hermann-uwe.de), les traigo la lista de los 10 comandos que mas uso en Linux:

history|awk '{print $2}'|awk 'BEGIN {FS="|"} {print $1}'|sort|uniq -c|sort -rn|head -10

51 make
48 find
44 cd
42 ls
34 svn
29 man
27 ssh
22 nano
17 src/cliente1
13 for

Por lo visto le tengo que dar más uso a la línea de comandos :(

El mito del Microkernel

Monday, May 28th, 2007

http://mnm.uib.es/gallir/posts/2007/05/26/1093/

Ayer cuando nos pasamos con Benjamí por Ona Mallorca una persona que trabaja allí me hace la siguiente pregunta:

¿Es verdad que la informática va a pedales entre otras cosas culpa de Linux porque no es microkernel? Eso es lo que me ha dicho una persona que sabe del tema.

Me dejó sorprendido, aunque pensándolo bien no es la primera vez que oigo eso. Y todo parece ser como parte de una estrategia –bastante habitual en la blogocosa– de coger de “oídas” algo que es difícil de comprender y usarlo como argumento para impresionar, parecer “experto” o incluso un friki

Estilo de gestión del kernel Linux

Monday, May 28th, 2007

http://www.escomposlinux.org/egkl/

Este breve documento describe el estilo de gestión preferido (o inventado, según a quién le preguntes) para el kernel Linux. En teoría debería seguir el formato del documento CodingStyle [EstiloProgramacion] hasta cierto punto, y se ha escrito sobre todo para evitar responder (*) a las mismas preguntas (o parecidas) una y otra vez.

El estilo de gestión es muy personal y mucho más difícil de cuantificar que las reglas de estilo de programación, así que este documento puede tener o no que ver con el mundo real. Empezó como un divertimento, pero eso no quiere decir que no pueda ser verdad. Tendrás que decidir por ti mismo.

Como borrar archivos viejos en Linux (Bash)

Monday, May 28th, 2007
find /path/to/dir -mtime +15 -delete

Este pequeño comando borra todos los archivos dentro de /path/to/dir que son mas viejos de 15 dias. Una Joya.

AONX

Sunday, May 27th, 2007

El Proyecto AONX es un port de código libre del juego masivo online (MMOG) Argentum Online, y está siendo programado en C++ y pensado para ser multiplataforma, usando SDL y OpenGL para que funcione en la mayor cantidad de sistemas operativos posibles.

Hay un blog en el que cada tanto se publican las novedades y avances del proyecto, y un Wiki en el que podrán encontrar cómo compilar y probar el juego.

Ruby on Rails vs. Java EE

Monday, May 21st, 2007

Ley de matriculación obligatoria, Parte II

Sunday, May 20th, 2007

Leyendo Barrapunto me entero que Leslie Lamport, autor original de LaTeX, va a dar unas charlas en Móstoles, España (cerca de Madrid), a unos muchos miles de kilómetros de donde vivo.

Actualmente soy un estudiante de la carrera Lic. en Informática en la UNLP. Y varias veces me han mencionado el Algoritmo de Lamport, utilizado para coordinar relojes lógicos en sistemas distribuidos.

Si leen el artículo de la Wikipedia que habla sobre este señor, podrán ver que tiene una maestría y un doctorado en matemáticas del MIT. Nada despreciable. Sin embargo, como dije, tiene un doctorado en Matemáticas, y no en Informática o Ciencias de la Computación.

Ayer me enteré que en la provincia de Santa Fe aprobaron la ley de matriculación obligatoria para Informáticos.

Yo me pregunto: ¿Que sería de gente como Leslie Lamport si vivieran en esa provincia?

Actualización (21:56):

Scolnik, Hugo (via weblog.educ.ar)

Es licenciado en Ciencias Matemáticas de la UBA (1964) y doctor en Matemática por la Universidad de Zurich (1970). Sus campos de investigación son la criptografía, la robótica, la optimización no lineal, los modelos matemáticos y los métodos numéricos. Es referee y miembro del editorial board de diversas publicaciones internacionales.

Durante la última década se interesó fundamentalmente en la consolidación del Departamento de Computación de la Facultad de Ciencias Exactas de la UBA, que creó en 1984, a través de la formación de jóvenes investigadores y proyectos diversos como el del fútbol robótico, el desarrollo de nuevos métodos computacionales en criptografía, teoría de control, optimización no lineal, y sus aplicaciones a, por ejemplo, la reconstrucción de imágenes tomográficas en “tiempo real”. Publicó 45 trabajos en revistas internacionales sobre modelos matemáticos, inteligencia artificial, teoría de autómatas, análisis numérico y aplicaciones a la Economía y la Sociología.

Dirigió 65 tesis de licenciatura en Computación y Matemática Aplicada y tres tesis de doctorado (dos en Brasil, una en el marco del convenio Argentina-Francia). Ha dictado conferencias en distintas facultades e institutos de la UBA, en las Universidades de Alicante, Campinas, Cambridge, Chile, Columbia, Londres (Imperial College), Minnesota, MIT, Porto Alegre, Rice, Río de Janeiro, San Pablo, Stanford, Southampton, Sussex, Tokio, Tucumán, Universidad Nacional Autónoma de México y Zurcí, entre otras.
Recibió el Premio Konex de Platino (2003) en Ingeniería Electrónica, Comunicación e Informática.