<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>AJMG's Blog</title>
	<atom:link href="http://ajmg.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://ajmg.wordpress.com</link>
	<description></description>
	<lastBuildDate>Mon, 02 Jan 2012 18:30:07 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='ajmg.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>AJMG's Blog</title>
		<link>http://ajmg.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://ajmg.wordpress.com/osd.xml" title="AJMG&#039;s Blog" />
	<atom:link rel='hub' href='http://ajmg.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Pair Programming</title>
		<link>http://ajmg.wordpress.com/2011/10/30/pair-programming/</link>
		<comments>http://ajmg.wordpress.com/2011/10/30/pair-programming/#comments</comments>
		<pubDate>Sun, 30 Oct 2011 21:44:24 +0000</pubDate>
		<dc:creator>ajmg</dc:creator>
				<category><![CDATA[software development]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://ajmg.wordpress.com/?p=126</guid>
		<description><![CDATA[I&#8217;ve always maintained that I don&#8217;t like pair programming. The reasons for this being self consciousness, resentment because of partners who hog the keyboard, disagreements and tension etc. Having moved to a company, and being in a team, where pairing is strongly encouraged, if not mandatory in some cases, what follows is how to cope [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ajmg.wordpress.com&amp;blog=989423&amp;post=126&amp;subd=ajmg&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve always maintained that I don&#8217;t like pair programming. The reasons for this being self consciousness, resentment because of partners who hog the keyboard, disagreements and tension etc. Having moved to a company, and being in a team, where pairing is strongly encouraged, if not mandatory in some cases, what follows is how to cope with this uncomfortable (for me!) situation.</p>
<p>Regarding the feeling of resentment at someone hogging the keyboard &#8211; well if you feel that way just ask to have a go! This is often not easy if you feel that your partner has more experience of the system, more confidence in knowing what to do, or a greater understanding than you. In this situation you could suggest <a href="http://en.wikipedia.org/wiki/Pair_programming#Ping_pong_pair_programming" title="Ping Pong Pair Programming" target="_blank">&#8220;ping pong&#8221; pairing</a> where you take turns to write a failing test and the other makes it pass.</p>
<p>Some recent advice from a wise colleague who told me the following: first of all that he didn&#8217;t care if he never touched the keyboard or mouse as long as he had an input into the design. To point out a missing semi-colon or something else the compiler will pick up is trivial &#8211; what is important is to listen, to contribute your own ideas and to come to a shared understanding of the design. So, according to my wise colleague, being the &#8220;navigator&#8221; is by no means subservient to being the &#8220;driver&#8221; but is a position of great responsibility. If you don&#8217;t understand what your partner is doing, and you don&#8217;t have any input into the design, then you are wasting your time and you are wasting the company&#8217;s time. &#8220;You have got to be strong&#8221;, he told me, if the other person is going ahead without you then you must always ask questions, make sure that you come to that shared understanding otherwise there is no point. And being shy is no excuse!</p>
<p>I found all that a bit of an alleluia moment (and sadly I feel I should have realised this ages ago).</p>
<p>It is, of course, easier to pair with someone who has a similar style to yourself. For example, if you like to take time to understand things then to pair with someone quicker and sharper than you can be stressful. On the other hand to pair with some hot shot young coder who is very sharp, has a good memory, and uses different design patterns from the same tired old way you&#8217;ve been doing things for years may be a good thing. By taking you out of your comfort zone it could force you to raise your game a bit. That&#8217;s another way of looking at it. When faced with this situation you could try making some suggestions to improve code quality and if your partner is genuinely delighted with an idea that improves the code then this is a very good sign. In spite of their scary self possession it shows a commendable lack of ego, a willingness to learn, and a desire just to write good code and get things working in a nice way.</p>
<p>If you do make suggestions and your partner gets defensive and wants to do things their way then why not look at the way you are suggesting things &#8211; does it display a lack of tactfulness or skill on your part. Perhaps you haven&#8217;t thought the suggestion through enough to be able to explain it properly. Or maybe your partner has a point. Try not to get defensive especially pairing with someone you&#8217;re not used to. Remember you&#8217;ve got to take time to get to know people.</p>
<p>Regarding shyness and self-consciousness ask yourself could this be a form of &#8220;ego&#8221; on your part. Most people pairing with you aren&#8217;t going to test you or put you under the microscope, they&#8217;re more concerned with getting the job done. &#8220;People have better things to do than look at you you know&#8221; (as my Mum used to tell my younger self when I complained about feeling shy or self conscious).</p>
<p>So far these are the ways I&#8217;ve coped with pairing and I&#8217;ve got to the stage where I quite enjoy some pairing sessions. Also when I think &#8220;I don&#8217;t like pairing&#8221; I try and ask myself why, and is it me that&#8217;s the problem? Often it is.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ajmg.wordpress.com/126/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ajmg.wordpress.com/126/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ajmg.wordpress.com/126/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ajmg.wordpress.com/126/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ajmg.wordpress.com/126/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ajmg.wordpress.com/126/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ajmg.wordpress.com/126/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ajmg.wordpress.com/126/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ajmg.wordpress.com/126/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ajmg.wordpress.com/126/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ajmg.wordpress.com/126/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ajmg.wordpress.com/126/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ajmg.wordpress.com/126/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ajmg.wordpress.com/126/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ajmg.wordpress.com&amp;blog=989423&amp;post=126&amp;subd=ajmg&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ajmg.wordpress.com/2011/10/30/pair-programming/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f5461ea0b1559945be9bfb79598b8342?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ajmg</media:title>
		</media:content>
	</item>
		<item>
		<title>Testing Asynchronous Code</title>
		<link>http://ajmg.wordpress.com/2011/01/16/testing-asynchronous-code/</link>
		<comments>http://ajmg.wordpress.com/2011/01/16/testing-asynchronous-code/#comments</comments>
		<pubDate>Sun, 16 Jan 2011 22:26:20 +0000</pubDate>
		<dc:creator>ajmg</dc:creator>
				<category><![CDATA[software development]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://ajmg.wordpress.com/?p=50</guid>
		<description><![CDATA[A while back I had a project which involved the fitting of certain processes with their own lifecycle, i.e., being able to instruct a process to stop then have the process finish off whatever tasks it was running and set its status to stopped so that the machine could be shutdown. As well as the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ajmg.wordpress.com&amp;blog=989423&amp;post=50&amp;subd=ajmg&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>A while back I had a project which involved the fitting of certain processes with their own lifecycle, i.e., being able to instruct a process to stop then have the process finish off whatever tasks it was running and set its status to stopped so that the machine could be shutdown. As well as the thread for the process, a task coordinator runs in a separate thread. This task coordinator listens for instructions and creates the tasks. Each task also runs in its own separate thread.</p>
<p>If the stop instruction is given to the process then:</p>
<ol>
<li>Process lifecycle is set to stopping status</li>
<li>No new tasks are allowed to start</li>
<li>Tasks already running are allowed to run to completion</li>
<li>Last task finishes</li>
<li>Process lifecycle is set to stopped status</li>
</ol>
<p>The threads for an API test would be:</p>
<ol>
<li>Test thread which gives the Process lifecycle the instruction to stop</li>
<li>The Process itself which has the lifecycle state (running, stopping, stopped)</li>
<li>The task initiator which listens for instructions to initiate tasks and runs them</li>
<li>The task threads</li>
</ol>
<p>How can we test that the correct sequence of events occur when a process is given the instruction to &#8220;stop&#8221;? For example, to ensure that the a &#8220;stop&#8221; command doesn&#8217;t set the process lifecycle status to &#8220;stop&#8221; while tasks are still running, or sets the lifecycle status to &#8220;stopping&#8221; yet still picks up and initiates tasks. Also we need to do things in the test such as wait for tasks to start and then have the test give the &#8220;stop&#8221; instruction.</p>
<p>The test needs some mechanism to wait for all relevant events to take place then when it&#8217;s done waiting it needs some way of checking that the sequence of events happened in the right order, i.e., lifecycle stop happened after tasks had run to completion.</p>
<p>Talking it over with someone in the team he suggested I take inspiration from UI frameworks, e.g., Java Swing and make use of an event listener/notifier pattern whereby listeners in separate threads can be registered to listen out for events of interests and other (notifier) threads can notify their registered listeners of certain events.</p>
<p>I fitted in a listener/notification pattern which meant that I could create a test helper class like this (all code examples in java):</p>
<p><pre class="brush: java;">

class LatchMonitor implements Listener {
	public static HashMap&lt;String, long&gt; NOTIFICATIONS_LOGGED = new ConcurrentHashMap&lt;String, long&gt;();
	private CountDownLatch myLatch;
	private String myNotification;
	private Long myLatchTimeout;

	public LatchMonitor (String notification, CountDownLatch latch, Long latchTimeout) {
		myLatch = latch;
		myNotification = notification;
		myLatchTimeout = latchTimeout
	}

	public boolean setToWaitOnNotifier() {
		boolean countReachedZero = false;
		try {
			countReachedZero = myLatch.await(myLatchTimeout, TimeUnit.MILLISECONDS);
		} catch (InterrupedException e) {
			LOG.error(&quot;Interrupted&quot;, e);
		}
		return countReachedZero;
	}

	public void doNotify(Event event) {
		if (myNotification.equals(event.getOccurrence())) {
			synchronized(this) {
				NOTIFICATIONS_LOGGED.put(event.getOccurrence(), event.getTime());
			}
			myLatch.countDown;
		}
	}

 } </pre></p>
<p>The LatchMonitor uses a CountDownLatch, giving it the capacity to be notified of multiple events, for example, if 3 tasks are running 3 notifications of &#8220;task finished&#8221; should be received. It uses a HashMap class variable so all instances of LatchMonitor can log their events of interest and the time that they were notified of the event (ConcurrentHashMap is used because of multiple separate threads calling doNotify). Thus if the event sequence matters then NOTIFICATIONS_LOGGED can be used to make assertions as to the sequence of events.</p>
<p>Within the test you can use LatchMonitors to wait and listen for events of interest, in our case, when the lifecycle status has been set &#8220;stopping&#8221;, when tasks have finished, when the lifecycle status has been set to &#8220;stopped&#8221;. When these events have occurred the test can continue and go on to make assertions as to timings of these events, i.e., lifecycle stopping time &lt; tasks finished time &lt; lifecycle stopped time.</p>
<p>The LatchMonitor class proved useful however, it did sometimes have the snag of introducing race conditions in the test, for example,</p>
<ol>
<li>Test instructs the process to execute some tasks</li>
<li>Test sets a LatchMonitor waiting for task start events</li>
<li>Test sends the stop command to the process</li>
<li>Tests sets a LatchMonitor waiting for the lifecycle status to be stopping</li>
<li>Test sets a LatchMonitor to wait for the tasks to finish and the lifecycle status to be set to stopped</li>
</ol>
<p>Between 1. and 2. the tasks could already have started before setting the LatchMonitor to wait; so the LatchMontor is waiting for an event that has already occurred. The same thing can happen between 3. and 4, and between 3. and 5.</p>
<p>What I then did was to have the LatchMonitor implement Runnable and set the LatchMonitors running and waiting in separate threads (FutureTasks) right at the beginning of the test. So now the LatchMonitor is given a run method:</p>
<p><pre class="brush: java;">
public void run() {
	setToWaitOnNotifier();
}</pre></p>
<p>The LatchMonitor is set running and waiting at the beginning of the test before step 1.:</p>
<p><pre class="brush: java;">
FutureTask&lt;?&gt; futureStart = new FutureTask&lt;Object&gt;((Runnable) taskStartLatchMonitor, null);
Executor executor = Executors.newFixedThreadPool(1);
executor.execute(futureStart);
</pre></p>
<p>At step 2. the Test could check:</p>
<p><pre class="brush: java;">
boolean tasksNotStarted = true;
while (tasksNotStarted) {
	tasksNotStarted = !futureStart.isDone();
}</pre></p>
<p>The test will wait at step 2. for the event, or if the event had already occured the test continues.</p>
<p>This of course makes the test complicated.</p>
<p>Meanwhile, again someone on the team suggested that I take a look at the <a href="http://code.google.com/p/awaitility/">awaitility</a> package. This is a DSL for testing asynchronous code. Rather than blocking it uses polling to poll for events of interest. I played around with rewriting the tests that I&#8217;d done using the LatchMonitor approach to using <a href="http://code.google.com/p/awaitility/">awaitility</a>. I think <a href="http://code.google.com/p/awaitility/">awaitility</a> is great and I found it easy to use and thought it made the code less complex, however, it uses polling which could add time to the tests whereas with the LatchMonitor approach the tests block and continue immediately there&#8217;s been a notification of the event. </p>
<p>Having looked at the <a href="http://code.google.com/p/awaitility/">awaitility</a> code I used it as inspiration for a pattern I&#8217;ve started to use in both multithreaded unit and api tests.  For example here is a Listener:</p>
<p><pre class="brush: java;">
class TestListener implements Listener {
	private boolean beenNotified false;
	private String myNotification;
		
	public Listener(String notification) {
		myNotification = notification;
	}
		
	public void doNotify(Event event) {
		if (myNotification.equals(event.getOccurrence())) {
			beenNotified = true;
		}
	}
		
	public boolean haveBeenNotified() {
		return beenNotified;
	}
}</pre></p>
<ol>
<li>Set the Listener to listen out for the event of interest</li>
<li>Test sets off something which will end up with the event of interest taking place.</li>
<li>Test waits :<br />
<pre class="brush: java;">
int waitTime = 0; int waitTimeout = 5000; long pollingTime = 100l;
while (!listener.haveBeenNotified &amp;&amp; !(waitTime &gt; waitTimeout)) {
	Thread.sleep(pollingTime);
	waitTime+=pollingTime;
}
assertTrue(listener.haveBeenNotified);</pre></li>
<li>Test continues with assertions.</li>
</ol>
<p>This method uses polling rather waiting, but has the advantage of being in the same thread as the test (thus making the test less complex than the LatchMonitor approach). It also has the advantage of not introducing race conditions because if the event of interest has already taken place then the test falls through the while loop straight to the assertion. The waitTimout of course stops the test polling indefinitely if the event never takes place. If you find you have Thread.sleeps in your tests which are causing intermittent failures then I&#8217;ve found this pattern helpful in making such tests deterministic (though of course it makes the tests more complicated and verbose).</p>
<p>One book I&#8217;ve recently acquired, and which I wish I&#8217;d had at the beginning of the project, is <a href="http://www.amazon.co.uk/Growing-Object-Oriented-Software-Guided-Signature/dp/0321503627/ref=sr_1_1?ie=UTF8&amp;qid=1295214927&amp;sr=1-1">Growing Object-Oriented Software Guided by Tests</a> by Steve Freeman and Nat Pryce. I can recommend chapters 26 and 27 for anyone who has to write tests for asynchronous code.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ajmg.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ajmg.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ajmg.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ajmg.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ajmg.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ajmg.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ajmg.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ajmg.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ajmg.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ajmg.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ajmg.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ajmg.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ajmg.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ajmg.wordpress.com/50/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ajmg.wordpress.com&amp;blog=989423&amp;post=50&amp;subd=ajmg&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ajmg.wordpress.com/2011/01/16/testing-asynchronous-code/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f5461ea0b1559945be9bfb79598b8342?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ajmg</media:title>
		</media:content>
	</item>
		<item>
		<title>Royal Society Web Science</title>
		<link>http://ajmg.wordpress.com/2010/09/28/royal-society-web-science/</link>
		<comments>http://ajmg.wordpress.com/2010/09/28/royal-society-web-science/#comments</comments>
		<pubDate>Tue, 28 Sep 2010 22:32:48 +0000</pubDate>
		<dc:creator>ajmg</dc:creator>
				<category><![CDATA[Reviews]]></category>
		<category><![CDATA[software development]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://ajmg.wordpress.com/?p=43</guid>
		<description><![CDATA[I&#8217;ve just spent the last couple of days at the Royal Society Web Science discussion meeting which I felt was a very special event for the following reasons.  Web Science (the internet/www as an object of scientific study) is emerging as a new interdisciplinary field of activity with collaborators from both science and the humanities. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ajmg.wordpress.com&amp;blog=989423&amp;post=43&amp;subd=ajmg&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve just spent the last couple of days at the Royal Society Web Science discussion meeting which I felt was a very special event for the following reasons.  Web Science (the internet/www as an object of scientific study) is emerging as a new interdisciplinary field of activity with collaborators from both science and the humanities.  This cross over of ideas from many different disciplines (physics, mathematics, computer science, politics, philosophy, sociology) could prove fruitful, and indeed there were speakers at the event from all these disciplines. All of the speakers were very good indeed, some excellent, and all with high calibre backgrounds and good credentials; people who have obviously paid their dues with years of hard work and good research.</p>
<p>Some common themes, ideas mentioned by more than one speaker were as follows. More than one person mentioned Frigyes Karinthy and the 6 degrees of separation concept. Another theme was the value to researchers of having at their disposal unprecedentedly vast amounts of rich data, the &#8220;digital traces&#8221; (Kleinberg) of all of our interactions on the web. With this kind of data sociologists and other students of humanity have the ability to examine human behaviour, and may be able to prove and disprove theories by empirical studies at a scale not possible before.  Another common theme was the value of the internet and the web. The value of maintaining the structure of the internet and ensuring its security and scalability and the value of keeping the web democratic and open.</p>
<p>The presentations should be available to view from <a href="http://royalsociety.org/Web-science-a-new-frontier/">http://royalsociety.org/Web-science-a-new-frontier/</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ajmg.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ajmg.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ajmg.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ajmg.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ajmg.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ajmg.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ajmg.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ajmg.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ajmg.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ajmg.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ajmg.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ajmg.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ajmg.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ajmg.wordpress.com/43/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ajmg.wordpress.com&amp;blog=989423&amp;post=43&amp;subd=ajmg&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ajmg.wordpress.com/2010/09/28/royal-society-web-science/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f5461ea0b1559945be9bfb79598b8342?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ajmg</media:title>
		</media:content>
	</item>
		<item>
		<title>Reviews at revyu.com</title>
		<link>http://ajmg.wordpress.com/2008/08/23/reviews-at-revyucom/</link>
		<comments>http://ajmg.wordpress.com/2008/08/23/reviews-at-revyucom/#comments</comments>
		<pubDate>Sat, 23 Aug 2008 18:41:29 +0000</pubDate>
		<dc:creator>ajmg</dc:creator>
				<category><![CDATA[Reviews]]></category>

		<guid isPermaLink="false">http://ajmg.wordpress.com/?p=39</guid>
		<description><![CDATA[I&#8217;ve decided to put my reviews of things on the splendid revyu.com. See my latest review of Roy&#8217;s Quality Ices which is well worth a visit if you are ever in the vicinity of Ulverston in Cumbria.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ajmg.wordpress.com&amp;blog=989423&amp;post=39&amp;subd=ajmg&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve decided to put my reviews of things on the splendid <a href="http://revyu.com/">revyu.com</a>. See my latest review of <a href="http://revyu.com/reviews/eb871089ec37e92fceda62cab24c463644668cd2/about/html">Roy&#8217;s Quality Ices</a> which is well worth a visit if you are ever in the vicinity of Ulverston in Cumbria.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/ajmg.wordpress.com/39/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/ajmg.wordpress.com/39/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ajmg.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ajmg.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ajmg.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ajmg.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ajmg.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ajmg.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ajmg.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ajmg.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ajmg.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ajmg.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ajmg.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ajmg.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ajmg.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ajmg.wordpress.com/39/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ajmg.wordpress.com&amp;blog=989423&amp;post=39&amp;subd=ajmg&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ajmg.wordpress.com/2008/08/23/reviews-at-revyucom/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f5461ea0b1559945be9bfb79598b8342?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ajmg</media:title>
		</media:content>
	</item>
		<item>
		<title>Bong Sau notes</title>
		<link>http://ajmg.wordpress.com/2008/08/11/bong-sau-notes/</link>
		<comments>http://ajmg.wordpress.com/2008/08/11/bong-sau-notes/#comments</comments>
		<pubDate>Mon, 11 Aug 2008 22:20:35 +0000</pubDate>
		<dc:creator>ajmg</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Wing Chun]]></category>

		<guid isPermaLink="false">http://ajmg.wordpress.com/?p=32</guid>
		<description><![CDATA[When I asked here &#8220;is Bong Sau a deflective technique&#8221; well the answer is no, apparently. Bong Sau is certainly not a block, but neither is it a deflection; it is used purely for sensing where your opponent&#8217;s arm is and once you have made contact, and have that information, then the technique has fulfilled [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ajmg.wordpress.com&amp;blog=989423&amp;post=32&amp;subd=ajmg&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>When I asked <a href="http://ajmg.wordpress.com/2007/12/05/bong-sau-and-tan-sau-notes/">here</a> &#8220;is Bong Sau a deflective technique&#8221; well the answer is no, apparently. Bong Sau is certainly not a block, but neither is it a deflection; it is used purely for sensing where your opponent&#8217;s arm is and once you have made contact, and have that information, then the technique has fulfilled its purpose. One of the Sifus tonight gave us a demonstration to show that you could hardly see the technique when he applied it. As soon as he made contact and knew where the strike was coming from then, quick as lightening, he went into another technique to deal with the strike.</p>
<p>When practising the bong lap drill tonight my partner and I slowed it down considerably which I found very useful. Fast drilling of the techniques is rewarding and afterwards you feel as if you&#8217;ve had a good work out, but as we&#8217;re learning we also need to slow down and think about what we&#8217;re doing. My training partner gave the useful analogy of learning to write; when you learn to write as a child you start very slowly but as an adult you can dash off your signature in no time. I suppose Wing Chun is similar to any other manual skill, such as carpentry or bricklaying, in that you need to start slowly but you&#8217;ll get faster as you progress to master craftsman stage, i.e., Bruce Lee <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/ajmg.wordpress.com/32/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/ajmg.wordpress.com/32/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ajmg.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ajmg.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ajmg.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ajmg.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ajmg.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ajmg.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ajmg.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ajmg.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ajmg.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ajmg.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ajmg.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ajmg.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ajmg.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ajmg.wordpress.com/32/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ajmg.wordpress.com&amp;blog=989423&amp;post=32&amp;subd=ajmg&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ajmg.wordpress.com/2008/08/11/bong-sau-notes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f5461ea0b1559945be9bfb79598b8342?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ajmg</media:title>
		</media:content>
	</item>
		<item>
		<title>Correlative Analytics (google&#8217;s way of doing science)</title>
		<link>http://ajmg.wordpress.com/2008/06/30/correlative-analytics-googles-way-of-doing-science/</link>
		<comments>http://ajmg.wordpress.com/2008/06/30/correlative-analytics-googles-way-of-doing-science/#comments</comments>
		<pubDate>Mon, 30 Jun 2008 12:00:07 +0000</pubDate>
		<dc:creator>ajmg</dc:creator>
				<category><![CDATA[software development]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://ajmg.wordpress.com/?p=31</guid>
		<description><![CDATA[A friend sent me this link to an article describing a way of doing science (making predictions) without any theory or hypothetical model to explain the observed data. Instead, if the data is large enough (petabyte levels of data) then what are required are clever statistical algorithms to find correlations in the data and thereby [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ajmg.wordpress.com&amp;blog=989423&amp;post=31&amp;subd=ajmg&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>A <a href="http://earthrid.wordpress.com/">friend</a> sent me this <a href="http://www.kk.org/thetechnium/archives/2008/06/the_google_way.php">link to an article</a> describing a way of doing science (making predictions) without any theory or hypothetical model to explain the observed data. Instead, if the data is large enough (petabyte levels of data) then what are required are clever statistical algorithms to find correlations in the data and thereby make predictions. No theories or hypothetical models needed to see which one fits the data best.</p>
<p>These are powerful techniques opened up by having access to huge amounts of data and <a href="http://www.kk.org/">the writer of the article</a> argues that these techniques will not involve discarding the scientific method but could complement it.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/ajmg.wordpress.com/31/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/ajmg.wordpress.com/31/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ajmg.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ajmg.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ajmg.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ajmg.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ajmg.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ajmg.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ajmg.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ajmg.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ajmg.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ajmg.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ajmg.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ajmg.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ajmg.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ajmg.wordpress.com/31/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ajmg.wordpress.com&amp;blog=989423&amp;post=31&amp;subd=ajmg&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ajmg.wordpress.com/2008/06/30/correlative-analytics-googles-way-of-doing-science/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f5461ea0b1559945be9bfb79598b8342?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ajmg</media:title>
		</media:content>
	</item>
		<item>
		<title>We Will Rock You</title>
		<link>http://ajmg.wordpress.com/2008/05/26/we-will-rock-you/</link>
		<comments>http://ajmg.wordpress.com/2008/05/26/we-will-rock-you/#comments</comments>
		<pubDate>Mon, 26 May 2008 14:19:40 +0000</pubDate>
		<dc:creator>ajmg</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://ajmg.wordpress.com/?p=30</guid>
		<description><![CDATA[I was delighted to be invited on a girly trip to London last Thursday to see the musical We Will Rock You. As Gen&#8217;s brother, Jon Boydon, was playing the lead role of Galileo on that particular evening we knew it was going to be extra special. We Will Rock You is playing at the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ajmg.wordpress.com&amp;blog=989423&amp;post=30&amp;subd=ajmg&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I was delighted to be invited on a girly trip to London last Thursday to see the musical <a href="http://wewillrockyou.queenonline.com/">We Will Rock You</a>. As Gen&#8217;s brother, <a href="http://www.jonboydon.com/">Jon Boydon</a>, was playing the lead role of Galileo on that particular evening we knew it was going to be extra special. We Will Rock You is playing at the Dominion Theatre in the West End which is an old art deco theatre and, to me, seemed very big (it seats over 2000).</p>
<p>Jon was kind enough to give us a tour backstage before the performance and this was really interesting as we had a go of the camera where the actors were filmed whenever they were projected on to the big screen on stage. We were also shown where the band played in the wings and all the costumes that the actors got changed into as well as some of the settings and scenery (there is a big setting of Tottenham Court Road tube station which appears during the middle of the show). Backstage seemed to me to be a warren of corridors, little stairways and trap doors so goodness knows how the actors remember their way around to rush to the right entrance to the stage.</p>
<p>I don&#8217;t often go to musicals and I&#8217;d never heard of We Will Rock You even though it&#8217;s been going since 2002. It wasn&#8217;t what I was expecting, which was a story about Queen, I won&#8217;t spoil the story but the surprise element made it all the better. The script was written by Ben Elton and the Queen lyrics were cleverly worked into it, and of course Queen songs lend themselves to that kind of spectacular showing and big stage musical production (both Brian May and Roger Taylor are musical supervisors for the show apparently). For once I bought a programme which was worth the 4 quid as it gave an impressive amount of information and wasn&#8217;t just full of adverts. The music is live (of course!) and the band members have played with some high profile rock musicians including Eric Clapton, Meatloaf, Whitesnake and Black Sabbath.</p>
<p>Jon was excellent switching back and forth with ease, as required by the role, from rather gauche and awkward stutterer to confident big stage rock star. He had real charisma and stage presence in what was a very energetic and physically demanding role. The audience were very participative and really getting into it, and of course everyone knew the lyrics and at the end were singing along. There was a great deal of noise and applause at the end of the show along with a well deserved standing ovation.</p>
<p>Afterwards we went to a bar next to the theatre and I popped out to watch with interest as Jon was mobbed by admirers as he emerged from the stage door. </p>
<p><img align="centre" src="http://farm3.static.flickr.com/2208/2524327748_f489deaf52.jpg"></p>
<p>Jon joined us briefly for a drink then headed off home to have dinner and wind down before bed. He was saying that this sort of acting lifestyle is about 5 hours behind the rest of us as of course they&#8217;re late to bed and late to rise and do their main work during the evening.</p>
<p>We walked back to our hotel at the end of the evening tired out but happy after a very full day.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/ajmg.wordpress.com/30/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/ajmg.wordpress.com/30/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ajmg.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ajmg.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ajmg.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ajmg.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ajmg.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ajmg.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ajmg.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ajmg.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ajmg.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ajmg.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ajmg.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ajmg.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ajmg.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ajmg.wordpress.com/30/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ajmg.wordpress.com&amp;blog=989423&amp;post=30&amp;subd=ajmg&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ajmg.wordpress.com/2008/05/26/we-will-rock-you/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f5461ea0b1559945be9bfb79598b8342?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ajmg</media:title>
		</media:content>

		<media:content url="http://farm3.static.flickr.com/2208/2524327748_f489deaf52.jpg" medium="image" />
	</item>
		<item>
		<title>Madame Butterfly</title>
		<link>http://ajmg.wordpress.com/2008/05/03/madame-butterfly/</link>
		<comments>http://ajmg.wordpress.com/2008/05/03/madame-butterfly/#comments</comments>
		<pubDate>Sat, 03 May 2008 13:44:41 +0000</pubDate>
		<dc:creator>ajmg</dc:creator>
				<category><![CDATA[Reviews]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://ajmg.wordpress.com/?p=28</guid>
		<description><![CDATA[I&#8217;ve been feeling quite fed up the last couple of months and looking through the Metro yesterday morning I discovered that Madam Butterfly was on at the Alexandra Theatre that very night. Great, something different from my usual routine, so on the spur of the moment I rang a friend who said she&#8217;d come with [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ajmg.wordpress.com&amp;blog=989423&amp;post=28&amp;subd=ajmg&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been feeling quite fed up the last couple of months and looking through the Metro yesterday morning I discovered that Madam Butterfly was on at the Alexandra Theatre that very night. Great, something different from my usual routine, so on the spur of the moment I rang a friend who said she&#8217;d come with me, booked tickets for us and we were set for the evening.</p>
<p><img class="alignright" style="border:0;float:right;margin-left:10px;margin-right:10px;" src="http://ajmg.files.wordpress.com/2008/05/madambutterfly.jpg?w=450"></p>
<p><a href="http://www.ellenkent.com/shows/performances/event/madama-butterfly.html" title="Link to Ellen Kent Productions">It was the Ellen Kent production of Madam Butterfly with the Ukrainian National Opera</a> that we went to see, and we got the £21 mid range tickets and were sat right up in the gods. But this was a good thing as it gave us a great overview of what was going on on stage as well as the fantastic scenery and settings. I&#8217;ve seen Madam Butterfly years ago with the opera sung in English, however, this was sung in the original Italian and I was surprised and pleased to see that it was subtitled. I know roughly the story, but it&#8217;s good to be able to understand the details of the plot and what the singers are actually on about. Subtitles were displayed right at the top of the stage on a board which looked like the sort of board you see at New St Station to give you the train times. I&#8217;ve only been twice to the opera (both times Madam Butterfly), and I don&#8217;t know if subtitling a performance like this is the done thing, but I think it&#8217;s a splendid idea which should encourage more people like me to come to the opera as they will understand what&#8217;s going on, though I can imagine some venues being too snotty to do it.</p>
<p>The previous version of Madam Butterfly that I&#8217;ve seen was an excellent production and sung in English (and a good translation as far as I could judge), however, the music and singing in last night&#8217;s performance moved me far more. My friend Maria thinks, and I tend to agree, that this is because the opera is meant to be sung in Italian, and when sung in English you&#8217;re hearing it in a language that it was not originally designed for, no matter how good the translation is. As the music and language are intertwined perhaps this is why I found the Italian version more engaging.</p>
<p>The role of Madam Butterfly was superbly performed by a young Korean soprano, Elena Dee, in her first professional role. I got the impression reading the review in the Metro that Ellen Kent, whose production it was, doesn&#8217;t like overweight opera singers and won&#8217;t employ them no matter how good their voices are. However, my friend Maria reckons that opera is one of the performing arts where looks, age and body shape don&#8217;t matter; only the voice matters. I tend to disagree when opera is a viewing spectacle and Elena Dee, being young and good looking, really looked the part of Madam Butterfly, played a wonderful tragic heroine and had the most gorgeous voice. The tenor, Andriy Perfilov, playing Lieutenant Pinkerton was excellent and being young, handsome and fit really suited for the role. </p>
<p>I&#8217;ve heard several versions of the famous aria at the beginning of the second act, and Elena Dee&#8217;s that we heard last night was absolutely gorgeous. However, I&#8217;m going to be really picky now and say that Maria and I agreed that her voice tended to lose its power in the lower registers &#8211; the best versions of Madam Butterfly that I&#8217;ve heard have a warmth and power and vibrancy in the lower notes which to me really packs an emotional punch, but she&#8217;s a young singer and certainly has a beautiful voice and I&#8217;m sure this will come in time.</p>
<p>There was tremendous applause for her at the end of the show and tremendous applause, as well as some boos and hisses, for Andriy Perfilov in his role as the cad Pinkerton.</p>
<p>The audience were the usual middle aged couples but also a surprising, to me, number of young people dressed up for the evening (well young women to be exact as I don&#8217;t think Madam Butterfly would normally attract groups of young men on a night out).</p>
<p>I&#8217;ve never been to the Alexandra Theatre before and the seats we were sat in were quite good as they were at the corner of the grand circle &#8211; not right at the top, but with a wall behind us so that we could lean forward without annoying anyone behind.</p>
<p>It was a wonderful evening and I&#8217;ll certainly go and see another Ellen Kent production if I get the chance. </p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/ajmg.wordpress.com/28/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/ajmg.wordpress.com/28/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ajmg.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ajmg.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ajmg.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ajmg.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ajmg.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ajmg.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ajmg.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ajmg.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ajmg.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ajmg.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ajmg.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ajmg.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ajmg.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ajmg.wordpress.com/28/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ajmg.wordpress.com&amp;blog=989423&amp;post=28&amp;subd=ajmg&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ajmg.wordpress.com/2008/05/03/madame-butterfly/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f5461ea0b1559945be9bfb79598b8342?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ajmg</media:title>
		</media:content>

		<media:content url="http://ajmg.files.wordpress.com/2008/05/madambutterfly.jpg" medium="image" />
	</item>
		<item>
		<title>La La La Human Steps</title>
		<link>http://ajmg.wordpress.com/2008/02/10/la-la-la-human-steps/</link>
		<comments>http://ajmg.wordpress.com/2008/02/10/la-la-la-human-steps/#comments</comments>
		<pubDate>Sun, 10 Feb 2008 23:42:40 +0000</pubDate>
		<dc:creator>ajmg</dc:creator>
				<category><![CDATA[Reviews]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://ajmg.wordpress.com/?p=26</guid>
		<description><![CDATA[Last Tuesday, on the recommendation of a friend, we went to see the dance company La La La Human Steps at the Hippodrome. The production was called Amjad and though I don&#8217;t pretend to entirely understand the concept behind it (partly because I was too mean to buy a programme) it did seem to have [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ajmg.wordpress.com&amp;blog=989423&amp;post=26&amp;subd=ajmg&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Last Tuesday, on the recommendation of a friend, we went to see the dance company <a href="http://www.worldwidedanceuk.com/content.asp?CategoryID=1639">La La La Human Steps</a> at the Hippodrome. The production was called Amjad and though I don&#8217;t pretend to entirely understand the concept behind it (partly because I was too mean to buy a programme) it did seem to have a Swan Lake theme with the music sounding reminiscent of it in places.</p>
<p align="center"><img src="http://ajmg.files.wordpress.com/2008/02/lalala.png?w=450" alt="La La La Human Steps" /></p>
<p>I&#8217;ve seen Swan Lake but this was a modern piece and incorporated more acrobatic movements. All the dancers, male and female, looked very muscular and there was an interesting mixture of body types and heights (unlike the few classical ballets I&#8217;ve seen the dancers varied in height from quite short to very tall).  It was impressive to see the skill and athleticism of some of the moves. At a couple of points, when the male dancers were on stage, one of them looked as if he were doing a pirouette, but horizontally in the air! (Apparently this is the barrel move and it&#8217;s certainly impressive to watch simply for the skill and sheer physical courage that it must involve).  All the dancers seemed to have superb control where every gesture from posture to fingertips seemed to have meaning.</p>
<p>The music was quite mournful and was played live by a group of four musicians (grand piano, cello and two violins).  There was good use of lighting (rather cold lighting) which seemed to catch the movements of the dancers very well (at first I thought the dancers had finger extensions as their swan like gestures were so graceful, but I think that this was the light emphasising the hand movements).</p>
<p>The piece was long &#8211; it started at 7.30 pm and continued until 9.15 pm with no interval and yet I didn&#8217;t get bored or restless.</p>
<p>I felt that the audience was unusual for a ballet in that it consisted of a good mixture of ages; along with well heeled retired people who, I imagine, have the time and money to attend ballets, there were people our age as well as a lot of youngsters cheering and whistling loudly at the end which made me feel I must be attending something cool <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/ajmg.wordpress.com/26/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/ajmg.wordpress.com/26/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ajmg.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ajmg.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ajmg.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ajmg.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ajmg.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ajmg.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ajmg.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ajmg.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ajmg.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ajmg.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ajmg.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ajmg.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ajmg.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ajmg.wordpress.com/26/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ajmg.wordpress.com&amp;blog=989423&amp;post=26&amp;subd=ajmg&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ajmg.wordpress.com/2008/02/10/la-la-la-human-steps/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f5461ea0b1559945be9bfb79598b8342?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ajmg</media:title>
		</media:content>

		<media:content url="http://ajmg.files.wordpress.com/2008/02/lalala.png" medium="image">
			<media:title type="html">La La La Human Steps</media:title>
		</media:content>
	</item>
		<item>
		<title>Global Party</title>
		<link>http://ajmg.wordpress.com/2008/01/27/global-party/</link>
		<comments>http://ajmg.wordpress.com/2008/01/27/global-party/#comments</comments>
		<pubDate>Sun, 27 Jan 2008 17:13:01 +0000</pubDate>
		<dc:creator>ajmg</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://ajmg.wordpress.com/?p=25</guid>
		<description><![CDATA[Yesterday evening we went to a &#8220;Global Party&#8221; held at the Cross in Moseley. This was a very nice affair with a good live band, the Late Arrivals (though unfortunately the sound system didn&#8217;t do them justice as it was so loud all definition appeared to be lost in a mush of noise). However, the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ajmg.wordpress.com&amp;blog=989423&amp;post=25&amp;subd=ajmg&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Yesterday evening we went to a &#8220;Global Party&#8221; held at the Cross in Moseley. This was a very nice affair with a good live band, the <a href="http://profile.myspace.com/index.cfm?fuseaction=user.viewprofile&amp;friendid=69538102">Late Arrivals</a> (though unfortunately the sound system didn&#8217;t do them justice as it was so loud all definition appeared to be lost in a mush of noise). However, the main reason we went was to see our belly dance teacher Yasmine perform. She put on a sterling performance which had everyone looking on in admiration at her artistry in which she made the most difficult moves look relaxed and easy. Yasmine explains to us in our classes that belly dancing is an ancient North African folkloric dance and this is the emphasis she puts on it when teaching. The more modern cabaret version of the dance came about later.</p>
<p>Belly dancing has an emphasis on isolation of the muscles so that they move while the rest of the body is kept still, for example, in some moves you endeavour to keep the torso, neck and head still while the legs and the side abdominal muscles (the obliques I think these are called) do the work. This concept of isolating certain muscles seems similar to what is practiced in hip hop though of course the dances are very different.</p>
<p>One thing I have noticed is that belly dancing seems to bring out the exhibitionist in some people. At the end of Yasmine&#8217;s performance she started to invite people to dance with her and, while being flattered at the invitation, most of us will still let her take centre stage as even with a few lessons we know we&#8217;re going to look really rubbish beside her. However, a few people seemed to take this as an invitation to take over the stage, try to push Yasmine out of the limelight and make themselves the centre of attention. Yasmine, of course, handled the matter with grace and inclusiveness, showing tolerance and friendliness to the people concerned who were &#8230; shameless, is the word that springs to mind. This is not a judgment, merely an observation, and it can be very funny in a cringe making kind of way.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/ajmg.wordpress.com/25/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/ajmg.wordpress.com/25/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ajmg.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ajmg.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ajmg.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ajmg.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ajmg.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ajmg.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ajmg.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ajmg.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ajmg.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ajmg.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ajmg.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ajmg.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ajmg.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ajmg.wordpress.com/25/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ajmg.wordpress.com&amp;blog=989423&amp;post=25&amp;subd=ajmg&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ajmg.wordpress.com/2008/01/27/global-party/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f5461ea0b1559945be9bfb79598b8342?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ajmg</media:title>
		</media:content>
	</item>
	</channel>
</rss>
