This and that and a bit of LUG

Last night I attended my local Linux User Group (LUG) monthly meeting for the first time in over a year. The KWLUG is reasonably active and very good about arranging a talk most months. I have not been very good about getting out to them. For some reason the first Monday of every month (displaced this month due to Labour Day) I have found myself with other commitments or travelling to distant lands. This month the meeting was held at a venue within walking distance of home and, as my other commitments have lessened of late, I was determined to attend. I am glad I did. Khalid Baheyeldin gave a two-hour presentation on The Apache Web Server which was delightfully comprehensive without getting bogged down in esoteric matters. There were more than 30 people in attendance, which speaks well for the health of this LUG.

Members of the LUG are active at numerous events, with mention last night of Ohio Linux Fest and the forthcoming Ontario Linux Fest. The latter is on Saturday, 24 October, and is being held just down the road (in Canadian terms) in Toronto. I shall have to see about getting out to that. And this reminds me that FSOSS 2009 can’t be far off as well. Indeed, it will be held on 29-30 October at the end of what is being billed as Toronto Open Source Week.

But up first are the activities taking place in many, many places on Saturday, 19 September, as part of the Software Freedom Day celebrations. Of course members of my local LUG are busy with a slate of talks and demonstrations for the day, all taking place at The Working Centre under the event theme Working as If People Mattered.

It’s great to see that FOSS is alive an well in the region. I hope to get more stuck in to the local scene in future.

A whole new desktop

What, me upgrade? I don’t think so. These days when I want the latest and greatest version of Ubuntu (today it is 9.04, the Jaunty Jacalope) I wipe my entire Linux partition and start from scratch. From a clean disk to full installation takes about 30 minutes. (I’m doing this on a dual boot laptop with 2GB of RAM and plenty of disk space.) After that it takes me probably another hour or more spread over a few days to get my new system almost exactly like my old one. The bottleneck in the process for me is downloading the .iso file and burning the image. It can easily take 3 or 4 hours even with a high-speed home connection such as I have. And I am much more aware now (after recent visits to Nepal, Mali, and Malawi) than I ever was before how that number multiplies in other parts of the world, enough to make it implausible to undertake on a whim. I know that in future I will always travel with my latest Ubuntu cd so that I can share it with friends and colleagues.

I have installed new versions of Ubuntu now every 6 months for 3 or 4 years. It always makes my day. I put the date of the new release in my calendar and look forward to it with pleasure. When the day finally arrives it is always a challenge to hold off from rushing out and getting the .iso file immediately. Pragmatically I think to myself that the servers around the world will be getting hammered that first day, but equally pressing is the delight in extending the anticipation. Soon enough my will weakens and in what seems like no time I have it, a whole new desktop.

Starting over and afresh appeals to me.

It is also a lot less painful these days since I now live half my life in the clouds, so to speak. I have been letting Google look after my email for some time. More recently I started testing a service that supports syncing of files across multiple computers called Dropbox. I install it on my new clean desktop and within minutes I have all the key document files that I have on my other operating system readily available to me without the issues involved in mounting or writing to NTFS partitions. Very convenient. (It is sort of like using Subversion for version control.) After that there isn’t much more needed for my new desktop to be fully operational given that Ubuntu, out of the box, comes with virtually everything I need. I also need to install a Java JRE so that I can continue using jMemorize and I add a French keyboard layout as well for my input of French text for that. I’ll have a bit of fiddling at some point to get the drivers installed for my wireless printer, but merely because I’ve only done that once before and I don’t recall precisely what I did, although I don’t remember it being too hard. And lastly I have to get Skype up and running because that is what is used for communication in my work.

A clean slate to fully operational. And then 6 months of letting it fall into a messy state as I install software I don’t fully understand in order to play with it and learn something. And then another whole new desktop.

If I could organise my life the same way, I would.

Find your comfort zone – an Ubuntu story

About six months ago I changed scene, job, country, (life?). In July – all of July as it turns out, since Dell Canada just isn’t the equivalent of Dell UK or Dell USA – I ordered and eventually received one of those lovely new Dell Inspiron laptops. Mine is red, so you know it’s got to be good 🙂 As well as being rather slow on delivery, Dell Canada is also behind the times on operating systems. It does not offer any machines with pre-installed Ubuntu. Instead it is Windows Vista for home machines, and Vista or XP for business machines. Thus, after many years using Ubuntu as my principal (and principled?) operating system for my work and much of my leisure, I found myself in possession of a brand new machine running Windows Vista.

