Thursday 22 December 2005

Almost Christmas Break...

So Christmas approaches, and with it holidays. Crytek is shutting down for 2.5 weeks over New Year, so I have been planning ways to spend the time. Of course the most important thing is to go home and see the family for Christmas. A canny bargain hunter can get his hands on all kinds of bargains at this time of year - people are practically giving things away during the so-called festive season.

I would like to spend more time at home, however since I get only four weeks holiday a year, I feel I have to make the most of my time in Europe and travel around as much as possible. Therefore I have scheduled visits to a couple of cities when I come back from Australia. Here is my itinerary:

  • 24/12 - Arrive home in Melbourne, no-doubt to the rapturous applause of
    the home fans.
  • 25-26/12 - Bask in the love and respect of my family and receive their
  • 29/12 - Conclude my whistle-stop tour and head back to Germany.
  • 30/12 - Catch the train to Ljubljana for a few days, including New
  • 2/1 - Head over to Venice for about 5 days.
  • 6/1 - Catch an overnight train back to Coburg.

This will of course involve a great deal of travelling time - this is unfortunate, but it has to be done if I am to visit all the places I want to while I'm here. Of course I will keep you all up-to-date with goings on (well at least partially up-to-date with some of the goings on, if past history is any guide).

Tuesday 13 December 2005

The Big Smoke

Having spent the previous Saturday night blundering around Nuremberg in the dark, we felt it would be a good idea to return the next week during the day. Therefore we set out this last Saturday once again, this time at about 12:00. It would probably have been a good idea to have left earlier, but this was as early as we could manage.

It's possible to get a train ticket that is valid for the whole day for 5 people anywhere in Bavaria for €25 on either Saturday or Sunday. This is called the Nice Weekend ticket. The drawback is that you have to travel on regional trains, rather than on the much newer and faster ICE trains. Therefore our journey took us about 1:30 hours. It was nice, and I was having a nice nap until half way through when a large number of drunken football fans got on and began making fools of themselves. Although I am looking forward to the World Cup, it will surely be a huge drawback to have large numbers of boorish drunkards roaming the streets day and night.

The main train station in Nuremberg is about the size of a small airport. It really has everything. Among other things, it has a cool model train set on display.

The christmas market itself is amazing. Apart from anything else, the sheer number of people is incredible. I would have thought that the locals would be all over it, but apparently they can't get enough. It must be the mulled wine that is sold in novelty cups. I was compelled to order myself a shoe of wine by the pure tackiness of it all.

Most of the market itself is a series of shops and stalls. There is lots of crafts and models and figurines and so on available, as well as many types of sausages and other food stalls. However, having arrived somewhat late we soon found that we were running out of daylight, so about 5:00 we started pushing our way through the crowd back to the station.

Some photos of the trip are here.

Friday 9 December 2005

Branching Out

Having spent my first month in Coburg, it was inevitable. Coburg is a small place - I mean it only has two McDonald's, and only recently opened its first Burger King! Note I am using these places strictly as a reference to the size of the town - not as an indication of the inconvenience their relative scarcity is causing me. No, no, I can easily make do with the Wednesday buffet at the Chinese restaurant nearby (this is an odd Chinese restaurant, but that's a story for another day).

So to alleviate this situation, we have made a couple of trips outside of Coburg. The first trip was a couple of weekends ago - we took the train to neighbouring Bamberg for the evening. Mind you we were supposed to take a car, but this plan somehow fell through, and half of us ended up on the train. Why was I in this half? Because I let people walk all over me, I presume. Four of us had bought our train tickets and were waiting at the platform, when one guy, a quite Swede, decided to pull out.

Anyway, Bamberg was nice. It is about 45 mins by train, and has some nice bars and clubs. Somehow, however, we wound up freezing at the train station in the morning, because the last club shut at about 5:30, and the first train left at 6:30.

We took the Inter-City Express (ICE) train, which is very nice and fast. There are both first and second classes, but even second class was very nice, albeit a bit expensive.

