Free (as in speech) Windows

Ok, I’m probably coming with the latest, in the sense that it got to me with the greatest delay, news here but:

Holy smokes!! They’re re-implementing Windows!

My first reaction was “yuck!”, but if you think GNU/Linux is a reimplementation of the proprietary Unix OS, it doesn’t sound too absurd in the end.

Well, maybe except for that big “WHY?!”. I mean, wasn’t Unix cloned only because there wasn’t any other free OS around at the time? Hm.. well, that would extend the “WHY?!” to other free OSs that came after Linux, so… Ok, I’m still having a hard time coping with this idea of pulverizing the limited resources we have into many little different projects not being a spread-out-and-die (divide-and-conquer without a conqueror?) stragegy, but I’m sure there must be legitimate reasons (maximize patent infrigement?).

Posted in Uncategorized. Tags: , , , , , , . 2 Comments »

Global or local?

Lately I’ve been thinking ’bout wether I should write in Portuguese or in English. I mean, my “tech contacts” right now are all either abroad (with English as the only common language) or right in my backyard.

The latter group I go to college with and we talk and I tell them about stuff over a beer anytime. So there’s no need to write in Portuguese for them.

The few people I talk to ever since I’ve started out on this “let’s start coding for real” thing are the ones who in fact need me to write in English and since they’re the only audience this blog has I’m set, right? Just gotta write in English.

But then I ask myself if I shouldn’t start, along with trying to be more prolific in coding, also start being more verbose about code and about community issues and stuff, as a way to motivate more people to do the same.

Caio recently told me that he is resurrecting his blog so that he “would have to post something every once in a while and that’d push him into actually doing something he could then write about.”

And I think that does not only serve to motivate himself but to motivate others as well. At least for me, watching people do cool stuff makes me wanna do cool stuff. And the more contact I get with what people are doing the better. That’s why I want so much the idea of our little geek talks adventure to go on and on and to frutify into bunches of little free software hackers.

But that brings me back to the initial point. The hacker scene here in Brazil is still small and we need to get more people to “code for real” and build the kind of critical mass to establish a hacker ecosystem with high throughput and cooperation and exchange. I can’t even call myself part of that “scene” yet, but that’s where I wanna be and, when I’m there, I wanna see more people by my side.

I feel a bit disconnected with the people in here since I read mostly about what’s going on out there (which is where the heat is, unfortunately) , but I’ve watched the efforts of at least one guy who’s trying to motivate people in Brazil into building a tight community of hackers — more specifically, in the context of Ruby and Rails. He writes in Portuguese to be accessible, and interviews important people from out there and publishes the interviews in Portuguese and all. I feel like I have to take a part in that too.

What do you think?

Around the clock

The first aspect of the Free Software culture I immediately got into contact with was the timezone mess. As soon as I got accepted it was very clear what had to be done: “i need to meet up with my mentors”.

I’m in Campinas, ~100km from São Paulo, Brazil, so UTC-3:00. Angrez is in Bangalore, India, UTC+5:30. Aaron is in Seattle, USA, UTC-8:00. When Angrez gets to work early in the morning it’s past midnight for me and it catches Aaron right after a full day’s work. And still it’s the best time for us to meet online.

It’s a bit difficult then to say things like “so should we meet at five?” without having to do some annoying math in your head (I find the simplest math to be the toughest). Good thing that in these cases good-ol’ Google Calendar comes in to the rescue! I’ve set up a shared calendar where I enter the meeting times and everyone sees it conveniently in their own timezone. The simple stuff. :-)

This asynchronous nature of things sheds some light on why the free software communities make the most use (and the most development) of communication and collaboration tools based mainly in text: source code control (I’ve heard that deep conversations go on in SVN commit messages), issue tracking, mailing lists, IRC, IMs, blogs, etc.

At my current work, nobody in my team (including myself) has any experience with projects different from single-programmer course assignments, thesis-related mockup programs and the like. And we work on a big project. And although we have available to us lots of those communication/collaboration tools (the whole IBM proprietary suite), we only make very basic use of reserved checkout/checkin features (we’re dead scared of merges!), we do releases by copying code, we check out thirty files, do lots of different things and commit at the end of the day. Heck, we don’t even comment commits.

For now that’s one very immediate benefit I’ve taken from starting to get my feet wet on the free software world. I’ve become quite interested in these version control, issue tracking things and now I’m studying the documentation for that bloody suite, searching around for tips on best practices (stupid stuff like comment the freaking commit – better yet with a single short descriptive line followed by meatier description -, only commit consistent states to the trunk – we don’t actually use branches yet, I’m just practicing the lingo-, one feature per commit, etc.) and, of course, I’ve been nagging the hell out of my colleagues =)

Summer of Code All-nighters

After about a week of digging up stuff on Free Software projects, subscribing to a dozen mailing lists, emailing developers, reading documentation, waiting for feedback, thinking up proposals, twisting and changing them, confronting them wih my own limitations and interests, I finally gave birth to two applications for the Google Summer of Code, one for Ruby Central and the other for Eclipse. Below are the abstracts:

The Ruby Central application:

This project aims at allowing users to record normal usage on a website and then have a script generated that can reproduce such actions.

This script is generated in Ruby and can be changed and mixed with existing Ruby code to extend its behaviour, using regular Ruby variables, loop constructs, etc.

A parser is going to be built for Firefox logs of user-activity (extracted by existing free software extensions) with the ability to generate code for the browser-driving tool FireWatir.

The Eclipse application:

Ruby has a fast-growing community which has not yet settled for one particular
editor/IDE and still has ongoing debates on that topic. It has not found a home
yet.

The ability to change one’s surroundings and make it more confortable for daily
usage by implementing helpers appropriate to one’s specific needs is crucial in
having this feeling of acquaintance and familiarity with a tool.

Unfortunately, the barrier of entry into Eclipse plug-in development for Ruby
users is still pretty high, as few are as skilled in Java as they are in Ruby.

This project aims to bridge that gap by allowing Eclipse plug-ins (or a subset
of the possible ones) to be develop entirely in Ruby.

This last one was written on a rush and with almost no previous research so it’s not very well-finished. I’m open to any ideas and suggestions on either one.