Mar
29
This is more of a reminder for myself than anything else. If you need to convert a MS Word document to something legible, use antiword. It’s very simple, and very useful.
antiword file.doc
This converts file.doc to plain text, and outputs to standard output. It can also be used to convert Word docs to PDF, PS and XML.
Of course, if people would stop sending documents in this manufacturer controlled, proprietary format, we wouldn’t require hacks to read them. But that’s not likely to happen any time soon.
Mar
27
Five of us headed for Krakow last Thursday to investigate the social scene in the city! Though tired coming back, we all had had a great time.
It started Thursday night after we got to our apartment and dropped our bags and stuff. We decided we’d head to the Irish bar, called Nic Nowego (I think that’s spelled correctly!) first. Some sampled the Guinness, and the rest of us went for Polish beer. Apparently, the Guinness was pretty good, though one of the lads reported it was a bit watery. We had a chat with the owner, who gave us the name of a few clubs to try out. We went on to one of them later in the night, but I think the bouncers weren’t happy about letting in a group of five lads. Tom, the owner of Nic Nowego, had told us that the clubs were getting sick of stag parties, and so it would be difficult for a group of lads to get in. So we went to another Irish bar (well, Irish in as much as it had an Irish flag outside it), had a few more beers, met (and Duibhir “educated” in his own special way!) a few English lads and played some pool before moving on again. The rest of the night will remain in memory, but not in print!
Friday, obviously, started slowly. Four of us headed out for a walk around the city in daylight to see what was around, and to grab some food. Duibhir, an bándearg, stayed in bed complaining like a girl of being hungover. His true intentions surfaced later that day however! We went to Roosters around 2pm for our lunch. This was followed shortly afterwards by beer, and continued through ’till 10pm or so that evening! We were joined virtually (via webcam, text message and phone) by a few people who couldn’t make the trip while there. Friday, though, had to be an early night – we finished up around 1am because we had to be up early on Saturday morning. It still turned out to be a great night though. We had a guide to show us a few good clubs to visit, and to help getting us in!!
The early rise on Saturday was for a pre-planned trip to Auschwitz and the Salt Mines. We were collected at 8:30am by Simon (as Marky christened him), the taxi driver, to be in Auschwitz at 10am. The tour started with a short film showing photos and film clips from when Auschwitz was in use by the Nazis. This was followed by a one and a half to two hour tour of the camp itself. This was the most daunting part of the entire weekend. We were shown cells used for starvation and suffocation, a replica execution wall and the living quarters of the inmates. The most difficult section though had to be the rooms filled with posessions of the inmates. All these rooms had glass walls from just below waist height to the roof, and were stacked with certain items. One contained two tonnes of human hair, which was collected by the Nazis from the victims of the gas chambers, and used in making carpets and for stiffening the collars on the SS uniforms. Another contained suitcases from the Jewish victims who thought they were being relocated, another contained shoes. One of the worst to see was a room filled with childrens’ shoes. Having seen the detail of this camp, we moved on to finish the tour in Birkenau – a much larger concentration camp about nine kilometers from the Auschwitz camp. Here we really saw the scale of the camps; Auschwitz could take 10,000 inmates, Birkenau could take 100,000. The gas chamber in Auschwitz was only capable of killing 700 people at a time, and took 2 days to cremate the bodies; the gas chambers at Birkenau (which the Nazis destroyed before leaving the camp) could kill 2,000 people at a time – and there were five of these chambers. Auschwitz was initially a Polish military base, and so had solid brick structures and when the Nazis needed more buildings, they copied the ones that were there. In Birkenau, however, the housing structures were cold, leaky stables. We saw the detail of the camps from Auschwitz, but we had to see Birkenau to see the scale of them.
From there, we went to the Salt Mines, via a restaurant for food. We saw plenty of sculptures and chapels, but I think the outstanding feature was definitely St. Kinga’s Church – a huge church carved out of the rock about 130m underground. Of course, before returning to the surface, we had to have our underground beer!!
After getting back to the apartment, we took a bit of downtime before heading out again. We picked up a few beers from the 24-hour off-licence next door and sat in for a few hours, then we headed out again to the bars and clubs around the city center. This ended up with a bit of club hopping, and we eventually got back home around 5:30am.
On Sunday, we were all feeling considerably more battered than previous mornings. The first port of call was Nic Nowego’s for a full Irish breakfast. With that in us, we headed back in towards the square at the center of the city to find a bar with a pool table to keep us entertained for a few hours. We found one, and it entertained us! We moved from there to a steakhouse for food, and from there back to the apartment. Some slept, some packed and cleaned! After a couple more hours, we cracked open some more beer from the fridge and as people woke up, a bit more life showed up. Again, we headed for the main square, around which were a good number of pubs and clubs. Sunday seemed to be a quieter night than the previous two though, so it was easier to get into the clubs. Most of the pubs and clubs were underground in converted basements or cellars. They were all pretty similar, with the old stonework walls, a couple of bars and one or more dance floors. But the atmosphere was different in each one. This night, though meant to be another early one, ended up finishing around 3:30am after making our way via clubs and a kebab shop to a club called ‘ProZac’ which was on our way home. This club filled up with med students from NUI Galway just before we went in, rendering our cúpla focal useless for hiding what we wanted to say!
Monday morning, we were up early again to finish packing and cleaning before heading back to the airport. After the strict security checks, a trip to the duty free, and a bit of a wait for a delayed flight, we were on the plane and bound back for Ireland.
Photos haven’t been uploaded yet, but I’ll link to them when they are.
Mar
20
Another bank holiday weekend, and the latest figure I heard (from this morning) was eight people killed on Irish roads over the three days. Five of those killed were in Donegal.
I personally think that the Irish government and media put too much emphasis on slowing drivers down, and not enough on the horrendous state of the roads in Ireland. Once you leave any main road, themselves often not in great condition, you’re into a world of blind bends, bone-shaking pot-holes, sloping bumpy roads, and overgrown ditches. And, lest we focus too much on the driver, these roads are even worse for cyclists and pedestrians. Paths are unheard of along these roads, let alone cycle lanes or anything else.

