echo "hey, it works" > /dev/null

just enough to be dangerous

Habari theme Connections 0.1alpha released


I've just released a port of the WordPress Connections theme by Patricia Müller for Habari. At the moment it's an extremely basic and direct port. There is no support for plugins, no blogroll and no archives. If anyone uses it and has any requests, let me know. In fact, if anyone uses it, feel free to let me know.

This is my first Habari theme, so it's probably really crappy. I don't mind if you tell me it's crappy if you do it in a nice way or tell me how to fix it. I did derive some of the theme from Michael Bishop's Mzingi and Sean T. Evans's Aiden's Theme, but the crappy bits are definitely mine.

Thanks to the Habari community, especially to Michael and Sean.

Old tech travel journal


When travelling, I keep a journal. I've been doing this for almost eight years now, with varying degrees of commitment, and have filled a couple of moleskines. This last trip to Iran is the first trip I've done since I started blogging and using Twitter, but I realised that I've been doing both for years, albeit low tech paper based blogging and tweets. Typically I'll have a couple of entries like, "Mannequins are freaky enough but someone got an import deal in Iran for extra freaky mannequins" and "Found veggie soups!" and then a longer entry about somewhere we've visited or what we've done for the day.

So - and I suspect isn't just me - my blog and Twitter are fulfilling specific and different writing needs, needs that I've had for a long time. I wonder if the people behind Twitter were conscious of this, or was it just a random lark?

Setting up a subversion repository in /


I've been using subversion for all my versioning needs for a while now, but I've always either used existing repositories or set the repository up in a user account. I'd like to give other local users the ability to commit to some of the projects I'm working on, so I've been trying to set up a subversion repository in the directory root. After a number of false starts, I've got what I think is a sensible solution. I'll document the false starts and the solution here.

I created a group called svn, and I'll add anyone who I want to give commit access to that group. Subversion needs to create the repository directory, so I started off with

% svnadmin create /svn
svnadmin: Repository creation failed
svnadmin: Could not create top-level directory
svnadmin: Can't create directory '/svn': Permission denied

Of course, I'm not logged in as root, so svnadmin doesn't have permission to create the directory. I always do this, because I'm a dill, which means I use the bang bang history substitution regularly.

% sudo !!
svnadmin create /svn

This runs the last command with sudo, and successfully creates the repository.

% ls -dl /svn
drwxr-xr-x  7 root  wheel  512 Nov 15 14:13 /svn/

The repository and all the files and directories inside it are owned by user root in group wheel. That's not good, because I want normal users to be able to write to the repository. I could change all the ownership and permissions of files and directories using a couple of find commands but that feels wrong.

Then Donal reminded me that each project should have it's own repository. This is because when a commit is made the repository revision is incremented, rather than the committed files revision. So, what I should do is to create a top-level directory that will hold the repositories, then create a repository for each project inside that.

First, set up the directory that will hold the repositories, ensuring it has correct ownership and permissions.

% sudo mkdir /svn
% sudo chgrp svn /svn
% sudo chmod 775 /svn

Next, create a repository inside that directory. I'm working on my first theme for Habari, so I'll create a repository for that work.

% svnadmin create /svn/habari

There are a number of different ways to get your project into your repository. I prefer to check out revision 0 and add my work to it.

% svn checkout file:///svn/habari
Checked out revision 0.
% cd habari
% cp -r /usr/local/www/habari/htdocs/user/themes/connections/habari/ .
% svn add themes
(output omitted)
% svn commit
(output omitted)

Now I have a shared repository that (hopefully, but untested) members of the svn group can checkout and commit to. Of course there's a better way, please let me know.

Habari 0.3 released


Chris has announced the release of Habari 0.3. For more information, see the notice on the Habari project site.

I haven't had much to do with the project yet, but this is the first open source project release that I've seen from anywhere near the inside (on the dev list, and IRC), and it's been interesting. The Habari community is young and there are lots of enthusiastic people involved, some coders, some not. There are as many important discussions about how processes should work as there are about the code, which is great.

When I have the time to spend to make sure the transition goes smoothly, it's likely I'll move to Habari with this release.

Why Iran?


Almost every time I told people I was going to travel to Iran for a holiday, the response was an incredulous, "Why Iran?" Very few thought it was an exciting and interesting proposition. I believe the question reflects a successful demonisation of Iran, and while there is plenty wrong with the country, it's all too easy to overlook the great things. So, I'll try to answer the question, and when I get back I'll post about what it's really like here. I'm not going to pretend that this is a well-researched politically-aware piece of writing; just my very humble opinions and observations.

Cultural reasons

I love travel. Experiencing different places, different cultures, different food, talking to people on the street, and seeing how they live, broadens the mind, and can make you a better person. It's obviously no simple task - even an impossible task - to understand another culture, but gaining some understanding is a gift.

