A Christmas in Russia Part 2: The Towns of Vladimir and Suzdal

Our next destination after spending a few days in Moscow was Vladimir, a former capital of Russia. Our first day in this region was spent in Suzdal, where we visited a local church to witness the noon churchbells played by a local monk. We also had the opportunity to experience a traditional Russia sauna. The sauna is called a banya and is a winter activity that is embraced whole heartedly during the winter months. Unlike any other sauna, part of the banya experience involves laying down on a bench inside the sauna and being beaten on the back by veniki (birch twigs and leaves that are softend in warm water). Apparently the purpose for the thrashing of the veniki on the back is to use its essential oils to ease the aches and pains and encourages the release of toxins the body stores from eating the nutrient restrictive Russian diet. After spending enough time, you plunge into pools of water outside in the snow and this process is repeated several times. It sounds strange, but is an exhilarating and relaxing experience which served to cure several aching heads and bodies.

Vladimir also proved an ideal place to participate in other winter activities such as ice skating and cross country skiing. I decided to try the latter, as the former is readily available in different places around London. Although there seems to be a certain skill to doing cross country skiing well, it did not seem too difficult to just get started, and was as easy as simply walking with long skis on. Skiing was cheap at only 200 rubles (about £4) for over an hour and included low cut soft boots that reminded me very much of football boots and were both comfortable and easy to move about in. The skis as well, though long, were also quite flexible and manoeuvrable. I can understand cross country skiing’s popularity as there is something magical about being surrounded by pristine white fields, and peacefully trekking through them.

We celebrated Christmas back at our hotel, a strange place where the second floor seemed to be a popular hang out for locals. It contained several pool tables (all with a slight slant), several bowling alleys and a club that played crazy Russian disco dance and some Western pop songs. There was a folk show over dinner and as strange as this was for a Christmas evening, everyone still had a great night.

A Christmas in Russia Part 1: From Moscow with Love

St Basils CathedralI returned on Thursday night after spending ten days in Russia, the coldest country I have ever visited by far. Unlike many other countries, Russia is one of those countries that you need to be ‘invited’ to go to, so joining a tour group was the easiest and best way of ensuring a visit. Once you are invited, getting a visa was an adventure of its own which we experienced back in October. We got to the consulate early as it is only open three hours each day, and stood in the freezing cold until, as the last people, were finally let in two minutes to noon, although the morning sacrifice meant making up hours at least guaranteed us entry into the country.

It was a great experience visiting several different cities in the biggest Eastern European country and learning more about their history, which although considerably tragic, is still part of what constitutes Russian culture and their current way of life. From my personal view, I think the country has had it quite hard, from the 200 years of halted progress caused by invading Mongols, the seemingly back-stabbing and murderous royal families that ruled and hoarded exquisite European artefacts at the cost of the nation to the communistic views of a Marxist Lenin and the harsher Stalin. Russians are extremely proud of their country and there were quite a few people we saw that carried cards of famous figureheads such as Peter the Great in their wallets. These people still manage to keep up with the pace of change, rapidly embracing the current capitalistic nature of the world.

To state that Russia is cold is a big understatement. Although I spent some time in upstate New York during the winter months you cannot but help feel the cold even with up to five layers of clothes when you walk around in -10, sometimes -15 degree snowy conditions. I can, therefore, completely understand why a shot of vodka is popular with locals at meals, being the quickest way of returning some heat to your body.

Russian DollsAlthough we flew in later than everyone else we were picked up in Moscow and escorted to our hotel with ease. We were lucky that our tour group was a more ideal size of just over twenty people, made up of a good mix of people (though mainly Antipodean) and did not have any major personality or lifestyle clashes. We were also just as lucky to get our tour group leader, who was a young passionate Russian woman who spoke excellent English and possessed deep knowledge about the history of pretty much all the places we visited. During our stay in Moscow we visited Red Square, the Mausoleum where Lenin’s body lays, St Basil’s Cathedral, the Kremlin and its armoury where many historical and national treasures are on display.

On one of the days we spent in Moscow we visited the KGB museum. The museum is not very large, only really composed of about four rooms located on the grounds of the new replacement agency, the Federal Security Service of the Russian Federation or FSB for short. The four rooms contained pictures, tools and artefacts from an era filled with life through the stories told through our guide, a now-retired soviet spy with a good sense of humour. We were told about some of the greatest spies that worked during the Second World War and the Cold War and even say the remains of a few spy gadgets that were employed by the agents.

Getting around Moscow is quite easy if you know what station you want to get to and once you get used to the long Russian names. The entire system is excellent, both being quick and seemingly reliable and is copiously decorated with intricate mosaics, elaborate chandeliers and the sort of sculptures you expect to see in museums or galleries, a direct result of the “Palace for the People” concept that Stalin had which resulted in something quite positive.

Fatboy Slim @ The Brixton Academy

Fatboy Slim at Brixton AcademyDespite being severely tired from the weekend’s activity and the week just gone, I still managed to attend yet another gig last night to see Fatboy Slim do what he does best at the Brixton Academy. This has been the third time I’ve been to the Academy, and not having bought the tickets, was surprised to be at the gallery level which is the unreserved seating section. Although this was one of the gigs where most people would not be seated for the majority of the gig, I was in away pleased to be away from the heaving body to body mass that was the entire ground level because I knew I just didn’t have the energy reserves for the entire night to make the most of it. There are other downsides to being upstairs (i.e. smoke heads towards the ceiling) but it did not damper any ability to enjoy the show of brilliantly mixed songs and the spectacular screen shows.