I was taught to drive at a speed that allows me to stop within the distance I can see ahead. In general, rural routes in Ireland have a maximum speed limit of 80km / hour. On a relatively straight stretch of road, doing 80km/hr, you can get thrown from side to side by dips in the road, you’ll have to swerve to avoid pot-holes, and on a lot of the roads, you could have to drive into the ditch to pass another car going in the opposite direction.
I will not defend dangerous driving, but I think too much blame for the accidents on our roads is being put on the drivers. You can argue that there are a lot more cars on Irish roads than, say, twenty years ago, which would obviously increase the occurance of accidents. But, this also means a lot more tax income for the government to improve the infrastructure in the country, particularly on the rural routes where, it seems, most of the fatal accidents are occuring. Instead of being used to improve the country, however, this money is being used to buy elections with promises of decreased taxes.
I firmly believe that people don’t mind spending money if they’re getting value for what they spend. This goes equally for taxes. Why not ensure that tax income is spent efficiently to improve the country for everyone, instead of putting a little more money in the pockets of those who can afford it. Sure, that extra bit of money will be eaten up in car repairs anyway!
Mar
15
Every time this type of thing comes up, someone or some group jump up to defend students. So, first let me clarify. I know that most students are generally good, decent honest people. However, it seems recently that more and more bad eggs have been getting into the basket.
As one of the generally good students, you won’t be exposed to, or possibly even aware of, the actions of the bad students. This can lead to genuine arguments about students being good, hard working etc.etc. However, when you see it from the other side (ie. living in an area heavily populated by students, but not being one yourself), you quickly realise why students get a bad name.
I experienced this personally, and also still have friends living in student areas who are still experiencing these problems. In one case recently, a friends car had the driver’s side wing mirror kicked off one night. The area he lives in is heavily used as a shortcut by students coming back from a local night club.
I’ve seen apartments which were, quite literally, wrecked by students after arriving home drunk. And, I don’t mean wrecked in the just dirty sense – I mean wrecked in the furniture broken sense.
The latest I’ve heard from a friend living in student accomodation is that furniture is now being thrown from balconies, boxes of glasses are being dropped down stairwells from several stories high to smash in the main foyer and, the old favourite, apartments getting completely trashed. Worse than this though, is that the students have no respect for authority any more, and are getting away with doing this a lot of the time. During this week (which is rag week in UL), the police have been out to the campus village this person lives in every night.
UL security staff don’t inspire confidence or respect either. For the most part, they are unwilling or unable to deal with difficult situations, such as rowdy and possibly violent drunken students. This job then falls to others, who have less exposure, experience and training to deal with. In my experience in UL, some security staff were helpful and useful, but others were, and still are, utterly useless. One example would be security not leaving their security hut while on duty to deal with situations like parties in the villages. For the most part, they are meant as a deterant, but this is no longer working.
I would personally like to see criminal charges being brought against students who are caught committing criminal acts, such as wrecking apartments. In the case where the culprits can’t be found, then those who rent the apartment should have to cover the full cost of the damage, as well as being promptly evicted from the property. The reasons, in my opinion, behind what I see as the worsening attitude in students are
- Lack of respect for money
- Getting away with causing damage with little or no recourse
Firstly, students don’t know the value of money, because everything is provided for them. This is particularly true, for the most part, in campus accomodation. The prices for this accomodation are higher than the rental accomodation in the surrounding areas, but it does provide extras such as refuse collection, bills, internet connection and maintainance all included in the price. It is also perceived by parents to be a better place for students to get study done. Because of this, the accomodation is paid for by the students’ parents, and so the students themselves have no sense of the value of the accomodation they’re staying in.
In the second case above, the students are not getting caught for causing the damage (see paragraph on UL security staff above), and so are not being sanctioned for it. In the case of damage to an apartment in campus accomodation, the students living in the apartment are responsible for covering the cost of the damage. Often times, this results in the students losing their deposits, which were paid by their parents. So, without getting evicted (if it happened in your apartment, whether you did it or not) or expelled (if you were caught causing property damage) the student really doesn’t suffer any punishment. This just sets a precedent saying authorities are light on students which just encourages those who would commit these acts to commit them.
I was one of the “students are generally good” category when I was in college, and I would still like to believe that, for the most part, students are decent people. But, this is slowly being eroded by the general lack of respect and bad attitude being shown by a growing number of students. If these are Ireland’s future, then I can see our future being drunken bar brawls, rising crime rates and an even more overloaded justice system.
Mar
10
I’ve created this page to track releases of SvnFs. The first release, version 0.2 is now available.
Please let me know if you find it useful, and send any patches or bugs to john+svnfs@jmadden.eu.
I haven’t yet set up anonymous access to the Subversion repository for this project, but I’ll hopefully get it done during the week.
Mar
9
SvnFs has gotten to somewhat of a milestone! You can use it to mount a subversion repository, and browse it like a filesystem – ie. you can use cd and ls to look around the repository. There’s no auth support, so it’s pretty much only useful for anonymous or otherwise authenticated (eg. svn+ssh, file) repositories.
While the FUSE documentation isn’t great, the example programs are very easy to follow. In this case, the setup is the same as the hello.c setup.
#include <fuse.h>
struct fuse_args args = FUSE_ARGS_INIT(argc, argv);
fuse_opt_parse(&args, &svnfs, svnfs_opts, svnfs_parse_opts);
return(fuse_main(args.argc, args.argv, &svnfs_oper));
Here, I’m using svnfs as a global struct to hold specific SvnFs options (eg. debugging on or off); svnfs_opts are the possible command line options and svnfs_parse_opts is the function to parse SvnFs specific options.
To get started with Subversion, the first thing I needed was a client context and a memory pool. Subversion uses APR for portability. APR manages the allocation and deallocation (along with plenty of other stuff) of memory for you, and it uses a concept of pools of memory. So, to start with, I created a global memory pool, and I initialise it in a function called from main().
#include <apr_pools.h>
apr_pool_t *pool;
apr_initialize();
pool = svn_pool_create(pool);
Secondly, I created the client context.
#include <svn_client.h>
svn_client_ctx_t *ctx;
svn_auth_baton_t *auth_baton;
apr_array_header_t *providers;
svn_auth_provider_object_t *username_wc_provider;
svn_client_create_context(&ctx, pool);
svn_config_get_config(&(ctx->config), NULL, pool);
providers = apr_array_make(pool, 1, sizeof(svn_auth_provider_object_t *));
username_wc_provider = apr_pcalloc(pool, sizeof(*username_wc_provider));
svn_client_get_username_provider(&username_wc_provider, pool);
*(svn_auth_provider_object_t **)apr_array_push(providers) = username_wc_provider;
svn_auth_open(&auth_baton, providers, pool);
ctx->auth_baton = auth_baton;
This block of code loads up your configuration (currently not supported, the NULL in svn_config_get_config is the configuration file name), and sets up the authentication baton for the client context.
Lastly, I use a recursive svn ls to get the full list of files from the repository, and store this in a linked list. Getting the list of files from Subversion is done as follows.
apr_hash_t *dirents;
apr_array_header_t *array;
svn_opt_revision_t *rev = { 0 };
svn_sort__item_t *item;
svn_dirent_t *dirent;
char *fullpath;
SVN_ERR(svn_client_ls(&dirents, fullpath, rev, TRUE, ctx, pool));
array = svn_sort__hash(dirents, svn_sort_compare_items_as_paths, pool);
for( int i = 0; i < array->nelts; ++i ) {
item = &APR_ARRAY_IDX(array, i, svn_sort__item_t);
utf8_name = item->key;
dirent = apr_hash_get(dirents, utf8_name, item->klen);
}
I populate my linked list with the filename and a struct stat for each file. The struct stat is only used (at the moment) to store the mode – 0755 for directories, 0644 for files. Obviously, this will have to be updated in future to match real file permissions, or preferred permissions (eg. if you wanted to use SvnFs to store your email in Subversion, you don’t want world readable files).
The svn_dirent_t *dirent; above has a member called kind which can be svn_node_file or svn_node_dir. This is what I’m using to set the mode of the file.
Lastly, when a readdir() is called, svnfs_readdir get’s called. This simply returns all the elements in the current directory, but checking the filename in the linked list, and omitting any files in subdirectories. When getattr() is called, svnfs_getattr() gets run. This finds the entry in the linked list that matches the filename being looked for, and returns the struct stat for that element. This search needs to be optimised for larger repositories, but for now, it works! Pretty simple really, but functional!
Mar
7
My fiancee got her new Dell Inspiron 6400 yesterday. Dell are only offering the different versions of Windows Vista as OS options, so obviously, the new laptop came with Vista.
I had a look at it, used it for an hour or so, just to see what the fuss is about! And, to be honest, there’s nothing substantially useful in it. Sure, the new GUI looks good, but it’s nothing that hasn’t already been done elsewhere. The fancy 3-D window switching app is more of a gimmick than a useful tool. The widgets for the desktop are mostly toys and distractions. And, to top it all off, you need a powerhouse to run it on.