I've travelled extensively in south east Asia, and because of geography Asia has a strong influence in Australia through proximity and immigration. Over the last four years I've worked on a computer science education project in Africa, travelling there often, and working closely with many Africans. I've travelled to Europe and the USA.

There are of course, huge chunks of the world that I haven't visited - Eastern Europe, Scandinavia, South America, South Asia, to name just a few - however the Middle East's rich and turbulent cultural history, both ancient and recent, was certainly a big drawcard. There are also a lot more Muslims in Australia than there were 10 years ago, and they seem to be getting the blame for all sorts of society's ills, as they are in many parts of the world, from largely uninformed commentators.

Finally, and importantly, my good friend and colleague Saied is Iranian, and I've had many thought-provoking discussions with him about Iran over the years. This was probably what initially piqued my interest in Iran in particular in the Middle East.

Pragmatic reasons

Some of the reasons are very prosaic. Thanks to my work in Africa, I had a lot of frequent flier points with Emirates, and these were about to expire. With the Emirates hub in Dubai, and not a lot of time to go gallivanting around the world (must ... do ... research) the Middle East makes perfect sense, close enough that I don't have to spend days travelling (damn Australia's remoteness).

Due to work, Rachel wasn't able to travel with me. I love travelling with Rachel, so I wanted to choose somewhere that I was interested in but that wasn't on the top of Rachel's list, not somewhere we'd be likely to rush off to together. The Middle East is of course harder for women to travel in than other parts of the world (but more on women in Iran in another post), so Rachel wasn't especially keen (though I think that changed as I learnt more about Iran in preparation for the trip). Another plus for deciding on Iran for my trip.

Political reasons

In a geopolitical sense, Iran is incredibly important at the moment. With its opposition to the state of Israel and its active nuclear program, Iran is making much of the rest of the world nervous. The USA is busy flexing it muscles and chest beating, and they have "refused to take any options off the table," including military action against Iran. Boy, do I hate political weasel words. The media is full of reports on Iran at the moment, and very little of it is positive. According to the international media, Iran is a country of violent demonstrations, vicious oppression, military marches. Everyone is a religious fanatic, and the country is a dusty desert. In fact, the Middle East in general gets a pretty poor showing in the international media. I've seen this before, specifically in Africa, where all the news is either about poverty or corruption, and yet there is so much more. Most people talk about Africa as if it's a single country, not 53 incredibly rich and diverse countries.

Then there are things like the government travel warnings. The Australian government travel advisory web site says:

We advise you to exercise a high degree of caution in Iran because of the threat of terrorist attack against Western interests. We continue to receive reports that terrorists are planning attacks against a range of targets in Iran, including places frequented by foreigners.

But, as far as I know, there haven't been any terrorist attacks in Iran, against foreigners or otherwise. So, quite frankly, I don't believe the hype about Iran. I wanted to see for myself.

Saied has said, "The first step to mischief is dehumanisation," meaning that if the people don't know each other, governments can do what they want. But that's the wrong way around. We're dehumanised and anonymous to start with, and we need to try to know each other.

Shirky: Ontology is Overrated -- Categories, Links, and Tags


People have been freaking out about the virtuality of data for decades, and you'd think we'd have internalized the obvious truth: there is no shelf. In the digital world, there is no physical constraint that's forcing this kind of organization on us any longer. We can do without it, and you'd think we'd have learned that lesson by now.

Moving WordPress


When moving WordPress from one directory to another on the same server, you need to take into account two things. First, if you have any rewrite rules set up you need to rewrite them for the new location. Second, under Options you need to update the WordPress address (URL) and Blog address (URL) values to the new location.

Why Habari?


Donal asks me, "Why will [Habari] be better than WordPress?" Habari may or may not be better than WordPress, but I'm not sure that's really the right question to ask in my case. While Habari is a lot younger than WordPress, it's been developed from the start with a solid vision by people with a lot of experience with blogging software. That's all good, but it's still not why I became involved. Okay, maybe obsessed, but that's who I am.

No, it's because Habari has an open, welcoming and vibrant community, and I feel like I can make a real contribution to it. I may not be the best or most experienced coder in the world, but there are skills I can bring, and that seems genuinely valued in the community. I was never a part of the WordPress community, as many of the Habari developers were, and don't have any feelings about how functional that community is, but I hung around a bit. I did the same thing with Habari, but after hanging around for a very short time I was made to feel so welcome that I was almost forced to contribute. In WordPress I was basically ignored. Probably my issue, but hey, that's what happened.

And there are so many fun things that need doing in Habari, I can really get my hands dirty.

Mojo - Norman Walsh


By itself, a web page that lets you send SMS messages or make phone calls isn't really all that exciting. What makes the Mojo stuff cool is that it's all accessible with RESTful web APIs. If you can drive an http: connection, you can send messages and make calls.