The next week we took a trip to Nuremburg. This is a little further away, but much bigger, which is probably why I had heard of it. We took a car this time. I had assumed that the people we were going with knew the place, since that was the impression they had given, but in fact we had to resort to cabs to get us to where we wanted to go. Here's a tip - if you want to go to a dance venue in Germany, overcome your embarrassment about the 70s and ask to go to a Disko. Don't make the mistake that we made of asking for a night-club, or I can't be held accountable for the result.

We had a good time in the city, which seemed huge after a month in Coburg. There was one club in particular we went to which was absolutely huge - it must have had thousands of people in it. The Swedish guy, who the previous weekend had shamefully chickened out, this week had come along. Not only that, but with the addition of a moderate amount of alcohol was transformed into a crazy night-clubbing machine. Somehow he could suddenly speak fluent German and was striking up conversations with everyone we met.

We are planning a return trip this weekend, but this time during the day, so we can have a proper look around. Hopefully I will have some photos to show you when I return.

Tuesday 22 November 2005

White Stuff Falling from the Sky

So it would seem that winters in Germany are in fact quite cold - more so than I am used to. In Melbourne I always considered myself quite resistant to cold - I guess I am about to find out just how resistant. Meanwhile I understand Melbourne is of course quite warm, and all my friends and family are doubtless having a wonderful time. Oh well, I guess I've made my bed...

I have begun preparing for the coming apocalyptic ice-age by purchasing a thick jacket for myself. It is quite large - this is so that I can wear it over my jumper and my existing jackets, in case that should prove necessary.

The photo shows a BMW as it was in the morning as I walked to work. Now, to my eyes this is quite unbelievable - who would buy a BMW and then leave it outside overnight for it to get snowed on? I suppose it indicates that beamers and mercs are just your standard cars in these parts.

In other news, my parents responded to my pleas for help and mailed me an EU-Australian power adapter - so now I am finally able to recharge my phone! This would be great, if only I had some kind of phone plan. To get that, however, I need to have my banking set up.

Which leads on to the next problem. My parents inform me that in my absence my Australian bank has been trying to contact me. It seems that some suspicious activity has been detected on my account. Now I don't mind betting that a sudden series of transactions originating in Franconia has attracted the vigilant gaze of the bank, but unfortunately it is somewhat hard to explain to them that it is I who is withdrawing this money from Germany, due to the not entirely coincidental fact that I am in Germany. However, hopefully this can all be straightened out. In the meantime, however, I fear to access my money, in case they decide to freeze my accounts.

Some more photos of the town are here.

Thursday 17 November 2005

Slightly Undercooked Bratwurst Completes Initiation

This is a further update about my progress in Germany. I've been getting on quite well - much better than I had anticipated, to be honest. I feel that by ordering a Bratwurst from the 'Ratskeller' for lunch, I have become fully attuned with the local culture and ethos.

The company has helped me set up my bank account - this was largely due to the tremendous efforts of the young German bank manager to overcome his own limited English, so that my English friend Matthew (who was also having his account set up) and I would not have to overcome our own language impairments.

I am now waiting for the key card and PIN to arrive, so that I can actually access my account. Of course it has nothing in it, so I will have to try to transfer a small sum from home to tide me over until payday, which comes but once a month in these parts. At that point, as the bank manager put it, 'All things are possible'.

My parents have responded to my adapter woes by sending me over an Australian power adapter - this should arrive soon apparently. With this and my bank account, I will have everything I need to fulfil my destiny and acquire a phone plan, allowing me unheard of powers of wireless telecommunication throughout the country.

I have started taking German lessons with some others from the company. The teacher speaks not much more English than I speak German, which as you can imagine makes communication difficult. The lessons are very basic - at the level of "Ich hei├če Michael" and the like, so the content is not too challenging, but it is good practice nevertheless.

I have ordered some audio tapes (actually audio on SD cards) to help me learn, but these won't arrive for several weeks. In the meantime I plan to write a small script to test me on my German vocab - this is what I did in school when studying for tests, and I found it quite helpful.

