Older blog entries for pjcabrera (starting at number 11)

A month on the lam...

A little over a month has gone by since my last post. I got swamped with work from my job, and barely had any free time for hacking. Things have been back to normal for a week now.

Here's the summary:

Free Software in Puerto Rico Government

During this last month, the March 12-13 conference promoting broader free software use in the Government of Puerto Rico, was scaled way down in scope, because of lack of financial support. Now that this has passed into history, I am starting to plan a 'real' conference for some undetermined time in the future.

But first, I am exploring commercial sponsorship possibilities from the green-lizard and rouge-thing-on-the-head free-software companies, as well as the two-lettered computer hardware company and the three-lettered computer hardware company.

Mono and Gnome Hacking

I cleaned up some documentation in The Mono Handbook and began adding content to the introductions of the various ECMA standard .NET namespaces.

I am having a blast rewriting Same Gnome in Gtk# and Glade2. I didn't know Gnome2 programming could be so easy! :-) I am documenting my effort, to be included in The Mono Handbook as a case study of Gnome programming in Mono.

After I'm finished with Same Gnome, I'm converting GnomeCalc. :-p

Hacking the Linux kernel

My only solace during this last busy month was reading Understanding the Linux Kernel, Second Edition, during my lunch break and before bedtime. I also located a copy in good condition of Linux Core Kernel Commentary (aka LCKC) with the CD-ROM, which is now out of print. Finding this last book in good condition was a waste of time, because after only a week of use, the spine broke and the pages started coming unbound, which seems to be the fate of all LCKCs in existance. :-/

Good hardware is so cheap these days, I went and built a new spare PC, installed Debian GNU/Linux on it, plus the source of the last three releases of the 2.4 series kernel, some of Con Kolivas' patches and his contest benchmark. I grabbed the last three releases from the 2.5 series kernel as well, to keep track of the latest development. I also have installed LXR cross-references to all this source on my XBox Apache server.

Since I don't have the time to read the lkml every day, KernelTrap and Kernel Traffic will be my new found friends.

It seems in my overenthusiasm, I misunderstood my invitation to the free software in government conference. I was asked to 'participate', and I assumed that meant that I was asked to speak. More details later.

Talk loud, and carry a big stick ...

I have been promoting free software a lot in and outside of work in the past two years, and it has apparently attracted the attention of someone at the Office of Management and Budget Planning of the Government of Puerto Rico, the country where I live.

I've been asked to speak at a small conference discussing the greater use of free software in the local goverment. In typical fashion, I have only a month to prepare. I received the invitation yesterday, and the conference is scheduled for March 12 - 13.

I have never given a talk about free software to a group bigger than 6 to 8 people, and even then, I was preaching to a mostly devout choir, so to speak. The idea of standing in front of government paper pushers and showing them how free software is good for their budgets is scary (hence the title of this entry.) But the argument is an easy one to make, so I am not worried especifically about what I will say. I am worried about my delivery and effectiveness when speaking to a group so unlike myself.

With only a month to prepare, it's going to be difficult for me to drum up support from important companies in free software. I do not mean direct financial support to myself or to the conference, but support as in them bringing demo units showcasing their software, especially its Windows and Office compatibility.

Perhaps this conference should only be seen as a stepping stone, and I shouldn't worry so much about making a big impact so early in the game. After all, it seems the conference planners are mostly convinced about the financial benefits of free software, and only want to bring this information to the attention of their colleages.

I am meeting with the conference planners this week and next week as well. Perhaps we can start planning a bigger, better island-wide conference in the summer or fall. We'll see what develops.

For the next week or two, I will probably scour the web for summaries or transcriptions of similar talks and conference proceedings in the last year, to aid me in preparing my presentation. In typical free software enthusiast fashion, I plan to reuse other people's work and strengthen the stew with my own views.

If anybody has any pointers, suggestions, comments, feel free to write. You can contact me @

'echo qkdbcsfsb@qpcpy.dpn | tr b-z a-z'