Fatboy Slim came on just after half past twelve and played a set that lasted until just after 3am. His decks were elevated to float in the middle of the stage, and were surrounded by panels on all sides including behind him. It was an extremely effective way for him to be a central focal point for the night even whilst giant smiley-faced yellow balloons bounced around the crowd and a small chorus of showgirls pranced around on stage for a while. It was yet another great evening out with a great bunch of people to watch yet another great artist.

Coldplay @ Earl’s Court

Coldplay @ Earl's Court LondonI just got back home after heading out tonight to witness Coldplay deliver another warmly received performance at Earl’s Court tonight and just had to write up my review. Earl’s Court is an interesting place to hold any concert, with the massive exhibition hall being turned into an area with standing and seating room, by our estimate, to hold about ten or fifteen thousand people. Our seat was up there but not quite in the nosebleed section and although we had to sit at an angle, still had a decent view of the band and screens.

Coldplay’s support act was Richard Ashcroft, from The Verve, and who I had just seen as a guest performer at Monday’s gig. I remember the band The Verve only by two songs, The Drugs Don’t Work, and Bitter Sweet Symphony, both of which were played in addition to a number of his own ones. His fifty minute act was pretty good, but was definitely shadowed by the stunning performance of Coldplay.

It only took about a half hour for them to reset the stage, which Coldplay quickly stormed with a string of their biggest songs including Square One (the opener from their new album), Yellow, Politik and the Speed of Sound. Each song had obviously been well choreographed with amazing visuals that complemented the mood for each song, with pulsating coloured squares, giant yellow balls bouncing around the crowd, and the lights that projected what looked like a star system around the hall into the entire crowd.

The set was a great mix of a lot of their new songs, a lot of their old songs and a number of tribute songs all of which the crowd evidently enjoyed as they sang along. The entire set, including encore was a decent length with a total of almost two hours of solid quality music.

By the end of the show, everyone was standing up in their seats demanding more. Though starting off on a slight mistake, Coldplay soon satiated this hunger by playing three mores songs including Shiver, In My Place and the hauntingly skin-crawling lyrics and melodies of Fix You from their latest album. It is a concert that will be memorable for some time to come and I can now thoroughly recommend you see Coldplay if you ever get the chance.

Optimise Your Build with Faster Running JUnit Tests

Introduction
There are many techniques that you can use that can improve a build time. Here’s one that can be used when:

  • Tests break the build
  • You only care about failing tests being reported
  • You want to reuse the existing formatting utilities provided by standard Ant optional tasks
  • You don’t want the formatting to be too slow
  • The percentage of tests passing is not important

When running with the optional JUnit task, the normal strategy is to use the standard XML formatter and then style the information into something presentable with the optional JUnitReport task. Unfortunately, both the cost of spitting out XML for every single test suite executing (i.e. usually every single Test class you have) and then the cost of applying XSL is typically quite high. In my experience, it’s been several minutes running tests, let alone waiting for the report to be generated. Just try using the plain logger (<formatter type="plain"/>) and see the differences yourself.

A Better Way
The alternative to the standard XML formatter is the QuietXMLFormatter (download here). The aim of this formatter is to:

  • Only produce output on tests that fail or error;
  • Produce the XML output in the same format as the standard org.apache.tools.ant.taskdefs.optional.junit.XMLJUnitResultFormatter; and
  • Do it without inheritance;

The result is a faster build (it can be quite significant depending on the number of your tests) that still reports errors and failures in the same way with only a few tweaks to the build.

Note that the QuietXMLFormatter has only been tested with:

  • Forked (once per batch) TestSuites (JUnitTask produces different behaviours depending on if you are forked or not)
  • Ant Version 1.6.2 and 1.6.5 (some of these classes change a fair bit)
  • JUnit 3.8.1

How To Add It To Your Build

  1. Download the QuietXMLFormatter distribution jar (quietXmlFormatter-0.1.jar or with source)
  2. Instead of the normal entry that looks like (<formatter type="xml"/>) use, the following: <formatter classname="com.thekua.ant.optional.junit.QuietXMLFormatter" extension=".xml"/>
  3. If you fork your build, you need to make sure that the jar is in the classpath, or ensure that ant makes it available
  4. Run your build as per normal

Known Issues
In testing this with a few of the latest versions of Ant, I found a few issues that, although not detrimental, can be slightly annoying. When I get time, I might get around to trying to see how the latest ant source handles this. The issues currently include:

  • The actual files output by the task are managed outside of a given formatter, and there is an assumption that your formatter would produce some output. This means that if you are not actually outputting anything, then you still end up with zero sized files from each individual test suite being executed.
  • At least when you run in forked mode, the extension for each output file doesn’t seem to get added to the controlling class that manages the OutputStream made available to each JUnitResultFormatter. It would be okay if JUnitReport didn’t die on files without an extension but I couldn’t work out a way. Try the following bit of code:

    &lt;move todir="${test.output.dir}" includeemptydirs="false"&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&lt;fileset dir="${test.output.dir}"&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;exclude name="**/*.xml"/&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&lt;/fileset&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&lt;mapper type="glob" from="*" to="*.xml"/&gt;<br />&lt;/move&gt;

  • JunitReport is fine for styling each of the output test reports, but because an empty file is not a valid XML document, you can end up with a fairly noisy build. The solution to this, is of course something that deletes empty files from a directory. There is also another task in the jar (DeleteEmptyFilesTask) that you can use in your build that does this. The same rules for custom ant tasks apply when you incorporate this task into your build. Integrate it like this:

    &lt;taskdef classname="com.thekua.ant.taskdefs.DeleteEmptyFilesTask" name="DeleteEmptyFiles" classpath="classes"/&gt;

    with the following code added to the target that runs your JUnitReport:

    &lt;DeleteEmptyFiles directory="${testOutputDir}"/&gt;

As always, feedback, comments and thoughts always appreciated.