ColladaDOM 1.4 en debian SID (64 bits)
Jun 17
Descarga: collada_debian_amd64.tar.bz2
Instalación (con permisos de root):
1 2 3 | cd /usr/local tar xvfj- <path>/collada_debian_amd64.tar.bz2 ldconfig |
** nota: “path” es donde hayas bajado el archivo anterior.
Dependencias para MARS:
1 | aptitude install libpcre++-dev libpcre++0 libpcre3-dev libpcre3 libboost-filesystem-dev libtinyxml-dev |
Suerte.
Collada DOM Locales BUG
Jun 16
Collada DOM is buggy, we all know, but this bug makes it unusable. Collada team is not handling locale info, so non C-compatible locale users won’t be able to use float point numbers. While C locale uses floating point numbers like “1.43″, spanish locale uses “1,43″.
One quick workaround is setting the C locale inside your code.
Use this beforce using your dae class:
1 | setlocale (LC_NUMERIC, "C"); |
M.A.R.S. – Desarrollo movido a un repo privado.
May 4
M.A.R.S. se está sincornizando con un repo privado situado en el sitio donde trabajo. Intentaré sincronizar gna cada X tiempo. Ahora mismo me es imposible sincronizar a diario o semanalmente … puesto que no es automágico.
Deftones – Diamond Eyes
May 1
Deftones han sacado nuevo disco. Lo he bajao y disfrutado ya… y lo compraré cuando llegue a alguna tienda, física o no.
El single es este… TREMENDO. Con ustedes, interpretando Rocket Skates, deftones…
ColladaDOM 1.4 deb packages i386
Abr 8
Thanks, Cleto!
libcolladadom14_2.2-1_i386.deb
libcolladadom14-dev_2.2-1_i386.deb
These have no support for ZAE and are built with tinyxml instead of libxml(2).
Depends on:
1 | aptitude install libpcre++-dev libpcre++0 libpcre3-dev libpcre3 libboost-filesystem-dev libtinyxml-dev |
Compiling, add to LDFLAGS:
-lpcre -lpcrecpp -lboost_filesystem -lminizip -lcollada14dom
Spanish Note:
Estos paquetes contienen lo mismo que hay en este post, pero con dependencias y demás historias. Así no hace falta descargar el .tar.gz
ColladaDOM 1.4 en debian SID (32 bits)
Abr 8
¿Quieres paquetes debian? ¡Pasa de este post y mira aquí! debian debs ColladaDOM 1.4 i386.
He tenido problemas utilizando colladadom en alguna máquina de 32 bits por culpa de libxml2 (o hasta ahí he llegado). Mientras que tras compilar con soporte de libxml2 en amd64 no he tenido ningún problema, al hacer lo mismo en 32 bits obtenía lo siguiente:
Error: Dosument is Empty
Así que he construido colladadom 1.4 (sin soporte ZAE, que a mi no me hace falta) contra tinyxml, en vez de libxml2 (por defecto en gnu/linux).
Adjunto el archivo que hay que descomprimir en /usr/local para poder usar ColladaDOM en Debian SID (a día 8 de Abril de 2010).
Para compilar, añadimos a las LDFLAGS del Makefile:
-lpcre -lpcrecpp -lboost_filesystem -lminizip -lcollada14dom
libminizip está en el tar.gz que os dejo, pero las demás dependencias las deberéis resolver de forma manual, esto es …
1 | aptitude install libpcre++-dev libpcre++0 libpcre3-dev libpcre3 libboost-filesystem-dev libtinyxml-dev |
Y eso es todo…
Happy Hacking!
Download: colladadom_sid_32bits-8April2010.tar.gz
Censura + Ramoncín = OMG WTF BBQ
Abr 2
La inciclopedia sucumbe a la presión de Ramoncín (TM). Esta página ha sido retirada de su Wiki.
ssh+svn en Gna.org
Mar 26
Para hacer cambios en los repositorios de gna (svn commit, por ejemplo) hace falta que creemos un par clave pública/clave privada rsa para la autenticación.
Para ello, lo primero que tenemos que hacer es generar nuestra clave:
1 | ssh-keygen -t rsa |
ES IMPORTANTE QUE USEMOS UNA PASSPHRASE. ESTA PASSPHRASE SE USARÁ COMO CONTRASEÑA DE LA CLAVE, Y POR LO TANTO EN EL ACCESO AL REPOSITORIO
De este modo, se crea un par de claves en $(home)/.ssh/ :
- id_rsa – Clave privada (ojo, esta no se comparte jamás)
- id_rsa.pub – Clave pública
Si imprimimos el contenido de la clave pública:
1 2 | brue@doped[12:38:11]~/.ssh$ cat id_rsa.pub ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAqkoTVAWxq7/6TwSZVBHQSnWoAhUSlPNJaDIQ6qXjz/wDfb3VfLo7aN7T3v5QA/DpiHvsNYFbVU4+32FSh57pxUYdflgPeLTWM3414ZT7i8h4EC7sOGV9GRvvRgFtnd5LJLZXtGZPyEjal8bBzjSytMi69cojwsRXHeoR9H8gLvEXU8r37zyIS8WDg2Hi5+7tPr1OdfBS71+pL+j97bK4E7D9FWXg4FPK7Plin99Uwf1z3XvW2j+G/3xjUu/tGEhO5eLAjAOYcL3Y2OjJPdLmnfVnzAC8hgI75h2Lm1pSzq7hfCLOWuM7XL/M9DBTlN5eNJlqnEJcoQ8tESbQT7lsiQ== brue@doped |
La clave pública es:
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAqkoTVAWxq7/6TwSZVBHQSnWoA.....lsiQ== brue@doped
esto es, empieza con “ssh-rsa” y termina con “usuario@maquina” (que no es más que una descripción de la misma).
Si vamos a la web de configuración de nuestra cuenta en gna nos aparecerán las opciones asociadas a la misma. En esta ocasión nos interesa la edición de las claves SSH.
Si seleccionamos esa edición de claves, podremos introducir la nuestra (¡¡¡LA PÚBLICA!!!) como se muestra en la imagen siguiente:
En el ejemplo anterior se ven tres claves. Esto se debe a que yo tengo introducidas (atención, obviedad) tres claves: la de casa, la del trabajo y la del portátil.
Tras esto, debemos esperar a que gna actualice la bese de datos de las claves, que se realiza a través de una tarea de cron, cada tres horas (o eso dicen ellos). Así, como mucho deberíamos esperar 3 horas. Si a las 3 horas la clave no funciona, o bien hemos hecho algo mal, o algo falla con los servidores de gna (en mi caso pasó lo segundo y casi me vuelvo loco).
Para probar nuestra clave, bajaremos la rama trunk del repo del proyecto en el que estemos autorizados del siguiente modo:
1 | svn co svn+ssh://<login_gna>@svn.gna.org/svn/<proyecto>/trunk <proyecto> |
En mi caso, con M.A.R.S. he de escribir lo siguiente para bajar la rama trunk:
svn co svn+ssh://brue@svn.gna.org/svn/mars/trunk mars
Recordad que si perdéis las claves no pasa nada (mientras las “revoquéis”). Simplemente la borráis de gna y creáis una nueva siguiente desde cero el proceso
Y eso es todo.
Happy hacking!
Pausando un hilo (posix pthread) unos milisegundos.
Mar 26
A menudo hace falta para la ejecución de un hilo ya que no queremos que consuma todo el tiempo de CPU, cuando, por ejemplo, hacemos un polling agresivo. Hay que tener en cuenta que sleep() no funciona puesto que para el proceso completamente.
Una posible solución es utilizar la siguiente función:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | #include <sys/time.h> #include <pthread.h> ... int VideoSource::threadWait(int milliseconds){ pthread_mutex_t mutex; pthread_cond_t condition; struct timespec timewaited; struct timeval now; if(pthread_mutex_init(&mutex,NULL)) return -1; if(pthread_cond_init(&condition,NULL)) return -1; gettimeofday(&now, NULL); timewaited.tv_sec = now.tv_sec + milliseconds / 1000; timewaited.tv_nsec = now.tv_usec*1000 + (milliseconds % 1000)*1000000; return pthread_cond_timedwait(&condition, &mutex, &timewaited); } |
Ten en cuenta que los sistemas operativos no suelen ser de tiempo real y que además, en hacer los cálculos antes de la espera, se pierda un tiempo … pero bueno, puede ser útil para algunas cosas que no requieran precisión a nivel de ciclos.
Coloreando el prompt :)
Mar 11
Esta es mi configuración para el prompt de bash:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | # ANSI color codes RS="\[\033[0m\]" # reset HC="\[\033[1m\]" # hicolor UL="\[\033[4m\]" # underline INV="\[\033[7m\]" # inverse background and foreground FBLK="\[\033[30m\]" # foreground black FRED="\[\033[31m\]" # foreground red FGRN="\[\033[32m\]" # foreground green FYEL="\[\033[33m\]" # foreground yellow FBLE="\[\033[34m\]" # foreground blue FMAG="\[\033[35m\]" # foreground magenta FCYN="\[\033[36m\]" # foreground cyan FWHT="\[\033[37m\]" # foreground white BBLK="\[\033[40m\]" # background black BRED="\[\033[41m\]" # background red BGRN="\[\033[42m\]" # background green BYEL="\[\033[43m\]" # background yellow BBLE="\[\033[44m\]" # background blue BMAG="\[\033[45m\]" # background magenta BCYN="\[\033[46m\]" # background cyan BWHT="\[\033[47m\]" # background white export PS1="$HC$FGRN\u$FRED@$FGRN\h$FWHT[\t]$FGRN$UL\w$RS$HC$ $RS" |
y como root:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | # ANSI color codes RS="\[\033[0m\]" # reset HC="\[\033[1m\]" # hicolor UL="\[\033[4m\]" # underline INV="\[\033[7m\]" # inverse background and foreground FBLK="\[\033[30m\]" # foreground black FRED="\[\033[31m\]" # foreground red FGRN="\[\033[32m\]" # foreground green FYEL="\[\033[33m\]" # foreground yellow FBLE="\[\033[34m\]" # foreground blue FMAG="\[\033[35m\]" # foreground magenta FCYN="\[\033[36m\]" # foreground cyan FWHT="\[\033[37m\]" # foreground white BBLK="\[\033[40m\]" # background black BRED="\[\033[41m\]" # background red BGRN="\[\033[42m\]" # background green BYEL="\[\033[43m\]" # background yellow BBLE="\[\033[44m\]" # background blue BMAG="\[\033[45m\]" # background magenta BCYN="\[\033[46m\]" # background cyan BWHT="\[\033[47m\]" # background white export PS1="$HC$FRED\u$FGRN@$FRED\h$FWHT[\t]$FRED$UL\w$RS$HC[$FRED""ROOT$FWHT""] # $RS" |
![[bRue.org] [bRue.org]](http://www.brue.org/wp-content/uploads/logo_bw.png)


