Saturday, December 23, 2006

Roujin Z?

I think the caption "Robots are looked on as a solution to Japan's ageing population" under the first photo in this BBC article is a bit misleading.

Wednesday, December 13, 2006


(a) The complex conjugate of a complex number is the number with the same real value and imaginary magnitude, but the imaginary part is opposite in sign.


* scale plots/images

A convolution is the result of the application of an impulse response function to an input signal.
The input signal consists of a series of samples (impulses) of various magnitudes. Each input produces a corresponding input response function

Since 'B' is composed of horizontal line samples, it appears as a horizontal broken line in the fourier transform. Conversely, the 'A' being composed of vertical lines appears as a vertical line in the fourier transform.

The diagonal crosspieces of the 'A' show up as rotated diagonals in the fourier transform, while the curving edges of the 'B' show up most as the vaguely rounded shapes at the edges of the horizontal line in the centre of the plot.

load 'p:\public\alistair\ab'

subplot(3,2,1), image(final);
y = fft2(final);
subplot(3,2,2), image(256*log(abs(y))/max(max(log(abs(y)))));
ydim = size(y, 1);

xdim = size(y, 2);
mask = zeros(ydim, xdim);
msize = 140;
mask(:, (xdim/2-msize/2):(xdim/2+msize/2)) = 1;

mask2 = zeros(ydim, xdim);
mask2((ydim/2-msize/2):(ydim/2+msize/2), :)=1;

y2 = mask .* y;
ya = ifft2(y2);

y3 = mask2 .* y;
yb = ifft2(y3);

subplot(3,2,3), image(abs(ya));
subplot(3,2,4), image(256*log(abs(y2))/max(max(log(abs(y2)))));

subplot(3,2,5), image(abs(yb));
subplot(3,2,6), image(256*log(abs(y3))/max(max(log(abs(y3)))));



load 'p:publicalistairlenna';
subplot(2,3,1), image(xx);

ynew = 512;
xnew = 512;

scaled = zeros(ynew, xnew);
scaled(1:2:ynew, 1:2:xnew) = xx;

y = fft2(scaled);

subplot(2,3,2), image(256*log(abs(y))/max(max(log(abs(y)))));
subplot(2,3,3), image(ifft2(y));
mask = zeros(ynew, xnew);
msize = 128;

mask((ynew/2-msize):(ynew/2+msize),(xnew/2-msize):(xnew/2+msize)) = 1;
ya = mask .* y;

subplot(2,3,4), image(256*log(abs(ya))/max(max(log(abs(ya)))));
scaledimg = abs(ifft2(ya));
subplot(2,3,5), image(256*scaledimg/max(max(scaledimg)));

the 'ultimate' partner?

From this article on Ananova:

Meanwhile, nine out of ten women look for a man who can make her laugh and 73% want someone who will "automatically" pay for a meal.

Looks like 73% of women are greedy twats, then.

What a disgusting attitude that is, to expect men to 'automatically' pay for all meals. Why shouldn't they pay for it? Selfish arseholes.

Friday, December 08, 2006

Atari Falcon emulator

...And when I say emulator, I mean emulator, not what people often think they mean when they mention Aranym, which isn't one.

Hatari in CVS now has the beginnings of support for TT and Falcon emulation - no software that could emulate these machines successfully has ever been released or even publically mentioned before as far as I know.

Unfortunately, Hatari is only developed for Unix systems and the source doesn't seem very easily portable to Windows as yet (okay, I haven't looked at the source, but I'm guessing that that's the case). However, it compiles and runs just fine in Ubuntu and performs well. What a bombshell!

Here's the announcement on the great site.

Sunday, November 26, 2006


From Brad Appleton's great work on design patterns:

This is the Visitor object extending its hand saying "please accept me polymorphically." Then the visited object responds by invoking the proper visitTypeA method of the visitor, and passing itself as a parameter back to the visitor. This is the visited object extending its hand back to the visitor, shaking its hand, and saying "Yes, I polymorphically accept you; Now you may polymorphically operate upon me."
Most confusing pattern ever... I'm not sure I'm ready to polymorphically operate upon it yet. Gotta love that last anthropomorphically self-descriptive quote, though!

