Postear código en tu blog de wordpress.com

Postear código es algo que hago con frecuencia en el blog pero desafortunadamente también es una tarea que siempre me ha causado muchos problemas. wordpress.com cuanta con la opción de postear código usando el shortcode [ code ], o al menos eso es lo que dice la ayuda/soporte del sitio pero, en mi experiencia, este shortcode rara vez funciona como debería y cada vez que lo pruebo parece tener más y más problemas.

Normalmente, cuando quiero postear código, tengo que hacer malabares para poder formatear el código correcto. El tipo de malabares que tengo que hacer incluyen cambiar entre el editor visual y el HTML, guardar el post mientras estoy en el editor HTML porque de lo contrario el código no se muestra de la forma esperada. Postear código era molesto y por lo general me tomaba mucho tiempo postear aún el más minimo ejemplo. La gota que derramó el vaso llegó hace unos cuantos días cuando intenté editar uno de mis posts antiguos y no hubo forma posible de postear el código usando el shorcode.

En general, usar el shortcode [ code ] genera miles de problemas ya sea que postee código de Java, C, XML o HTML. Por ejemplo, el siguiente código HTML:

<html xmlns:fn="http://www.w3.org/2005/xpath-functions" xmlns:fox="http://xmlgraphics.apache.org/fop/extensions" xmlns:cfdi="http://www.sat.gob.mx/cfd/3" xmlns:tfd="http://www.sat.gob.mx/TimbreFiscalDigital">
  <body>
    <h1>Hola mundo!</h1>
  </body>
</html>

Luce así usando el shortcode [ code ]:




<h1>Hola mundo!</h1>



 

Como pueden ver, ¡parte del código simplemente ha desaparecido!. Eso no es lo que quiero cuando posteo código. Lo mismo puede pasar con Java o C aunque es más notorio con XML y HTML, lo que irónicamente hace que en Java y C sea peor ya que cuando solamente desaparecen algunas líneas puede parecer que tu código se posteó bien cuando en realidad está mal 😦 . Intentar postear código puede ser una experiencia aún más frustrante cuando, al usar el shortcode [ code ], ¡a veces tu código desaparece incluso en el editor después de usar la opción de previsualizar!.

Cansado de batallar por horas y tener que hacer mágia con el editor cada que quiero postear código, decidí buscar alternativas. No me tomó mucho tiempo encontrar que wordpress.com soporta postear gists de github.

El soporte para gists es limitado, no puedes postear solamente un fragmento de código, no puedes resaltar líneas, no puedes postear solamente un archivo de un gist de varios archivos, pero aún así es mucho mejor que batallar con el shortcode nativo de wordpress.

Para postear código desde un gist de github, primero debes crear un gist con tu código en tu página de github. Una vez que tienes tu gist, postear el código en tu blog es fácil, solamente debes pegar un link con la dirección de tu gist en el editor de wordpress para que el código aparezca incrustado automáticamente en tu post. Por ejemplo, el código HTML anterior luce así usando un gist de github:

 

 

Juegos indie mexicanos en Kickstarter – Parte 7

Este año ha comenzado a paso lento en lo que se refiere a proyectos de videojuegos indie en Kickstarter. Desde el post anterior solamente han aparecido un par de nuevas campañas de videojuegos.

El primero es Paradise Lost, un juego del que ya he hablado en posts anteriores porque el creador de la campaña lleva prometiendolo desde hace años y, al parecer, ha encontrado una forma exitosa de continuar con esta estafa… digo… campaña. Cierto, el juego ya cuenta con una versión pre-alpha en Steam pero llevo años viendo las mismas capturas de pantalla y los mismos escenarios y, considerando que increíblemente la camapaña de Kickstarter del juego ha alcanzado su meta no una sino ya varias veces, resulta muy poco el avance que ha demostrado.

El proyecto de videojuego más reciente que ha aparecido en Kickstarter es ITOS, un juego de plataformas minimalista del que puedes descargar un demo jugable. En mi opinión personal, por lo que se puede apreciar en el video de presentación, “minimalista” es solamente la típica excusa cuando no puedes hacer nada mejor porque literalmente parece que no pusieron el menor esfuerzo para el apartado gráfico. El gameplay parece del tipo “es tan difícil que es frustrante” y ¿noto cierto toque de Undertale en la presentación de los diálogos?. No tengo muchas expectativas para este juego pero intentaré probar el demo en los próximos días para ver si me hace cambiar de opinión.

