Dia de Muertos en Cucuchucho
Tumba en Cucuchucho, originally uploaded by desertzarzamora.
¿Recuerdan esta foto? No se si la puse el año pasado, pero la pongo este año ya que el día de muertos está muy cerca.
Para los (tal vez pocos) extranjeros que visitan mi blog y no saben que onda. Resulta que el 2 de Noviembre en Mexico se celebra el Dia de Muertos y el lugar donde uno debería estar es en Patzcuaro y sus alrededores. Esta foto fue tomada en Cucuchucho.
Decipher Reflections from Reality
Ya se me estaba desesperando Karina, asi que aqui le pongo una foto de una chica. Esta foto me gusta mucho.
Por cierto, la chica de la foto NO esta desnuda, esta completamente vestida, y ella misma lo aclara en el pie de la foto. De hecho le molesta que la gente siempre piense que esa foto es de ella en desnudez.
Subversion: cómo hacer un merge de una branch al trunk
- Hacer un check out del trunk:
svn co svn+ssh://server/path/to/trunk - Hacer check out de la rama (branch) que vamos a fusionar (merge):
svn co svn+ssh://server/path/to/branch/myBranch - Entrar a “myBranch”
- Encontrar la Revision donde nació “myBranch”:
svn log --stop-on-copyTomar nota de la revisión rXXXX donde nació la branch.
- Entrar al directorio del trunk.
- SVN update:
svn upLo cual actualizará los ultimos datos del trunk, tomar nota de la revisión “At revision YYYY” (debería ser mas grande que rXXXX).
- Hacer un SVN merge:
svn merge -r XXXX:YYYY svn+ssh://server/path/to/branch/myBranchLo cual hace un merge de la branch en el trunk (la copia local)
- Arreglar conflictos de archivos en caso de haberlos
- Check in para subir el trunk actualizado (merged) al server:
svn ci -m "Hice un MERGE de la branch myBranch [XXXX]:[YYYY] al trunk"
Listo.
Las webcams Logitech pueden entregar Bayer
Acabo de comprar unas cámaras Unibrain Fire-i, por dos razones: (i) porque son firewire y hacerlas funcionar en linux es muy fácil, no son una pesadilla como las USB; y (ii) porque puedo obtener datos en formato Bayer.
Pero ahora resulta que las webcams Logitech pueden entregar Bayer. Habrá que probar una de esas, sobretodo la Logitech PRO 9000.
¿Gtalk + YahooMessenger + MSN Messenger?
Es interesante el siguiente punto del acuerdo de cooperacion Google-Yahoo:
Es aún mas interesante sabiendo que Yahoo y Microsoft unieron hace ya varios meses sus redes. ¿Será posible que con el acuerdo Google-Yahoo los usuarios de Gtalk puedan acceder de manera directa no solo a Yahoo Messenger, sino a MSN Messenger?
A mi me gusta la idea, sobretodo porque zarzamora.com.mx usa Google Apps, y como bonus tengo Gtalk para todo @zarzamora.com.mx.
¡Y Google Talk usa en realidad a Jabber! ¿Es un paso hacia la Jabberización de MSN Messenger? Con todo lo que arrastra (Jabber-Asterisk, Zimbra, etc)
Los chinos, el Dr Emmet Brown, los fuegos artificiales y la piratería de todo
No conformes con haber falsificado los fuegos artificiales de las olimpiadas, ahora los chinos han falsificado detalles de la “exitosa” mision tripulada al espacio.
¿Bonito? Fake
A los gringos se les ha acusado de algo similar, pero los chinos se volaron la barda al dar detalles de la misión, incluso antes de lanzar el cohete ya tenian la noticia publicada, con lujo de detalles incluyendo las conversaciones de los astronautas (o taikonautas, o piratanautas). ¿O será que contrataron al Dr Emmet Brown para ayudarles a construir el cohete y el Doc les dió un condensador de flujo de bonus?
Fuegos artificiales falsos y generados por computadora, misiones espaciales ficticiamente exitosas y reportadas en el pasado. Tsssss…
El maléfico blog del Lhuerta
Lo sabía, algo maléfico tiene el Lhuerta. Algo evil debe de moverse bajo el greñero. Y finalmente lo descubrí: Lhuerta es un asesino de Zorras de Fuego y de Xorg’s.
La verdad es que esto es culpa del driver beta de nVidia que aun no soporta bien mi 280 GTX. Y cada vez que entro a ver el blog del Lhuerta mi Firefox simplemente muere y se lleva consigo al servidor Xorg. El resultado es que me regresa a la pantalla de login.
Querido Nvidia:
Me estas provocando dolores de cabeza horribles ¡¡¡arregla ya el driver de Linux!!!!
Terrorismo en México
Ahorita quiero oir a todos esos que dicen que el dinero empleado en el combate a la delincuencia es un desperdicio.
Y si lo siguen diciendo, ojalá que no les toque ser víctimas un atentado terrorista. O mejor sí, ojalá que les toque, a ver si con eso cambian de parecer.
CMake para tus projectos II: Kdevelop
En el post anterior expliqué como hacer un par de CMakeLists.txt para generación automática de Makefiles. Pero CMake es mucho mas potente, tanto que puede generar proyectos de KDevelop, Visual Studio (C++), Code::Blocks, Dev C++, X-code, etc, etc…
Creación automática de un proyecto de KDevelop con CMake
Usaré exactamente lo que se describe en el post anterior. Lo único que debe tenerse precaución es en eliminar todo lo que pudiera quedar dentro del directorio build/ de generaciones pasadas. El directorio build/ debe estar vacío.
$ cd build/ $ cmake -G KDevelop3 ../ -- Check for working C compiler: /usr/bin/gcc -- Check for working C compiler: /usr/bin/gcc -- works -- Check size of void* -- Check size of void* - done -- Check for working CXX compiler: /usr/bin/c++ -- Check for working CXX compiler: /usr/bin/c++ -- works -- Configuring done -- Generating done -- Build files have been written to: /home/ariel/Documentos/holaMundoCMake/build
Y listo. Nota la opcion “-G KDevelop3“. En el directorio build/ se auto genera un proyecto de KDevelop llamado HELLO.kdevelop pues HELLO es el nombre del proyecto que definimos en CMakeLists.txt. Ahora se puede abrir con KDevelop (C/C++). Project->Open Project y elegimos HELLO.kdevelop.
El proyecto compila, ejecuta y tenemos el arbol de inclusiones. Tambien podemos usar el debugger y el completador de código. Todo lo de KDevelop funciona porque es un proyecto nativo.
Ah, para que el completador de código funcione, debes tener KDevelop 3.5.2 al menos.
CMake para tus proyectos
Yo era de los que en algun día de la newbie-esca vida me atemorizaban los Makefiles. Temía que en la oscuridad de la noche saliera un Makefile del ropero, o que por debajo de la cama un Makefile me jalara los pies. Pues no mas.
CMake es una excelente herramienta para generar Makefiles, y no solo eso tambien genera soluciones de Visual Studio, Code::Blocks, Kdevelop entre muchas otras. Así que me puse a investigar y resulta que CMake es trivial de usar, hasta un newbie como yo lo puede usar (por lo tanto otros newbies también podrían usarlo).
1. Hello World: El código fuente
Usaremos este código que muestra CMake para compilar y enlazar un programa principal con una librería extra generada por nosotros mismos. La siguiente estructura de directorios es la que hay que crear:
holaMundoCMake |-- CMakeLists.txt |-- build `-- src |-- hola.cpp `-- milib |-- CMakeLists.txt |-- milib.cpp `-- milib.h
La idea aqui es que vamos a generar un pequeño programita a partir del codigo en hola.cpp y de la libreria milib.cpp, el código de hola.cpp es muy sencillo:
hola.cpp:
#include "milib.h"
int main(int argc, char* argv){
printf("\n Hola mundo desde main");
hola(2);
printf("\n");
}
Y lo que hace es cargar el header milib.h que es donde está definida la función hola().
milib.h:
#include <stdio.h> //Prototipo de funcion void hola(int);
milib.c:
#include "milib.h"
// Implementacion de la funcion
void hola(int veces){
int i=0;
while (i<veces){
printf("\n [%u] Hola Mundo, desde 'milib'" , i);
i++;
}
}
El código es realmente trivial (si no lo comprendes mejor ni sigas leyendo). Hasta este punto no hemos usado nada de CMake ni hemos creado Makefiles ni nada. El código bien podríamos compilarlo a mano.
2. Hello World: Las CMakeLists.txt para CMake
Hay un archivo de CMake en holaMundoCMake/CMakeLists.txt y hay otro en holaMundoCMake/src/milib/CMakeLists.txt, éstos son los archivos clave para CMake. Con los comentarios se explican solos.
holaMundoCMake/CMakeLists.txt:
# El nombre del proyecto "HELLO".
# CMake genera automaticamente una variable llamada
# HELLO_SOURCE_DIR que puede llamarse usando
# ${HELLO_SOURCE_DIR} con la ruta del codigo
# lo mismo con ${HELLO_BINARY_DIR} para binarios
project (HELLO)
# Le decimos donde poner los binarios de librerias y ejecutables
# CMake admite instrucciones partidas en varias lineas
SET (LIBRARY_OUTPUT_PATH ${HELLO_BINARY_DIR}/bin
CACHE PATH "Directory for Libraries")
SET (EXECUTABLE_OUTPUT_PATH ${HELLO_BINARY_DIR}/bin
CACHE PATH "Directory for Executables")
# Decimos a CMake que haga recursion a los siguientes directorios
# en orden de aparicion
add_subdirectory (src/milib)
# Directorios que debe incluir, ademas de los estandar.
include_directories (${HELLO_SOURCE_DIR}/src/milib/)
# Directorios para el enlazador, ademas de los estandar
# Para este ejemplo no los necesitamos ya que la unica libreria
# adicional es 'milib' y ya sabe donde encontrarla pues el mismo
# la genera
#link_directories (aqui pones mas rutas separadas por espacios)
# Decirle que queremos un ejecutable llamado holaMundo
# y le decimos el source para que lo compile
add_executable (holaMundo src/hola.cpp)
# Tenemos una libreria adicional llamada milib, enlazarla
target_link_libraries (holaMundo milib)
El segundo CMakeLists sirve para compilar la libreria “milib” y es mucho mas corto:
holaMundoCMake/src/milib/CMakeLists.txt
# Agregar una libreria llamada milib generada poru un cpp # se pueden agregar muchas librerias con varios add_library # Se deben listar todos los archivos fuente add_library (milib milib.cpp milib.h)
3. Hello World: Generar Makefiles con CMake y compilar
En linux el modo por default es generar Makefiles, así que entramos al directorio build que actualmente está vacío y generamos los Makefiles:
~/Documentos$ cd holaMundoCMake ~/Documentos/holaMundoCMake/$ cd build ~/Documentos/holaMundoCMake/build$ cmake ../ -- Check for working C compiler: /usr/bin/gcc -- Check for working C compiler: /usr/bin/gcc -- works -- Check size of void* -- Check size of void* - done -- Check for working CXX compiler: /usr/bin/c++ -- Check for working CXX compiler: /usr/bin/c++ -- works -- Configuring done -- Generating done -- Build files have been written to: /home/ariel/Documentos/holaMundoCMake/build
Listo, ya estan los Makefiles generados, ahora a compilar con make:
~/Documentos/holaMundoCMake/build$ make Scanning dependencies of target milib [ 50%] Building CXX object src/milib/CMakeFiles/milib.dir/milib.o Linking CXX static library ../../bin/libmilib.a [ 50%] Built target milib Scanning dependencies of target holaMundo [100%] Building CXX object CMakeFiles/holaMundo.dir/src/hola.o Linking CXX executable bin/holaMundo [100%] Built target holaMundo ariel@surfer:~/Documentos/eclipse/holaMundoCMake/build$ make clean ariel@surfer:~/Documentos/eclipse/holaMundoCMake/build$ make [ 50%] Building CXX object src/milib/CMakeFiles/milib.dir/milib.o Linking CXX static library ../../bin/libmilib.a [ 50%] Built target milib [100%] Building CXX object CMakeFiles/holaMundo.dir/src/hola.o Linking CXX executable bin/holaMundo [100%] Built target holaMundo
En el directorio build/bin se encuentra el binario holaMundo,
~/Documentos/holaMundoCMake/build$ cd bin/ ~/Documentos/holaMundoCMake/build$ ./holaMundo Hola mundo desde main [0] Hola Mundo, desde 'milib' [1] Hola Mundo, desde 'milib'
¡Listo! ¿Quién dijo que habría que generar Makefiles a mano? Generar CMakeLists.txt es mucho mas fácil y mas intuitivo.
AR archives, Shared objects y Static Objects: .a, .o , .so
Cómo convertir un AR archive (.a) lleno de static objects (.o) a un Shared Object (.so)
afiles are just (ar) archives of.oobject files, so all you need to do is unpack the archive and repackage them as a shared object (.so).ar -x mylib.a gcc -shared *.o -o mylib.so
¿Cannot talk to klauncher?
Suele pasar en Gnome abriendo cosas de KDE de vez en cuando.
- :~$ dcopserver_shutdown
- :~$ kdeinit
- Listo
Pasa cuando sales de Gnome con CTRL-ALT-BACKSPACE, lo mejor seria meterlo en el inicio de sesion de Gnome.
Howto: Compilar Mimas 2.1 y su libmimas.so en GCC 4.2.x
Mimas es un toolkit muy completo, incluso mas completo que OpenCV. Pero compilarlo es una pesadilla, el procedimiento al que llegúe es el siguiente:
- Descarga Mimas-2.1 (30 Oct 2006)
- Entra al directorio y: make -f Makefile.dist
- Aplica el ./configure y asegúrate de no tener errores, si tiene errores es por culpa de librerías que te faltan, instálalas. El configure es muy explícito y te dice qué salió mal.
- Lo que realmente es útil es la librería, asi que entra al directorio lib y: make
- Si tienes un GCC reciente(>4.2.2) lo más seguro es que no funcione, así que elimina todas las referencias a lo siguiente:
- findpipette
- pgh_2dobject
- pgh
- pgh_scene
- pol
- pol_locator_hough
- pol_locator_scale
- pol_model
- pol_scene
Y me refiero a TODO, incluyendo los *.lo, *.cc y *.Plo. Si lo hiciste bien, y tienes las librerías completas, entonces podrás compilar con make.
Ahí mismo donde tienes el Makefile podrás ver el resultado de la compilación si entras al directorio .libs (comienza con un punto por lo que no aparece en el ls, pero aparece en el ls -la). Por cierto, si te sirven, todos los *.o son objetos que puedes enlazar individualmente de manera estática.
$ cd .libs $ ls *.o (objectos compilados) $ ls libmimas* (static & shared objects)
El archivo .libs/libmimas.so.2.0.1 y sus links simbólicos son el shared object y junto con el directorio mimas-2.1/include (el cual contiene los headers) sirven para desarrollar usando mimas. Todo lo de la carpeta lib se compiló exceptuando los que eliminaste del makefile.
Y como siempre hay gente muy floja.
¿Por qué hacer todo esto?
Porque salen errores de este tipo
../include/image_op.h:100: instantiated from ‘mimas::image<T> mimas::image_func(const mimas::const_image_ref<T2, T2Ptr>&, const mimas::const_image_ref<T3, T3Ptr>&, F) [with T1 = int, T2 = int, T3 = int, F = std::multiplies<int>, T2Ptr = int*, T3Ptr = int*]’
../include/image_op_help.h:22: instantiated from ‘mimas::image<T> mimas::operator*(const mimas::const_image_ref<T, TPtr>&, const mimas::const_image_ref<T, UPtr>&) [with T = int, T1Ptr = int*, T2Ptr = int*]’
../include/image_funcs.h:390: instantiated from ‘mimas::image<T> mimas::edgeHaynesJain(const mimas::const_image_ref<T, TPtr>&, const mimas::const_image_ref<T, UPtr>&) [with T = int, T1Ptr = int*, T2Ptr = int*]’
findpipette.cc:92: instantiated from here
../include/image_op.h:75: error: no matching function for call to ‘multi_apply(boost::multi_array_ref<int, 2u>&, boost::const_multi_array_ref<int, 2u, const int*>&, boost::const_multi_array_ref<int, 2u, const int*>&, mimas::_multi_help2<int, int, int, std::multiplies<int> >&)’
[...]
make: *** [findpipette.lo] Error 1
WTF???????????
Que en español es
../include/image_op.h:75: error: no hay una función coincidente para la llamada a ‘multi_apply(boost::multi_array_ref<int, 2u>&, boost::const_multi_array_ref<int, 2u, const int*>&, boost::const_multi_array_ref<int, 2u, const int*>&, mimas::_multi_help2<int, int, int, std::plus<int> >&)’
Kickstart a Gstreamer, un simple programita
#include <gst/gst.h>
int main (int argc, char *argv[]){
const gchar *nano_str;
guint major, minor, micro, nano;
gst_init (&argc, &argv);
gst_version (&major, &minor, µ, &nano);
if (nano == 1)
nano_str = "(CVS)";
else if (nano == 2)
nano_str = "(Prerelease)";
else
nano_str = "";
printf ("Hola, yo se usar: GStreamer %d.%d.%d %s\n",
major, minor, micro, nano_str);
return 0;
}
Y compilas con
g++ `pkg-config --cflags --libs gstreamer-0.10` -o Hola Hola.cpp
Eso te dará como resultado un programa que dice
Hola, yo se usar: GStreamer 0.10.18
O la versión que uses. Luego de eso te das una vuelta y maldices a la gente de Phonon, porque teniendo algo tan completo y organizado como Gstreamer han decidido rehacer la rueda. El OSS en el pecado lleva la penitencia.
Gstreamer y la webcam
Es trivial tener un visor simple de webcam con Gstreamer.
gst-launch-0.10 v4l2src ! video/x-raw-yuv,framerate=15/1,width=320,height=240 ! ffmpegcolorspace ! ximagesink
A lo mejor en tu distro se llama gst-lauch solamente.
La extinción del los verdaderos Geeks y Hackers
En un principio se le llamaba Hackers a los verdaderos gurús de cómputo, que sabían programar, hacer y deshacer desde las entrañas de C/C++, y mejor aún si sabían ensamblador. Ahora cualquier trompete que usa el Password Revealer para quitarle las ****** a los password es un hacker y es idolatrado. No se diga de los supuestos “Hackers de Hotmail” que ‘te roban el password’. Esos trompetes se han convertido en los hackers de esta época.
Pero al parecer aun sobrevivía la definición de Geek, que es ligeramente inferior a un hacker y es mas bien un fanático del control, libertad y los fierros. Sin embargo hoy veo esta imágen:
Y me doy cuenta que ahora para ser Geek, necesitas un OS que te bloquea todo y te trata como niño (OS X). Si a los hackers les fué mal al ponerlos al nivel de Script Kiddies, a los Geeks les fué mucho peor, pues los pusieron al nivel de diseñadores de moda gays o de niñas fresas de colegio caro con su laptop blanca. No, no, no, no, no….
¿Que más se puede decir? No siempre la evolución mejora las cosas.
¿Anjuta, Eclipse, NetBeans, Geany, KDevelop? Y el ganador es…
El orgulloso ganador luego de haber sido ignorado en la primer etapa es:
Eclipse + CMake
Eclipse se impone sobre netBeans justo en la recta final.
Eclipse Ganymede con CMake funciona perfecto, se integran muy bien y hasta hay un plugin de CMake para Eclipse. Hacer Makefiles me asustaba, pero con CMake es un paseo.
La única queja es que Eclipse está escrito en Java y es mas lento que los que estan escritos en C++.
Las veguenzas de @hotmail (Parte II: Manualito)
Esta es la segunda parte de el post de las verguenzas de Hotmail. En este post voy a describir lo mas claro que yo pueda, la manera de obtener tu correo @tudominio.com.mx con 100 cuentas de 7Gigas cada una (como mínimo). Y todo en 3 simples pasos:
Paso 1: Compra un dominio
Si te late lo mexicano, ve a nic.mx y compra un dominio .mx, ponte creativo y elije algo decente o algo divertido (i.e. algo como zarzamora.com.mx). Hay muchas formas de pagar, desde deposito bancario hasta tarjetas de credito. Y ya que se acerca Septiembre hay promociones de $15 USD por año o algo así. Entonces, no seas codo, $150 pesos no es tanto y si compras por varios años sale mas barato.
Si no te late lo mexicano hay muchas otras opciones, desde el clásico .com, hasta los mas raros como .biz, .ws, .info, .pro o incluso puedes hacer juegos con los dominios internacionales. Unas ideas son:
- http://elna.co y correos divertidos como
- soy@elna.co
- (.co es de Colombia)
- http://podero.so y correos como:
- todo@podero.so
- (.so es de Somalia)
- http://cami.no y correos como:
- restaurant@cami.no
- restaurant@del.cami.no
- Incluso la página puede ser http://el.cami.no
- (.no es de Noruega)
- restaurant@cami.no
- etc, etc, etc, checa la lista de todos y busca combinaciones interesantes.
Paso 2: Activa tu DNS con ZoneEdit
Abre una cuenta en ZoneEdit (se ve chafa la página, pero es muy bueno) y ZoneEdit te asigna un par de DNS, por ejemplo ns2.zoneedit.com y ns8.zoneedit.com. Una vez que tienes el ZoneEdit tienes que esperar unas 2 horas a los cambios sean aplicados. Luego de eso lo que hay que hacer es entrar a la página de nic.mx y dar de alta los DNS que ZoneEdit te dió. Es facil pues lo haces vía Web. Si no usas nic.mx de todas maneras es fácil, pero no puedo dar instrucciones para todos.
Paso 3: Activa tu correo manejado por Google Apps
Abre una cuenta en Google Apps, asegúrate de elegir la del modo gratis. Como método de verificación elige el modo CNAME y haz lo que dicen sus instrucciones (aparecen cuando te das de alta). Luego de eso tienes que hacer al menos una redireccion de http://mail.tudominio.com hacia ghs.google.com. Es fácil, sólo entras al panel de ZoneEdit y creas los registros. Para entrar a tu correo escribes http://mail.tudominio.com. Tambien podrás usar Outlook (POP3 y IMAP) y hasta Gtalk para tu dominio.
Fin
Al final tendrás correo idéntico a Gmail (pero @tudominio.com) y DNS gratis, un espacio de hosting en Google para poner páginas, y lo mejor de todo que ¡es gratis!. Sólo recuerda pagar tu dominio cada año o cada que caduque.
¿Eres demasiado flojo como para seguir todos estos pasos?
Busca a tu amigo geek mas cercano y con unas cervezas tendrás tu GoogleApps en un santiamén (aúnque del costo del dominio nadie se salva).
Como evitar las verguenzas de @hotmail.com
Cada vez que veo en tienditas, en programas de TV y Radio, o incluso en empresas de mediano rango correos para contactar que son del tipo:
- productosgarcia@hotmail.com
- pepe_1124@yahoo.com.mx
inmediatamente me llega a la mente que dichas empresas, personas o programas no tienen nada de profesionales. Y es que las direcciones @hotmail.com, @yahoo.com.mx, @todito.com y todas esas cuentas gratis se ven muy amateurs. Está bien para personas comunes y corrientes tener cuentas con nombres chistosos o cuentas gratuitas o cosas asi, pero para las empresas es una verguenza. Así que he aquí como obtener una cuenta @tudominio.com con hosting de correo gratis.
- Compra un dominio
- Abre una cuenta en ZoneEdit
- Abre una cuenta en GoogleApps
Claro, hay que configurarlas pero luego de eso tienes al menos 100 cuentas con un mínimo de 7gigas cada una para almacenar el correo.
Sé que es difícil que una persona común y corriente pueda configurar los servicios que menciono, pero cualquiera que haya salido (hasta de las ingenierías) puede ganarse un $$$ si le ayuda a una empresa a configurar eso y es ganancia para todos.
Microsoft Lifecam VX-6000 = Microdia
No le creas a las malas lenguas que dicen que la cámara Microsoft Lifecam VX-6000 (045e:00f4) no funciona en linux. La verdad es que sí funciona. Dale lsusb, y si te sale 045e:00f4 simplemente instala el driver de Microdia pero asegurate de aplicarle el parche. Aunque, ten cuidado, tal vez para el momento que leas esto el parche ya estará en el GIT y no haga falta, chécalo antes.
Si compilas el parche y si no quiere insertarlo, tal vez te haga falta insertar primero los módulos
# modprobe videodev
# modprobe compat-ioctl32
Y luego meter el driver de microdia recien compilado.
# insmod ./microdia.ko
Sí funciona, me consta porque yo tengo varias funcionando y funcionando bien. Así que si no puedes el error esta entre la silla y el teclado. Y si nada funciona, tal vez [...]
Querido nVidia: Arregla los drivers (177.13) por favor!.
Crei que era mi imaginacion, pero cuando comencé a notar exagerada lentitud en Xorg con y sin el compiz prendido, supe que algo raro pasaba. Con mi viejita tarjeta serie 7000 el compiz corría de las mil maravillas, era de esperarse que con el monstruo de la 280 GTX corriera endiabladamente suave. Pero no. Y es que estoy usando drivers beta (177.13) y mas viejo no soporta la tarjeta. Así que en cruestion de drivers no hay forma de arreglarlo.
Luego veo un simple programita hecho por el creador de Avant Window Navigator, que salió en un forum. Lo compilo, lo ejecuto y a los 2 segundos: Xorg usando el 100% de un core de mi cpu, y el programita que lo único que hace es poner un cuadrado a dar vueltas comienza a ponerse lento, lentísimo (de hecho todo se pone lentísimo). El veredicto, hay algún problema en los drivers nvidia 177.13.
La solución la da el mismo de AWN:
$nvidia-settings -a InitialPixmapPlacement=2 -a GlyphCache=1
Si aplicas ese comando, los programas que ejecutas comienzan a mejorar en desempeño. Lo mejor es ponerla en algun script de inicio de GDM, KDM, KDE o Gnome. Yo la puse en las “Sessions” de Gnome y funciona bien. No la pongas en algun init script porque de nada sirve, tiene que ejecutarse despues de que ha arrancado Xorg, y si reinicias Xorg se pierde y hay que ejecutarla de nuevo.
La competencia: 3D Camera
¿Cuales son los principios básicos?
Estoy 90% seguro que esa es una cámara firewire o tal vez USB2.0 que manda datos en bruto (sin comprimir o tal vez en Bayer) a digamos unos 60 cuadros por segundo, de los cuales solo son útiles 30. Ademas de tener un arreglo de LED’s IR que prende en solo en los frames pares.
Los frames impares son los que se usan para video normal, los pares son usados para detectar la profundidad usando la ayuda del infrarrojo.
¿Como detectar la profundidad?
El IR es reflejado por objetos cercanos, y los objetos lejanos no alcanzan a recibir suficiente iluminacion IR. Es como prender una vela en la oscuridad, sólo puedes ver tu rostro y las cosas cercanas a la vela.
Finalmente
Usando las cosas a la par se puede sacar doble provecho de una cámara, es como tener 2 cámaras en una. Ojala tuviera una cámara con disparador manual. ¿Alguien me quiere regalar una Unibrain?