I apologize for the lack of photos - I have already been upbraided by several people over this. I will try to have a bit of a photo taking session - I guess I have never really been much of a photo person, but the site does need some more colour.

Generally I have learned my way around town quite a bit better. I at least know where the major shops are, so if nothing else I can buy myself food. I bought myself a copy of Civilization IV, but I have to play it on my work PC, since my laptop is not up to the task. Also the manual is in German, so I have to learn how to play the hard way.

Thursday 10 November 2005

Settling In

I have been in Germany for a little while now, and the initial shock has mostly worn off. I thought this would be a good time to recap my current situation, and give a frank and honest assessment of my ability to survive the harsh German winter.

The apartment is fine - I get along well with one of the housemates, who is from Denmark, and his girl friend, who is from Spain. I couldn't say whether I get on well with the other housemates - I see them so rarely as to make it quite a moot point. On the bright side, I guess that means I won't have any problems with them.

Gaining internet access will be problematic. There is no phone line, so DSL or dial-up connection is impossible. I don't think cable would be a goer, since that might involve some frowned-upon changes to the house. The only option is to use a super expensive GPRS connection, which I think is what one of the housemates is doing (although I never see him to ask him). I guess since I'm not paying rent, its not so unreasonable to pay a bit more for things I would be able to get more cheaply if I had my own apartment.

Speaking of getting my own apartment, I hear that the company is planning to move some time in the future to another city. I'm not sure exactly when, but it means that I might have to hold off on getting my own place for the time being, since I don't want to be uprooted as soon as I settle in. This might  mean that I will be unable to provide decent accommodation for the many boot-lickers who were planning to come visit me :)

Another problem I have is that I can't recharge my phone. My charger uses Australian power plugs, and I have been unable to find an appropriate adapter. I can use my other equipment, since I have a power cord that uses European power points, and which feeds into that common intermediate plug, whose name I should know but don't, which many portable devices use. Anyway that lets me use my laptop and recharge my camera. I looked for an adapter in the large electronics store across the road from Crytek, but was amazed to discover that they don't stock such things. I mean its the same adapter as for American devices, so you would think they would have that!

Once I can recharge my phone, I will have to sign up for a German phone plan. Currently my phone is basically useless, since it is just using Global Roaming, so anyone who calls me forces me to pay for an international call. I am holding off on both these things until I get a German bank account, which the company is helping me do tomorrow.

The company has also suggested a good place to get German lessons, so I and some other non-German speakers in the company are going to sign up for those tonight. I did of course study German in school, which means that I can quite often say what I want to say in German, but it turns out that I am a long way short of being able to understand the response. It would be OK if I were speaking to friends who understood my situation, but usually I end up speaking English to those people, since that is the official language of the company. So its only when I am speaking to shop keepers or something when I don't want to embarrass myself that I get tested.

Wednesday 9 November 2005

A Week in Bavaria

So, after claiming I would do it for many years, I have really gone and done it. That is, I have moved overseas to work. I have arrived here in wintry Bavaria in order to broaden my horizons, using as much German efficiency as possible.

To some this is joyous news, to others a trigger for despair (I would imagine most of the latter would be currently living in Germany). However, I'm here now, and I'm sure most of you are wondering, "How is a complete ninny like Smith ever hoping to survive in a foreign country?"

Well that is an astute question. The first step, of course, is to change my name to something more suitable. Therefore my name is now Michael Schmidtty von Schmidttelheim el Schmiddty von Schmiddteldorf. Note that the first name is the same as my current one, but it is pronounced in the German style.

So anyway I've been here almost a week now. I am staying in an apartment owned by the company, with 3 other people. The apartment is not far from the company - about 10 mins walk. This is fortunate, since I have no car or bike or any means of transportation other than the trusty runners I brought with me. The whole town is not large, so you can walk everywhere you need to go if you have time.

Buying items is a daunting challenge. It is OK if I can select the items and bring them to the cashier and simply hand over the cash. However it takes a fair bit of pluck to engage in some interactive purchase, such as often takes place when ordering food. However I usually end up with some kind of meal.