This chap builds a nice real-world-outside-coding analogy of the pattern; it seems much easier to grasp them via non-computing analogies (although that taxi company Visitor metaphor didn't help me at all), at least for a newcomer to patterns like myself.

Wednesday, November 15, 2006

Firefox 2... yeah?

Two things that might be helpful to note:
  • In linux, plugins are now stored on a per-user basis it seems, at ~/.mozilla/plugins.
  • The old backspace to go back in history (rather than by your last scroll - why the hell would I want that instead...?) behaviour can be restored by navigating to "about:config" in the location bar and changing the browser.backspace_action key's value from 1 to 0. Don't need to restart the browser after, either...
I have one major quarrel with it though - it crashes if I let it use SCIM, an input method installed on my system. Firefox seemed fine, although it was crashing on some pages (e.g. wink, a unix/windows screencasting utility), which prompted me to install the new major version... but I have to hack around it by telling it to use xim instead, which means I can't directly enter Chinese text, for example (which is something I do like to do occasionally...).

Sunday, November 05, 2006

that feels bette-NGGGHGHHH!!...

Poxy back muscle spasms! I went to bed last night, feeling fairly healthy, reading for a couple of hours with my arms protruding from the covers and almost freezing off. Upon wakening, I noticed to my chagrin that my lower back was throwing waves of tight pain up my spine and usually out my mouth as a loud grunt. Since then, I've spent the day trying to keep my head balanced directly atop my spinal column without leaning in any direction to try to stem the sequence of really unpleasant muscle spasms.
When they do hit, they arrive as a subtle twitch and rapidly rise in amplitude, becoming painful enough to elicit a yelp and arching my back completely before fading away. With concentration, I can sometimes react and scale the wave down to a lesser impact, but still enough to shake me brutally. The onset of a spasm can be triggered by an imbalance in my upper body weight - something as simple as raising one arm.
I've had exactly this problem before - maybe sitting on my ass most of the day isn't helping.

Sunday, October 29, 2006

So Argos are selling what looks like a half-decent scanner/laser printer yoke, pretty cheap. Great, except it seems to be sold with no USB cable. Meaning, sold in a non-working state - an incomplete product.
However, just down the bottom of that page, marked as "Essential Extras" is a gold-plated USB A-B cable costing a ridiculous €20 - that's 1/5 the price at which they're selling the printer.
There's an alternative non-gold-plated cable listed on that page for €10, which still seems expensive for a damn cable. Compare this with this €1.80 cable on Elara... under a fifth of the price for the same thing. Cheeky, Argos!

To top it off, the printer comes with a condescendingly named "Starter cartridge", meaning they don't even supply the printer with a full complement of ink. And Argos don't seem to sell any toner for that printer either. In fact, I can't find anywhere that explicitly offers this kind of toner in Dublin, although I probably wouldn't buy branded toner since it seems prohibitively expensive.

Why is buying a printer such a difficult, complicated task? With all the trickery, I always feel like I'll be getting a bad deal somehow. I'd hate to think what finding a mortgage is like....

Thursday, October 12, 2006

freemind html export

FreeMind does a nice html export of mindmaps, which is handy... gave me an excuse to do a tiny bit of revision while converting my scribbled notes to colouredy digital form.

Have a look at Crypto 1 and Crypto 2 if you're interested...

Wednesday, October 11, 2006


Saw a couple of quotes today that struck a chord with me. The first is about work/life and the second should strike home with any decent student of computing science.

"Normal is getting dressed in clothes that you buy for work and driving through traffic in a car that you are still paying for - in order to get to the job you need to pay for the clothes and the car, and the house you leave vacant all day so you can afford to live in it." - Ellen Goodman

"On two occasions I have been asked [by members of Parliament], 'Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out?' I am not able rightly to apprehend the kind of confusion of ideas that could provoke such a question." - Charles Babbage

Tuesday, October 10, 2006

Paul Hunter

A friend mentioned to me today that Paul Hunter, a very popular young snooker player from England, died last night. That's a real shock - I was under the impression that he was on the mend after fighting cancer for some time.
I'm very disappointed and saddened by this, as I considered Hunter one of the nicest young players on the professional circuit.

Sunday, September 17, 2006

In Mayo, it seems people are taught to piss on the streets...

Living in an apartment on a laneway off a busy city centre street in Dublin affords some unsavoury sights, such as these Mayo gaelic fans pissing on the street across from my kitchen windows.

In the past hour, my webcam observed 20 or so of them wandering up in broad daylight to urinate like animals.
So I thought they deserved to have their ugly behaviour shown publically, since they obviously don't care much about how they act while visiting another city. I bet they wouldn't be too happy with Dubliners visiting their county to piss outside their houses...

If you recognise any of these blurry morons, feel free to point at them and laugh, and wash your hands after you come into contact with them.

What's in Sligo?

Just got back from a weekend in Sligo. Quite a nice one too - the last time I was there, I was 3 years old and only remember cutting my foot on a broken glass that was left on the hotel room floor.
This time around, we stayed in a nice cheap hostel (Sligo International Tourist hostel), walked round the city a lot, ate too much food in a surprisingly inexpensive (for the gigantic amount of food) Chinese restaurant off Wine St beside Tesco, and had a fun night and morning at the Harp Tavern on Quay St.
Not a bad place to visit, although not entirely empty of scumbag kids, but what place is?

Wednesday, September 13, 2006

harsh sentencing for software piracy

When a man is sentenced to 7 and a half years in jail for software piracy when people are given shorter sentences for rape, armed robbery and assault, it begs the question of whether the society in question has its priorities straight.

I do believe software piracy (especially for profit) is lame, and this guy did basically rip-off other people's work to the tune of USD$20m, but over 7 years seems far too extreme in comparison with crimes of a violent nature or cause a single individual to suffer greatly, where the sentencing seems equal.

The guy has already been made to pay restitution for his crimes; where is the good in sending him away for the best part of a decade? That's just putting a massive, meaningless crater in someone's life.

Thursday, August 24, 2006

fun job?

Noticed an interesting job description to one of the jobs emailed to me in a weekly newsletter (which I've been getting for years, and have never applied for any of the jobs, but anyway), here.

Norkom is a leading provider of financial crime and compliance software to the global financial services sector.
... Note the start of that first sentence there:
Norkom is a leading provider of financial crime
So what's that - the internet mafia? They also expect 3-4 years of experience in this so-called "financial crime" industry. What is it with employers expecting so much experience in such specific positions?

Sunday, August 06, 2006

More civilian murders carried out by Israel

A Palestinian child was killed by an overnight Israeli air raid.

Earlier, Omar al-Nuri, 17, and his 15-year-old sister Kiffah were killed by a missile fired from a drone as they fled an Israeli tank near their house in Rafah.

I guess the rules of engagement have changed? Perhaps these children looked like Hezbollah members in disguise, running to their secret base, did they?
That's one possibility. Another, which I find much more likely is that Israel is carrying out what looks increasingly like ethnic cleansing and should be held responsible for war crimes immediately.

It doesn't matter what Hezbollah is doing or how they're doing it - it's never acceptable to target civilians - the Americans committed an atrocity when they dropped nuclear bombs on civilian populations in Hiroshima and Nagasaki (I won't get started about the irony of this and the whole "Axis of Evil" rubbish), and the Israelis are causing atrocities today by attacking clearly civilian targets.

Saturday, July 22, 2006

firefox showing swf and flash files as... nothing?

Here's a dumb problem I caused for myself. I noticed that shockwave flash/whatever videos weren't playing for me in Firefox, after getting a new internet connection after about a month of nothing (hello, 919 email messages, almost entirely spam).

So I spent a few hours trying to fix it, closing and reopening firefox between deletes and reinstalls of plugins, to no avail.
Then I noticed I had "Flash Click to View", some kind of style extension, installed - presumably without knowing what it was, probably not long before I lost my connection.

So I moved %APPDATA%\Mozilla\Firefox\Profiles\default.mf3\chrome\userContent.css to a backup directory, reopened Firefox and all was well. Try this if you're perplexed and experiencing similar problems (and, like me, are clearly an idiot for installing it without noticing in the first place).

Tuesday, May 02, 2006

I said, I'm not gonna hurt you. I'm just gonna bash your brains in. I'm gonna bash 'em right the fuck in.

I picked up a Blue and White Apple G3 at work (which was going to get dumped that evening if no one took it on their own hands) with a massive 17" monitor (ie... it weighs about 20 kg and is deeper than my desk; I have to lean back to look at it without getting the sensation that cathode rays are melting my eye-sockets), thinking I'd install a linux distribution over the damaged MacOs 9 partition on its 30 gig hard drive, and set it up with tomcat or something.

Then I noticed that someone had pulled out the CD drive on it before leaving it behind. Good one.
Anyway, I found an ide dvd/cdrom drive in Maplin and picked up a USB wireless dongle, getting slightly ripped off in the process, as is the style when you go to Maplin.
After much pissing about and a couple of days coming back to the same problem that it wouldn't boot the Ubuntu install CDs I'd burned, I realised that if the Finder could see the CD but Open Firmware (the Apple powerpc equivalent of a pc BIOS) couldn't, it was probably the jumper settings, which it was.

So I installed Ubuntu and all looked good, until I tried compiling the zd1211 drivers that seemed to fit the bill for my X-Micro USB wireless stick, and realised that, along with a couple of missing packages that needed installing such as the gnu compiler family, I couldn't build the driver without having kernel sources existing and built.... and to this end, I got a hold of first, the wrong source - even older than the 2.6.12-9 kernel that came with the Ubuntu disc, then a more recent (or something) archive from

After much time building at 600 bogomips, I finally "installed" the new kernel image, adjusted the yaboot config file (which is annoying; yaboot-config-whateva just creates a new one automatically rather than guiding you through the process) and rebooted. I certainly wasn't impressed when I got a screen half-full of boot messages and half-full of white emptiness, with the machine clearly crashed and the keyboard not responding to capslock or anything else.
More than two hours later, four hours before I'm planning to get up (shit!) I'm still waiting for it to build another kernel, with the limited prompt given by the ubuntu cd's rescue-powerpc image.

Mystical, no-error-message freezes in unbootable kernels SUCKS.

Wednesday, April 26, 2006

what the... test-first design is FUN?!!

After being dropped straight into working on production code, I spent the first day making a balls of a couple of servlets with my partner. The next day, we asked our boss-supervisor-mentor-guru guy (Alan) for a bit of guidance, upon which it became clear that we had indeed ballsed it up.
So Alan took us through a guided attempt at constructing a controller servlet with the test-first design approach, and handily enough, it seemed the right thing to create a few more controllers (one for each step of the interaction with the user).
Thus, we had a chance to immediately try this test-first design ourselves, unit testing and adding in functionality (and fixing various bits) to each controller and any new classes we built (a 'business object', or something - basically the class that handles the action, with the controller simply calling it with parameters extracted from the http request, then packaging the output and sending it on to the appropriate view). Note to self: Waffling on about this is helping my understanding!
Soon, our developing business object needed for us to modify the existing data access objects to do stuff in the database, which we did, uncovering a couple of bugs in the process (and a completely untested but crucial class, so we created a series of unit tests for it which, a bit disappointingly, all passed). We noticed that testing for equality between java.util.Date and java.sql.Timestamp objects isn't commutative (saving Date objects through hibernate into the postgres database seems to automatically pass them through a java.sql.Timestamp object, which loses the locale setting, or some other weird shit), and implemented a workaround by overloading an existing isEquals(Object, Object) method, providing an isEquals(Date, Date) method which converts the dates to longs (milliseconds since 1970), which seemed to compare correctly.
This change allowed our integration test on the DAO to pass nicely, and we went on to finish the controllers, then writing our UAT test to run through about 80% of the process, which works so far.

We'll build the final form-based element to the UAT tomorrow, hopefully - we've tested the stuff manually and it's looking fine, though.
I can't emphasise how much I've rapidly come to enjoy this test-first development style; not only does it help to clarify and simplify development and avoid bugs (by mocking dependencies as much as possible, so the responsibility can be deferred and individual elements can be unit-tested cleanly and the location of possible defects made easier to determine) - it's also extremely satisfying.

Wednesday, April 05, 2006

the brutal hands of Tomcat

Started my INTRA work placement with a software company in the city centre on Monday, where we were introduced to some new and cool concepts common in enterprise-level software development nowadays, including servlets/jsp, Spring, Hibernate and the extreme programming philosophy and practices.

Since we're still just newbies, we were playing around with getting servlets running in Tomcat today, but it turned out to be very unforgiving for novices.

I quickly made the following two mistakes:
  • Didn't enclose the 'true' parameter in inverted commas - I had <context reloading=true> instead of <context reloading="true">. This error took about 40 minutes to track down; silly of me to not notice the error was being logged for over half an hour of head scratching...
  • Put my servlet and web.xml deployment descriptor in a directory named WEB_INF instead of WEB-INF... this one cost me 2 hours. Brown paper bag bug... and so frustrating! Just goes to show; even when it feels like a causeless bug, it's almost invariably your fault... :P
Frustrating... let this be a lesson to ye!

Thursday, March 23, 2006

it's... ALIVE!!

Finally, we got our D6 simulator project integrated and looking good on Tuesday morning. I'd been up all night by that point, and John had been up -two- nights, and I managed to slip into that mode where you don't feel like you have the energy to focus on the "bigger picture", and instead spend hours doing menial, seemingly trivial tasks with uncharacteristic patience.

In this case, those trivial tasks ended up being the logic for saving files and warning when trying to close or compile an unsaved file (ie: a dirty bool), getting the close all command working, implementing accelerator keys (turned out to be so simple, it was addictive) and a couple of other fixes (including debugging a couple of crashers, although that might have been the day before. Hard to tell when you're almost hallucinating with the tiredness).

So a word of advice - if you've got a project with a growing todo list of trivial fixes that you're never motivated to do because there's always something seemingly more important, just deprive yourself of a day's sleep and turn yourself into a robot - before you're aware of it, you'll have fixed them all. :P

Here's a link to the preliminary project page I threw up; I'll get the project online after a few tidyups (guess who left a silly debug in, and forgot to add an accelerator for the obvious Compile dialogue?).

Tuesday, March 21, 2006

d6emu todo list... by 9am tomorrow...

With 8 hours and 50 minutes before we need to submit our D6 emulator project, I'm going to waste this time to put down a rough todo list of things to iron out (or implement completely).

Current todo list:
  1. Accelerators [20 mins] done
  2. Status bar info [10 mins] dodgy
  3. Finish/print user manual [40 mins] done
  4. and tech manual... [40 mins] done
  5. Test stability [15 mins] done
  6. Goto dialogue [10 mins] done!
  • Make sure compilation threads and line error jumping works
  • Switch txt/asm in default file open/save as extension list
  • Remove debug messages! (eg. in dump memory dialogue)
  • Change D6 background to grey
  • Default processing in dialogue boxes (ie... close button)

Hopefully I can do some of that after 4 hours' sleep.


Sunday, March 05, 2006

temporary objects as reference arguments (C++)

This is a pain in the arse.

I can't declare the = operator (or a similarly defined set() method) to accept (const Menu::Maker &) and pass it a temporary object, because the method calls a method of that object which does non-const things... and I don't know how to assign the temporary object to a local object and pass that. Argh! so close, yet so far.

Saturday, March 04, 2006

cold snap!

"Bitterly cold again with temperatures as low as -5 or -6 degrees, widespread severe frost and icy stretches on roads."

Wireless on me laptop broke again yesterday, and this time it seemed Windows wasn't interested in playing with it anymore, even after booting to linux (where the open-source, volunteer-maintained orinoco[_pci] driver works fine) which had served to somehow reset the card into usable state for Windows after booting back.

To try to figure out what the problem was, I tried to identify the mini-pci wireless card, which was a task in itself - linux used to report the PCI vendor number as Harris Semiconductor, but now it's Intersil (who seem to have bought off part of Harris)... but then, Intersil apparently sold that technology to Conexant around the same time I bought the laptop in 2003. Great.

Anyway, I called all of these companies since it was free (thanks to voipstunt - go get it!), and a Fred at Harris (who I imagined wearing a Budweiser cap and reflective polaroids, possibly chewing wheat and pondering changing his name to "Buck") told me they didn't make any of that stuff.
The two people I was put through to at Conexant were voicemail boxes.
Intersil's Taiwan office weren't awake yet... eventually I called Acer's HQ, who were up a bit earlier at 8:45am, and got a poor girl trying to understand what I was on about, and eventually asked me to send her everything in an email.

So I went downstairs to boot the laptop back into linux, but first tested out another driver installer purportedly for Win2k, but the actual driver package seems written by the same guys that wrote the one that broke (Triplepoint - I called them too and spoke to a real nice guy who tried to help) and was about 10 months older. Surprise surprise, it worked straight off, and the card seems to be working fine in Windows now.

Except that it might be flooding me with interrupts or something, or it's using spinlocks (do they use them in windows?), because the system occasionally freezes for a fraction of a second which is a pain in the hole when listening to mp3s.

Ah well. Need a new laptop soon :)

Wednesday, March 01, 2006

Choice Music Prize 2006 review!

The Choice Music Prize event, last night the 28th of February, started low, surged to frenzied highs, then dove back low again over the course of a few hours, forming a slightly uneven parabola.

As the first performer on, Julie Feeney set the initial tone and left me and a couple of my comrades somewhat dismayed, with her simplistic melodies and (in my perception) poor singing technique.
I'm sure many of those who appreciate her style (and she certainly got a lot of support - she didn't win her place as a nominee on Winning Streak) regard her vocal approach as "involved", "soulful" or "with character" and such, but it just sounded untrained, lacking in confidence (probably because of that) and weak.
Also, aside from the simplistic tone and style and basically unimpressive singing, she didn't seem to know how to bring her songs to a conclusion very well... she'd either just slow down a little and end on a brief pause, or just abruptly stop on a chord, or simply drop off.
Granted, she did seem a bit nervous, and when she spoke later she cemented this impression by trying to remember who to thank and forgetting and just generally looking bewildered (which is understandable given that she'd just won the event, to my extreme dissatisfaction), but in all instances (about 5 songs) I was disappointed with both her songs themselves and her performances of them.
Anyway, enough of that - there's no accounting for taste and what I like, someone else will hate and vice versa.

So, without further wafflisation, here's my list of bands in their order of play, my thoughts on those I can remember (it was yesterday, ok?) and my ranking of preference for each.

1st up: Julie Feeney (as previously badmouthed - 2nd least favourite)

2nd: Nick Kelly (joint 6th favourite)
Not the kind of music I like to listen to in general, so I was a little cynical before he even started. However, once he did start, I enjoyed what he produced and the enthusiasm he radiated in the two songs he played. Note: this guy looks a bit like Alec Baldwin.

Nick Kelly

Alec Baldwin

3rd: Joe Chester (joint 6th favourite...)
Quite a good performer except that either he was using a shite mic or speaking into his collar - his voice sounded somewhat muffled. Good drums in his pieces, if I remember right. His bassist seemed like a man possessed and was very entertaining to watch (and listen to; he played some very nice stuff).

4th: Emmett Tinley (my joint favourite!)
I'd seen this guy on TV just a week or so before the gig, and was surprised when I saw him on the VT doing the intro spiel... since I had next to no prior knowledge of the lineup.
So I certainly wasn't surprised to hear an excellent and moving performance from him; this is where vocal technique (and a singer's surety in his own accuracy) makes all the difference for me... Tinley was better tuned than his own guitar, which he adjusted himself although it didn't sound well in tune for the second song, but close enough to be lifted by his hugely moving voice to be a great, great experience; his second song was like listening to a ghost (not the banshee kind).

