Archive

Archive for the ‘Programacion’ Category

Linus Torvalds habla sobre software de control de versiones

November 9th, 2008 No comments

El otro día en el Barcamp Lima estuvimos hablando un poco sobre Software de Control de Versiones y lo importante que esto es para cualquier desarrollador especialmente si trabaja en equipo.

Buscando información sobre Git encontré esta charla que dió Linus Torvalds en Google y que habla sobre el software de control de versiones, obviamente se enfoca en los beneficios de Git pero no deja de mencionar los defectos de CVS y Subversión y de lo feos que le parecieron desde el principio y que fué eso lo que lo llevó a usar BitKeeper, una excelente charla, no se la pierdan :-D

Instalar psycopg2 en FreeBSD

October 7th, 2008 3 comments

Me ví en la situación de tener que trabajar con Postgres sobre FreeBSD y necesitaba un script para jalar datos de unas bases de datos en formato DBF (si, DBF pueden creerlo?) fue asi que encontre un script llamado dbf2pgsql que fue hecho por Hiroo Imaki.

Luego de descargarlo, lo modifiqué un poco para que se adaptara a mis necesidades y cuando lo ejecuté encontré un problema, me hacia falta la librería psycopg2 que es un magnífica librería que permite la interacción entre Python y Postgres, el problema es que por lo visto da muchos problemas para poder ser instalado.

El primer requisito para poder instalar psycopg2 es tener instalado Setuptools luego de instalarlo trate de instalar pysopg2

python setup.py build

No lo pude hacer porque tenía el siguiente error
error: static declaration of ’round’ follows non-static declaration

Luego de mucho buscar por una solución me encontré con este post de Reed Obrien
http://reedobrien.blogspot.com/2008/02/error-building-psycopg-custom-egg.html

Por lo visto es un error para poder hacer el build en FreeBSD, solucion pasa por editar el archivo config.h y comentar las siguientes líneas:
#if defined(__FreeBSD__) || (defined(_WIN32) && !defined(__GNUC__)) || defined(__sun__) || defined(sun)
/* what's this, we have no round function either? */
/*
static double round(double num)
{
return (num >= 0) ? floor(num + 0.5) : ceil(num - 0.5);
}
*/
#endif

Luego de esto cruce los dedos:
python setup.py build
Bingo! funcionó sin problemas, y ahora el paso final
python setup.py install

Y ahora ya pude correr con éxito el script dbf2pgsql, tardé mucho en dar con la respuesta, asi que espero que esto pueda ser útil.

Que es UTF-8?

April 16th, 2008 2 comments

La respuesta corta es: UTF-8 es un formato para codificar caracteres Unicode utilizando secuencias de bytes.

Y qué es Unicode?
Probablemente muchos de ustedes hayan oído hablar de los sistemas de codifiación, los que hablamos español estamos muy acostumbrado al famoso ASCII si, ese que nos ayuda a sacar las tildes :P

Pues asi como el ASCII hay muchísimos sistemas de codificación que lo usan en otros idiomas e incluso un mismo idioma puede tener varios sistemas de codificación que varía por la plataforma en la que se ejecuta. Y como hacemos para arreglar todo este embrollo? como hago para poder ver páginas de anime japonés con sus caracteres reales y no solamente unos cuadrados? como hacen los hebreos para poder leer correctamente algo en francés o ruso? La respuesta a todo es Unicode!

Unicode proporciona un número único para cada carácter, sin importar la plataforma, sin importar el programa, sin importar el idioma.


Creative Commons License photo credit: sillygwailo
Dicho todo esto, volvamos con UTF-8 !

UTF-8 se lo debemos al maestro Ken_Thompson, si uno de los genios detrás de Unix y el creador de Plan 9

UTF-8 usa grupos de bytes para representar el estándar de Unicode para los alfabetos de muchos de los lenguajes del mundo. Es especialmente útil para la transmisión sobre sistemas de correo de 8 bits.

Usa de 1 a 4 bytes por carácter, dependiendo del símbolo de Unicode. Por ejemplo, se necesita un solo byte en UTF-8 para codificar los 128 caracteres US-ASCII en el rango U+0000 a U+007F de Unicode.

Para todos aquellos que tenemos necesidad de programar usar UTF-8 nos ha servido para aliviar muchísimos dolores de cabeza, especialmente para los que hablamos español y tenemos necesidad de colocar tildes y algunos caracteres especiales, y muchas veces teníamos que hacerlo con software que no contemplaban esas posibilidades. Ahora casi todo el software que usamos y que tiene que ver con manipulación de documentos soportan este formato.

Para los que son webmasters UTF-8 es especialmente importante porque les ahorrará muchos problemas con los navegadores, webservers y las aplicaciones que escriban.

Si quieres verificar que tú sistema y navegador soportan UTF-8 (lo raro sería que no lo soporte) puedes abrir este archivo de texto :
http://www.cl.cam.ac.uk/~mgk25/ucs/examples/UTF-8-demo.txt