There is a better selection of shops than I had selected. There are some good department stores, quite a large electronics store and plenty of clothes shops. There are also many food vendors, and a seemingly disproportionate number of chemists. They seem to sell a wider range of goods than in Australia, so perhaps that's no surprise.

I don't have internet access at home, so I have to sneak some time at work to communicate with home. However, since I am still jet-lagged I am often waking up about 5:00am, so I have been coming to work early in order to email uninterrupted.

Anyway, this was just a brief hello. Hopefully I will remember to keep updating this blog, and furthermore I hope that not everyone has forgotten me! A few photos can be found here.

Sunday 25 September 2005

New Opportunity Abroad

For the past few months, there has been quite a bit of blogworthy action occurring. However, the indiscriminately public nature of the blog medium has prevented me from posting it, for fear that my current employers would stumble onto it.

A month or two ago I was contacted by a representative of Crytek, a computer games company located in Germany. This was in response to a job application I had optimistically submitted several months before that. It had taken them some time to get back to me; presumably they had tried someone else in the meantime. In the meantime, as described in previous posts, I had already taken a job.

The fact that I had only just started this job was unfortunate, but the opportunity to work overseas, and in a prestigious company such as Crytek, meant that I was determined to pursue this chance. The first step was a phone interview. This was conducted by a couple of fellows from the company, one of whom I could understand clearly and whose questions I could answer, and another whose questions were both incomprehensible and difficult to answer. However, despite this challenge the interview was well received, and I was contacted again - this time to travel to Germany for an on-site interview.

This presented a slight challenge. A flight to Germany takes about 24 hours from Melbourne. Overall this meant that I would be away for 5 days, of which 3 were working days. Ordinarily I could probably have organised leave from work, but we were right at the business end of the project, and being granted leave would be virtually impossible.

My only option was simply to claim sickness for the time I was away. The problem with this was that the company was likely to demand a medical certificate to prove my illness. However I resolved to cross that bridge when I got to it - after all, there was some chance that I would have been offered the job before the nastiness ensued.

So I jetted over to Coburg, Germany for the face-to-face interview (some low-quality photos of the town can be found here). This also went well, and after lunch I was offered the job. Therefore I am set to relocate to Germany! On returning, I immediately quit my job, giving myself 6 weeks until I relocate to prepare for the move and otherwise relax.

Wednesday 20 July 2005

Lighting the Way to a Better Traffic Flow

It occurred to me as I travelled down the Monash Freeway. The traffic at the time was not too heavy, and I was doing my best to achieve exactly 100kph - the magic point between attracting the eternal fury of my fellow driver by moving too slowly and the eternal fury of the police by travelling too fast.

A brown Holden was moving beside me, at precisely the same speed. Now we were both doing something quite dangerous, since by driving side by side we robbed ourselves of a potential escape route in case of trouble. However, this did give me an idea.

I realised it was quite easy for me to monitor my speed with this guy beside me. I was precisely aware of the smallest discrepancy between my speed and his. Any change in speed soon meant that I edged ahead or fell behind.

Contrast this with the difficulty in meeting the speed limit. Too fast and the law's long arm grabs me in a half Nelson. Too slow and I am chased for 45 minutes through the back streets of Glen Iris by irate commuters seeking to dislocate my limbs sequentially. If only it were so easy to drive at the speed limit. However to do so requires taking one's eyes off the road frequently to check the speedometer. Going up and down hills only makes this more difficult.

If only there were something moving beside me at the speed limit! This would instantly give me the ability to monitor my speed precisely using a standard negative feedback loop. Too slow, and I start to drop behind; too fast and I move ahead. Simple! In addition, the excuse that my speedometer is poorly calibrated disappears, and one more avenue for the chronic speed abuser is removed.

This may sound far-fetched, but it is not necessary for pace car drivers to be hired to drive along the freeway every 10 metres. The same effect could be achieved using lights on the side of the road. These could flash on and off like dots on a TV screen, giving the impression of a moving light going at the speed limit. People driving along would know the moment they began to speed or drop off the speed.