And I’ve used it now for six months.

I’m actually not that fussy when it comes to software. (Readers of this blog may find that hard to believe.) If it works, and it meets my needs I’m generally satisfied. I find Vista to be about equal to XP, given my needs. Maybe it is better under the hood, but I don’t tend to get dirty with my operating system. If it runs OpenOffice, Firefox, Thunderbird, Pidgin, and Subversion, I’m pretty much sorted. The stealth tax licence fee for the operating system is just that, stealthy. If you don’t think about it too much, you barely notice it.

So why have I been so down in the mouth of late?

To be honest, I just miss Ubuntu. It was familiar, easy to understand, and, let’s be frank, fun! And hey, another Ubuntu version comes along every six months and it’s even more fun. There are some other reasons why I miss Ubuntu: I’m more comfortable working with subversion source code repositories in a Linux environment; there is lots of software that people recommend to me that does not run (easily) in Windows; I miss being visibly part of something good. And running Ubuntu in a VirtualMachine in Windows just doesn’t cut it.

When I’m out of sorts I tend to sit down and write lists. (Yes, I’m one of those guys!) Recently I was making a list of things that would make my life better, happier, right now, as we speak. And somewhat to my surprise switching back to Ubuntu was near the top. (There were other things, of course; computers are not my whole life after all 😉 ) And once I make a list, I find it immensely satisfying to start drawing lines through items completed. (I did say that I was one of those guys!) And thus, a day later, I am writing this post via an Ubuntu operating system.

Actually I now have a dual-boot laptop. It turns out this is now much easier to do than it was four years ago when I last had a dual-boot machine. Vista is remarkably sensible in recognizing that users may wish to have multiple operating systems. It supports shrinking of its own partition thus freeing up space for the alternate. Resizing a Windows partition used to be a real hassle, but this took all of 1 minute. In the 12 GB available I installed Ubuntu 7.10. And it all works 🙂 An added bonus is that this version appears to play nicely with my .odf documents residing on my NTFS partition: I can use them, edit them, and save to that partition, thus removing the need for a shared FAT partition (at least that’s my impression so far).

Using Ubuntu won’t really change my life. After all, I will still be using OpenOffice, Firefox, Thunderbird, Pidgin, and Subversion. There is probably even no way for you to tell what operating system I was in when I wrote this. But I know. And that’s enough. I’m back in my comfort zone and the future looks bright.

Learning while you learn

Every day, for at least 20 minutes, and often much longer, I work at building my French vocabulary. No need to detail my regrets for not learning French in my youth. The point is that I am committed now. Some of my effort is directed to reading from different sources be they newspapers, magazines or novels. But a fair bit of my effort is devoted to a near mechanical use of flashcards. Flashcards for vocabulary training are a tried and tested method. The more you use your card set, the more you build the reflexes in your mind to instantly recall the meaning of individual words or phrases. Indeed there is even a system that captures the varieties of algorithms that one might deploy in varying the spaced repetition of a card in a card set. It is called the Leitner system and nearly every computer based flashcard program going instantiates it in one form or another.

There are easily more than 250 electronic flashcard programs out there. The one that caught my eye and which I use on a daily basis is jMemorize. How did I select it?

My first step was to stick “‘open source’ flashcard” in Google just to see what would pop up. Go ahead, try that. You will find that there is an article from NewsForge on jMemorize that tops the list. Next step for me was to check out the jMemorize project site on SourceForge. SourceForge is not the home of all free and open source software projects. But it is an awfully large starting point. From a project summary page in SourceForge you can tell at a glance how large a project is (number of developers), what licence the software is released under which in the case of jMemorize is the GNU General Public License, the programming language and the operating system for which the program is intended (java and thus operating system independent), the bugs that have been reported (if the project is using SourceForge’s bug reporting system) and even a quick browser view of the subversion code repository.

Perhaps most important though is the pace of the project. It doesn’t really matter for something as small as this whether there is one developer or 10. What matters is whether the project is moving forward. Is there any momentum? Do new releases appear reasonably frequently? Are bugs being squashed? Are there any users out there sending in feature requests, contributions of code (even if they haven’t joined the project as a developer), or at least questions about how to use the software? It all adds up to a judgement about whether a project is healthy or moribund.

