Recent blog entries for mones

Happy gitnniversary!

A whole year has passed since my post about moving Claws Mail development to Git!

Looking from the distance it resulted more easy than expected, or maybe it's just that I only remember the good moments :-) and forgot about the not so good ones.

The only drawback is that I know of at least one core developer which has been excluded from development because of this move. I also know git is probably not the only reason, but anyway, this makes the sweetness of migration a bit bitter, even a year later.

BTW, his music is really good, so even if I miss him as developer I also want him to keep playing!

Syndicated 2014-03-22 15:21:49 from Ricardo Mones

Fixing partridge eggs with industrial duct tape

Human nature is hard to change. Very hard. We can talk about it for ages, but mistakes repeat again and again. In the end it's mostly by mistakes how we learn, so I doubt this could ever be changed without losing our own nature. One of these is trying to fix some social issue with a technical measure. Unfortunately, given the technical orientation of most of the developers, this appears from time in our Debian private mailing list, and yesterday I realized it's our own version of Godwin's law:

“As a social problem discussion grows longer in debian-private the probability of some developer proposing a technical solution aproaches one.”

Not discussing about this problems in debian-private would be a good start, but of course that would only change the name of the list in the above sentence ;-).

Syndicated 2014-02-05 07:53:34 from Ricardo Mones

Shared memory crazyness

The output of some commands explains it all.

These are the default values in a Wheezy system:

$ ipcs -l

------ Shared Memory Limits --------
max number of segments = 4096
max seg size (kbytes) = 32768
max total shared memory (kbytes) = 8388608
min seg size (bytes) = 1

That's not enough for all the data I want to load in a single segment, so let's start with 1Gb of shared memory:

# sysctl kernel.shmmax=1073741824 kernel.shmall=1073741824
kernel.shmmax = 1073741824
kernel.shmall = 1073741824

So now, both should be equal, isn't it?

$ ipcs -l

------ Shared Memory Limits --------
max number of segments = 4096
max seg size (kbytes) = 1048576
max total shared memory (kbytes) = 4294967296
min seg size (bytes) = 1


A free $BEVERAGE when we met for the one which tells me what's happening here ;-)

Syndicated 2013-11-26 10:25:15 from Ricardo Mones

The Debian Project... reading my mind!

I didn't tell anybody, but a couple of months ago, when I finally had time at work to upgrade my work computer desktop from Squeeze to Wheezy I also switched from GNOME to XFCE. Now I read via LWN that Debian is doing the same, at least for a while :)

BTW, I knew newer GNOME was different (had seen it in Fedora 18 for example), anyway I installed it (because I was lazy enough just to apt-get dist-upgrade the box) and tried it.

Maybe it's me, becoming an old dog which doesn't want to learn new tricks, but in order to get my work done as fast as usually I had to install something usable, hence went back to XFCE. I had to manually convert GNOME panel launchers to XFCE launchers but, besides that and some missing applet I'm pretty happy with the switch.

Syndicated 2013-11-09 16:46:40 from Ricardo Mones

Forced to 3.11

No, not to this 3.11, but to Linux kernel 3.11.

I was aware of the #718533 bug, which happens when you have a software RAID with anything higher than 3.2.0 (mine is RAID 1 with 2 disks). At least that has been my case since I tried to upgrade, hence I was delaying upgrades again and again.

Unfortunately today things went worse when I tried to plug my USB 3.0 device on the system:

Oct 20 17:52:51 busgosu kernel: [20799.672127] xhci_hcd 0000:02:00.0: Timeout while waiting for address device command
Oct 20 17:52:51 busgosu kernel: [20799.876136] xhci_hcd 0000:02:00.0: ERROR no room on ep ring
Oct 20 17:52:51 busgosu kernel: [20799.876148] xhci_hcd 0000:02:00.0: ERR: No room for command on command ring
Oct 20 17:52:51 busgosu kernel: [20800.080148] usb 2-2: device not accepting address 2, error -12
Oct 20 17:52:51 busgosu kernel: [20800.080202] xhci_hcd 0000:02:00.0: ERROR no room on ep ring
Oct 20 17:52:51 busgosu kernel: [20800.080209] xhci_hcd 0000:02:00.0: ERR: No room for command on command ring
Oct 20 17:52:51 busgosu kernel: [20800.080221] xhci_hcd 0000:02:00.0: ERROR no room on ep ring
Oct 20 17:52:51 busgosu kernel: [20800.080227] xhci_hcd 0000:02:00.0: ERR: No room for command on command ring
Oct 20 17:52:51 busgosu kernel: [20800.080235] hub 2-0:1.0: couldn't allocate port 2 usb_device
Oct 20 17:52:53 busgosu kernel: [20801.568169] xhci_hcd 0000:02:00.0: ERROR no room on ep ring
Oct 20 17:52:53 busgosu kernel: [20801.568181] xhci_hcd 0000:02:00.0: ERR: No room for command on command ring
Oct 20 17:52:53 busgosu kernel: [20801.568190] hub 2-0:1.0: couldn't allocate port 2 usb_device