PS - The tentative name of the conference is "Destiny : Linux" but I personally do not think Linux is the answer to everything, and other free operating systems should be discussed and presented as well. And the emphasis on Linux takes emphasis away from the more important point of software freedom. (Heh, maybe I shouldn't worry about getting Stallman to attend, as I see I have his gig covered. ROFL.)
Comment for jdybnis


Could it be the glibc maintainer went on a month's vacation to the Amazon, where he could get away from pestering patch authors? :-) Seriously though, it is likely your patch was lost in the maintainer's daily email shuffle. I am willing to bet the glibc mailing list is not a quiet one. And you're not the only one sending in patches or requests directly to the maintainer. And then there's spam ...

But sometimes patches get ignored, be it because the maintainer was too busy to look at it (see above), or it just didn't excite them enough to be worth the effort of merging it in.

So your patch didn't get accepted on your first try. Putting it up on some random webpage and then forgetting about it just shows the maintainer was right to ignore your patch! Your patch must have been just a quick hack, probably not a lot of effort, for you to just throw it away like that. Who wants that kind of coder as a contributor? I certainly do not!

So if at first you don't succeed ... keep trying. If you care about your patch, and if you believe it is important, keep up with the glibc codebase, and keep resending your patch. Sometimes patches get accepted because the author shows good skills and persistance. Most of the time they are accepted because the author shows good skills, persistance, and good grace.

If you believe you did good work, and that your patch is useful, here is what I recommend you do:

Maintain your patch in sync with the codebase, and kindly (and without a lot of fuss) resend your synced patch to the maintainer every week for four weeks. If after four tries you still do not get a response, post your patch on the development mailing list and ask (kindly) why your patch is being ignored.

Either you will be told flat out what is wrong with it, or it will get accepted. You will learn something either way...

Hacking Gates, Da Man

I suddenly decided some weekends ago that I needed a new file server, immediately. I didn't want to wait for another pay period to buy it, so it had to be really cheap. I would be the only one using it, so it didn't have to be blindingly fast or powerful. But it had to be adequate for NFS and SAMBA file sharing, and for learning Apache, MySQL, and PHP.

So I bought a used XBox, put in a solderless modchip, bought an 80 GB IDE hard disk, and installed Debian GNU/Linux 3.0 r0 with a modified 2.4.20 kernel on "Da Beast." I did not install X or sound drivers on it, and I've configured it to run headless; if / when I need to, I log in through SSH.

Cost of 733 MHz Pentium III, 64 MB RAM, 80 GB HD Linux file server? $308 US

Rise, Phoenix, from your ashes ...

Now that I have plenty of extra storage space on NFS, I can hack again on my old and long-neglected Sega Dreamcast and Broadband Adapter. :-)

I have a Sega Dreamcast with Broadband Adapter, which I bought in February 2001, to hack around with game programming on KOS. It was not getting a lot of play time lately, so I looked into other uses for it. Wonderfully, there are Dreamcast ports of eCos and RedBoot, Linux (here and here), and NetBSD. There are also two homebrew operating systems for Dreamcast: NewOS and KOS, which I already mentioned. NetBSD/Dreamcast and KOS are the most active at the moment.

I burned a CD-R with RedBoot, with which I interact through the Dreamcast's serial port. From RedBoot, I can load eCos, Linux, or NetBSD from NFS. I configured these to run without X and sound drivers. Once loaded, I interact with the OS through the serial port or through SSH.

Note: RedBoot, eCos, Linux, and NetBSD on Dreamcast can be configured to use the TV or VGA adapter output and a Dreamcast keyboard for the console, but I am not interested in that.

My Dreamcast is to be used in learning operating systems programming. Before, when I only had one computer available for hacking, I took things easy because I didn't want to cripple my one and only system. After all, I have other things I want to hack on besides operating systems.

With the Dreamcast, I can experiment and break things all over the place and not worry one bit. I am keeping two copies of each operating system's root filesystem on NFS (that's why the XBox NFS server has an 80 GB hard disk, although it is still overkill). If I break something, I can just reboot from the stable copy, figure out what I did wrong and fix it.

Mono Documentation

In order to continue to contribute to the Mono documentation effort, I am writing a few Gtk# mini-applications, and I am documenting the process through which I am constructing them. This documentation will appear as case studies in the GNOME.NET section of the Mono manual.

One of the mini-applications is, surprise, surprise, a Gtk# rewrite of GNOME Calculator. :-) The version of the code which will be used for Mono's documentation will not use GNOME Calculator's fixed precision math engine. But I will eventually break out GNOME Calculator's math engine into a shared library, and interface with it from the Gtk# GUI with P/Invoke.

Learning Apache, MySQL, and PHP

I bought two O'Reilly PHP books, Programming PHP and Web Database Applications with PHP and MySQL. I devoured these really fast and started to modify the code samples, scripting little test pages to my heart's content. PHP has been the easiest and most fun web server scripting language I've ever worked with. I can definitely see why there are so many PHP-based sites out there.

The purpose of this detour into PHP is two-fold: my free software projects are going to need a homepage of their own if they're going to contribute to free software world domination. I am learning PHP so I can maintain these homepages. The other purpose in learning PHP is that I am helping out a few free software organizations with the upkeep of their web sites, and some of them use PHP extensively.