The GUI is nice though – it’s new (for Windows) and clean. However, looking from the GNU/Linux side of the bridge, there’s nothing in Vista that hasn’t been available for any GNU/Linux distribution for quite a while. Take the semi-transparent window borders – I’ve been using semi-transparent terminals on my Debian and Ubuntu machines for years! Of course, this transparency is terminal to background, and not to the window underneath. But, there are already mature projects available for Linux which do this (eg. Beryl).
The “Start Menu” has been changed around a bit. It’s got a new “Search” box, instead of going through a few clicks to bring up the search window. I saw this, but didn’t test it – this kind of thing should wait until there’s plenty of files and stuff sitting around on the machine. The menu has maintained the XP side-by-side menu look, but less sizeable. The left side contains a bunch of programs, with access to the full Programs menu from a button at the bottom. The right side has links to your home directory, music, videos (etc. etc.), Control Panel and other bits. It’s a bit confusing, with quite a lot of options that probably needn’t be there.
While having a look through the Control Panel, I came across the “Baseline Score” in the “System” dialogue. Windows will now grade the hardware in your system out of 5 to indicate how well it will perform certain tasks. For example, it says you should have a score of 3 or over to run the Aero desktop environment, but less than 4 means it mightn’t run it well on two monitors. While it’s not a bad idea (software developers can put a notice on their software to say above what baseline their software works best), it again shows the how much computational and graphical power Vista requires.
I really can’t see why this OS was delayed so much. There’s no really substantial updates. Of course, people will knock out the increase in security, phishing protection, the new search, but these things don’t take this long to write! Microsoft missed the opportunity to come out with a substantial upgrade (eg. WinFS) this time, and instead filled their new OS with fluff. It looks pretty, but in essence, it’s XP with a fancier GUI and requiring twice the power.
At the end of the day, the OS is meant to facilitate us in what we want to do. It’s meant to get the hardware into a useable state, then provide a method of using it to the software above it. The software is what we use to do whatever it is we want to do. Microsoft seem to have overlooked this, and filled Vista with bells and whistles, most of which I suspect will be sidelined once people want to use the OS to do something productive.
Mar
6
I’ve spent the last two weeks in work doing documentation. I’m useless at it! I can visualise the program flow, but when it comes to breaking it down to actually draw out the state diagram, I get bogged down in implementation issues. Granted, this documentation is design documentation, rather than user documentation, so the implementation issues haven’t yet been ironed out. But it’s still a pain to write.
I’m also on the other side though. I’m messing around with FUSE, and its documentation sucks! Actually, there’s no decent documentation on the functions available, apart from comments in the header files. Even the usual Google search for documentation or a howto shows up nothing really useful.
Hopefully, when (if!) I make sense of it, and come out with something useful, I’ll be able to document the process. Of course, it’s documentation, and I’m a coder, so it’ll probably never get done!!
Mar
2
I’ve noticed in my web logs that people are getting redirected here for content that was on my previous website on Skynet. So, to try and help, here’s where you’ll get it!
Firstly, the Howto for Linux on Dell Inspiron 500M.
The second most requested file seems to be Weeee!.
So there ya go! If you’re looking for some other specific content, drop me an email and I’ll upload it.
Mar
1
It’s quiet, so I decided I’d post my Eircom rant!
My now fiancee and I moved into our new house in June 2006. This was in a new estate being built not far from Limerick city. I ordered a phone line from Eircom in July 2006, primarily to get broadband into the house. Having heard nothing, after about a month, I started ringing the customer care line to find out what was going on.