Not only would this reduce the incidence of speeding on our Melbournian roads, but it would also lead to greater discipline in the traffic, as people who were travelling too slowly would be reminded of it constantly. In my opinion, people travelling too slowly are as much a cause of accidents as people travelling too fast.

So what do you think? I think this idea is gold. I don't know how much it would cost, but given the vast number of lights and electronics on the roads at the moment, I have to believe it would prove feasible.

Wednesday 13 July 2005

Left Eye Receives Own Monitor

For most people, one monitor is enough, but for me every inch of my desk that is not covered by monitors is another inch through which I am forced to witness the tedium of the external world. Therefore my second monitor came not a moment too soon.

This second one, as with the first, is a Hyundai model, which seems to work quite well. However it is only a 17 inch one, rather than 19 which my first is. This is the only concession I made to the part of my brain that was screaming out how much of a waste of money this was.

I could have run two monitors on my current video card, however in the past when I have tried this it seems to slow down my gaming enormously. I couldn't do that to poor Al, who comes over every Friday night to play World of Warcraft on my PC. Therefore I purchased a second PCI video card to run it

This second video card is an ATI card, while my first is from nVidia. I had thought this might lead to problems, however it seems to work reasonably well. Even having two competing desktop control centres doesn't seem to be causing too many conflicts.

After receiving this monitor, I realised that there were two problems:
  • The monitor updated extremely slowly;
  • I had a sudden, desperate desire to run the second monitor in portrait mode (ie taller than it is wide), even though I had never previously thought of doing so, as soon as I realised that the monitor was able to rotate around.
The second problem should have been easily solved. There was an option in the ATI Control Centre to rotate a display in 90° intervals. However this failed silently, leaving me scratching my head. So I tried to solve the first issue.

I saw in the BIOS a setting called PCI Latency, which was set to 32, and which could take any value from 0-255. In my usual horrendously optimistic fashion, I set it to 0 and rebooted. Amazingly this not only caused the monitor to refresh much faster, but also somehow caused the rotate option to work perfectly!

Now I'm not one to look a gift horse in the mouth, but why the BIOS chose to add a latency of 32 unspecified time units to my PCI bus is beyond me. This option seems to be equivalent to asking, 'How fast would you like your monitor to go? Fast, or very slow?'

At any rate, the second monitor is quite useful for reading documentation while I am using the other monitor for editing documents or programs. It may be an extravagance, but it fits in well with my extravagant bluetooth mouse and keyboard, so it's a good purchase in my book!

Monday 11 July 2005

Reinspection Passed

Our cosy living arrangements, which we had begun to take for granted, were recently threatened by a zealous, new house inspector from the estate agent. Our response was prompt and decisive: we paid people to clean up our house.

Despite the fact that our house was almost spotless, I must confess to having some anxiety about the result. However, the inspection was duly passed, and Cameron described the inspector's reaction as being 'non-plussed', a situation that provides no small amount of satisfaction.

In any case, our tenure is secure for another six months, which will no doubt be sufficient time for the house to revert to its customary state of disorder (I feel that disorder is the destiny of the universe, and am hesitant to do anything to obstruct the juggernaut of entropy).

Wednesday 6 July 2005

Of Mice and Men

History gives us many tales of heroism, stories so rich with human courage that men's hearts are filled with admiration and purpose. The accounts of those who have fought for freedom down the ages have always ranked amongst mankind's greatest moments.

Few stories, however, have so touched the soul so powerfully as the tale of Daniel, the young mouse caught up in events beyond his understanding, swept by currents of history from his simple life in a simple home to despair and terror.

For our young hero was happy in his life; food was plentiful (the carpet being littered with crumbs, having not seen the underside of a vacuum for many months), pets of any kind were absent (due to draconian tenancy arrangements) and the disarray of the house left many convenient places for young Daniel to hide.

So it was that the little creature went to bed one night, safe in his bed of cast-off garments and forgotten brochures. His life of comfort was forever ripped away, however, as the cataclysmic event that would come to be known as the Great Cleaning saw everything he had known be taken away. No more the ready-made shelter; clothes were tidied, papers were recycled. No more the steady stream of food; the floors were vacuumed and mopped until the original surface could once more be seen.

