domingo, agosto 12, 2018

Compilar SDL 1.2.15 en macOS X 10.13 (High Sierra)

Simple DirectMedia Layer es una librería multiplataforma que permite control de video, dispositivos de entrada y sonido. La versión actual de es la 2.x, siendo la 1.2.x una versión histórica y fuera de soporte. Sin embargo, aunque no se desarrolle, todavía hay programas, como Caprice 32 el emulador de Amstrad CPC que lo necesita para ejecutarse.

Esta librería necesita dos pequeñas modificaciones para que compile sin problemas en la última versión de macOS X, ya que no compila de serie:

diff -ru SDL-1.2.15/src/video/quartz/SDL_QuartzVideo.h SDL-1.2.15.macosx/src/video/quartz/SDL_QuartzVideo.h
--- SDL-1.2.15/src/video/quartz/SDL_QuartzVideo.h 2012-01-19 07:30:06.000000000 +0100
+++ SDL-1.2.15.macosx/src/video/quartz/SDL_QuartzVideo.h 2018-07-22 23:36:18.000000000 +0200
@@ -91,7 +91,9 @@
     CGDirectDisplayID  display;            /* 0 == main display (only support single display) */
     const void         *mode;              /* current mode of the display */
     const void         *save_mode;         /* original mode of the display */
+#if (MAC_OS_X_VERSION_MIN_REQUIRED < 1070)
     CGDirectPaletteRef palette;            /* palette of an 8-bit display */
+#endif
     NSOpenGLContext    *gl_context;        /* OpenGL rendering context */
     NSGraphicsContext  *nsgfx_context;     /* Cocoa graphics context */
     Uint32             width, height, bpp; /* frequently used data about the display */
diff -ru SDL-1.2.15/src/video/x11/SDL_x11sym.h SDL-1.2.15.macosx/src/video/x11/SDL_x11sym.h
--- SDL-1.2.15/src/video/x11/SDL_x11sym.h 2012-01-19 07:30:06.000000000 +0100
+++ SDL-1.2.15.macosx/src/video/x11/SDL_x11sym.h 2018-07-22 23:41:47.000000000 +0200
@@ -165,7 +165,7 @@
  */
 #ifdef LONG64
 SDL_X11_MODULE(IO_32BIT)
-SDL_X11_SYM(int,_XData32,(Display *dpy,register long *data,unsigned len),(dpy,data,len),return)
+SDL_X11_SYM(int,_XData32,(Display *dpy,register _Xconst long *data,unsigned len),(dpy,data,len),return)
 SDL_X11_SYM(void,_XRead32,(Display *dpy,register long *data,long len),(dpy,data,len),)
 #endif

Para compilar hay que especificar el path de las librerías de X11, de la siguiente manera:

env CFLAGS="-I/usr/X11/include" LDFLAGS="-L/usr/X11/lib" ./configure --prefix=/usr/local
make
# Como administrador
make install

viernes, julio 27, 2018

Videotutorial com los primeros paso con git

git es un sistema de control de versiones cuya principal ventaja es su facilidad par trabajar en entornos distribuidos. Hay muchas maneras de aprender a usar este software, pero para dar los primeros pasos (creación de repositorios, añadir ficheros al mismo, commit) este pequeño video tutorial de 20 minutos, puede servinos. No esperéis grandes descubrimientos, es sólo los comándos básicos para empezar, pero lo mismo os puede servir si queréis saber como se usa. Podéis encontrar más documentación en Resources to learn Git

(vía Reddit.programming)

domingo, julio 15, 2018

Google vs Yahoo vs Bing: Una curiosidad

Carguemos Firefox y no estemos loguedos en ningún servicio. Hagamos una búsqueda sencilla, por ejemplo APG-65 en cada uno de los principales buscadores. Lo normal es que el primer resultado sea el de la wikipedia. Veamos cuales son las URL's que nos devuelven, usando botón derecho y copiar ruta de enlace

Google

https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0ahUKEwj8rOXn9qDcAhVK1BoKHZ0SBYwQFggnMAA&url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FAN%2FAPG-65_radar_family&usg=AOvVaw01dDz3jRT1kiBuX8DySHwx

Yahoo

https://r.search.yahoo.com/_ylt=AwrJS9YjJktbVikAiBCT.Qt.;_ylu=X3oDMTByaW11dnNvBGNvbG8DaXIyBHBvcwMxBHZ0aWQDBHNlYwNzcg--/RV=2/RE=1531680419/RO=10/RU=https%3a%2f%2fen.wikipedia.org%2fwiki%2fAN%2fAPG-65_radar_family/RK=2/RS=wqAqykBebI6AweYjwtNAYf_.Zdg-

Bing

https://en.wikipedia.org/wiki/AN/APG-65_radar_family

De los tres buscadores principales sólo Bing devuelve el enlace real, de tal manera que si pulsas en él, te vas directo al resultado. Tanto Google como Yahoo, si pulsas en enlace, primero pasas por los servidores de Google - para guardar los correspondientes datos - y luego te realiza la redirección. Evidentemente, si estás logueado en cualquiera de estas dos plataformas, estos datos pasan a formar parte de las estadísticas que se tienen y las preferencias de los usuarios. En el caso de Google no siempre fue así, recuerdo que tiempo atrás funcionaba igual que Bing.

Simplemente, es ser consciente como se alimentan los grandes cuerpos de datos de estos gigantes de Internet.

sábado, julio 14, 2018

Libros de programación de los años 80 de Usborne

Usborne es una editorial británica especializada en libros para niños y adolescentes. Durante los años 80 publicaron varios libros de programación alguno de los cuales fueron traducidos en España la editorial Plesa-SM en la colección electrónica. Hace dos años Usborne decidió poner a disposición de todos los libros en PDF para que los nostálgicos puedan descargarlos y con una licencia de uso bastante liberal así como permitir la adaptación de los programas siempre que no se usen para fines comerciales.

These pdf copies of the original Usborne Computer Guides published in the 1980s are free to download for your own personal or educational use. The books and files are the copyright of Usborne Publishing. You can provide a link to the pdfs from your website, but you may not host or distribute the original files.
You may adapt any of the programs in these books to modern computer languages, and share the adaptations freely online. You may not use the adaptations for commercial purposes. Please credit the name of the Usborne book from which you adapted the program, and provide a link to this webpage.

La lista de títulos puestos a disposción por Usborne es la siguiente:

Silicon Valley kill zone

Hace unas semanas The Economist publicaba un artículo American tech giants are making life tough for startups, en el que se habla como los gigantes tecnológicos están usando todos los datos de los usuarios para identificar a las posibles startups que puedan suponer una amenaza para sus negocios y comprarlas, cuando no directamente replicar la funcionalidad que están ofreciendo para evitar la competencia. Los partners que usan los servicios de las grandes nubes pueden encontrarse con la sorpresa que les han copiado la funcionalidad y que las puede ofrecer de manera más barata o incluso gratuita, sacándolos del mercado.

Según el artículo, cualquier startup que esté trabajando en un producto para consumidores finales, no es tan atractiva para el venture capital como era ante, con lo cual puede tener dificultades para obtener financiación para poder crecer.

Pero sin embargo, este comportamiento de los grandes gigantes de internet tiene otro incentivo: Construir las startups para caer en el radar de los grandes grupos y que la compren cuanto antes.

Lo realmente interesante de todo esto, es como se están usando los datos y las telemetrías de estos gigantes de Internet. Y me atrevo a decir, que las búsquedas que los posibles ingenieros de esas startups estén usando para identificar las amenazas.