The first thing I was told was that it was a problem with the developer on site. So, I rang the foreman on the site who told me there was a dispute with Eircom over the trunking for the lines, but that it was pretty much resolved and the work should be starting shortly. So, I took that as meaning probably another month’s wait for the phone line.
Again, after no contact from Eircom, I got back onto the customer care line. This was probably around mid September 2006, and the installation date was given as December. I continued on to talk to one of the customer care agents, who could tell me nothing further. I continuously checked, and at one point was told by a customer care agent that the date in December sounded ‘made up’, and that it would probably be installed before the end of November. This didn’t happen.
On another occasion, the customer care representative patched me through to the Limerick engineer’s phone, which wasn’t answered. I left a message and a phone number, but received no response. At this point, I lodged a complaint with Eircom via their online service. I got a few automated responses from this, and one human response asking for my address. I sent back my address, my Eircom account number and my Eircom order number. I heard nothing further on this complaint.
With the complaint to Eircom going nowhere, I submitted a complaint to ComReg, the Irish communications regulator. This was about as useful as submitting another complaint to Eircom, as all ComReg did was forward my complaint to Eircom. Naturally, this was never followed up by either Eircom or ComReg.
The line wasn’t installed before the date in December either. I finally got on to a helpful customer care representative though, who went to the trouble of finding out what the problem was, and when the line would be installed. I got another installation date of the end of January 2007 – nearly 7 full months after the order was placed.
Again, approaching this date I had heard nothing from Eircom, and I was far from expectant of having the line installed by this deadline. However, the media had picked up on Eircom’s customer dissatisfaction around the country. Louise (my fiancee) heard complaints being read out on Ray D’Arcy’s show on Today FM. Not thinking too much about it, she sent in an email roughly outlining our issues up to then. She received a reply from Today FM the following day saying that both Eircom and the Irish Independent newspaper were looking for contact details for everyone who contacted the radio show, and could they pass on our details. We consented to this, and shortly afterwards Louise got another email, this time from Prime Time, a current affairs television show. They requested an interview to air that night with a piece they were planning on running about Eircom’s customer dissatisfaction. Louise was a bit shy, so I said I’d do the interview! This was aired live that night on national tv (now archived online).
I got a phone call the following morning, the day my phone line was due to be installed, from Eircom’s Head of Communications. He looked into the issues which caused the delay in my getting service, and surprise surprise – I got a phone line installed that day! Within a week it was broadband enabled, and within a fortnight I had my modem and was online from home.
I still have an outstanding issue, which is that on Eircom’s Code of Practice they state :
Installation – under the terms of our customer service guarantee if we fail to install your line within 10 working days of our agreeing to do so you can claim a credit of two months free rental.
I received a bill for the installation and 2 months rental. I’ve questioned this twice with the Head of Communications and both times he said he’d get back to me with an answer when someone else got back to him with it. I still haven’t heard back from him on it. I did hear from Eircom though that this credit is usually applied on the third bill. This was from a customer care representative, but I don’t think he was following up on my query. I think it was a followup call after the phone line installation.
Despite the horrendous customer care, the Eircom service has been fine. It’s only been installed a couple of weeks, but I have no complaints. However, Louise’s workplace are having terrible problems with their broadband connection from Eircom (it’s down more often than not), and her experience dealing with them on it is very similar to our own when we were looking for a phone line. So, while an appearance on national tv has solved my issues, it doesn’t seem to have pushed Eircom into dealing with the underlying problem – their terrible customer care.