[EDIT:] Desafortunadamente no tuve éxito al intentar correr el demo de ITOS usando Wine.

Como dije antes, este año ha comenzado lento en lo que se refiere a juegos indie mexicanos, espero que pronto veamos aparecer más proyectos.

El poder del amor

logoelpoderdelamorok-2288586

No, este no es un post sobre el día del amor y la amistad, este es un post sobre el más reciente reality de TV Azteca llamado “El poder del amor“, conducido por Penelope Menchaca, que empezó a transmitirse el día lunes 4 de febrero y tuvo su última emisión el día 8 de febrero, convirtíendose probablemente en el programa que sustenta el récord de haber sido retirado del aire más rápidamente, tan solo después de una semana de emisión… y eso es algo bueno.

Tuve la mala fortuna de ver ese programa y el simple hecho de verlo te hacía sentir cómo perdías neuronas con cada segundo que pasaba. El concepto de reality show era terrible. Uno esperaría que cualquier que trabaje en la TV sabría que los reality shows de ese tipo no han sido exitosos en México por los últimos 20 años, desde pasó la novedad del Big Brother. Tal vez los productores pensaron que después de 20 años el público mexicano estaría listo para otro reality, esa es la única explicación lógica para que invirtieran en un proyecto de ese tipo que, además, fue grabado en Turquía por cualquiera que fuera la razón para eso.

Por fortuna el programa fue un rotundo fracaso con el público y fue retirado en tiempo record de la programación y eso, eso me hace recuperar un poco la fé en la humanidad.

 

Tarea de programación C – Números primos

En un post anterior escribí el código para encontrar números primos en Java. A diferencia del código en aquel post, aquí he usado una representación digital de la criba o coladera de Eratóstenes. Usar una representación en memoria tiene la ventaja de que nos permite ahorrarnos muchos cálculos innecesarios que el anterior código hacía para comprobar si un número era primo. Además, gracias a que cualquier compilador moderno nos permite declarar arreglos o reservar bloques de memoria de tamaño arbitrario, es posible usar este código para encontrar fácilmente los números primos por debajo de 1,000,000,000 (o cualquier número en el rango del tipo de datos int).

#include 
#include 
#include 
#include 

#define LIMITE 100000000

uint8_t *criba;
int contador = 0;

int main() {
    criba = calloc(LIMITE, 1);
    assert(criba);
    for (int i = 2; i < LIMITE; i++) {
        if (criba[i] == 0) {
            contador++;
            printf("%d\n", i);
            uint64_t mul = i * 2;
            while (mul < LIMITE) {
                criba[mul] = 1;
                mul += i;
            }
        }
    }
    printf("Se encontraron %d números primos menores a %d.\n", contador, LIMITE);
}

El código anterior define LIMITE con un valor de 100,000,000 y en mi PC toma aproximadamente 4 segundos al programa para encontrar los números primos por debajo de ese valor. Si incremento el valor de LIMITE a 1,000,000,000 toma aproximadamente 40 segundos en mi PC, que sigue siendo más rápido que el tiempo que tomaba la versión anterior del código para un valor de 100,000,000. Nota que puede llegar a millones la cantidad de números primos para estos valores de LIMITE, por lo que recomiendo enviar la salida del programa a un archivo y no directamente a la terminal. Es decir, ejecuta el programa de la siguiente manera:

monstruosoft@debian:~/code$ ./primos > /dev/shm/primos.txt

En el archivo primos.txt se guardará la salida del programa, por ejemplo:

2
3
5
7
11
13
17
19
23
29
31
37
...
999999667
999999677
999999733
999999739
999999751
999999757
999999761
999999797
999999883
999999893
999999929
999999937
Se encontraron 50847534 números primos menores a 1000000000.

Nota también que aunque este código puede fácilmente reservar un bloque de memoria de 1 GB en C, el mismo código en Java siempre me daba errores de OutOfMemoryException. Incluso después de aumentar el tamaño de la memoria usada por la máquina virtual de Java, usar System.out.println() era extremadamente lento para intentar escribir varios millones de líneas de texto a un archivo, y un ArrayList con varios millones de números primos también causaba problemas al intentar usar el método toString() así que si conoces la forma de usar este código en Java deja un comentario.

 

Juegos indie mexicanos en Kickstarter – Parte 6