5th: Duke Special (also joint favourite)
This man really was special; at first I was a bit skeptical and expected a show of gimmicry without soul, but behind the gimmicks was music with very interesting themes and textures.
So again, my initial cynicism was soon replaced with admiration and enjoyment, especially so in his second song which soon kicked in with a brilliant syncopated jazzy piano riff.
One of the high points of the evening, this was not just polish or substance, but an attractive mixture of both.

6th: Bell X1 (I think) (3rd favourite!)
Another brilliant and supremely polished band, these guys had the skill and confidence to pour enthusiasm and energy into their music without losing cohesion or going off the rails.
It was also great to watch the lead singer squirming around the stage!

7th: Hal (I think) (4th favourite)
These guys were also brilliant, although initially I didn't really like the lead singer's American singing-accent, I still really enjoyed their performance. They also had that superbly polished, multi-layered, super-smooth sonic texture, and the way they looked and played brought to mind 70's American bands like... well, America (Ventura Highway!) although more strikingly energetic.
Also a little reminiscent of some of Supergrass's stuff.

8th: Cane 141 (least favourite...)
I really didn't like this performance - it just seemed like lotsa pre-recorded sound mixed in with the girl doing some retro-60's-70's/early-90's-revival xylophone and accordion, while the guy did something on the keyboard and murmured constantly into the mic.
It sounded a bit like one of the lame radio stations in the first Grand Theft Auto game, with that "shootin' homies and bangin' up bitches muh muh yeah" imitation-gangsta-rap shit dribbling out of the car radio. No thanks...

