Categoría: Programacion

Creative Labs se dispara en el pie

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

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

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 😛

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 🙂

Como escribir un plugin de WordPress

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

Optimiza tu hoja de estilo con Clean CSS

Estaba viendo la forma de optimizar una hoja de estilo que me estaba quedando muy grande y asi fué como encontré Clean CSS una web que es justo lo que necesitaba.

El proceso es bastante sencillo, lo único que hay que hacer es pegar nuestro código CSS en el formulario o indicar el URL si el CSS esta online, luego seleccionar las opciones y finalmente obtendremos la misma hoja de estilo pero optimizada, eliminando redundancias y haciendo que el tamaño de nuestro archivo CSS se reduzca considerablemente.

Como pre-requisito se necesita que el código CSS este validado para lo cual tenemos a la mano W3C CSS Validator. Con todo en orden esta herramienta funciona de maravilla, pero claro, uno nunca sabe asi que sean precavidos y asegurense de guardar copias, especialmente si es que van a usar la opción Highest porque el código resultante es totalmente inelegible 😛

http://www.cleancss.com/

Probando Django

Hace buen tiempo vengo oyendo sobre Django y lo bueno que es, mi amigo Tabo se ha encargado de evangelizar este framework hecho en Python (cuando no?) hasta la saciedad. No me queda mas que agradecerle porque en apenas 2 días probándolo ya he quedado plenamente convencido de que es un excelente framework.

Instalé la version de desarrollo desde mi consola escribiendo:
svn co http://code.djangoproject.com/svn/django/trunk/ django-trunk
Obvio tienen que tener instalado Subversion para poder hacer esto 😉

El siguiente paso es activar mod_python en Apache, lo cual se puede hacer siguiendo esta guía:
How to use Django with mod_python

Dicho sea de paso, Django trae su propio webserver para hacer pruebas, claro es algo bastante pequeño y limitado, pero para hacer tus pruebas iniciales basta y sobra.

Que es lo que sigue? pues seguir el magnífico tutorial de la página oficial dividido en 4 partes:
http://www.djangoproject.com/documentation/tutorial01/

Si bien es un framework de alto nivel, hay que escribir un poco de código en Python, pero no se asusten, Python es muy sencillo de aprender y tener todo en forma tan ordenada les ayudará a entender y aprender de una forma realmente rápida.

Web oficial de Django: http://www.djangoproject.com/d

Your program personality type is

DLTC

You’re a Doer.
You are very quick at getting tasks done. You believe the outcome is the most important part of a task and the faster you can reach that outcome the better. After all, time is money.

You like coding at a Low level.
You’re from the old school of programming and believe that you should have an intimate relationship with the computer. You don’t mind juggling registers around and spending hours getting a 5% performance increase in an algorithm.

You work best in a Team.
A good group is better than the sum of it’s parts. The only thing better than a genius programmer is a cohesive group of genius programmers.

You are a Conservative programmer.
The less code you write, the less chance there is of it containing a bug. You write short and to the point code that gets the job done efficiently.