Older blog entries for prla (starting at number 95)

Subversion Basics

Earlier today I’ve taken some time to write a short introductory text on basic usage of Subversion (SVN). It’s not meant to be advanced by any means, just a quick overview of the basic set of commands that enables you to use SVN just fine for developing small-to-medium sized projects. For example, it does not make use of the branching features.

Find this primer on the internal Subversion page.

Technorati Tags: subversion

#

Running Around Senseless

A day that didn’t turn out quite as expected but left me gasping for air nonetheless. Finally catching up with the news in the evening and there’s actually a lot of jolly good stuff making the rounds. So, I’ll try to be short and sweet:

  • Following yesterday's post, Guido van Rossum has written in again telling us of his experiences now putting Django and Cheetah head to head.
  • With the GPLv3 tentatively scheduled to go final by 2007, we’re all in for a long discussion, flame war and other assorted mischief. After Linus spoke against it on behalf of the Linux kernel, Alan Cox takes the opposite seat in a recent interview. Basically it all boils down to the different perspectives in which they see the DRM issue. Honestly, I’m not sure on this one, so I’m not taking any sides. Not that it matters, right?
  • Someone has decided to use the Google Maps API to present the Web 2.0 Innovation Map basically geographically pinpointing dozens of recent Web 2.0 applications stateside. Looks neat, doesn’t it?
  • It took them a long time, but they’re finally realizing the shift into Web-based applications. There are now rumors that Microsoft Office Live is just around the corner. I’ll be looking forward to check this out, because I’ve always been of the opinion that the Office applications are the best in their field bar none.
  • A list of must-have software for the Mac. Looking at it, I regularly use Adium and… that’s it. Oh well. I should check out Quicksilver sooner rather than later, though.

Oh, and Tiago? We need this ;-)

#

31 Jan 2006 (updated 31 Jan 2006 at 10:42 UTC) »
Back to Work Mode

Half of my short vacations before getting into the next term are now gone. One week to go. Had the chance to catch up with some movies - I especially recommend The Woodsman for a great Kevin Bacon performance.

Other than that, one of the things I’m involved in is starting to get some traction again and will demand my full attention over the next few weeks. More on this as it develops.

As it is, the picks from my usual nightly web browsing are particularly geared towards the kinds of technology we’ll be using…

Finally, there’s a really interesting article in John Carroll’s blog about GPLv3 and the influence of Richard Stallman. I agree with most of his points and find the whole piece to be very insightful and clear-minded - something RMS himself seems to be having trouble at. Carroll debates key issues and I found this part especially funny. Quoting Stallman, when asked about how influential the community can be on the GPLv3 development:

No. I will still be making decisions. The committees are going to take all the comments and boil them down to issues. Then they will start addressing the issues and looking at the various options. They will also try and decide how to deal with these issues, but ultimately I will be making those decisions. And, of course, if the community has found a good solution, they make that job easy.

To which Carroll says:

In other words, your input is all very nice, thank you very much, but I am king and will decide what goes into the GPL, though it would be nice if you agreed with me. That’s democracy under a dictatorship.

Funny. But true. And ultimately one of the reasons that may well lead to the demise of free software as we know it.

And oddly enough, while others, like Linus Torvalds, are positioning themselves and their projects away from GPLv3, others feel like now is the time to get their feet wet. Of all times.

#

29 Jan 2006 (updated 29 Jan 2006 at 13:54 UTC) »
Quick Round-Up

Results of this morning’s news hunt:

  • Color Schemer is a very nice lightweight color picker, particularly geared towards web development. This would have come in handy last night, but, alas, I only found it this morning.
  • Computer generated images just keep getting better and better. These are just stunning. Jaw-dropping. Unbelievable. When will games look just like this?
  • After all the Windows-on-IntelMac hype cooled down a bit, there are the first rumours about the iBooks also getting to make the switch - complete with the mandatory black version gossip.
  • Parts 1 and 2 on the future of HTML, by developer Edd Dumbill.

And in the mean time, it seems it is snowing in every part of the country, except here. Damnit!

#

Trimming the TODO

You know when you do a lot of little things but somehow the total amount of work done is less than the sum of its parts? That pretty much tells you how my evening has been. However, it also means my short-term TODO list is now way shorter than it was a few hours ago.

