Miriam Ruiz
random thoughts on technology and life

{September 26, 2007}   Piklab in Debian

I’ve been so busy lately that I forgot to write about it: Piklab is now in Debian. I don’t know if any of you has done and development with PIC microcontrollers, but it’s not that there was a lot of free programs for doing so. Even now, it might be problematic depending on which hardware you have for programming them. In any case, Piklab is an integrated development environment for applications based on Microchip PIC and dsPIC microcontrollers similar to the MPLAB environment, which makes it easier to develop. It’s a real pity that we cannot consider the newer versions of SDCC as DFSG-free, due some non-commercial clauses, because it is a real nice companion compiler for Piklab.

{September 23, 2007}   Burnout reloaded

Some time ago I blogged about burnout. Some of the factors that might cause it are an overwhelming workload and powerlessness to change something important to you. This means that you get emotionally very involved in developing something, and you feel that whatever you might do to achieve it just won’t be enough. I feel a bit powerless and also that whatever more I try to do just won’t improve the situation. Sometimes I have the feelings of being fighting against a big hard wall and that it’s not worth it, and that whatever big effort I might do just won’t be enough.

Of course these feelings will probably fade a bit after sleeping and resting, but they’re sympthoms that are alerting me to slow down a bit and don’t get too emotionally involved in all the stuff I’m doing, and I should better not ignore them, if I want to prevent myself from burning out. It’ll be good to take an emotional rest from all this, but knowing myself I’d probably use the spare energy to get involved in yet more projects.

{September 20, 2007}   Some artwork

I’ve had a look at DebianArt today, and it seems to have nice stuff. I’ve added a small contribution: three wallpapers and some logos. Someone might be interested in them, I guess. I’ve also added SVG versions of Debian logo and Debian-Women logo. It’s a nice feature to be able to upload the works in different formats, as my original ones are Gimp’s XCF files. The resulting PNG are not really optimal for modifications. I didn’t upload the original XCF version of two of the wallpapers, as they weight quite a lot and I don’t really know the policy of DebianArt about that.

I’m still trying to find some time to finish my usplash theme. Some time I’ll be able to do it :)

{September 17, 2007}   Storing data in $HOME directory

When packaging games, one of the operations I often have to do to the source code is modifying it so that it uses absolute file and directory names instead of relative ones. When coders develop for Windows, or when they develop their games to be able to play them from their home directory, they just would go that way and won’t care about it, but when the idea is installing the files in the system, the Filesystem Hierarchy Standard (FHS) must be respected, and thus things will need to be place in their proper directories.