Quick comment for Dougiamas

In your article, you say the software is being "sold pre-installed on a web host." This description is a little vague. The correct answer to your plea for help and comments depends on the correct interpretation of how your software is being used.

1. Is the offending software used by customers of a shared or dedicated hosting provider? In that case, there is nothing you can do. This particular use falls under the "internal use" clause. As long as the binaries of the Moodle-based software are not being distributed, they are allowed to modify and host sites with this modified base all they want.

The GPL only covers distribution of source and binaries; it says absolutely nothing about the third-party use of modified code.

2. Is the offending software bundled with hardware? In that case, they are not required to provide "the original software and patches". What they are required to provide is the source for their modified version. If they are not doing so, then they are in breach of the GPL. I encourage you to contact them and inform them of their breach, and see where it leads. If they don't comply, there are many groups willing to help at least educate you about your legal options (they may not be able to help you mount a legal response, though, because of financial concerns).

Quick comment for all of us

I take this opportunity also to call for broader financial support from our community to the FSF, Linux International, EFF, and other similar organizations. Maybe I am preaching to the choir, but it may be worth repeating.

Many of us are working on free software on our free time, and do not have the financial resources necessary to defend our freedoms and property. These organizations are willing to help, because in the long run it helps defend their freedoms and property too. But these organizations need our financial support to even be able to operate their offices in any recognizable manner. Soon, maybe sooner than we think, one of them may not be able to operate continuosly any longer, to say nothing of coming to our defense.

If we all chip in just a little bit, we can accomplish the same as one single person giving a lot.

Over and out,
New Radio Free Oz :-D

Gasp!

It's four days past the two-week self-imposed deadline for my latest diary entry! Do I even remember what I've been doing? Argh! :-)

Mono documentation

Spent some free time writing the Learning C# chapter for Mono's documentation, MonkeyGuide. The chapter is still in the early stages, but the first few sections are pretty much finished (unless someone thinks they need corrections or need more content). There are still two large portions missing (Object oriented programming in C# and Introduction to the System namespace).

Go see the latest draft, or visit the official "released version".

If / when I get CVS write access to the Mono documentation tree, I won't need to keep an off-site version anymore (except to request comments on any uncommitted work-in-progress, I guess).

Feel free to visit the latest draft often, and send in any comments or suggestions, or submit your own tutorial text or code samples!

Gtk+, Gtk#, and GNOME hacking

I continue playing around with the code for GNOME Calculator in the hope of learning something useful. :-)

I honestly think GNOME Calculator needs some sort of improvement. It needs a face lift, at least. When compared to all the new GNOME development going on, it just looks so old and bland and pathetic. (It would be a great starter project for me, seeing that I have no original ideas. :-)

Should I say anything first to the GNOME developers mailing list, or should I just go ahead, implement something and then mention it when its ready for first release? It's my first project, and I have no idea what the correct protocol is.

But then again, this is GNOME Calc. It's not like I'll be stepping on hundreds of active developers' toes if I don't mention what I'm up to. :-p

Dinner and a movie

On Saturday January 4th, I went to see The Two Towers with a few friends. I want to marry Eowyn and live happily in the Gap of Rohan, and kill some Yrrch (yes, I also want to be a Lothlorien elf; so sue me).