9th: Turn (5th favourite)
Pretty good, if not as jarringly individual as some of the other acts.
Again, these guys seemed to have that slick and confident sound, and were able
to build up this powerful energy and send it into the crowd. At first, a few of
us were wondering about the guy with the squeaky voice, but he pulled off a good

So... all in all, some very, very good performances, but I was badly disappointed when those bitch-fighting radio presenters (especially the guy from 2fm, Cormac something. Jaysus, shut up, man!) announced Julie Feeney as the winner of the €10,000 cheque and €5,000 sponsorship deal with Today FM.
Having heard the various acts, I thought almost all of them were better performers playing better music, rather than someone who just found Mammy's keyboard and the ABC initial-to-grade-3 piano book and supplemented it with occasional singing in the bath for that extra honing of the skills.

Saturday, February 18, 2006

Get to the CHOPPA!!

Block CodeSubject CodeSubject NameFinal MarkResult
Semester 1CA300Introduction to Artificial Intelligence86P
Semester 1CA304Computer Networks 293P
Semester 1CA306Database Deployment74P
Semester 1CA313Algorithms & Complexity84P
Semester 1CA31400 Analysis and Design77P
Semester 1CA321Operating Systems Design & Implementation81P

Yarr! I thought databases went pretty well, given that I got 85 for the practical... so I must have made a balls of the paper somehow.

