16 de marzo de 2008

Educación Matemática.

Leyendo el blog The n-Category Café no es tan difícil tener una buena eduación matemática.
Recuerdo que hace algunos años, mientras daba clases en el ingreso a la facultad para carreras de Ingeniería o Ciencias Exactas, me sorprendia cuando algunos aspirantes se habían olvidado las operaciones básicas como dividir o multiplicar, e incluso no sabían como utilizar una calculadora para hacer los ejercicios, o no sabían interpretar los resultados (por ejemplo 1.234E-23).
Todavía me sorprendió mas enterarme que a algunos colegios secundarios no dictaban matemática en el último año. Por lo que estos estudiantes ingresaban a la Universidad estando un año sin hacer nada que los prepare en matemática. Un amigo les decia a los alumnos que se olviden lo que le habian enseñado en matemática en el colegio, que era mejor que use los manuales de primaria para repasar que estaban mejor explicados y los temas eran mas cercanos a los que dábamos en el ingreso.
La matemática probablemente sea una de las materias más difíles de aprender correctamente, pero los resultados que se obtienen ciertamente merecen la pena aun cuando uno elija una profesión que en principio no tenga nada de matemática.

17 de febrero de 2008

C++ y Python.

Es común que se destaquen ciertas virtudes cuando se comparan lenguajes de alto nivel con los de bajo nivel.
Por ejemplo tener un manejo automático de la memoria (garbage collection en inglés) nos evita tener que preocuparnos por saber cuando tener que liberar memoria de un objeto, y si podemos estar haciendo referencia a un objeto que ha sido liberado.
Pero esto también tiene problemas, un programa con que usa garbage collection requiere más memoria que uno programa que maneja memoria de manera explícita.
Si creamos gran cantidad de objetos de manera dinámica el proceso encargado de manejar memoria (garbage collector en inglés) se va a ejecutar más frecuentemente y vamos a hacer perder rendimiento.
Otro problema más sutil, es que objetos con una interfaz de eventos ya no son usados, pero sus eventos todavia estan registrados lo que evita que estos objetos sean liberados. Una solución a este problema son las referencias débiles (weak references en inglés).
Mi punto aquí es que C++ no es peor lenguaje que Python por no tener garbage collector, simplemente son dos lenguajes que implementan formas distintas para manejar memoria. En algunos casos C++ es un mejor lenguaje para determinada tarea en otros Python es mejor.
Por ejemplo para proyectos medianos prefiero C++, pero para proyectos mas chicos Python es mucho mejor.

14 de enero de 2008

Computación vs. Matemática.

Después de tres años de estar trabajando en el área computación tengo un par de reflexiones relacionadas con mi anterior trabajo en matemática: Contras:
  • Menos vacaciones, solo dos semanas, en comparación antes tenia vacaciones por lo menos un mes y medio en verano y otro en invierno.
  • La burocracia en proyectos, por ejemplo le pido a A cierta especificación, A habla con B, después de varios dias A dice que no esta lista que va a estar en una semana, después de dos semanas A envia un borrador de especificación, etc.
  • El cantidad de trabajo es muy fluctuante, hay épocas con varios proyectos con diferente prioridades y fechas límites muy cercanas y que exigen información constante, y otras con un sólo proyecto interno sin una fecha fija.
  • Cuando tengo un mail que dice XX no funciona, tiene que estar arreglado ASAP lo más pronto posible. Creo que en mi empresa (y en cualquier otra del ramo) la sigla ASAP debe ser la más odiada.
A favor:
  • Mucho mejor pago seis veces mi anterior sueldo (si 6 “veces”).
  • Recompensa según trabajo realizado, si hago un buen trabajo las recompensas pueden ir desde una felicitación hasta un aumento o bonus.
  • Ciertos problemas exigen soluciones creativas, esto me gusta porque los conocimientos son aplicados a problemas reales.
Neutro:
  • Más controls sobre los proyectos que manejo, es bueno porque me manejo con mis tiempos, no es tan bueno porque exige cierta responsabilidad cuando calculo tiempos.
  • Estar en una oficina con aire acondicionado, sentado varias horas, mirando constantemente una pantalla. Puede sonar bien en un principio pero no es el trabajo demasiado saludable.
Luego en otro post escribo porque se podría pensar que la industria de la informática es un robo.

7 de diciembre de 2007

Pendientes.

Libros:
  • La muerte lenta de Luciana B. de Guillermo Martinez.
  • Episodio 3.14 de Adrian Paenza.
  • Parte 2 y 3 de La Saga de los Confines de Liliana Bodoc.
Matematica:
  • Hace unos dias encontre una práctica de K-Teoría y me empece a acordar de algo, obviamente no me salió ni siquiera el problema 1, pero creo que estoy extrañando algo la matemática, debo hacer algo al respecto.