For read-only files, this is not a big deal, all that has to be done is replacing the relative file name in the file opening commands with the absolute one, doing fopen(“/usr/share/games/package/dir/file”) instead of fopen(“dir/file”). I usually prefer to do it like fopen(DATADIR “/dir/file”) and set DATADIR from the Makefile, with a -DDATADIR=\”/usr/share/games/package\” switch added to the CFLAGS, and maybe also setting it inside the code if it’s not previously defined (#ifndef and so).

There are some files and directories in which doing this is not possible, because they want read-write permissions. This files include saving the configuration, hiscores, new levels created with the game editor, game saves and so. They might be moved to some directory under “/var/lib/”, and create a new group en the system so that it’s writable, and so on. I don’t like that approach a single bit. I prefer to move all tthat data to the user’s directory. This is not as straightforward as it was for read-only data, but it’s not really that difficult anyway. It would be more or less like:

#ifndef _WIN32
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <limits.h>
#include <pwd.h>
#include <fcntl.h>
#include <sys/stat.h>
#include <sys/types.h>

#ifndef _WIN32
char file[PATH_MAX];
char *home;
struct passwd *passwd;
if (!getuid() || !(home = getenv("HOME"))){
passwd = getpwuid (getuid());
if (!home){
fprintf(stderr, "$HOME is not defined.\n");
if (strlen(home) > PATH_MAX - sizeof("/.package/settings.ini")){
fprintf(stderr, "$HOME is excessively long.\n");
snprintf(file, sizeof(file), "%s/.package", home);
mkdir(file, S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH) == 0;
strncat(file, "/settings.ini", sizeof(file)-1);
char file[21];
snprintf(file, sizeof(file), "./Data/settings.ini");
FILE *f = fopen(file, "w");

Sometimes you also need that the files are already created, you can check if they already exist with stat(), and then acting accordingly, either creating them from your C code, or maybe triggering a system() shell call whith whatever is needed.

struct stat stat_buf;
stat(file, &stat_buf);
if (stat(file, &stat_buf) == -1){
int settings_fd = creat(file, O_WRONLY);

NOTE: I’ve updated the code to add some suggestions. Thanks to Gonéri Le Bouder and Nico Golde.

{September 13, 2007}   Enredada 7007

La VIII edición de esta LAN Party que se celebra en la capital burgalesa. Más información aquí.

{September 12, 2007}   Tal vez la gente sea más sensible de lo que quiere admitir

Hoy me he encontrado los resultados de una estadística que me han sorprendido, gratamente, he de decirlo. De 2000 personas analizadas, el 63% confesaron que necesitaban abrazarse a alguien para poder dormir. Lo más curioso de los resultados es que el 20% de los hombres confesaron dormir abrazados a un compañero de peluche, frente a un 15% de las mujeres. El 8% de las mujeres admitieron perfumar la almohada o su ropa de dormir con el aftershave de su pareja, mientras que un 3% de los hombres dice hacer lo mismo con el perfume de su compañera.

{September 09, 2007}   Warsow: The problem of having non-licensed data

I sadly read that Warsow are having internal problems. It’s a pity, because it’s a great free game (even with its non-free game data), and they deserve the best. In any case, I just wanted to talk about this because of something that’s quite usual in the development of free games: having non-licensed data.

According to tigerchas’ note: “The non-licensed state of warsow media is what has allowed this to happen – and the team is now working on rectifying this. This whole episode has been very unsatisfying and has highlighted the problems of not having a global media license for warsow”.

I’m not worried about the future of the game at all, it’s not that the reason I’m writing this entry. As they also say in the same post: “Don’t let this announcement affect you too much, warsownians. warsow has hit minor stumbling blocks in the past and this is simply another. Maps can come and go. Rest assured that the current mapping team will be working on other great maps for you to enjoy”.

What I wanted to point out with all this, especially to games developers and teams, is that even when licenses are boring stuff and many of you might think that you can safely ignore them and it won’t affect you, especially when you start the development, reality shows that these things happen.

I wish all the best for the Warsow team anyway, and to go soon over this. Keep up the good work! :)

{September 06, 2007}   More abstract shooters (or shmups)

Following the path created by Kenta Cho, many other game developers, most of them Japanese, are doing really interesting and cute games. This time is HIZ the one selected. Even though his games don’t have the high speed feeling from Kenta’s, they definitely are interesting to play and really lovely visually:

As usual, I’ve developed packages for those games for Debian SID, but in this case they’ll probably take some time to get into Debian because it’s not totally clear that the music is DFSG-free, even though they’re gratis/free (as in beer) and they’re redistributable. Lets see how we solve that, if there’s no other way, we might need to replace those songs, we’ll see. They are coded in D language too, BTW.

{September 06, 2007}   La misoginia salvaje de Arturo Pérez-Reverte

Me uno a Marisa Soleto en sus quejas sobre la carta publicada por ese señor, en la que deja entrever de una forma muy clarita lo que piensa de las mujeres, y cual es su sitio en la sociedad. No merece la pena que me explaye mucho con comentarios, basta con leerla para, teniendo un mínimo de sensibilidad, que te entren ganas de vomitar.

{September 04, 2007}   Kenta Cho games, as promised

Peter De Wachter and I have been packaging most of Kenta Cho’s games in the latest weeks. As it might take a while for them to reach Debian repositories, mostly because they’ll have to wait for libbulletml to go through NEW queue, and afterwards they’ll have to go through the NEW queue themselves, I thought it might make sense to have them available online. Some of them will need libbulletml, you might as well download it too if you’re interested.

So far, the following games are available:

I hope to finish Val & Rick soon too. We probably won’t package Suzuri and Masashikun Hi!, as they’d probably be quite difficult to port to Linux. Noiz2sa is already packaged in Debian (well, so is rRootage, but I will upload the newer version soon, I just don’t want to harass my sponsors too much, so please be patient).

The games can be temporarily downloaded here, and libbulletml here. libbulletml has been coded in C++ by shinichiro.h, while BulletML design is Kenta Cho’s. You also have packages available for 360 degree barrages (bulletss) and White barrage (sdmkun) by shinichiro.h. The former is a small demo for libbulletml, while the latter lets you see and experiment the power of the language.


This is a personal webpage that belongs to Miriam Ruiz.
If you want to contact her, you can do at:

September 2007
« Aug   Oct »

La Lista de Sinde