Ahh well, it's still certainly time to do a little jig of pleasure.

Friday, February 17, 2006

bitfields and bytes and words

Well, it started out as a "this will probably take 30 minutes" thing, and it just kept trundling on and became 4 hours, but I think the core of the code representing a generic, arbitrary length bitfield (which is now easily extendible) is kind of coming together now, so I can play around with bytes and words and have control over the flags, which means registers and memory should be easy to implement and hopefully, handling the D6 instruction set should be simple and intuitive.


class Byte : public Bitfield {
Byte(bool *_flags = 0) :
Bitfield(8, _flags) {}
void operator=(const int rhs) { Bitfield::operator =(rhs); };

class Word : public Bitfield {
Word(bool *_flags = 0) :
Bitfield(16, _flags) {}
void operator=(const int rhs) { Bitfield::operator =(rhs); };

Wednesday, February 15, 2006

win32 and OOP

Getting through this stuff is like swimming through jelly... well, I don't really have any idea what it'd be like to swim through jelly, but I'd guess that it's slow and requires enormous effort.
I expected it would be nice and simple, but instead I'm looking at a template class called a ControllerFactory which inherits from the abstract CtrlFactory class.
Having not known about templates nor really thought much about virtual functions and abstract classes (nor about operator and operator cast overloading) before getting stuck into these tutorials, it's more like a series of wakeup-calls about C++ (in that the author assumes that the reader is already entirely comfortable with such aspects) than lessons in win32 programming.
Hopefully there's some point soon at which I get a grasp on the way OO methodology is used to wrap ugly winapi code, and then I can move a little faster.
It's so easy to be arrogant and make false assumptions about your coding ability when you have any experience - coming from functional (or trial and error) programming to the OO paradigm is a much bigger step than I ever gave credit for.

It doesn't really help my concentration that my guts are screaming at me for eating all that chinese food last night... especially the "soup" with those orange chilli bean things. Gak!

Friday, February 10, 2006

"If you can’t write programs that can be modified, don’t bother."

Found some very nice tutorials on OO stuff in C++ at relisoft here and more general techniques on good code development and maintenance here.

Now if I could just get through the Win32 tutorial...

Damn you Avatar.... daaaammmnn yoouUuUUUUU!!!!

I basically created this blog so I could write a one line comment on Damo's blog... but what the fuck?