Archivo de la etiqueta: C

Curso de programación en C para GNU/Linux (final II)

Hace bastante tiempo escribí un curso de programación en C para GNU/Linux, unos años después lo publiqué en este blog, y finalmente colgué un PDF con el curso maquetado.

A la gente le gustó bastante y todavía recibo algunas dudas, correcciones o comentarios sobre el curso, lo que me hace bastante ilusión porque significa que se sigue utilizando 🙂

A raíz de los premios startup2.0, recordé la existencia de bubok, una web en la que subes tu PDF, diseñas una portada y permites que la gente pida copias impresas de tus escritos. Muy buena idea si quieres difundir tus trabajos evitando gastarte mucho dinero al principio. Intenté subir mi documento desde el portátil del trabajo (Debian + Iceweasel) y no me funcionó muy bien la web, así que miré un poco por Internet y vi que Lulu hacía prácticamente lo mismo. Enredé un poco con la web y finalmente subí el curso.

Lo podéis descargar y comprar desde mi tienda en Lulu: http://stores.lulu.com/garaizar. El material es copyleft, la descarga gratuita y si queréis tener las 81 páginas en papel, tendréis que pagar 6 euros, precio amigo ;-D (de esos 6 euros creo que me llevo 0.30 o algo así, intenté poner lo mínimo).

Si alguien se lo compra, que mande una foto de cómo queda, ¿vale? 😉

Actualización: A sugerencia de Angel María, he vuelto a probar en Bubok y de maravilla (ahora con Ubuntu 8.04 y Firefox 3beta5). Aquí tenéis el resultado: http://www.bubok.com/libros/1561/gnulinux-programacion-de-sistemas.

A paradox: Writing to another process without openning it nor actually writing to it

This post is written in English because it’s the explanation (and release of functional code) of a new technique for win32 based systems called GhostWriting. It’s author, c0de90e7, is a near friend of mine and needed a place to release this awesome code, so I’m very pleased to offer my blog to publish it. Do you want to know how it works? Keep reading 😉
Sigue leyendo

Avances en UltraStar-ng

Con un titular parecido a los que ponen en Microsiervos, retomamos el tema de UltraStar-ng, el port para GNU/Linux de UltraStar, un clon del conocido SingStar de PlayStation. El motivo no es otro que el comentario dejado por el autor en la anterior noticia indicando que había colgado ya la versión 0.1.0 en SourceForge y que había mejorado el interfaz gráfico durante el juego. Buenas notiicas para los amantes de hacer el payaso delante de los amigos versionando a sus artistas favoritos :-). Veamos cómo poner esta nueva versión en funcionamiento…
Sigue leyendo

Metaprogramación (IV): Programación de virus para código fuente C

Continuando (y muy probablemente terminando ya) con el tema de la metaprogramación, abordaremos todas las ideas introducidas hasta ahora en un artículo publicado en el e-zine sobre virus informáticos 29a (0x29a en hexadecimal es 666 en decimal ;-)). En él, se nos muestra cómo un programa en C podría ser capaz de infectar a otros programas en C no compilados todavía, incluyendo funciones de infección, es decir, convirtiéndolos así mismo en vectores de infección. El artículo tiene ya su tiempo, pero creo que es un buen broche final a esta serie de comentarios e impresiones sobre la programación de programas que programan ;-D

Sigue leyendo

Meta-programación (III): Colección de quines en C

Siguiendo con los artículos anteriores sobre meta-programación y quines, os dejo una recopilación (extraída de varios sitios de quinéfilos como este ) de unos cuantos programas que generan su propio código en varios lenguajes de programación diferentes, para que veáis cómo se entretienen algunos hackers…

Sigue leyendo

Meta-programación (II): Cómo construir nuestros propios quines

En el anterior artículo ya habíamos avanzado brevemente qué es un quine. Tomando la definición de la Wikipedia, en informática, un quine es un programa (un tipo de metaprograma) que produce su código fuente como única salida. Por diversión, algunos hackers intentan desarrollar el quine más corto posible en cualquier lenguaje de programación. Los quines se llaman así por Willard Van Orman Quine (1908-2000), que hizo un estudio extensivo de autoreferencia indirecta y sugirió un caso famoso de paradoja sin autoreferencia directa: “Da como resultado un enunciado falso si es precedido por su cita”. ¿Estoy confundiéndote con tanta palabrería? Pongámonos manos a la obra…

Sigue leyendo

Meta-programación (I): "Reflexiones sobre confiar en la confianza"

Hace unas semanas recibí un email de un investigador del CERT en México preguntándome sobre cómo Ken Thompson (padre de C y de UNIX, ahí es nada 😉 ) comentó en un discurso tras la entrega de los premios de la ACM cómo pudo haber troyanizado todo sistema existente derivado de UNIX, como comenté en mi artículo sobre Virus en GNU/Linux. Mucha otra gente lo ha preguntado y siempre los he remitido al documento original, pero me voy a permitir la licencia de hacer una traducción informal para quienes no se defiendan bien con la lengua de Shakespeare… (las correcciones a la traducción son MUY bienvenidas ;-).

Sigue leyendo

UltraStar-ng: port para GNU/Linux de UltraStar, el SingStar libre

Después de pasar un agradable dia de fiesta en casa de Txus, dándolo todo con el Eye-Toy y el SingStar de la PlayStation2, me acordé de UltraStar, el clon libre de SingStar. La mayor pega que conocía de UltraStar era que está desarrollado utilizando Delphi sobre Microsoft Windows, lo que hacía imposible su uso en GNU/Linux y bastante complicado portarlo. Mirando un poco mejor, llegué hasta la web de UltraStar-ng, que más que un port podría considerarse una reescritura desde cero en C++ para GNU/Linux del programa original. Todavía está en fase alpha y claramente hay bastantes cosas que hacer para poder llegar a la calidad de la versión de Windows del UltraStar, pero para usarlo como karaoke normalito, nos basta y sobra. Para intentar aumentar el número de usuarios de UltraStar-ng (y quién sabe si el de desarrolladores 😉 ), voy a publicar una breve guía de cómo compilarlo y cargar canciones en Debian y distribuciones similares (Ubuntu, por ejemplo). Id aclarando vuestras gargantas para ser la alegría de la huerta en estas próximas fiestas de navidad 😉

Sigue leyendo

Curso de programación en C para GNU/Linux (final)

Durante estas últimas semanas hemos estado viendo poco a poco cómo programar en C para GNU/Linux, con bastantes ejemplos e interminables explicaciones (siento ser tan chapas ;-P). Algunos de vosotros me habéis pedido un formato un poco más manejable para tener todo el curso reunido en un único documento que poder imprimir a gusto y hacer anotaciones, correcciones o lo que sea. Quiero aprovechar la entrada número 50 en mi blog para colgar este curso tanto en ODT como en PDF. ¡Qué lo disfrutéis! 😉

Sigue leyendo