Si ves todos los caracteres no tienes problemas, pero si ves puros cuadrados o caracteres sin ningún tipo de secuencia lógica entonces estas usando un sistema de codificación alterno como ISO-8859-1 busca en tu navegador y lo cambias, aunque mi blog esta codificado para UTF-8 y le avisa al browser que debería de utilizar UTF-8 para interpretar todo.

Creative Labs se dispara en el pie

March 29th, 2008 No comments

Creative Labs ha sabido ganarse una reputación a través del tiempo con sus tarjetas de sonido, tienen el dominio casi exclusivo en el mundo de los gamers que es quizás la parte mas importante de su negocio. Yo siempre los tenía en alta estima, hasta que me enteré de que han amenazado a Daniel_K.

Quién es Daniel_K ? pues nada menos que un desarrollador independiente que logró lo que ni los mismos ingenieros de Creative Labs pudieron: hacer funcionar correctamente los drivers para sus tarjetas de video en Windows Vista. El problema es según los señores de Creative que el buen Daniel_K esta recibiendo donaciones (claro seguro ha ganado una millonada) por SU trabajo, esto a ellos no les gusta porque dicen que esta lucrando con su Propiedad Intelectual, aquí el mensaje en los foros de Creative:

Daniel_K:

We are aware that you have been assisting owners of our Creative sound cards for some time now, by providing unofficial driver packages for Vista that deliver more of the original functionality that was found in the equivalent XP packages for those sound cards. In principle we don’t have a problem with you helping users in this way, so long as they understand that any driver packages you supply are not supported by Creative. Where we do have a problem is when technology and IP owned by Creative or other companies that Creative has licensed from, are made to run on other products for which they are not intended. We took action to remove your thread because, like you, Creative and its technology partners think it is only fair to be compensated for goods and services. The difference in this case is that we own the rights to the materials that you are distributing. By enabling our technology and IP to run on sound cards for which it was not originally offered or intended, you are in effect, stealing our goods. When you solicit donations for providing packages like this, you are profiting from something that you do not own. If we choose to develop and provide host-based processing features with certain sound cards and not others, that is a business decision that only we have the right to make.

Although you say you have discontinued your practice of distributing unauthorized software packages for Creative sound cards we have seen evidence of them elsewhere along with donation requests from you. We also note in a recent post of yours on these forums, that you appear to be contemplating the release of further packages. To be clear, we are asking you to respect our legal rights in this matter and cease all further unauthorized distribution of our technology and IP. In addition we request that you observe our forum rules and respect our right to enforce those rules. If you are in any doubt as to what we would consider unacceptable then please request clarification through one of our forum moderators before posting.

Phil O’Shaughnessy
VP Corporate Communications
Creative Labs Inc.

Es realmente increíble lo que esta haciendo Creative, en vez de darle un trabajo a este hombre que les esta haciendo un ENORME FAVOR lo que hacen es amenazarle con enjuiciarlo, es absolutamente ridículo!

Yo espero que se rectifiquen en el corto plazo sino, pues nunca más pienso comprar un producto de Creative Labs, demás esta decir que mucha gente ha protestado y en el mismo foro del mensaje expresan su solidaridad y apoyo a Daniel_K.

Fuente: Message to Daniel_K

Como crear un videojuego con SDL

March 25th, 2008 2 comments

El mundo de los videjuegos es apasionante y si eres programador, pues crear un videojuego puede ser un desafío sumamente estimulante. SDL (Simple DirectMedia Layer) es una librería creada especialmente para poder crear videjuegos, es multiplataforma y permite controlar a bajo nivel nuestro teclado, joystick, mouse, audio, video.

Si quieres aprender lo básico de SDL y crear un juego en 2D rápidamente te recomiendo seguir esta magnífica guía que paso a paso nos mostrará todo el proceso que conlleva la creación de un videojuego:

Guía SDL para Videojuegos

Update:
Encontré otro tutorial más en perfecto español:
Como desarollar un videojuego paso a paso con SDL

Bugs en WordPress: contenido no encontrado y categorias desaparecidas

February 14th, 2008 4 comments

Encontré 2 problemas en wordpress ( o por lo menos en mi instalación), no sé que problema hubo pero de la noche a la mañana, varios días después de haber actualizado a la última versión 2.3.3 me dí cuenta que el contador bajo terriblemente, entre al panel de administración y todo lucía bien, cargue el blog y todo bien.

No input file specified
Pensé que era una falla del contador, pero al ver Google Analytics encontré el mismo problema, decidí investigar mas a fondo y el resultado fué que había una gran cantidad de post que tenían un problema con el permalink y en vez de visualizar la página aparecía un mensaje de error que decía: No input file specified . Inicialmente pensé que erá el PHP pero no, quedó descartado porque había post que si se visualizaban correctamente, luego me dí cuenta que los feeds tampoco funcionaban. Entonces ví la luz, el problema tenía que ser el .htaccess.