After the movie, we went to Hard Rock Cafe in San Juan, Puerto Rico (that's the city where I work; I live 45 minutes west in the small city of Vega Baja). Hard Rock Cafe is located near the cruise ship docks in the old part of San Juan. Anyhow, the service was awesome, especially for a Saturday night. And the waitress had an awesome body and a really cute face! :-D

If any of you ever visit Puerto Rico, send me an email, and I'll see about how we can meet up. I like meeting new people.
21 Dec 2002 (updated 21 Dec 2002 at 21:25 UTC) »

Well, it seems only robocoder caught on to the joke in my diary entry last Thursday. Thanks, robo, for the comment. It was meant to be funny.

It goes like this: I was talking to someone on #kernelnewbies. The poor guy was suffering from analysis paralysis, what with so many guides and how-tos out there. And he was taking a survey to determine which guide was most recommended so he could read that one (which I think is such a waste of time; just pick one and read it, and if it doesn't help, pick out another one). He asked me which kernel guide I recommended reading just for starters. I mentioned Val's "LinuxChix Kernel Hacking Lessons".

He answered with "but that's for girls!" I thought his response was very funny, so I wrote a parody of it for my diary.

Mono documentation

I've started writing a chapter on System.Windows.Forms for the Mono documentation project. With the upcoming holiday and things going so slow at work for the next two weeks, I should be able to post it for review by next Friday, if not sooner.

More GTK+ and GNOME hacking

I am also writing lots of little GTK+, GTKMM, and GTK# test programs, to continue my learning. And I've made progress unraveling GNOME calculator. I'm thinking of revamping the GUI, for my own enlightenment at least. I just think it looks so bland compared to all the newer GNOME software out there. It clearly hasn't been touched since GNOME 1.0.

Wow, how time flies!

In the two weeks since my last entry, I've been having lots of fun on my copious free time, reading up on X, GTK+, GTKMM, GTK#, and GNOME component-based programming. I've written a few example programs in each of these libraries, getting a feel for how native UNIX GUI software is written.

From my 5+ years of Java experience and the smattering of Delphi and C++ Builder I did in 1997, GTK+ and its Object Oriented ilk are nothing new; only the toolkit and API is different. The overall concept is identical. So it's not going to be difficult to learn GNOME programming. It's just going to take practice and time to learn all the GNOME specific gotchas and tricks.

Halting steps

I tried looking over the code of GNOME-calculator (I thought it would be easiest), and quickly got lost. So I still have a ways to go before I can start contributing substantially to the body of free software. But I'm getting there.

I built GNOME 2.1.3 using GARNOME, to help submit bug reports towards GNOME 2.2. I know that when something fails to build, it's a GARNOME bug. But when something fails to run or crashes because it couldn't find some configuration something or other, how do I know it's a GARNOME bug or a GNOME bug?

Maybe this knowledge too will come with more experience. In the meantime I will be discussing what I find on the GARNOME mailing list, to get the help I need to file the report in the right place.

Biting more than I can chew?

In a gutsy move, I've volunteered to help write documentation for Mono (and by proxy, for GTK#). Like I said above, GTK+ programming really isn't all that difficult. It is only different from what I already know, and that never ever killed anyone.

Cross dressing, or "How I nearly lost my virginity at a clam dig and loved it"

Many, many weeks before I started this diary, I began reading Linux kernel hacking guides. And by far, the most accessible guide and resource has been the "LinuxChix Kernel Hacking Lessons", written by Val Henson. Val and gals' kernel hacking guide is complemented by a mailing list, the cleverly named "grrls-only" mailing list.

This mailing list presented me with a conundrum: it is only meant for women, and to join I would have to write a statement of some sort certifying that I am female. Yet this grrls-only mailing list could well be a very valuable resource I could use to learn about kernel hacking. What's a guy to do?

I am obsessed with ways I could fake my way into that mailing list. For almost a month, I've been listening to Celine Dion, Barbra Streisand and Bette Midler at work, and watch chick flicks like "Driving Miss Daisy" and "Thelma and Louise", "Notting Hill", "Three Weddings and a Funeral", "Pride and Prejudice" (Hugh Grant is just so cute) on DVD nearly every night. I hold my tea cup just so, and sigh deeply as I read old tattered copies of Ann River Siddon's novels at lunch.

But I'm afraid that when push comes to shove and I sit to write that message showing I'm female, something would slip by and I'd say something utterly masculine.

I imagine Val teaching kernel secrets to her tribe of amazons, secrets only known to her because of the keener insight of the gentler sex. Perhaps they all have their own cleverly tuned scheduler, much more clever and efficient than Ingo's O(1). Perhaps their virtual memory runs rings around FreeBSD. And alas, maybe they have crafted their own working version of Hurd. God, how I want to be in the grrls-only list!

If I ever make the attempt and get in, I probably will not have the guts to pipe up and ask any questions or reply to any posts. I will probably lurk for years, absorbing all of Val's arcane arts. And when anybody asks me anything, I'll just giggle and hold my index finger to my cheek. But I'm scared I'll freak and type the wrong emoticon.

Maybe this tribe of amazon hackers is really benign and I have nothing to be afraid of if I'm caught, and I come out of this experience without losing body parts. On the other hand, I worry about something else: for like three weeks now, I wake up every morning humming show tunes. :p

Apparently my email volunteering to help write Mono documentation got lost when my CVS copy of Evolution crashed. It's not in the sent or outgoing bin. It's not in drafts, and it's been hours since I "sent" it and it's not in the mono-docs-list mailing list. Oh well, I'll rewrite and send tomorrow. I gotta go to bed!

20 Dec 2002 (updated 20 Dec 2002 at 07:33 UTC) »

(this entry left blank on purpose because of something clever I'm doing)

2 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!