Este año empezó lentamente en lo que a proyectos de videojuegos mexicanos en Kickstarter se refiere pero poco a poco han empezado a aparecer. Ya en el post anterior hablé de Zaphiro’s Project, un proyecto que parece más una broma pero que, aunque resulte defícil de creer, ha alcanzado ya el 10% de su meta, eso es aproximadamente 2,500 pesos pero aún así no me explico cómo ha alcanzado esa cantidad.

El siguiente en la lista es Divenia Zero, un spinoff en 2D de Divenia, otro proyecto en Kickstarter. Aunque personalmente creo que la versión 2D de este juego luce mejor y ofrece más posibilidades que la versión en 3D, aún tiene muchos detalles que pulir antes de poder ser lanzada oficialmente; en particular, las animaciones y colisiones es obvio que necesitan todavía mucho trabajo. Hay un demo disponible del juego que espero poder probar próximamente, si es que corre en Linux.

Quest for Enlightenment es otro de esos típicos proyectos que prometen mucho pero no tienen nada que mostrar. Con una meta de un millón de pesos y sin nada que mostrar, es casi seguro que no alcanzará su meta pero hay un par de cosas que creo que vale la pena resaltar. Aunque el proyecto aparece en la categoría de México, basta hacer click en el nombre del creador de la campaña para ver que es de Costa Rica, esto puede marcar una preocupante tendencia de gente que hace pasar sus proyectos como si fueran mexicanos aunque no lo sean. No es como si México ofreciera más garantías de alcanzar las metas con éxito pero ciertamente México es visto como una economía más importante que la de otros países de latinoamérica. De verdad me preocupa la posibilidad de ver más y más proyectos haciendose pasar como proyectos mexicanos y si creen que estoy exagerando, sigan leyendo 😦 . Como si lo anterior no fuera suficiente, el creador de la campaña pretende haber contactado con estudios en “todo el mundo” para apoyarlo con su proyecto para finalmente encontrar un estudio, curiosamente, en Costa Rica. Todo esto suena bastante sospechoso y resulta ofensivo para los que pretenden apoyar su proyecto ya que parece estar basado en mentiras.

Aunque no es un videojuego, Pokenoticias es una campaña que pretender recaudar 100,000 pesos para una página de internet relacionada con noticias de videojuegos que luce abandonada desde hace más de un año. No hay mucho más que decir sobre esta campaña.

The Vale es un juego de survival-horror desarrollado por Fairyland, un estudio conformado por gente de México, Argentina y Reino Unido; una vez más, este proyecto no se siente muy mexicano que digamos y basta ver el video de presentación (que parece usar la fórmula de los videos del canal de YouTube Numberphile) de su anterior proyecto (que fue misteriosamente cancelado), The Lawless Online, para ver qué tan mexicano luce este estudio. Como mencioné antes, resulta preocupante ver proyectos que no lucen para nada mexicanos aparecer en los listados de proyectos de México. The Lawless online prometía ser un MMO y, honestamente, no creo que exista ningún estudio indie en México con la capacidad de crear un juego MMO; además, si revisas la campaña notarás que no tiene en realidad nada qué mostrar más que unos cuantos diseños 3D pero nada parecido a gameplay pero, en fin, ese proyecto fue cancelado. De vuelta a The Vale, el proyecto que sigue activo, parece ser un juego de survival-horror en primera persona (o quizas para VR) que parece fuertemente inspirado por Resident Evil 7. Las texturas y diseños 3D lucen bien pero yo tomaría con cautela el considerarlo un juego indie “mexicano”.

Equilibrio es el más reciente proyecto que ha aparecido en Kickstarter. Como de costumbre, el proyecto espera recaudar casi un millón de pesos al mostrar solamente unos cuantos dibujos hechos a mano, de mala calidad considerando que cuantan con 2 “ilustradores y diseñadores gráficos”. También cuentan con 2 “programadores”, por lo que no se puede justificar la falta de un “Hello world”, por lo menos. Como siempre, el juego promete muchas cosas como una “historia sólida y gran talento artístico y tecnológico”. Este proyecto parece una idea bien intencionada pero nada más.

BONUS: No es un videojuego pero Space Art es un proyecto para lanzar una línea de ropa. Lo gracioso aquí es que, ironicamente, pudieron haber conseguido más dinero con su campaña original que tenía una meta de 10 pesos 😀 .