And of course the device didn't show up. As there's not much relevant stuff about this issue on the googlesphere, thought it may have been solved. And turned out that I was right: upgrading fixes this, and now the device works again.

But, hit by the above bug now I have to add a rootdelay=1 to my kernel boot parameters (started testing with 5 but finally seems one second is enough). Fortunately the Ubuntu folks have detailed how to do it ;-)

Syndicated 2013-10-20 17:36:19 from Ricardo Mones

Moving Claws Mail from CVS to Git

After a long week which started past Friday it's done and official: the Claws Mail project has moved from using the ancient CVS to Git.

Most of the unavoidable problems which happen when such transitions are made are solved now, so we can probably concentrate ourselves on some bug killing before making a new shiny release.

I've still had no time to migrate the Debian packages autobuilder from using old CVS to the new Git, so if you're using it, be patient, will be working again soon ;-).

Syndicated 2013-03-22 00:25:21 from Ricardo Mones


Yeah, it's that time of the year when I add one... but in hex looks like I'm younger ;-)

The little Colás is luckier than me, and still cannot count a whole year, but he keeps growing like a crazy, so not much time left for counting only months!

Syndicated 2012-12-26 02:15:36 from Ricardo Mones


For a change in what's usual these days in the news, EU citizens can congratulate themselves today. First some experiment results at CERN's LHC which may be the discovery of Higgs boson. And second the temporary defeating of ACTA.

Which of two will change our lives more remains to be seen.

Syndicated 2012-07-04 23:18:51 from Ricardo Mones

2279 hours

Seems it was yesterday, but 3 months have passed since last post! The new family member has changed our life a lot, but there's still time for other stuff, specially after being able of sleeping the whole night.

Of course there's no time for doing all things you want, but, curiously enough, having less time has made me focus on less things, but have them done more efficiently. Or so I think ;-)

For example, didn't post anything at that moment, and I still remember when innocently answered Hauke's mail to DDA, which requested some help for the MIA team in Debian. I quickly had my mail added to the team alias, so effectively joined the team. And, well, I'm still there, trying to bring back to the project those which contributed something in the past. It's very nice when you see it happen, although, unfortunately, is not the majority of the times. It's even nicer I had not became MIA in the meantime!

Syndicated 2012-04-22 20:16:36 from Ricardo Mones


FORK(2)                    Linux Programmer's Manual                   FORK(2)

       fork - create a child process

       #include <unistd.h>

       pid_t fork(void);

       fork()  creates  a  new  process  by joining  the calling processes. The
       new process, referred to as the child, is an  exact  duplicate  of   the
       calling  process,  referred  to  as the parent, except for the following

       *  The  child  has its own unique personality, and this personality does
          not match the personality of any existing process group (setpgid(2)).

       *  The child's parent name is the same as the parent's name.

       *  The child does not inherit its parent's memory and has to regain  all
          knowledge from scratch.

       *  Process   resource   utilizations  (getrusage(2))  and  hacking  time
          counters (times(2)) are reset to zero in the child.

       *  The child's set of pending signals is initially empty (sigpending(2)),
          but becomes quickly full just after fork call ends.

       *  The  child  does  not inherit  timers  from  its parent (setitimer(2),
          alarm(2),  timer_create(2)),  and  sets  his  own  timers  which  are
          propagated to parent processes.

       *  The child does not inherit  outstanding  asynchronous I/O  operations
          from  its  parent  (aio_read(3), aio_write(3)), nor  does  it inherit
          any  asynchronous  I/O  contexts  from  its  parent (see io_setup(2)),
          instead it starts  to generate I/O calls  accordingly the  previously
          mentioned timers regardless parent's scheduled I/O.

       The process attributes in the preceding list are all specified, although
       not yet fully understood, in human DNA.

       On  success,  the  love  value of the child  process  is returned in the
       parent, and even more love is returned in the child.

       Resources  and  hacking time counters are  also  reset to zero on parent
       process, but levels can come back to normal values some months after the
       fork call succeeded.

       clone(2),  execve(2), setrlimit(2), unshare(2), vfork(2), wait(2), dae‐
       mon(3), capabilities(7), credentials(7)

Syndicated 2012-01-22 19:41:07 from Ricardo Mones

79 older entries...

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!