Of course the state of a software project is probably not the criterion you will want to use in selecting your flashcard program. The real test is whether it does what it says on the tin.

I am delighted to report that in over 6 months of using jMemorize, I have never been disappointed with it. That doesn’t mean it will do everything you might want it to do. It only means it does everything I want it to do. So it wins on functionality for me. Plus it wins on not have any superfluous functionality. I confess I (usually) like lean software. It also wins for me on being multi-platform. I’m constantly switching between machines with Windows operating systems and Linux operating systems. I needed a flashcard program that wouldn’t get in the way of my jumbled life/work arrangement. And of course it does make a difference to me that it is open source.

jMemorize is the project of a single dedicated developer, Riad Djemili, of whom I know virtually nothing. Nothing, that is, except that he does good work. Long may that continue.

Update: On 23 January 2007, Riad posted notice on the jMemorize blog that he was setting up a development mailing list for the project. So far it is a very low volume list, so why not consider signing up.

Really using Subversion

I have been using Subversion for more than three years. I use it every day. It is the version control system of choice within Oxford University Computing Services (OUCS). But until recently I hadn’t really used Subversion. Or, at least that’s one way of thinking about it.

It is worth a brief digression to consider why we use Subversion within OUCS. I’d like to say it is because we went through a thorough procurement process, arrived at the best possible solution for our needs, and then implemented the action consequent on that conclusion. That’s the ideal. But the dreaming spires of Oxford are just as bound by the contingencies of the real world as anyone else. Prior to switching to Subversion we used Perforce as our version control system. Perforce is an excellent solution – if you can afford the licence fees. I’m not certain of the sequence of events that took place (my role within OUCS doesn’t have me moving in those circles). The upshot was that suddenly we would have needed to pay about 100 thousand pounds if we were to continue using Perforce. Maybe other institutions manage their finances differently, but in Oxford it would take a miracle to change the budget for a sub-unit like Computing Services at short notice. And let’s be honest, 100 thousands pounds was just not going to happen. Not for something invisible like a version control system. So, we needed a solution, we needed it quickly, and, effectively, the solution was not permitted to have any impact on the overall budget.

Do you face these kinds of choices? They are not ideal. But in this case we were lucky. Just at that time a new open source version control system was coming on the scene. For many years CVS had been the standard version control system in the free and open source world. Subversion, an initiative from CollabNet, was being designed from the ground up as the next generation replacement for CVS. Subversion is also an open source project. That solved the cost-to-acquire issue. Its pace of development was substantial, and has continued to be so. And the community of users and developers around it was already large and growing. All that was left was to do some stress testing and then gradually roll it out, one project at a time.

OSS Watch was one of the first groups with OUCS that began using Subversion. Back in those days I had no familiarity with non-Windows operating systems. So I needed to interact with the Subversion repository via a Windows client. Fortunately there is an excellent one, whose development has followed pace with Subversion itself: TortoiseSVN. (TortoiseSVN is released under the GPL licence, whereas Subversion itself is released under an Apache/BSD style licence, even though they both come out of the same development house – a good example of the fact that choice of licence should be on a project by project basis.) TortoiseSVN installs as an extension to Windows Explorer. It takes only a moment or two to install it and barely any longer to learn how to use it (probably even faster if you already have a grasp of what version control systems are meant to be doing).

And since then I’ve used Subversion via a GUI client nearly every day.

But recently I began wondering how open source development projects use Subversion. My guess was that they use it differently than I have been using it. And I was correct.

At OUCS we have greatly simplified our interaction with Subversion. In part that was because we needed to bring along dozens and dozens of staff who were going to find, what I described above as blindingly simple, a challenge. So we went with a simplistic preview/publish distinction and left it at that. We didn’t even insist that publish would need to be a branch or tagset of preview. So there is not necessarily any trail of history between equivalent files in preview and publish. Again, a contingency necessitated by our install base. Probably everyone faces such challenges.

In order to learn how to really use Subversion for code development, I turned to the best source possible – the documentation written by the developers themselves. Version Control with Subversion is an online free publication that details nearly everything that you could possibly want to know about Subversion. I have learned about trunks, branches and tags. I have even discovered just how easy it is to use Subversion directly from a terminal window. It is all very straightforward and immensely logical.

I confess it has been a revelation for me.

In Producing Open Source Software, Karl Fogel claims that developers are unlikely to take your project seriously if it does not use version control with at least minimal competence.

I think he is right.