For what it’s worth…

  • Upgraded to Firefox 1.5. I’ve been using Safari as my main browser ever since I bought my iBook, but a couple of days ago I’ve finally switched to Firefox - which had been my choice for a good while before I went Mac. Importing the Safari bookmarks was a breeze and the only thing that bothers me is how the shell-like shortcuts (namely Ctrl+A and Ctrl+E for beginning and end of line respectively plus Ctrl+K to nuke lines) somehow don’t work. This bites particularly hard when I’m writing in text forms, like this post right now. Oh, and no spell-checking. Any ideas on these, anyone?
  • Finally figured out how to have my customizations really stick across different sessions on Aquamacs. I just had to click ‘Save Options’… no comment. I blame the years using Emacs on Linux and all the complicated manual configurations, via .emacs and the like. I should just blame myself, though.
  • A long overdue filesystem cleanup took place. Despite being an obnoxious piece of junk, Finder didn’t get much in the way this time, and it took me only about twenty minutes to clean up all the accumulated cruft inside my home folder and below.
  • Fixed all the link color craziness around here, the colors now being uniform across the site. This was due to the CSS merge between Wordpress and DokuWiki, because of the markup plugin. Speaking about it, I should clean it up and make a new improved release with all the latest goodies we’ve been hacking into it recently.
  • Signed up for a Technorati profile. From now on, each post here will have a set of tags associated with it, as you can already see on the bottom of this one. I’ve automated the process in a way that for generating these tags, all I have to write is:

<technorati>
<tag>firefox</tag> <tag>safari</tag> ... <tag>technorati</tag>
</technorati> 

Humm, in hindsight, I guess I was busy afterall. No wonder, it’s 4:30 in the morning.

Last but not least, in the most warm-hearted spirit, I’d like to pay a little tribute to a buddy of mine who’s been the best possible companion for the last four years. Today he passed away but I refuse to feel sad, as he left nothing but fond memories and good times and because he himself was never sad, always full of joy to the very last of his days. The pet heaven has just become an even better place.

We’ll never forget you, matey!

**R.I.P. "Blue"**

#

29 Jan 2006 (updated 29 Jan 2006 at 04:35 UTC) »

Just a while ago, I bumped into this piece comparing a few popular programming languages - BASIC, C, Java and Python - in terms of how appropriate they are as a first language for teaching computer programming. It raises a few interesting points and I generally agree with its conclusions. I remember that it was back in my sophomore year at university that I also started believing Python would be the definitive and proverbial first programming language. Unfortunately, as Patrick Ariel states in this article, people tend to be sadly dismissive of interpreted languages stereotyped as mere scripting tools. I couldn’t disagree more.

In my time, it was Haskell, a cute functional language that I despised back then. As far as I could gather, it was meant to act as some sort of tabula rasa - 99% of the freshmen would only have a minor C/Pascal background, so getting hit right in the face with a language belonging to a completely different paradigm would have everyone starting from zero and scratching their heads. I know I did.

One thing I liked about this article is that despite being entirely unscientific, so to speak, it uses a very important metric: how many things and concepts a student has to know in order to write simple programs. I’m no seasoned programmer by any means, but I’ve been programming long enough to be genuinely surprised now at the insane amount of stuff you have to learn in order to write a simple program in C. I mean, understanding pointers just to get input from the user? For crying out loud, I never stopped to think about it, yet it’s true. Good golly, miss Molly.

And don’t even get me started on Java. I’ve written some code in it and I do appreciate its huge class library but I also do think it tries to simplify things a little too much, turning programming into something like getting the jigsaw puzzle pieces together. Not that I believe programming should be hard per se, but the most powerful concepts are certainly not expressed in the way Java allows you to. Not in my book, anyway. I’m talking logic and functional programming here. Simple to write yet sometimes not easy to get your head around as the reasoning may be hard, but the language should not get in the way. Java’s “Hello World” speaks for itself in that department, I guess.

But I’m getting carried away and deviating from the point here. Believe it or not, as far as first languages go, I think Python’s most recommendable features are:

  • mandatory indentation, simply because it forces young programmers to write properly structured code. And if that practice comes right at the beginning as the first language they pick up, then all the better. Obviously this alone doesn’t add up to better code, but it is a notion not many people seem to grasp. I’ve seen entirely too much ugly code in my time. And I’m still very young, mind you.

  • perhaps even more importantly is the way Python allows reasoning-to-code translation in different paradigms. It does OO well enough, but does not enforce it, it allows for functional style programming, but does not enforce it, and it allows you to write purely imperative code a la C, but certainly does not enforce it either. Whatever the paradigm emphasis is, Python is there for you.