Computacion:
  • No me sobre el tiempo, pero deberia hacer algo interesante, probablemente sea algo relativo al punto anterior.

11 de octubre de 2007

Libros nuevos.

Compre algunos libros:
  • Crímenes Imperceptibles de Guillermo Martínez, hasta ahora me gusta esa mezcla de novela policial, con un toque de matemática. Para mi gusto insiste demasiado con la Logica y el teorema de Göedel. A mi en general no me gustan mucho los libros/películas que se autoreferencian de manera no demasiado sutil.
  • El sol desnudo de Isaac Asimov, pertenece a la serie de Robots, es decir con R. Daniel Olivaw. Supongo que sera acción al estilo Asimov.
  • El sonido de la Montaña de Yasunari Kawabata, ya había leido otros dos libros de él: El maestro de Go, y La ceremonia del Té. El primero es un relato de la última partida entre el antiguo mestro de Go y un nuevo aspirante, es síntesis es un reláto de la lucha entre lo viejo y lo nuevo, entre la tradición y la modernidad, entre el presente y el futuro.
    El segundo es distinto, trata de recorrer los sentimientos de varios personajes que tienen una relación un tanto retorcida. Lo que me llama la atención de estos libros son los finales.
No se si es así, o es porque solo leí algunos libros, pero me llama la atención la diferencia entre la forma de escribir occidental y los escritores orientales (japoneses en este caso), en que los finales suele quedar abiertos, como dejando que el lector finalice el argumento.

4 de julio de 2007

Tareas pendientes.

  • Terminar de leer «El Castillo» de Kafka, por ahora me pareció que tiene un toque borgeano, aunque Kafka haya nacido antes.
  • Buscando referencias sobre «non photorealistic rendering», encontré esta frase atribuida a Stanislaw Ulam: “The study of non-linear physics is like the study of non-elephant biology”.
  • Seguir buscando más información sobre los conjuntos de Julia en 4d.

    • Me llamó la atención como se define otro producto en los cuaterniones que tiene un mejor aspecto visual.
    • No hay conjuntos de Julia en 3D, así que lo que usualmente se muestra es una proyección en 2D de una rebanada del verdadero conjunto.
    • Mas aún, como los conjuntos de Julia no se podrían ver bien en 3D, y entonces se suaviza su superficie (ie hacen que sea diferenciable).
  • Los lenguajes de programación funcionales estan mejor preparados para aprovechar la capacidad de proceso que van a tener las computadoras en un futuro cercano?

25 de mayo de 2007

Ejecutando codigo del shell como root.

A veces es necesario ejecutar ciertos programas como root, por ejemplo apt-get, insmod, modprobe, etc. Esto se soluciona agregando adelante sudo, sudo lo que hace es ejecutar sus parámetros como root.
Esto falla si queremos hacer algo asi como 'echo 10 > /proc/sys/root_file'. (Este caso tambien se puede resolver usando el comando tee.)
El problema es que sudo no ejecuta el shell, y por ejemplo todas las cosas interesantes que hace el shell (expansion de wildcards, redirección, etc) no son llevadas a cabo. Para hacer esto lo que hay que hacer es sudo su -c 'shell', por ejemplo sudo su -c 'echo 10 > /proc/sys/root_file'.

29 de abril de 2007

Buscando archivos en linux de varias maneras.

Para buscar archivos en linux pueden hacer esto:

  • locate: ‘locate’ mantiene una lista de todos los archivos presentes. Esta base se actualiza automáticamente, para forzar la actualizacion hay que usar el comando ‘updatedb’.
  • lsof: permite ver los archivos abiertos y que programas los abrieron. El nombre proviene de “list of open files”, es decir lista de archivos abiertos.
  • grep: busca archivos que contienen un texto, también se puede buscar en los subdirectorios usando la opción -R. Por ejemplo: grep -R <texto> <archivos>
  • find: otro comando más avanzado para buscar. Por ejemplo find /lib/modules/ -name 'snd*' busca dentro de /lib/modules y subdirectorios todos los archivos que empiezan con snd.

25 de abril de 2007

Algunos links no funcionan en la ayuda del MSDN

Síntomas: Algunos links no funcionan en la documentacion del Platform SDK, o en la documentacion de MSDN. Solución: El problema esta causado en el engine que utilizan estos programas para mostrar la ayuda, es decir Internet Explorer, IEFix puede servir para reparar estos errores y alugnos más.

22 de abril de 2007

Pensamientos Aleatorios (I).

Todos tenemos la capacidad para emprender cualquier tarea, por más dificultosas que estas puedan ser, en donde esta la diferencia es saber elegir cuales tareas tienen más importancia.
La experiencia suele ayudar bastante en la elección, y un poco de suerte no viene mal.