Monday 6 August 2012

Project Jest

Starting August 6, I'm taking a month off work to work on the project I've been thinking about for a long time. It's called Jest, and it's a programming language focussing on metaprogramming. I've created a website for it, where I'll be very happy to receive any feedback you may have.

Saturday 26 March 2011

Vim Indentation-based Text Objects

I've created a small Vim plugin for treating indented blocks of code as text objects.

http://www.vim.org/scripts/script.php?script_id=3037

From the documentation:

Vim text objects provide a convenient way to select and operate on various types of objects. These objects include regions surrounded by various types of brackets and various parts of language (ie sentences, paragraphs, etc).

This plugin defines a new text object, based on indentation levels. This is very useful in languages such as Python, in which the syntax defines scope in terms of indentation. Using the objects defined in this plugin, an entire if structure can be quickly selected, for example.

buildtree.mak - An ideal makefile in ~200 lines.

Download link: https://github.com/michaeljsmith/buildtree.mak/blob/master/buildtree.mak

Build systems for C/C++ projects tend to be complex and inscrutable. However often the requirements for a build system are as simple as "compile every source file in this directory tree and link them into a module". Also it would be nice not to require some fancy build system - GNU make is installed pretty much everywhere, right? Surely it's powerful enough to perform this simple task?

Indeed it is. However, nearly all makefiles I've encountered (perhaps I've missed the good ones?) have one or more of the following weaknesses:

  • Dependencies are not automatically tracked, or are done so in a broken way (e.g. if I edit a header file and add a #include, the new dependency is not updated).
  • If dependencies are tracked correctly, updating them performs too much work (e.g. pretty much any makefile that uses cc -M, since if you touch one header file it has to parse every header included by every source file that included the touched header, rather than just that one header!)
  • Object files are built in the same directory as the source files. This is bad because if I want to change a compile setting, I need to delete them all (it's better to have different configurations in different directories, so when I switch I can still just update incrementally).
  • Adding a new source file means manually adding it to the makefile.
  • Requires a huge suite of perl scripts, etc., to implement this functionality, which is pretty much broken anyway, and no-one wants to fix it because the whole thing is so uuurgh...
  • Rely excessively on recursive invocations of make (for why this is bad see http://miller.emu.id.au/pmiller/books/rmch/).
  • Object files get dumped into a single directory - this leads to problems if two source files in different directories have the same name.
  • Dependency tracking is some large, opaque process, which means that make -j is unable to optimize it.

To address this, I've created a simple makefile which I've called buildtree.mak. It does just that - let you build all the source files in a source tree into a module. All generated files are output into a specified directory. This directory mirrors the structure of the source tree. Dependencies are tracked automatically, but updated using as little work as possible.

The minimal dependency tracking utilizes the feature of GNU make where included makefiles are first updated using standard make rules. This means that dependency updating is thoroughly understood by make itself, and therefore it works well with make -j.

It is intended as a template - you can just dump it in your project and rename it to Makefile and hack away at it until it suits your needs. I've released it into the Public Domain, so do what you like with it (acknowledgements are always welcome).

Feedback, bugs and especially patches are welcome.

Thursday 24 March 2011

Morality

This essay was written partly in response to my friend Bryn's article on atheistic ethics, but it is basically just a summary of my views on morality, which are quite simple. I present them here in dialogue form.

Is there an absolute morality?

No. Christians are right when they say that there can be no absolute morality without God. Morality is in no way implied by intelligence.

Then what makes an action right or wrong?

Nothing, there's not really any such concept as right or wrong. People do, however, have a sense of altruism, and because of that they find certain actions morally laudable or repugnant.

So morality just boils down to personal preference.

Put baldly, yes, although I feel that the word 'preference' understates the depth of feeling these moral intuitions involve.

This is appalling - anyone can do whatever they want, and there's nothing I can do to stop them!

There's plenty you can do to stop them, ranging from political activism to direct physical intervention.

I believe this is the nub of the issue - people claim that there is an absolute morality, but what they really mean is that their own personal views are superior to those of everyone else, giving them the right to impose their will on others. These people should stop claiming a divine mandate and admit that it's their own moral intuitions they are following.

The fact is that you have exactly the same options for stopping an action whether it's objectively wrong or not, so facing the facts here will not cause you any extra problems.

But God gave me these moral intuitions! By following them I am doing his will.

If God gave them to you, it's strange that he gave different ones to me, and to some people seemingly none at all. In fact it was evolution that gave them to you.

Rubbish, evolution rewards selfishness, it doesn't explain altruism.

This statement shows a typical misunderstanding of evolution. Evolution rewards selfishness on the part of the gene, not on the part of the individual. In fact since we share genes, it rewards altruism on the part of the individual, at least in certain situations.

Well I'm glad I don't live in a society full of people like you. Luckily most people accept that some things are right and wrong - otherwise there would be chaos!

Let's look at this problem the other way around - what do we hope to gain by establishing an idea of absolute right and wrong? Presumably to get everyone to agree on correct behaviour. However, since no-one can agree on what exactly is the absolutely right course of action, agreeing that such a thing exists gets us nowhere. In fact it makes matters worse, since now instead of simply arguing whether a particular action is right we instead debate systems of ethics on an ever more abstract level. Ethicists write volumes discussing the philosophical principles that approximate our personal intuition on the assumption that by doing so they are getting closer to a hypothetical ideal, when instead they could simply abandon the pursuit and accept that those intuitions are themselves the ultimate goal.

And why should we belittle our humanity as the source of our values? Why should we look to an external supernatural force to tell us what to do? We are the ones living our lives. We are the ones who cause suffering to others through selfishness, or happiness through altruism, and are affected ourselves in turn. If morality can be found anywhere, it must be from within,

Wednesday 16 December 2009

We don't need SCM on the desktop.

The current crop of distributed SCMs have brought new power to software development. Using them for the first time is a liberating experience - now I can keep track of what I've been doing, not just what the team has been doing. No longer am I tempted to check something half-complete into the server, just so that I can have a revision-controlled version of it off-site in case I rm -rf the wrong project.

Distributed SCM has brought us great freedom, but it's not enough.

A public repository deals with revision control. Essentially it's a bunch of patches, each of which hopefully represents one new feature or bugfix. They form a delicate yet inexorable tide of progress, a steadfast adventurer boldly seeking El Dorado, that mythical place where functionality is balanced perfectly against usability, and performance and robustness combine.

In this bunch-of-patches model, it is important that everything be append-only. Many people are reading these patches, and future patches rely on the state not changing. Therefore we must do nothing to upset the patches, or they will send their dreaded minions Merge Conflict against us. For this reason both Git and Mercurial are essentially append-only packages - patches go in, and then never come out again.

Sure, you can edit the history, but there's always a feeling that it's a bit dirty... commands exist, but they're usually extensions, and have big caveats attached to them. The feeling is that this is something of a last resort, so it's ok if the tools for it aren't straightforward to use.

Rubbish I say! A personal repository is a vastly different beast to a public one! The goal of a local repository is to act as a cauldron, in which noxious reagents bubble away together, mixing away until they finally form a potent new elixir. At this point they are rapidly bottled and placed on the shelf.

I'm the kind of coder who is always in the middle of some change, when I notice a small bug in something unrelated. It might even just be a misleading comment. At this point a common reaction is just to fix it and check it in with whatever I'm doing. However as a bit of a perfectionist this is a bit unsatisfactory.

With say Mercurial, I can now address this issue in a nicer way. I can check in what I'm doing, hg up back to the previous checkin, make the change, and go back to what I was doing. Later on I can recombine the two halves of the change using a combination of transplant, revert, commit and strip.

But shouldn't this be trivial? I should just be able to recombine these changesets at the drop of a hat. I should be easily able to use a common merge tool to select the changes I want in each changeset. I should be able to drag changes around in some visual undo-tree editor to recombine them, remove them and what have you.

In general the idea of changesets or patches isn't really relevant on the desktop. Whatever changes I'm making only become a patch or changeset once everything's done. Up to that point, it's easier to think of things as a stream of edits, none of which can be considered a logical patch. To me adding a 'commit' in this mode should be as easy as pressing ctrl-S - I shouldn't have to provide a name yet, I'm not even sure what effect the final change will have until it's all done. Once I've done all the parts, tested it on various platforms, broken all the work up into discrete changes, then I will give them all names and submit them.

So, as I said, we don't need SCM on the desktop - we need a source code EDITOR. A proper one, that understands directories and history - perhaps it uses an anonymous git repository in the background to manage the changes. To my mind all this is the job of an editor, and I should be able to use it without even realizing that I'm using a repository. I can then submit patches to whatever SCM the rest of the team is using, and everyone will congratulate me on my nice clean patches that just do what they say.

Tuesday 7 February 2006

Heidelberg

This weekend I ventured out of Coburg once more - this time to the lovely city of Heidelberg. Some photos of the trip are here. Possibly this was an odd time to visit, since Heidelberg is very close to Frankfurt, where I will be living in a couple of months. However, I was keen to visit and catch up with my old friend Nicki, whom I went to school with.

It may seem surprising that we both ended up living in Germany, but only until one realises that I have been stalking Nicki on and off for several years now. It is fitting that she is living in Heidelberg, while I am living in Coburg, since there are suburbs in Melbourne with the same names, so many of our friends assume we never left town.

Heidelberg is famous for having the oldest university in Germany, and it has a large student population. While there we checked out the castle - which is very impressive. In fact is possibly more impressive even than the Veste Coburg, although it has been allowed to fall into some disrepair over the centuries. Of particular note is the enormous wine barrel, which can hold either 220,000 litres or 220 litres, depending on how one interprets the period on the sign.

Nicki told me I had to have a drink called a Warmer Erpel while I was there. It is apparently some kind of ritual that must be undertaken upon entering the town. Personally I suspect that this was made up purely to sell the drink, since I can't imagine anyone would want to drink it unless they were a complete newcomer. The taste is somewhat akin to that of battery fluid, or so I would imagine had I ever had battery fluid.

Saturday 4 February 2006

New Host for Blog

You may have noticed a slightly new look for the site. This is because I have moved my blog to a commercial host. This blog is now run by Blogware, blogging software which so far seems pretty good, and hosted by Blogzerk.

Why did I do this? Primarily because there were bugs in my old setup (which was hosted by my old housemate Cameron). While I could probably have fixed them, basically I just couldn't be bothered. This is all part of my new philosophy, which says that I should do as little work as possible, and get web startups to do it all for me, and then hope that they don't go under and take all my content with them.

So here we are, on a new server and on new software. Hopefully this will work better than the old one. Certainly the server is faster, so you should be slightly less frustrated viewing the page, although of course the real frustration is in the quality of the page rather than its loading time.

I have also moved my photos to Flickr, which should result in their being faster to load as well. It also has a much cooler interface for browsing and uploading - hopefully from now on I will be able to post a lot more photos.

The bugs in the old blog, which meant that, whenever anyone posted a comment, it ended up on the main page, rather than on the article it was commenting on, should not happen here.

The downside of course is that the permanent URLs of the articles have changed, and likely the feed URLs. However, I imagine that this will prove not to be a problem at all, since no-one actually reads anything on this site...

Wednesday 18 January 2006

Venice


Following on from our trip to Ljubljana, we spent four days and four nights in Venice, and I have to
say it is at once a really great place to visit and seemingly an awful place to live. It's really cool taking a water bus down the Grand Canal, but on
the other hand it's really annoying to find that you can't get to your destination which is about 20m away because there is a canal in the way. On
the other hand it must have been a great defence against marauding Lombards.

Some of the views in the city are fantastic. As a bonus they really seem to have a thing for towers, so you can get a great view of the whole setting from 60m up, where you can see right out to the Adriatic, or to the Alps.

We were staying on the island of Lido, which is a long, thin island that has the rest of the islands on one side and the Adriatic on the other. I was surprised to find that it actually has cars, something that isn't present in the main Venice islands, since, I mean, what would be the point? We stayed at a hotel called the Villa Mabapa, which was nice, but not as nice as the place in Slovenia. Eric had gone home to Coburg, and was replaced by super-sub Matthew, who flew in from the UK.

The first day we spent basically looking around. We had four full days to check out the place, so we weren't in any hurry. The second day we went through San Marco's Basilica and the Doge's Palace, both of which were amazing. I tell you, that Doge was sure on a good thing, except that it seemed like a lot of politicians spent all their time tramping through his place. Basically every inch of every floor, wall or ceiling was covered in some kind of decoration or painting representing some aspect of Venice. Those visiting dignitaries surely couldn't help but be a little intimidated. The other issue with the residence, as I see it, is that it is connected directly to a prison via a bridge.

The Basilica is similarly ornate. The walls and domed ceilings are covered in all kinds of, I'm sure, deeply profound images. There are also many cool Latin phrases, few of which I could interpret, but were cool anyway because they were in Latin.

On day 3 we went to see the Peggy Guggenheim collection. While little of it made any sense to me, there were lots of people there who looked very impressed, so I guess it was good. There were certainly a lot of famous names represented there, so at least I can claim to have seen the art that I don't understand. We also visited the Jewish quarter to have lunch at a place that we had heard about. We would have had dinner there, but they were closed for Sabbath after sundown since it was Friday.

By day 4 we had seen most of the interesting stuff, so we took the bus across to some of the other islands. We went to a museum on the island of Murano, which is the centre of the supposedly famous Venetian glass industry. However, this museum was not as impressive as many of the other sights. After this it was time to catch the night train back to Coburg. It wasn't the most comfortable ride ever, and we didn't get much sleep, since we had to get up at about 6:00 to change trains in Munich. However, by this time I was somewhat tired, and glad to be able to catch up on some sleep.

Monday 9 January 2006

Ljubljana


Ask 10 Australians what the capital of Slovenia is, and only 0.03% of 1 of those people will know the answer. That earlobe notwithstanding, Ljubljana is not exactly the top tourist destination for travellers from Melbourne. However, it certainly is a nice city, and would probably be a great place to visit in Summer. However, for some reason I chose to visit in the middle of Winter.

Regarding the trip to Slovenia, the thing that first springs to mind is the weather. It was awful. – It wasn'’t too windy, but apart from that it couldn'’t have been much worse. After the first night when I arrived, it pretty much rained the entire duration of our stay. On the last day it started snowing, which would normally be an improvement, but it was still very wet, uncomfortable snow. We spent three days trudging through a layer of water and sludgy, partially melted snow that covered everything except the middles of the roads, which were instead covered by cars.

Now that I’ve said that, allow me to combat the overwhelmingly negative impression I have given of Ljubljana by relating some good points. The city itself is very pretty. Apparently it was largely flattened by an earthquake in 1850, so most of the buildings are relatively new. The city is set in a small valley in the middle of the eastern Alps. This is said to give the city a very peculiar weather cycle, the wrong end of which I imagine we encountered. The city is threaded by a long, meandering river, which can confuse visitors sometimes by not going in a straight line. On top of a nearby hill is the Slovenske Grad, the castle that overlooks the city. This site is particularly nice since it provides a perfect vantage point for a panoramic view of the surrounding mountains as they nestle the city.

We were staying in the Hotel Mons, a four-star hotel on the outskirts of the city. On the first day we arrived we hired a cab to get there. However we later noticed that this cab did not seem to have any company insignia, and also lacked a radio. As a result we were not surprised to discover later that the fare of 3600 Slovenian Tolars was in fact about twice the going rate.

We spent the next day looking around town. Some photos that I took are here (one positive feature of the hotel is that it provides free internet access, so I was able to upload these photos). There were some spectacular views from the castle, which I can only imagine would have even been better on a fine day. We used the hotel’s shuttle service to take us into and out of town – along the way we probed the driver about the best places to spend New Year’s that night.

In the end we decided to watch the midnight fireworks from just near the main square. The city had organized some free concertsso we were able to drink wine and listen to some nice jazz music while we waited. After that we headed off to listen to some (in my opinion) awful techno music for the rest of the night.

The following day was a bit of a rest day – we slept in and then went to see a movie in the afternoon (this was a good chance to see a movie in English, since they seem to use subtitles in Slovenia in preference to dubbing, which they do in Germany). Then in the evening we went to a restaurant that Tim declared had served the best food he had ever eaten. With a rap like that I could hardly refuse to go, and the food was indeed very good. I’m not sure, however, whether I could say it was the greatest meal I had ever experienced.

The following day we had to check out of the hotel at 12:00. We had planned to do some shopping, but it turned out that it was a public holiday (I suppose this was since New Year’s Day fell on a Sunday they have the holiday the following day). This meant that pretty much everything was closed, but we managed to find a restaurant in which to have a slow lunch. After that we caught our train to Venice at 16:16, leaving behind Eric who had to wait until nearly midnight for his night train back to Coburg.

Monday 2 January 2006

Prodigal Son Shone on by Prodigious Sun

As mentioned previously, the company has shut down for more than two weeks over Christmas. Aware as always of the demand of my home fans, I bowed to public pressure and undertook a whistle-stop tour of my parents' home in Melbourne.

It was gratifying to see how well my parents have been holding up in my absence: in fact the casual observer might think they were adapting well to my departure. I, however, know differently. After all, if I were forced to live without myself, I should find it quite impossible.

Therefore I was pleased to be able to give them the greatest gift of all: my love. This was in lieu of any decent physical gifts, which I couldn't be bothered providing. What I did provide was some cheap and tacky rubbish I picked up at the Nuremberg Christmas Market.

When at home we carried out the traditional Smith family Christmas. This involves a trip to my father's mother's house for Christmas Day celebrations, a subsequent trip to the day clinic for liposuction, a trip to see my mother's family on Boxing Day and then a trip to bed to sleep off the cumulative effects of too much food and alcohol.

It was great to be able to see the family again. This year, at least, I actually had some news to report, making for an abrupt change from previous Christmases in which the entire year's events could be described in the brief pause between two mouthfuls of turkey breast. On the other hand, most of the news was already listed in these pages, so I was probably going over old territory.

However without doubt the best thing about returning home was the cricket. It's hard to understate how tough it has been to survive in a country in which cricket is treated with all the respect of the slimy growth one finds on the underside of the fridge during defrosting. However a trip to the day two of the Boxing Day Test, and a lot of time in front of the TV has done much to repair the psychological strain.

However my time at home came to an all-too-soon end on the 29th, when I had to return to Germany in order to go to Slovenia. This trip took a ridiculous amount of time: taking into account timezone differences, I left at 17:30 from Melbourne on the 29th and arrived at the hotel in Ljubljana at 18:00 the following March.

As tough as this was, it did have its upsides. The weather was fine, but the ground was covered in snow, and the train trip through the Austrian Alps featured some breath-taking scenery. Unfortunately the train was moving the whole time, meaning that I couldn't take any photos. Also I was very tired and couldn't be bothered getting my camera out of my bag.

As yet I have not seen much of Ljubljana - I will be back to describe my time in this currently nondescript city.

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
    tribute.
  • 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
    Year's.
  • 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!