Mostly, I think the point is, again, that the language itself should never get in the way as clearly Java does (ever tried writing regular expressions code in Java?). C does that to a degree but I think its alibi of having its roots on systems programming and being a language from hackers to hackers is a good one. Nowadays, I don’t think it makes sense to use it for anything else other than writing device drivers and core operating system code. Python, on the other hand, is simple, elegant, well supported, well documented and has a huge community surrounding it that spans different arenas. Despite being slow, as an interpreted language, that’s certainly not something to bother the inexperienced wanna-be programmer.

Damn, I sound like a crazed and deranged Python groupie, don’t I? That’s too bad. Believe it or not, I don’t think I’m biased as I always try to use the right tool (language, in this case) for the job. Python just seems to be the best tool for the “learning programming” job.

Gosh, this was supposed to simply be a heads-up on Patrick’s write-up. I’m truly sorry, but if you’ve gotten this far, then congratulations. You did way more than I expected you to. And while we’re at it, why not leave a comment with your opinion on what the first programming language should be?

#

After the craziness of the last couple of weeks, it’s good to finally get my feet back on the ground, pulse beating at a regular place and actually get in touch with the outside world, in particular the almost gone taste of going through my feeds. Nothing earth-shattering is going on, but these have definitely caught my eye:

  • FeedLounge - I’ve been using NetNewsWire since I got into Mac-land after a short spell using Gregarius as my web-based feed reader. I wish I had found this one before though, the resemblance to NetNewsWire is uncanny, problem is, the subscription costs you five bucks a month. I doubt this is a profitable business considering the free offers out there, but it’s good-looking nonetheless.
  • If you’ve skipped your Computer Architecture classes and are left wondering what Big and Little Endianess means, check out Daniel Jalkut's insightful write up about it.
  • Junklog is a cool site where you can post your reviews on anything you’ve read, watched, listened to and played. It’s still really rough around the edges, nothing previously unseen, but it works and is kinda cool.
  • Linus has spoken about GPLv3 and the verdict is: guilty. Or, how the new GPL won’t get into the Linux Kernel anytime soon.
  • Despite some aggravating reports, I’ve upgraded to Mac OS X 10.4.4 today and so far so good (but is it just me or the font rendering is a little funny?). Only to find out that Apple already has 10.4.5 in the works. Oh and I do like the black Dashboard calendar.

Incidentally, despite the frenzied pace of these last few days, I still managed to hack on Wordpress a bit more. So now these blog entries also appear on my Advogato public profile courtesy of XML-RPC.

#

Nah, not dead yet. Just overwhelmed with work for the past few days. Thankfully, bar some unexpected twist, I’m done for the term at university and so, for a couple of weeks, I can actually, you know, breathe.

Not that I don’t like working for my degree, because I do. It’s just that the pressure to get things done can sometimes be really disruptive to your motivation. Fortunately, my partner in crime on this particular undertaking has been a great companion, which I will miss dearly from now on. But this loss comes for a good reason, because he almost graduated now and the very last pending subject for him is something I’m already done with.

Anyway, yesterday was a semester wrap for us and, as we both acknowledged, we made a good team, at least it definitely worked for both us. Of course we could have done better here and there (particularly me if I hadn’t had my mind on a bazillion things at once), but overall it was a raging success. And a fun trip, to begin with. I guess the real test and metric for anything you do in life is simply how fondly you remember it later. I’m sure we have nothing but fond memories of this semester (even hacking madly in near ecstasy-turned-zombie-mode past 6am just recently). Other than that, I’m confident both of us have learned a bunch in the process, be it in terms of actual programming, doing presentations or writing decent reports.

Yeah, I think we’re better people now than we were six months ago.

#

(this is a carbon copy of an older entry temporarily up for testing purposes, please disregard)

Another day, another exam. This one actually turned out rather good, at least I think it did. There’s, hopefully, only one more to go and that’s tomorrow morning. Taking that into consideration, I better hit the sack sooner rather than later, otherwise I’ll be a zombie in auto-pilot mode when the going gets going tomorrow.

There’s however still time for two links I found damn interesting and if you too don’t find them so… well, you just don’t, I guess.

  • Quick Reference Cards - PDFs of A4 pages full of reference about a lot of different subjects, from Bash to Apache to C Programming and a lot of others in between. It looks just like those sheets full of interesting information we use to sneak in on exams and somehow manage to not get caught in the act.
  • AJAX Powered IP Location Lookup - This small AJAX app is just lovely. Enter an IP address on the search field and it’ll use Google Maps to display a map image with the exact geographic location of the machine assigned the IP you provided.

Oh, and by the way, I finally gave in and bought an iPod Nano 4GB. I love it.

#

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