Daniel panicked, as any man would. His heart threatened to give way to despair, as he surveyed the hell that his home had become. But Daniel would come to realise that the worst was yet to come.

Bereft of shelter, our furry friend fell prey to the worst predator of all: man. He was captured and cast into a terrible dungeon - the upstairs cupboard where we keep the toilet paper. In this dark place his soul was attacked by unseen foes. His every nightmare came to pass, as the ravages of time and hunger took their toll.

His gaollers took turns at playing with him. Dark, devious forms of torture were devised and inflicted on the hapless mouse. To them, he was little more than vermin. In that place it seemed that the joyful place in which he had once lived was a different world, inhabited by a different Daniel. A younger, innocent Daniel who had been lost forever in a sea of sorrow.

But before he could give in, before his limbs gave way to hunger and his mind to insanity, the young mouse discovered thought of the many generations of mice who had come before him; of the legions of rodents who had struggled to survive against all odds. He seemed to hear them whispering to him in the darkness, calling to him, urging him to fight. And so he determined to do.

Though his stomach growled, though his legs threatened to give way to fatigue and starvation, Daniel struggled for his liberty. He could not fit through the crack under the door, as his cruel tormentors had plugged it with a T-Shirt. But our indomitable hero refused to give in. Using only the teeth that God gave him, he nibbled himself a hole, a hole back to the light.

It took him many hours, but finally he was able to poke his little whiskers out, and breathe his first breath of fresh air in what seemed like years. However the gods had not finished with him; they had sport to make of him yet. One of the gaollers returned, just as Daniel was preparing to make a dash for freedom. He ducked back inside the shirt, hoping to avoid detection. However he was noticed, and the warden flew into a terrible rage. Determined to make the mouse pay for his temerity, he flung the mouse to the ground, using the shirt as a makeshift sling shot. Bruised, broken and half-dead, Daniel was locked in a new prison, where he felt the pull of death grow stronger.

Bored at last, his keepers decided the cruellest, and therefore most amusing, thing they could do would be to cast him out. Therefore they took out to the backyard, where they left his battered body to die in the cold, frosty night.

What happened to Daniel, none knows. It seems doubtful he could have survived the night. But the tale of Daniel has great allure, and his legions of admirers refuse to let him pass away into oblivion. Often the tale is told around the campfire of how a father saw the mouse return to inspire his brethren to feats of courage. It is said by many that he will return at the end of times, to hold the scales that weigh the deeds of mice and men.

Tuesday 5 July 2005

Laziness Reaches New Heights in Pre-Spring Cleaning Madness

After receiving a scathing review of the level of hygiene in our house, it was clear that something had to be done. The house was not up to code, and obviously had to be cleaned, but equally obviously we weren't up to the job. After all, we were the ones who had let the situation get so bad in the first place.

The answer was clear - throw money at the problem until it went away. Therefore last Saturday became the great Day of Cleaning, in which a procession of hired labourers came to our house to clean it from top to bottom. Stoves were scoured, scum was expunged, and the carpets were given the steam-cleaning of a lifetime - all in the name of keeping us from the humiliation of being kicked out of home.

I must emphasise that our house before this was dirty, but not abysmally so. Certainly the stove was quite filthy, and the showers had several layers of grime on them, but I certainly wasn't disgusted when I looked at it. I guess you get used to these things after putting up with them for a while.

Cleaning the carpets required that the furniture be moved outside. I amused myself for some time using my laptop - I had a complete office setup with a desk, a comfy office chair and wireless internet access - what else could I need? I may even decide to go out there again, once the weather warms up.