Lo borré. lo hice de nuevo, recreé la estructura de permalinks desde el wordpress y todo seguía igual, asi que no me quedó otra que revisar el código, luego de mucho mirar y casi tirar la toalla, encontré un enlace muy ilustrativo: de como funcionan los permalinks en WordPress

Fué asi que llegué a la solución, lo que tiene que hacer es lo siguiente:

1.- Editar el archivo wp-includes/vars.php
2.- Busquen una línea que tenga el texto $is_apache = bla bla bla puede ir cualquier cosa aqui dependiendo de tu version bla bla bla
3.- Comentar esa línea anteponiendo “//” para que quede asi // $is_apache = bla bla bla
4.- Agregar una línea que diga exactamente: $is_apache = 1;

Por lo visto hay un problema entre wordpress y como detecta el webserver que estas ejecutando, lógicamente esto aplica para todos aquellos que usen Apache :)

Las categorías se perdieron!
Todo el problema anterior me hizo tomar la decisión de cambiar de hosting, pues fueron 3 días entre que empezó el problema y que yo lo pude solucionar, debido al limitado acceso que tengo al servidor (no tengo privilegios de root), si hubiera sido un problema de apache o php no lo hubiera podido solucionar debido a la falta de privilegios.

Pasé mi blog a DreamHost, todo salió supuestamente bien, hasta que caí en la cuenta que todas las categorías habían desaparecido! todos mis posts aparecían como “Uncategorized”.

Revisé las 3 tablas que tienen que ver con las categorías en wordpress que son las siguientes: wp_categorias, wp_link2cat y wp_post2cat las volví a pasar, pero tenía el mismo problema, me pusé a buscar y encontré que era un problema conocido:
Upgrade caused loss of Categories

El problema es que mi blog no tenía exactamente ese problema, yo no estaba haciendo un upgrade, realmente estaba haciendo una migración sobre un “fresh install”. Hice muchas pruebas, hasta que en ese mismo topic encontré la solución: como forzar el upgrade de tu base de datos en WordPress, no, no se trata del mysql en realidad, sino del control de versiones interno que tiene WordPress y que tiene este problema.

La solución es bastante sencilla y rápida
1.- Entra a la consola de mysql y digita
UPGRADE wp_options SET db_version="5183"
2.- Debes usar el número de versión adecuado, no es un número fijo, el número varia de acuerdo a la versión de WordPress que tengas, aqui una tablita para las ultimas versiones:
2.3.2 = 6124
2.3.1 = 6124
2.3 = 6124
2.2.3 = 5183
2.2.x = 5183
2.2 = 5183
2.1.3 = 4773
2.1.x = 4773
2.1 = 4772
2.0.11 = 3441
2.0.x = 3441
2.0 = 3441

3.- Si no puedes acceder a la consola en mysql, puedes usar Phpmyadmin o el gestor de mysql que tengas y realizas exactamente el mismo cambio, ubicar el campo db_version en la tabla wp_options y cambiarlo.
4.- Desactiva todos los plugins y luego pon en tu navegador
http://www.tublog.com/wp-admin/upgrade.php sigue los pasos y todo se arreglará
5.- Todas las categorías y subcategorías aparecieron otra vez, peeeero mis post seguían uncategorized :P

Por lo visto mi problema era bastante particular y ponerme a categorizar todo de nuevo me da muuuuucha flojera, asi que tenía que encontrar la solución. Luego de mucho investigar, llegué a la conclusión de que había un problema entre las categorías y los tags, desactive todos los plugins, los volví a activar y no paso nada, hasta que se me probé usar la opción de transformar alguna categoría en tag.

Lo hice solo con una para probar y voilá! se arregló todo! como no creo en la magia seguí buscando y la explicación es que todo este rollo se arma por la nueva forma de manejar las categorías y los tags que tiene la versión 2.3.3 de WordPress.

Por cierto una de las causas conocidas para este problema es la utilización del plugin Google Sitemap Generator que yo lo usaba, pero al pasar al nuevo hosting nunca instalé.

A ver si le sirve de ayuda a alguien :)

Categories: Blogs, Programacion Tags: , , ,

Como escribir un plugin de WordPress

October 27th, 2007 1 comment

Mientras tuve problemas con mi servidor inicié una investigación sobre todos los plugins que utilizo para ver si alguno me causaba problemas. De esta forma me puse a revisar mucho código y me entraron ganas de modificar unos cuantos plugins. Asi fue como llegué a DevLounge donde Ronald Huereca ha escrito una magnífica guía sobre como escribir un plugin para wordpress en una serie de 12 artículos cubriendo desde los aspectos básicos de diseño y programación hasta añadir florituras como Ajax y promocionar tu plugin.

Lectura más que interesante :)
How to write a WordPress plugin

Switch to our mobile site