We thought that it probably wouldn't rain that evening, but of course it did, and just as Cameron and I were tucking into our main course down at a local Thai restaurant. However we weren't prepared to leave our meal, since we had only just received it and it had been about an hour in coming (I won't be going back to that restaurant in the near future). Fortunately Jon, who was also having dinner but with some other of his friends, raced home to bring in the furniture.

However just when we thought that we were a shoe-in to pass the secondary inspection this friday, Jon spied a mouse running around the upstairs hall. This is troublesome enough, but of course my situation is made worse by the fact that Jon and Cameron insist on treating the mouse as an honoured guest, putting it up in a luxurious cupboard and providing it with all the food and water its little mousey heart could desire. Needless to say my suggestions that extermination may prove necessary have been coolly received, to say the least.

Saturday 2 July 2005

House Inspection Failed

None who have been to our house recently have felt the overwhelming need to praise us for our clean and tidy living quarters. There has, after all, been a lot of mess lying around, and the dishes are often left in a dirty pile. From time to time a bad smell permeates the house from something left too long in the fridge.

Things have hit a new low, however, as our so-called Routine Inspection took place last week. This inspection, which is not, as one might expect, of our routines, but rather of a routine nature, is to examine our house and the standards in which it is being kept. You see, of course, that we do not own the house, but must rent it from the owners in Singapore.

Previously these inspections have not presented much of a hurdle. A peek here, a cursory examination there, a cross word advising us to mow the lawn, and we were all on our way. However this last time disaster struck. A new inspector, one raised in the strictest Calvinist traditions of spotlessness, was summoned to our house to perform the inspection. Routine this was not! Our house was derided in the harshest possible terms. Disgusting, it is apparently. If the landlords were to see it, we would be out on our ear.

This abrupt change in standards is frustrating. There was no warning that we suddenly had to aim for a higher standard. Also the house is far cleaner than it had been during the previous tenants' occupancy. However, we are taking no chances.

We have a further inspection next week, in front of a panel of inspectors. Hopefully our efforts at cleaning will satisfy the majority of them.

If not, this site may be in need of new hosting!

Thursday 30 June 2005

Python Greenlets

For some time now I have been using Python as my language of choice, at least for tasks that don't require blazing speed. However one thing that I really wanted was the ability to do simple co-operative multitasking. However this didn't seem to be a feature of the language, as I had expected.

The reason I wanted to do this is mainly for games. A game often requires simulating a number of entities. The logic for these entities is most naturally described as normal procedural code. However, in many c-like languages it is not (normally) possible to write code like this, since the entities must return control of the CPU to other elements of the simulation.

Python 2.2 introduced generators, which allow us to write code which is along the lines of what I wanted:

def generate_stuff():
    for i in range(50):
       yield i
for ii in generate_stuff():
    print i

Here the function generate_stuff is a generator (due to the presence of the yield statement). This means that instead of returning the return value of the function, as a normal function would, this function returns a generator object. This object can then be iterated over (as in the for loop). To get each value control is passed to the generator function, which runs until a yield is encountered (or the function ends). Each value that is yielded is the result of the iteration.

This can be (ab)used to perform co-operative multitasking, such as I want. However, generators cannot be nested, so if you want a subroutine that your generator calls to yield control, you have to call it as a generator:

def sub(b):
    for i in range(5):
       yield i + b

def gen_stuff():
    for i in range(0, 50, 5):
       for j in sub(i):
          yield j

This is quite ugly, and is not the natural-feeling solution I had envisaged.

However, it turns out that Greenlets are the answer. Greenlets are a small extension package that basically implement coroutines for python. This is the kind of thing that the Stackless Python project also achieved, but that required significant changes to the interpreter, making this a much smaller impact change.

Using greenlets it is simple to implement the kind of cooperative multithreading I have been seeking. Better yet it doesn't require any counter-intuitive changes to code - any code can be run in a greenlet, you just need to sprinkle some calls around to Yield or whatever you call the function that returns control to the parent greenlet.

Monday 20 June 2005

First Day at New Job

Yes it's true - not only have I mustered the enthusiasm to apply for work, but I have also received it. That's what I call beating the odds. I started work yesterday, which was a Friday. This was good, since it meant that my first week was manageably short.

The company I have started at is called Blue Tongue Entertainment. It is a video games developer that is owned by the global publisher THQ. My previous jobs have also been in games development, so I guess I am becoming quite specialised. Hopefully that won't hurt me later on in my career.

It has been almost 18 months since I last had an office job. The day seemed to drag on quite a lot, but then I didn't really have any given task, except to familiarise myself with the games they were working on and the codebase. Hopefully once I have a particular task, I will be able to get back into the swing of things.

Commuting is quite an issue. The offices are on St Kilda Road, near High Street. Taking the train would be troublesome, as I would have to go into Richmond and then take another train or something out. It is difficult to get parking there as well. I think the best plan might be to drive to the corner of Malvern Road and High Street and then take a tram in. The trip along Waverley Road to that point seems to be not too bad from a traffic point of view.

Tuesday 14 June 2005

Interfacing Plone to Apache 1.3

Having a blog is great, but what's even better is if people outside of my own house are able to access it. To this end I had to interface zope to the apache 1.3 server that handles the domain.

This is facilitated by the VirtualHostMonster tool in Zope. This 'gentle giant' handles the dirty work of rewriting all the urls in the site so that they point to locations relative to the root of the site. After this the actual interface in apache is simply to proxy access to the Zope server.

This proxying gave me some trouble. I got http 403 errors, and the error log showed the line:

'client denied by server configuration'

After a while I realised that it was the same problem I get every time I try to add a proxy directive to apache - the proxy destination must be specifically allowed by the httpd.conf file, using a line like this:

<IfModule mod_proxy.c>
    <Directory proxy:http://localhost:9673/>
        Order deny,allow
        Allow from all

It just goes to show that I'm too thick to learn from my mistakes - I'm doomed to repeat them endlessly.

Monday 13 June 2005

Launch of New Blog

Welcome to the Moth-Eaten Boot. This web-based personal log, or 'blog', will serve as a receptacle for whatever deranged fancies spring out of my subconscious before my superego has a chance to quash them. Herein I shall give a glimpse into what makes me tick (a clue to get you started: it's not Hollywood musicals).

It's likely that regular updating will prove too onerous a task to be carried out with any regularity. However, as I am well aware my legions of adoring fans cry out in unison for my attention, I will endeavour to keep you reasonably well apprised of the sordid tabloid details of my affairs.

Grappling with Plone

After spending quite some time setting up the previous version of my web pages, I decided that it made more sense to use an off-the-shelf solution for my new version. This would allow me to save a lot of time, while also presumably achieving a more polished result.

The software I decided to try out is called Quills. It is a product designed for the Content Management System Plone. Plone, in turn, is built for the Web Application Server Zope.

This software includes some impressive features. Zope's mechanism of acquisition is quite powerful, allowing configuration to be made in an intuitive manner across as much or as little of the site as is appropriate. The out-of-the-box Plone setup is highly useful as is. All would have been wonderful if I had been happy with the set-up as it stood.

However, being one of the many unhappy perfectionists, I couldn't settle for that. I wanted the site to work the way I had imagined it. In particular, I wanted a more blog-like setup. Plone on its own makes it very easy to update content on the site, but I chose to use Quills anyway. This provides automatic archiving, commenting, trackback, syndication and other features. I had some difficulty with the last part: after a great deal of debugging I found out that for some reason the version of the python expat xml parser that this server had installed was taking a strict line on some of the xml namespaces that zope uses for page templates. I was forced to jimmy in a namespace declaration for i18n on the rss feed template. It seems to work now (fingers crossed).

This reflects the major issue I have with Zope et al. They are big and powerful, with active developer bases, which means that the code base is quite large and not exactly a walk in the park. Trying to fix a few issues I had was not easy. The code makes use of some of the more 'magic' features of Python, which is great, but needs to be documented in the code so saps like me can wade through it.

Never the less, it seems to have come up reasonably well. One other excellent feature of the setup, (which only benefits me, however), is Epoz. Epoz is a WYSIWIG editor for Plone content (I am using it to type this entry). It uses Javascript and a rich text control that is available on newer Gecko and IE based browsers (so pretty much everyone). It makes formatting text basically as easy as using Word.