<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Noldorin's Blog</title>
	
	<link>http://blog.noldorin.com</link>
	<description>Musings on science, technology, philosophy, and the many other wonders of life</description>
	<lastBuildDate>Wed, 28 Jul 2010 16:30:24 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/noldorin-blog" /><feedburner:info uri="noldorin-blog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>“Blogging and the Blogosphere”</title>
		<link>http://feedproxy.google.com/~r/noldorin-blog/~3/_FSERdoaaIw/</link>
		<comments>http://blog.noldorin.com/2010/07/blogging-and-the-blogosphere/#comments</comments>
		<pubDate>Tue, 27 Jul 2010 11:00:40 +0000</pubDate>
		<dc:creator>Noldorin</dc:creator>
				<category><![CDATA[Humanities]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[answers site]]></category>
		<category><![CDATA[area 51]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[blogging]]></category>
		<category><![CDATA[blogging community]]></category>
		<category><![CDATA[blogosphere]]></category>
		<category><![CDATA[discussion forums]]></category>
		<category><![CDATA[forums]]></category>
		<category><![CDATA[online community]]></category>
		<category><![CDATA[physics]]></category>
		<category><![CDATA[question site]]></category>
		<category><![CDATA[stack exchange]]></category>
		<category><![CDATA[stack overflow]]></category>
		<category><![CDATA[stackexchange]]></category>
		<category><![CDATA[stackoverflow]]></category>
		<category><![CDATA[writing]]></category>

		<guid isPermaLink="false">http://blog.noldorin.com/?p=761</guid>
		<description><![CDATA[In the mood of my previous post about the Physics community growing up on StackExchange, I have been somewhat inspired to create my own proposal for a new community over on Area 51. Being a long-time amateur blogger, I&#8217;ve realised the many challenges posed by starting, maintaining, and above all popularising your own blog. My [...]]]></description>
			<content:encoded><![CDATA[<p>In the mood of <a href="/2010/07/physics-community-on-stack-exchange/">my previous post</a> about <a href="http://area51.stackexchange.com/proposals/1908/physics" onclick="pageTracker._trackPageview('/outgoing/area51.stackexchange.com/proposals/1908/physics?referer=');">the Physics community growing up on StackExchange</a>, I have been somewhat inspired to create my own proposal for a new community over on <a href="http://area51.stackexchange.com/" onclick="pageTracker._trackPageview('/outgoing/area51.stackexchange.com/?referer=');">Area 51</a>. Being a long-time amateur blogger, I&#8217;ve realised the many challenges posed by starting, maintaining, and above all popularising your own blog. My proposal for a community site on the subject of <strong><a href="http://area51.stackexchange.com/proposals/15215/blogging-and-the-blogosphere" onclick="pageTracker._trackPageview('/outgoing/area51.stackexchange.com/proposals/15215/blogging-and-the-blogosphere?referer=');">Blogging and the Blogosphere</a></strong> should hopefully help resolve this difficulty! I was surprised to see that nothing quite of the sort had yet been created on the StackExchange staging ground, and a quick take-off in support is suggesting that there is much demand for such a community. For those who aren&#8217;t familiar, the process of creating a StackExchange community is <a href="http://area51.stackexchange.com/faq" onclick="pageTracker._trackPageview('/outgoing/area51.stackexchange.com/faq?referer=');">explained very plainly on the website</a>.</p>
<p>You can go visit the proposal right now to get an idea of some of the questions and topics. Or even better, comment and contribute some of your own! If the idea of creating such a community appeals to you as it does to me, please take (literally) a few seconds to log in and <a href="http://area51.stackexchange.com/proposals/15215/blogging-and-the-blogosphere?referrer=j3oha8oIHIkVva7N7UbKDA2" onclick="pageTracker._trackPageview('/outgoing/area51.stackexchange.com/proposals/15215/blogging-and-the-blogosphere?referrer=j3oha8oIHIkVva7N7UbKDA2&amp;referer=');">follow the fledgling community</a>. By doing this you show support for the idea and are speeding up the process of it becoming a full online community site.</p>
<img src="http://feeds.feedburner.com/~r/noldorin-blog/~4/_FSERdoaaIw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.noldorin.com/2010/07/blogging-and-the-blogosphere/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.noldorin.com/2010/07/blogging-and-the-blogosphere/</feedburner:origLink></item>
		<item>
		<title>Physics Community on Stack Exchange</title>
		<link>http://feedproxy.google.com/~r/noldorin-blog/~3/mzrjyvwNbO4/</link>
		<comments>http://blog.noldorin.com/2010/07/physics-community-on-stack-exchange/#comments</comments>
		<pubDate>Tue, 20 Jul 2010 16:27:11 +0000</pubDate>
		<dc:creator>Noldorin</dc:creator>
				<category><![CDATA[Maths & Science]]></category>
		<category><![CDATA[answers site]]></category>
		<category><![CDATA[area 51]]></category>
		<category><![CDATA[discussion forums]]></category>
		<category><![CDATA[forums]]></category>
		<category><![CDATA[math overflow]]></category>
		<category><![CDATA[mathoverflow]]></category>
		<category><![CDATA[online community]]></category>
		<category><![CDATA[physics]]></category>
		<category><![CDATA[physics community]]></category>
		<category><![CDATA[question site]]></category>
		<category><![CDATA[stack exchange]]></category>
		<category><![CDATA[stack overflow]]></category>
		<category><![CDATA[stackexchange]]></category>
		<category><![CDATA[stackoverflow]]></category>

		<guid isPermaLink="false">http://blog.noldorin.com/?p=755</guid>
		<description><![CDATA[For those of you familiar with the wonderful Stack Overflow site for questions and discussing relating to programming, you will know how astoundingly successful this sort of website/online community model has been. No surprise that the number of questions on the site, only about a year and a half in, is already approaching 1 million, [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" title="Stack Overflow logo" src="http://upload.wikimedia.org/wikipedia/en/9/95/Stack_Overflow_website_logo.png" alt="Stack Overflow" width="257" height="84" />For those of you familiar with the wonderful <a href="http://blog.stackexchange.com/" onclick="pageTracker._trackPageview('/outgoing/blog.stackexchange.com/?referer=');">Stack Overflow</a> site for questions and discussing relating to programming, you will know how astoundingly successful this sort of website/online community model has been. No surprise that the number of questions on the site, only about a year and a half in, is already approaching 1 million, and <a href="http://blog.stackexchange.com/" onclick="pageTracker._trackPageview('/outgoing/blog.stackexchange.com/?referer=');">various sister sites have been spawned</a>.</p>
<p>Many unofficial sites that use the Stack Overflow software (the so-called Stack Exchange) system have also sprung up over the past months, perhaps the most active and well-known of these being <a href="http://mathoverflow.net/" onclick="pageTracker._trackPageview('/outgoing/mathoverflow.net/?referer=');">Math Overflow</a>. (Beware, however, the content is more than a bit scary unless you&#8217;re a post-graduate level mathematician!) This surge in popularity has even led to the creation of the <a href="http://area51.stackexchange.com/" onclick="pageTracker._trackPageview('/outgoing/area51.stackexchange.com/?referer=');">Area 51 Stack Exchange</a> site, which is a sort of officially-run staging ground for new Stack Exchange sites. (It does however require a strict process of definition, commitment, and beta testing before such communities are created as websites of there own.) Several communities are already on there way to becoming fully-fledged communities in the theme of Stack Overflow, for topics such as Web Applications, Cooking, Mathematics, and English Language.</p>
<p>What is more, a <a href="http://area51.stackexchange.com/proposals/1908/physics" onclick="pageTracker._trackPageview('/outgoing/area51.stackexchange.com/proposals/1908/physics?referer=');">Physics proposal</a> has been made for a Stack Exchange community, but is still only in its middle stages of creation. What it needs at the moment is what the creators of Area 51 term <em>commitment</em> (users stating that they intend to be active in the new community). No surprise then, that I&#8217;m advertising to the physics enthusiasts out there to go and <a href="http://area51.stackexchange.com/proposals/1908/physics?referrer=j3oha8oIHIkVva7N7UbKDA2" onclick="pageTracker._trackPageview('/outgoing/area51.stackexchange.com/proposals/1908/physics?referrer=j3oha8oIHIkVva7N7UbKDA2&amp;referer=');"><strong>sign up for the new community</strong></a> by committing. It takes no more time than signing in with your Google Account and clicking a button, but will give this community a real chance to develop into something great.</p>
<p>The popularity and sheer visitor count of the Stack Exchange and now the Area 51 websites should indicate that this could potentially be a very active and hugely useful community for physicists and physics students assisting each other in problems and sharing knowledge across the world. Unfortunately the existing attempt at a Stack Exchange community for physics over at <a href="http://physicsoverflow.net/" onclick="pageTracker._trackPageview('/outgoing/physicsoverflow.net/?referer=');">physicsoverflow.net</a> has shown little sign of taking off. Let us hope the two sites merge once things take off on the staging ground. Certainly, the process that Area 51 forces such sites to go through does however give every sign of success!</p>
<img src="http://feeds.feedburner.com/~r/noldorin-blog/~4/mzrjyvwNbO4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.noldorin.com/2010/07/physics-community-on-stack-exchange/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.noldorin.com/2010/07/physics-community-on-stack-exchange/</feedburner:origLink></item>
		<item>
		<title>Handy iPhone Apps and Websites</title>
		<link>http://feedproxy.google.com/~r/noldorin-blog/~3/KGjM91sHqGQ/</link>
		<comments>http://blog.noldorin.com/2010/06/handy-iphone-apps-and-websites/#comments</comments>
		<pubDate>Tue, 29 Jun 2010 23:01:27 +0000</pubDate>
		<dc:creator>Noldorin</dc:creator>
				<category><![CDATA[Fun]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[Apple store]]></category>
		<category><![CDATA[applications]]></category>
		<category><![CDATA[apps]]></category>
		<category><![CDATA[iOS 3]]></category>
		<category><![CDATA[iOS 4]]></category>
		<category><![CDATA[ipad]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[iphone 3g]]></category>
		<category><![CDATA[iphone 3gs]]></category>
		<category><![CDATA[iphone 4g]]></category>
		<category><![CDATA[iphone apps]]></category>
		<category><![CDATA[iphone os 3]]></category>
		<category><![CDATA[iphone os 4]]></category>
		<category><![CDATA[ipod]]></category>
		<category><![CDATA[ipod touch]]></category>
		<category><![CDATA[multitasking]]></category>
		<category><![CDATA[operating systems]]></category>
		<category><![CDATA[programs]]></category>
		<category><![CDATA[recommendations]]></category>
		<category><![CDATA[user interface]]></category>

		<guid isPermaLink="false">http://blog.noldorin.com/?p=745</guid>
		<description><![CDATA[With the recent release iOS 4 (the new operating system for the iPhone), I&#8217;ve been slightly encouraged about the future of Apple &#8211; though some of this has been tempered by the lack of impressiveness of the iPhone 4G. In particular, the addition of real multitasking is a winner, along with several subtle but effective [...]]]></description>
			<content:encoded><![CDATA[<p>With the recent release <a href="http://www.apple.com/iphone/softwareupdate/" onclick="pageTracker._trackPageview('/outgoing/www.apple.com/iphone/softwareupdate/?referer=');">iOS 4</a> (the new operating system for the iPhone), I&#8217;ve been slightly encouraged about the future of Apple &#8211; though some of this has been tempered by the lack of impressiveness of the iPhone 4G. In particular, the addition of real multitasking is a winner, along with several subtle but effective improvements in the user interface.</p>
<p>So, I thought I&#8217;d take this opportunity to share a brief list of some of the most clever/entertaining/useful apps I have on my iPhone at the moment. Not that anyone with an iPhone doesn&#8217;t already have enough, but it&#8217;s a handy reference list if you&#8217;re being picky about what to install, or browsing through streams of ratings! I&#8217;ve also thrown in a few iPhone/mobile-specific websites that are worth noting.</p>
<p><strong>Information and Utilities<br />
</strong></p>
<ul>
<li>Wikipedia/Wikipanion &#8211; pretty similar, but the former is a new official app, and the latter a slightly more established one</li>
<li>Wolfram &#8211; great native interface for accessing Wolfram Alpha</li>
<li>Google Earth &#8211; touch interface for Google Earth</li>
<li>Tube Map &#8211; map and other utilities for London Underground</li>
<li>Bloomberg &#8211; live updates and news for stocks, bonds, and currencies</li>
<li>GraphCalc &#8211; advanced graphing and calculator for mathematical functions</li>
<li>RedLaser &#8211; scans any bar code using camera and looks up best prices online</li>
<li>iBooks &#8211; official app for downloading and reading books from the Apple store</li>
<li>Stanza &#8211; download and read books, with interfaces for websites like Project Gutenburg</li>
<li>IMDB &#8211; browse and view information about films</li>
<li>Google Translate (website) &#8211; instantaneously translate text between any two languages</li>
</ul>
<p><strong>Media</strong></p>
<ul>
<li>BBC iPlayer (website) &#8211; watch recent BBC shows anywhere for free</li>
<li>TVCatchup Mobile (website) &#8211; watch UK FreeView channels anywhere for free</li>
<li>NYTimes &#8211; best news app around, though it doesn&#8217;t cover local UK news of course</li>
<li>BBC News &#8211; pretty useful app for UK and World news, though could do with a few usability improvements</li>
<li>Remote &#8211; control iTunes on any computer within the local network</li>
<li>Files (lite) &#8211; local file system for viewing images, Microsoft Office, and other files, can upload from anywhere in local network</li>
<li>Dropbox &#8211; upload and download files from/to your space on the Dropbox.com service</li>
</ul>
<p><strong>Social</strong></p>
<ul>
<li>Facebook &#8211; a great (and pretty complete) app for accessing Facebook, also an effective time sink!</li>
<li>Skype &#8211; official Skype app, works alomost exactly like the normal phone app, and completely free</li>
<li>Messenger &#8211; official MSN messenger app</li>
<li>Google Talk &#8211; web app, accessible via the GTalk site</li>
<li>Colloquy &#8211; IRC client</li>
</ul>
<p><strong>Fun and Games</strong></p>
<ul>
<li>DoodleJump</li>
<li>Angry Birds</li>
<li>iChess</li>
<li>Scrabble</li>
<li>Physics Free</li>
</ul>
<p>Note that most of these apps (and all of the websites) are completely free, though a few cost a small amount of money, typically no more than £1.</p>
<img src="http://feeds.feedburner.com/~r/noldorin-blog/~4/KGjM91sHqGQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.noldorin.com/2010/06/handy-iphone-apps-and-websites/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.noldorin.com/2010/06/handy-iphone-apps-and-websites/</feedburner:origLink></item>
		<item>
		<title>Musical Gem of the Week #12</title>
		<link>http://feedproxy.google.com/~r/noldorin-blog/~3/eWTIPmui8Mk/</link>
		<comments>http://blog.noldorin.com/2010/06/musical-gem-of-the-week-12/#comments</comments>
		<pubDate>Wed, 02 Jun 2010 22:55:40 +0000</pubDate>
		<dc:creator>Noldorin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[classical music]]></category>
		<category><![CDATA[common practice era]]></category>
		<category><![CDATA[imperial russia]]></category>
		<category><![CDATA[marche slave]]></category>
		<category><![CDATA[marches]]></category>
		<category><![CDATA[music]]></category>
		<category><![CDATA[musical composition]]></category>
		<category><![CDATA[nationalism]]></category>
		<category><![CDATA[orchestral compositions]]></category>
		<category><![CDATA[ottoman empire]]></category>
		<category><![CDATA[ottomans]]></category>
		<category><![CDATA[Pyotr Ilyich Tchaikovsky]]></category>
		<category><![CDATA[recordings]]></category>
		<category><![CDATA[romantic era]]></category>
		<category><![CDATA[romantic period]]></category>
		<category><![CDATA[romanticism]]></category>
		<category><![CDATA[russia]]></category>
		<category><![CDATA[russian]]></category>
		<category><![CDATA[russian composers]]></category>
		<category><![CDATA[russian empire]]></category>
		<category><![CDATA[russian music]]></category>
		<category><![CDATA[russian nationalism]]></category>
		<category><![CDATA[russo-turkish war]]></category>
		<category><![CDATA[serbia]]></category>
		<category><![CDATA[slavic]]></category>
		<category><![CDATA[slavonic march]]></category>
		<category><![CDATA[tchaikovsky]]></category>
		<category><![CDATA[the five]]></category>
		<category><![CDATA[the mighty handful]]></category>
		<category><![CDATA[the nutcracker]]></category>
		<category><![CDATA[turks]]></category>

		<guid isPermaLink="false">http://blog.noldorin.com/?p=727</guid>
		<description><![CDATA[The genius of Pyotr Ilyich Tchaikovsky is beyond doubt, yet the life and reputation of the man were often greatly troubled. (For that matter, it is hard to think of any great Romantic composer, from Beethoven to Schumann to Chopin, who did not have their fair share of life&#8217;s pains.) Not only was he constantly [...]]]></description>
			<content:encoded><![CDATA[<div class="wp-caption alignright" style="width: 250px"><img title="Portrait of Pyotr Ilyich Tchaikovsky" src="http://upload.wikimedia.org/wikipedia/commons/thumb/d/d7/Portr%C3%A4t_des_Komponisten_Pjotr_I._Tschaikowski_%281840-1893%29.jpg/240px-Portr%C3%A4t_des_Komponisten_Pjotr_I._Tschaikowski_%281840-1893%29.jpg" alt="Pyotr Ilyich Tchaikovsky" width="240" height="308" /><p class="wp-caption-text">Pyotr Ilyich Tchaikovsky, by Nikolay Kuznetsov, 1893</p></div>
<p>The genius of Pyotr Ilyich Tchaikovsky is beyond doubt, yet the life and reputation of the man were often greatly troubled. (For that matter, it is hard to think of any great Romantic composer, from Beethoven to Schumann to Chopin, who did not have their fair share of life&#8217;s pains.) Not only was he constantly under attack for his homosexuality (which he tried constantly to hide), but his compositions were given a tough time even in his own country. It is not surprising that the portrait taken in his final year shows such a grave expression. His unique yet essentially Western European style was much resented by the the so-called <a href="http://en.wikipedia.org/wiki/Mighty_Handful" onclick="pageTracker._trackPageview('/outgoing/en.wikipedia.org/wiki/Mighty_Handful?referer=');">Mighty Handful</a> of contemporary Russian composers, who had different ideals (largely nationalistic). Later in the 20th century, his music was considered somewhat superficial and trivial, yet this view has since disappeared for the most part. His creative talents probably deserve more merit than the layman&#8217;s recognition of a few parts from <a href="http://en.wikipedia.org/wiki/The_Nutcracker" onclick="pageTracker._trackPageview('/outgoing/en.wikipedia.org/wiki/The_Nutcracker?referer=');">The Nutcracker</a> suite!</p>
<p>Tchaikovsky&#8217;s <a href="http://en.wikipedia.org/wiki/Slavonic_March" onclick="pageTracker._trackPageview('/outgoing/en.wikipedia.org/wiki/Slavonic_March?referer=');">Slavonic March</a> in B-flat minor (often given its French name, <em>Marche Slave</em>) is one of his minor works, but one that stands out for me. Emotionally charged, its mood varies from the sombre (reflecting the <a href="http://en.wikipedia.org/wiki/Russo-Turkish_War_%281877%E2%80%931878%29" onclick="pageTracker._trackPageview('/outgoing/en.wikipedia.org/wiki/Russo-Turkish_War_281877_E2_80_931878_29?referer=');">Russo-Turkish war</a> of the time) to the hopeful, even cheerful. For sure, there is hardly a piece more evocative of Imperial Russia!</p>
<p><a href="http://media.vad1.com/temporary_url_20070929kldcg/tchaikovsky-marche-slave-op31-orchestre_symphonique_de_montreal-charles_dutoit-11.mp3" onclick="pageTracker._trackPageview('/outgoing/media.vad1.com/temporary_url_20070929kldcg/tchaikovsky-marche-slave-op31-orchestre_symphonique_de_montreal-charles_dutoit-11.mp3?referer=');"><strong>Download and Listen Here</strong></a></p>
<p>(Performed by the Montreal Symphony Orchestra, 1999.)</p>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 142px; width: 1px; height: 1px; overflow: hidden;">http://en.wikipedia.org/wiki/Slavonic_March</div>
<img src="http://feeds.feedburner.com/~r/noldorin-blog/~4/eWTIPmui8Mk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.noldorin.com/2010/06/musical-gem-of-the-week-12/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://media.vad1.com/temporary_url_20070929kldcg/tchaikovsky-marche-slave-op31-orchestre_symphonique_de_montreal-charles_dutoit-11.mp3" length="20709376" type="audio/mpeg" />
		<feedburner:origLink>http://blog.noldorin.com/2010/06/musical-gem-of-the-week-12/</feedburner:origLink></item>
		<item>
		<title>Musical Gem of the Week #11</title>
		<link>http://feedproxy.google.com/~r/noldorin-blog/~3/TFNMW92fJNM/</link>
		<comments>http://blog.noldorin.com/2010/05/musical-gem-of-the-week-11/#comments</comments>
		<pubDate>Sat, 22 May 2010 23:50:49 +0000</pubDate>
		<dc:creator>Noldorin</dc:creator>
				<category><![CDATA[Humanities]]></category>
		<category><![CDATA[bach]]></category>
		<category><![CDATA[christian converts]]></category>
		<category><![CDATA[classical era]]></category>
		<category><![CDATA[classical music]]></category>
		<category><![CDATA[classical period]]></category>
		<category><![CDATA[common practice era]]></category>
		<category><![CDATA[concert overture]]></category>
		<category><![CDATA[felix mendelssohn]]></category>
		<category><![CDATA[fingal's cave]]></category>
		<category><![CDATA[german composers]]></category>
		<category><![CDATA[hebrides]]></category>
		<category><![CDATA[hebrides overture]]></category>
		<category><![CDATA[inner hebrides]]></category>
		<category><![CDATA[j. s. bach]]></category>
		<category><![CDATA[jewish composers]]></category>
		<category><![CDATA[johann sebastian bach]]></category>
		<category><![CDATA[mendelssohn]]></category>
		<category><![CDATA[music]]></category>
		<category><![CDATA[musical composition]]></category>
		<category><![CDATA[nature]]></category>
		<category><![CDATA[overture]]></category>
		<category><![CDATA[recordings]]></category>
		<category><![CDATA[richard wagner]]></category>
		<category><![CDATA[romantic era]]></category>
		<category><![CDATA[romantic period]]></category>
		<category><![CDATA[romanticism]]></category>
		<category><![CDATA[scotland]]></category>
		<category><![CDATA[staffa]]></category>
		<category><![CDATA[wagner]]></category>

		<guid isPermaLink="false">http://blog.noldorin.com/?p=710</guid>
		<description><![CDATA[Felix Mendelssohn was a prolific composer of symphonies, concerti, operas, piano music, and songs, yet the Hebrides Overture stands out among all his works as one of the most beautiful and enchanting compositions of the era. Although you might classify it as a &#8220;concert overture&#8221;, its lyrical and emotive nature truly makes it unique among [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://en.wikipedia.org/wiki/Felix_Mendelssohn" onclick="pageTracker._trackPageview('/outgoing/en.wikipedia.org/wiki/Felix_Mendelssohn?referer=');"></a></p>
<div class="wp-caption alignright" style="width: 250px"><a><img title="Fingal's Cave, Staffa, Inner Hebrides, Scotland" src="http://upload.wikimedia.org/wikipedia/commons/thumb/c/c1/Staffa04.jpg/240px-Staffa04.jpg" alt="Photo of Fingal's Cave" width="240" /></a><p class="wp-caption-text">View near the entrance of Fingal&#39;s Cave on Staffa in the Hebrides isles off Scotland</p></div>
<p>Felix Mendelssohn was a prolific composer of symphonies, concerti, operas, piano music, and songs, yet the <a href="http://en.wikipedia.org/wiki/Hebrides_Overture" onclick="pageTracker._trackPageview('/outgoing/en.wikipedia.org/wiki/Hebrides_Overture?referer=');">Hebrides Overture</a> stands out among all his works as one of the most beautiful and enchanting compositions of the era. Although you might classify it as a &#8220;concert overture&#8221;, its lyrical and emotive nature truly makes it unique among all pieces.</p>
<p>The style of Mendelssohn&#8217;s music was often criticised within his own lifetime as being too traditional and unadventurous (or even lacking in depth). Fortunately, the composer and his style has found much greater appreciation in recent decades. A curious fact, considering that he did so much to revive the works of J. S. Bach, himself a monumental composer whose music went out of favour for many years following his death. Undoubtedly, the predominance of his contemporary on the German music scene, Richard Wagner, who strongly voiced his antisemitism (Mendelssohn was born of Jewish heritage, despite later becoming a Christian), did nothing to help his popularity. Indeed, it strikes me as a great shame that himself and his music were disparaged so greatly during the 19th century, while arguably lesser composers such as Wagner were promoted. He did however find much popularity in Britain, hence his numerous visits to the island including Fingal&#8217;s Cave, situated in the Inner Hebrides, inspiring the piece that is the subject of this post.</p>
<p><a href="http://www.musikkollegium.ch/de/musik-download/komponisten.html?tx_abdownloads_pi1%5Baction%5D=getviewclickeddownload&amp;tx_abdownloads_pi1%5Buid%5D=134&amp;cHash=43c86a26c5" onclick="pageTracker._trackPageview('/outgoing/www.musikkollegium.ch/de/musik-download/komponisten.html?tx_abdownloads_pi1_5Baction_5D=getviewclickeddownload_amp_tx_abdownloads_pi1_5Buid_5D=134_amp_cHash=43c86a26c5&amp;referer=');"><strong>Download or Listen Here</strong></a></p>
<p>(Performed by the <a href="http://www.musikkollegium.ch/" onclick="pageTracker._trackPageview('/outgoing/www.musikkollegium.ch/?referer=');">Musikkollegium Winterthur</a> orchestra.)</p>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 184px; width: 1px; height: 1px; overflow: hidden;">
<h3 class="r"><a class="l" onmousedown="return  rwt(this,'spellmeleon_result','','result','1','AFQjCNFJQY-TdKDj7MZYwPXS5ZHD81cxlA','&amp;sig2=bOPj7WvoZn9vOLCCHQCeCw','0CBQQhgIwAA')" href="http://www.musikkollegium.ch/" onclick="pageTracker._trackPageview('/outgoing/www.musikkollegium.ch/?referer=');"><em>Musikkollegium</em> Winterthur</a></h3>
</div>
<img src="http://feeds.feedburner.com/~r/noldorin-blog/~4/TFNMW92fJNM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.noldorin.com/2010/05/musical-gem-of-the-week-11/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.noldorin.com/2010/05/musical-gem-of-the-week-11/</feedburner:origLink></item>
		<item>
		<title>Combinatorics in C#</title>
		<link>http://feedproxy.google.com/~r/noldorin-blog/~3/X4wOWLLS4YU/</link>
		<comments>http://blog.noldorin.com/2010/05/combinatorics-in-csharp/#comments</comments>
		<pubDate>Sat, 22 May 2010 17:20:29 +0000</pubDate>
		<dc:creator>Noldorin</dc:creator>
				<category><![CDATA[Maths & Science]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[.net 4.0]]></category>
		<category><![CDATA[.net framework]]></category>
		<category><![CDATA[.net framework 4.0]]></category>
		<category><![CDATA[algorithms]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[c# 4.0]]></category>
		<category><![CDATA[combinations]]></category>
		<category><![CDATA[combinations with repetition]]></category>
		<category><![CDATA[combinations without repetition]]></category>
		<category><![CDATA[combinatorics]]></category>
		<category><![CDATA[helper class]]></category>
		<category><![CDATA[math]]></category>
		<category><![CDATA[maths]]></category>
		<category><![CDATA[mono]]></category>
		<category><![CDATA[permutations]]></category>
		<category><![CDATA[permutations with repetition]]></category>
		<category><![CDATA[permutations without repetition]]></category>
		<category><![CDATA[permute]]></category>
		<category><![CDATA[space complexity]]></category>
		<category><![CDATA[time complexity]]></category>
		<category><![CDATA[utility class]]></category>
		<category><![CDATA[utility methods]]></category>

		<guid isPermaLink="false">http://blog.noldorin.com/?p=703</guid>
		<description><![CDATA[Partly encouraged by this year&#8217;s Google Code Jam contest, but likely more so by the lack of any combinatorics functionality in the .NET Framework (still missing in most recent version 4.0), I thought I would put a bit of effort into writing efficient implementations of algorithms in C#. The following algorithms are implemented (between the [...]]]></description>
			<content:encoded><![CDATA[<p>Partly encouraged by this year&#8217;s <a href="http://code.google.com/codejam" onclick="pageTracker._trackPageview('/outgoing/code.google.com/codejam?referer=');">Google Code Jam</a> contest, but likely more so by the lack of any combinatorics functionality in the .NET Framework (still missing in most recent version 4.0), I thought I would put a bit of effort into writing efficient implementations of algorithms in C#. The following algorithms are implemented (between the <em>GetPermutations</em> and <em>GetCombinations</em> methods).</p>
<ul>
<li><a href="http://en.wikipedia.org/wiki/Permutation" onclick="pageTracker._trackPageview('/outgoing/en.wikipedia.org/wiki/Permutation?referer=');">Permutations</a> with repetition</li>
<li>Permutations without repetition</li>
<li><a href="http://en.wikipedia.org/wiki/Combination" onclick="pageTracker._trackPageview('/outgoing/en.wikipedia.org/wiki/Combination?referer=');">Combinations</a> with repetition</li>
<li>Combinations without repetition</li>
</ul>
<p>Worth noting is that the algorithms run purely in-place on the list, and involve no recursion (only a single while loop). While memory usage is minimal, they do of course still run in factorial (or equivalently exponential) time complexity, though it&#8217;s well known you can&#8217;t do any better than that if you require <em>all</em> permutations/combinations of a given size.</p>
<p><strong><a href="http://noldorin.com/programming/CombinatoricsUtilities.cs.txt"><strong>Download  the full (documented) code for the utility class here.</strong></a></strong></p>
<p>All four algorithms have been sufficiently tested and verified for small lists, running on .NET 4.0 (Windows). I would be inclined to bet everything runs perfectly well on Mono too. Needless to say, bug reports and feedback are welcome.</p>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow: hidden;">using System;<br />
using System.Collections.Generic;<br />
using System.Diagnostics;</p>
<p>// Copyright (c) 2010 Alex Regueiro<br />
// Licensed under MIT license, available at &lt;http://www.opensource.org/licenses/mit-license.php&gt;.<br />
// Published originally at &lt;http://blog.noldorin.com/2010/05/combinatorics-in-csharp/&gt;.<br />
// Version 1.0, released 22nd May 2010.<br />
public static class CombinatoricsUtilities<br />
{<br />
// Error messages<br />
private const string errorMessageValueLessThanZero = &#8220;Value must be greater than zero, if specified.&#8221;;<br />
private const string errorMessagesIndicesListInvalidSize = &#8220;List of indices must have same size as list of elements.&#8221;;</p>
<p>/// &lt;summary&gt;<br />
/// Gets all permutations (of a given size) of a given list, either with or without reptitions.<br />
/// &lt;/summary&gt;<br />
/// &lt;typeparam name=&#8221;T&#8221;&gt;The type of the elements in the list.&lt;/typeparam&gt;<br />
/// &lt;param name=&#8221;list&#8221;&gt;The list of which to get permutations.&lt;/param&gt;<br />
/// &lt;param name=&#8221;action&#8221;&gt;The action to perform on each permutation of the list.&lt;/param&gt;<br />
/// &lt;param name=&#8221;resultSize&#8221;&gt;The number of elements in each resulting permutation; or &lt;see langword=&#8221;null&#8221;/&gt; to get<br />
/// premutations of the same size as &lt;paramref name=&#8221;list&#8221;/&gt;.&lt;/param&gt;<br />
/// &lt;param name=&#8221;withRepetition&#8221;&gt;&lt;see langword=&#8221;true&#8221;/&gt; to get permutations with reptition of elements;<br />
/// &lt;see langword=&#8221;false&#8221;/&gt; to get permutations without reptition of elements.&lt;/param&gt;<br />
/// &lt;exception cref=&#8221;ArgumentNullException&#8221;&gt;&lt;paramref name=&#8221;list&#8221;/&gt; is &lt;see langword=&#8221;null&#8221;/&gt;. -or-<br />
/// &lt;paramref name=&#8221;action&#8221;/&gt; is &lt;see langword=&#8221;null&#8221;/&gt;.&lt;/exception&gt;<br />
/// &lt;exception cref=&#8221;ArgumentException&#8221;&gt;&lt;paramref name=&#8221;resultSize&#8221;/&gt; is less than zero.&lt;/exception&gt;<br />
/// &lt;remarks&gt;<br />
/// The algorithm performs permutations in-place. &lt;paramref name=&#8221;list&#8221;/&gt; is however not changed.<br />
/// &lt;/remarks&gt;<br />
public static void GetPermutations&lt;T&gt;(this IList&lt;T&gt; list, Action&lt;IList&lt;T&gt;&gt; action, int? resultSize = null,<br />
bool withRepetition = false)<br />
{<br />
if (list == null)<br />
throw new ArgumentNullException(&#8220;list&#8221;);<br />
if (action == null)<br />
throw new ArgumentNullException(&#8220;action&#8221;);<br />
if (resultSize.HasValue &amp;&amp; resultSize.Value &lt;= 0)<br />
throw new ArgumentException(errorMessageValueLessThanZero, &#8220;resultSize&#8221;);</p>
<p>var result = new T[resultSize.HasValue ? resultSize.Value : list.Count];<br />
var indices = new int[result.Length];<br />
for (int i = 0; i &lt; indices.Length; i++)<br />
indices[i] = withRepetition ? -1 : i &#8211; 1;</p>
<p>int curIndex = 0;<br />
while (curIndex != -1)<br />
{<br />
indices[curIndex]++;<br />
if (indices[curIndex] == list.Count)<br />
{<br />
indices[curIndex] = withRepetition ? -1 : curIndex &#8211; 1;<br />
curIndex&#8211;;<br />
}<br />
else<br />
{<br />
result[curIndex] = list[indices[curIndex]];<br />
if (curIndex &lt; indices.Length &#8211; 1)<br />
curIndex++;<br />
else<br />
action(result);<br />
}<br />
}<br />
}</p>
<p>/// &lt;summary&gt;<br />
/// Gets all combinations (of a given size) of a given list, either with or without reptitions.<br />
/// &lt;/summary&gt;<br />
/// &lt;typeparam name=&#8221;T&#8221;&gt;The type of the elements in the list.&lt;/typeparam&gt;<br />
/// &lt;param name=&#8221;list&#8221;&gt;The list of which to get combinations.&lt;/param&gt;<br />
/// &lt;param name=&#8221;action&#8221;&gt;The action to perform on each combination of the list.&lt;/param&gt;<br />
/// &lt;param name=&#8221;resultSize&#8221;&gt;The number of elements in each resulting combination; or &lt;see langword=&#8221;null&#8221;/&gt; to get<br />
/// premutations of the same size as &lt;paramref name=&#8221;list&#8221;/&gt;.&lt;/param&gt;<br />
/// &lt;param name=&#8221;withRepetition&#8221;&gt;&lt;see langword=&#8221;true&#8221;/&gt; to get combinations with reptition of elements;<br />
/// &lt;see langword=&#8221;false&#8221;/&gt; to get combinations without reptition of elements.&lt;/param&gt;<br />
/// &lt;exception cref=&#8221;ArgumentNullException&#8221;&gt;&lt;paramref name=&#8221;list&#8221;/&gt; is &lt;see langword=&#8221;null&#8221;/&gt;. -or-<br />
/// &lt;paramref name=&#8221;action&#8221;/&gt; is &lt;see langword=&#8221;null&#8221;/&gt;.&lt;/exception&gt;<br />
/// &lt;exception cref=&#8221;ArgumentException&#8221;&gt;&lt;paramref name=&#8221;resultSize&#8221;/&gt; is less than zero.&lt;/exception&gt;<br />
/// &lt;remarks&gt;<br />
/// The algorithm performs combinations in-place. &lt;paramref name=&#8221;list&#8221;/&gt; is however not changed.<br />
/// &lt;/remarks&gt;<br />
public static void GetCombinations&lt;T&gt;(this IList&lt;T&gt; list, Action&lt;IList&lt;T&gt;&gt; action, int? resultSize = null,<br />
bool withRepetition = false)<br />
{<br />
if (list == null)<br />
throw new ArgumentNullException(&#8220;list&#8221;);<br />
if (action == null)<br />
throw new ArgumentNullException(&#8220;action&#8221;);<br />
if (resultSize.HasValue &amp;&amp; resultSize.Value &lt;= 0)<br />
throw new ArgumentException(errorMessageValueLessThanZero, &#8220;resultSize&#8221;);</p>
<p>var result = new T[resultSize.HasValue ? resultSize.Value : list.Count];<br />
var indices = new int[result.Length];<br />
for (int i = 0; i &lt; indices.Length; i++)<br />
indices[i] = withRepetition ? -1 : indices.Length &#8211; i &#8211; 2;</p>
<p>int curIndex = 0;<br />
while (curIndex != -1)<br />
{<br />
indices[curIndex]++;<br />
if (indices[curIndex] == (curIndex == 0 ? list.Count : indices[curIndex - 1] + (withRepetition ? 1 : 0)))<br />
{<br />
indices[curIndex] = withRepetition ? -1 : indices.Length &#8211; curIndex &#8211; 2;<br />
curIndex&#8211;;<br />
}<br />
else<br />
{<br />
result[curIndex] = list[indices[curIndex]];<br />
if (curIndex &lt; indices.Length &#8211; 1)<br />
curIndex++;<br />
else<br />
action(result);<br />
}<br />
}<br />
}</p>
<p>/// &lt;summary&gt;<br />
/// Gets a specific permutation of a given list.<br />
/// &lt;/summary&gt;<br />
/// &lt;typeparam name=&#8221;T&#8221;&gt;The type of the elements in the list.&lt;/typeparam&gt;<br />
/// &lt;param name=&#8221;list&#8221;&gt;The list to permute.&lt;/param&gt;<br />
/// &lt;param name=&#8221;indices&#8221;&gt;The indices of the elements in the original list at each index in the permuted list.<br />
/// &lt;/param&gt;<br />
/// &lt;returns&gt;The specified permutation of the given list.&lt;/returns&gt;<br />
/// &lt;exception cref=&#8221;ArgumentNullException&#8221;&gt;&lt;paramref name=&#8221;list&#8221;/&gt; is &lt;see langword=&#8221;null&#8221;/&gt;. -or-<br />
/// &lt;paramref name=&#8221;indices&#8221;/&gt; is &lt;see langword=&#8221;null&#8221;/&gt;.&lt;/exception&gt;<br />
/// &lt;exception cref=&#8221;ArgumentException&#8221;&gt;&lt;paramref name=&#8221;indices&#8221;/&gt; does not have the same size as<br />
/// &lt;paramref name=&#8221;list&#8221;/&gt;.&lt;/exception&gt;<br />
public static IList&lt;T&gt; Permute&lt;T&gt;(this IList&lt;T&gt; list, IList&lt;int&gt; indices)<br />
{<br />
if (list == null)<br />
throw new ArgumentNullException(&#8220;list&#8221;);<br />
if (indices == null)<br />
throw new ArgumentNullException(&#8220;indices&#8221;);<br />
if (list.Count != indices.Count)<br />
throw new ArgumentException(errorMessagesIndicesListInvalidSize, &#8220;indices&#8221;);</p>
<p>var result = new T[list.Count];<br />
for (int i = 0; i &lt; result.Length; i++)<br />
result[i] = list[indices[i]];<br />
return result;<br />
}<br />
}</p>
</div>
<img src="http://feeds.feedburner.com/~r/noldorin-blog/~4/X4wOWLLS4YU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.noldorin.com/2010/05/combinatorics-in-csharp/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://blog.noldorin.com/2010/05/combinatorics-in-csharp/</feedburner:origLink></item>
		<item>
		<title>Musical Gem of the Week #10</title>
		<link>http://feedproxy.google.com/~r/noldorin-blog/~3/cjg-fHoIjg8/</link>
		<comments>http://blog.noldorin.com/2010/05/musical-gem-of-the-week-10/#comments</comments>
		<pubDate>Wed, 12 May 2010 12:23:47 +0000</pubDate>
		<dc:creator>Noldorin</dc:creator>
				<category><![CDATA[Humanities]]></category>
		<category><![CDATA[arias]]></category>
		<category><![CDATA[baritone arias]]></category>
		<category><![CDATA[classical era]]></category>
		<category><![CDATA[classical music]]></category>
		<category><![CDATA[classical period]]></category>
		<category><![CDATA[common practice era]]></category>
		<category><![CDATA[gioachino rossini]]></category>
		<category><![CDATA[Guillaume Tell]]></category>
		<category><![CDATA[Il barbiere di Siviglia]]></category>
		<category><![CDATA[italian composers]]></category>
		<category><![CDATA[italian music]]></category>
		<category><![CDATA[italian opera]]></category>
		<category><![CDATA[largo al factotum]]></category>
		<category><![CDATA[music]]></category>
		<category><![CDATA[musical composition]]></category>
		<category><![CDATA[nicolae herlea]]></category>
		<category><![CDATA[opera]]></category>
		<category><![CDATA[opera buffa]]></category>
		<category><![CDATA[recordings]]></category>
		<category><![CDATA[romantic era]]></category>
		<category><![CDATA[romantic period]]></category>
		<category><![CDATA[romanticism]]></category>
		<category><![CDATA[rossini]]></category>
		<category><![CDATA[sonata]]></category>
		<category><![CDATA[the barber of seville]]></category>
		<category><![CDATA[william tell]]></category>

		<guid isPermaLink="false">http://blog.noldorin.com/?p=691</guid>
		<description><![CDATA[Gioachino Rossini is without doubt the first of the great Italian opera composers of the later period, beginning in the early 19th century. His style of composition is generally considered to belong to the (very early) Romantic period, though his music does still show strong influences of the earlier Classical style, and is moreover exceptional [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://en.wikipedia.org/wiki/Gioachino_Rossini" onclick="pageTracker._trackPageview('/outgoing/en.wikipedia.org/wiki/Gioachino_Rossini?referer=');">Gioachino Rossini</a> is without doubt the first of the great Italian opera composers of the later period, beginning in the early 19th century. His style of composition is generally considered to belong to the (very early) Romantic period, though his music does still show strong influences of the earlier Classical style, and is moreover exceptional in its song-like nature and exuberant nature. Indeed, Rossini is said to have once claimed he could set his shopping list to a tune, and it was likely well within his nature to do so!</p>
<p>Of Rossini&#8217;s most notable operas, The <em>Barber of Seville</em> is surely right at the top. The aria from it that is commonly known as the <a href="http://en.wikipedia.org/wiki/Largo_al_factotum" onclick="pageTracker._trackPageview('/outgoing/en.wikipedia.org/wiki/Largo_al_factotum?referer=');">Largo al Factotum</a> is quite possibly one of the most recognisable arias in all opera. In this sense, I am somewhat breaking from the tradition of this series of posts, though for the sake of variety and because it would unfair not to mention a bit of opera when discussing Romantic music, I have included this piece in the series. Listening to this piece, you cannot but admire the extraordinary difficulty for the baritone singer, but also the wonderful meldoy that is created.</p>
<p><a href="http://noldorin.com/media/music/RossiniLargoAlFactotum.mp3"><strong>Download or Listen Here</strong></a></p>
<p>(Sung by Nicolae Herlea. Original available from his <a href="http://www.nicolaeherlea.com/engl/html/oper.html" onclick="pageTracker._trackPageview('/outgoing/www.nicolaeherlea.com/engl/html/oper.html?referer=');">official website</a>.)</p>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow: hidden;">
<h1 id="firstHeading" class="firstHeading">Gioachino Rossini</h1>
</div>
<img src="http://feeds.feedburner.com/~r/noldorin-blog/~4/cjg-fHoIjg8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.noldorin.com/2010/05/musical-gem-of-the-week-10/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://noldorin.com/media/music/RossiniLargoAlFactotum.mp3" length="4628524" type="audio/mpeg" />
		<feedburner:origLink>http://blog.noldorin.com/2010/05/musical-gem-of-the-week-10/</feedburner:origLink></item>
		<item>
		<title>Musical Gem of the Week #9</title>
		<link>http://feedproxy.google.com/~r/noldorin-blog/~3/EIj9NsEpZZc/</link>
		<comments>http://blog.noldorin.com/2010/04/musical-gem-of-the-week-9/#comments</comments>
		<pubDate>Tue, 27 Apr 2010 21:48:57 +0000</pubDate>
		<dc:creator>Noldorin</dc:creator>
				<category><![CDATA[Humanities]]></category>
		<category><![CDATA[baroque period]]></category>
		<category><![CDATA[beethoven]]></category>
		<category><![CDATA[bridgetower]]></category>
		<category><![CDATA[classical music]]></category>
		<category><![CDATA[classical period]]></category>
		<category><![CDATA[common practice era]]></category>
		<category><![CDATA[george bridgetower]]></category>
		<category><![CDATA[kreutzer]]></category>
		<category><![CDATA[leo tolstoy]]></category>
		<category><![CDATA[love]]></category>
		<category><![CDATA[ludwig van beethoven]]></category>
		<category><![CDATA[music]]></category>
		<category><![CDATA[musical composition]]></category>
		<category><![CDATA[passion]]></category>
		<category><![CDATA[recordings]]></category>
		<category><![CDATA[sonata]]></category>
		<category><![CDATA[the kreutzer sonata]]></category>
		<category><![CDATA[violin]]></category>
		<category><![CDATA[violin sonata]]></category>

		<guid isPermaLink="false">http://blog.noldorin.com/?p=675</guid>
		<description><![CDATA[Moving on into the Romantic period of music, it is only appropriate to begin with the great initiator of Romantic music, who is of course Ludwig van Beethoven. When I say romantic music, of course I do not refer to the romance of love, but rather to the philosophical and intellectual movement of Romanticism, which [...]]]></description>
			<content:encoded><![CDATA[<div class="wp-caption alignright" style="width: 250px"><img title="&quot;Kreutzer Sonata&quot; painting by René François Xavier Prinet" src="http://upload.wikimedia.org/wikipedia/commons/e/e8/Prinet_-_Kreutzer_Sonata_.jpg" alt="&quot;Kreutzer Sonata&quot; painting" width="240" /><p class="wp-caption-text">&quot;Sonata Kreutzer&quot;, painted in 1901 by René François Xavier Prinet</p></div>
<p>Moving on into the Romantic period of music, it is only appropriate to begin with the great initiator of <a href="http://en.wikipedia.org/wiki/Romantic_music" onclick="pageTracker._trackPageview('/outgoing/en.wikipedia.org/wiki/Romantic_music?referer=');">Romantic music</a>, who is of course Ludwig van Beethoven. When I say romantic music, of course I do not refer to the romance of love, but rather to the philosophical and intellectual movement of <a href="http://en.wikipedia.org/wiki/Romanticism" onclick="pageTracker._trackPageview('/outgoing/en.wikipedia.org/wiki/Romanticism?referer=');">Romanticism</a>, which developed first in literature and art and later entered music. I have to confess that my love of Romantic music does as a whole outweigh that of Classical period. (Baroque music, on the other hand, being at least on par with that of the Romantic period, though it is somewhat unfair to compare them directly.) Its sheer variety makes it one of the fascinating genres, and its style is in many ways very modern (not surprising, considering it extended into the early 20th century and influenced almost every later style).</p>
<p>Beethoven&#8217;s <a href="http://en.wikipedia.org/wiki/Violin_Sonata_No._9_%28Beethoven%29" onclick="pageTracker._trackPageview('/outgoing/en.wikipedia.org/wiki/Violin_Sonata_No._9_28Beethoven_29?referer=');">Violin Sonata No. 9</a>, better known as the <a href="http://en.wikipedia.org/wiki/Rodolphe_Kreutzer" onclick="pageTracker._trackPageview('/outgoing/en.wikipedia.org/wiki/Rodolphe_Kreutzer?referer=');">Kreutzer</a> sonata is perhaps one of the earliest and finest examples of Romanticism in music. Its association with passion and love, while not strictly related to it being a &#8220;Romantic&#8221; piece, becomes superbly clear once listening to it (in particular the first movement). This reputation is no doubt augmented by Leo Tolstoy&#8217;s short novel <a href="http://en.wikipedia.org/wiki/The_Kreutzer_Sonata" onclick="pageTracker._trackPageview('/outgoing/en.wikipedia.org/wiki/The_Kreutzer_Sonata?referer=');">The Kreutzer Sonata</a>.</p>
<p>Oh, and if you are feeling too impatient to hear out the whole piece, let me at least recommend listening to the first movement (around 10 minutes long), which is the true jewel of the work!</p>
<p><strong><a href="http://noldorin.com/media/music/BeethovenKreutzerSonata.mp3">Listen or Download Here</a></strong></p>
<p>(Performed by Paul Rosenthal and Edward Auer.)</p>
<p>As an incidental note, it is a quirk of history that this sonata is not in fact called the &#8220;Bridgetower Sonata&#8221;, since it was originally dedicated to the great violinist and Beethoven&#8217;s friend <a href="http://en.wikipedia.org/wiki/George_Bridgetower" onclick="pageTracker._trackPageview('/outgoing/en.wikipedia.org/wiki/George_Bridgetower?referer=');">George Bridgetower</a>. In fact, it was after the premiere that Bridgetower, whilst drinking with Beethoven, insulted a woman for whom Beethoven cared greatly, causing a rift between the two men, and hence the original dedication was removed and has since been forgotten.</p>
<img src="http://feeds.feedburner.com/~r/noldorin-blog/~4/EIj9NsEpZZc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.noldorin.com/2010/04/musical-gem-of-the-week-9/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://noldorin.com/media/music/BeethovenKreutzerSonata.mp3" length="65131461" type="audio/mpeg" />
		<feedburner:origLink>http://blog.noldorin.com/2010/04/musical-gem-of-the-week-9/</feedburner:origLink></item>
		<item>
		<title>Musical Gem of the Week #8</title>
		<link>http://feedproxy.google.com/~r/noldorin-blog/~3/OxyhCF0J6Po/</link>
		<comments>http://blog.noldorin.com/2010/04/musical-gem-of-the-week-8/#comments</comments>
		<pubDate>Sat, 24 Apr 2010 20:10:48 +0000</pubDate>
		<dc:creator>Noldorin</dc:creator>
				<category><![CDATA[Humanities]]></category>
		<category><![CDATA[agnus dei]]></category>
		<category><![CDATA[amadeus]]></category>
		<category><![CDATA[amadeus soundtrack]]></category>
		<category><![CDATA[antonio salieri]]></category>
		<category><![CDATA[austrian composers]]></category>
		<category><![CDATA[austrian music]]></category>
		<category><![CDATA[chopin]]></category>
		<category><![CDATA[classical music]]></category>
		<category><![CDATA[classical period]]></category>
		<category><![CDATA[common practice era]]></category>
		<category><![CDATA[dies irae]]></category>
		<category><![CDATA[franz von walsegg]]></category>
		<category><![CDATA[franz xaver süssmayr]]></category>
		<category><![CDATA[frederic chopin]]></category>
		<category><![CDATA[haydn]]></category>
		<category><![CDATA[joseph haydn]]></category>
		<category><![CDATA[lacrimosa]]></category>
		<category><![CDATA[lux aeternai]]></category>
		<category><![CDATA[mass]]></category>
		<category><![CDATA[milos forman]]></category>
		<category><![CDATA[mozart]]></category>
		<category><![CDATA[music]]></category>
		<category><![CDATA[musical composition]]></category>
		<category><![CDATA[recordings]]></category>
		<category><![CDATA[religious music]]></category>
		<category><![CDATA[requiem]]></category>
		<category><![CDATA[requiem mass]]></category>
		<category><![CDATA[salieri]]></category>
		<category><![CDATA[süssmayr]]></category>
		<category><![CDATA[vienna]]></category>
		<category><![CDATA[wolfgang amadeus mozart]]></category>

		<guid isPermaLink="false">http://blog.noldorin.com/?p=648</guid>
		<description><![CDATA[There are few compositions of such historical poignancy as Mozart&#8217;s Requiem Mass in D minor. This extraordinary composition represents the culmination of Mozart&#8217;s musical style in the final years of his life, and is to many his greatest masterpiece. Hearing this work alone, surely no-one could guess that it was created by a man of [...]]]></description>
			<content:encoded><![CDATA[<p>There are few compositions of such historical poignancy as Mozart&#8217;s<a href="http://en.wikipedia.org/wiki/Requiem_%28Mozart%29" onclick="pageTracker._trackPageview('/outgoing/en.wikipedia.org/wiki/Requiem_28Mozart_29?referer=');"> Requiem Mass in D minor</a>. This extraordinary composition represents the culmination of Mozart&#8217;s musical style in the final years of his life, and is to many his greatest masterpiece. Hearing this work alone, surely no-one could guess that it was created by a man of such happiness and frivolity in his earlier life.</p>
<p>The circumstances in which he composed this masterpiece are also shrouded in much myth, as he was working on it during the final days before his untimely death. (His friend and student <a href="http://en.wikipedia.org/wiki/Sussmayr" onclick="pageTracker._trackPageview('/outgoing/en.wikipedia.org/wiki/Sussmayr?referer=');">Franz Xaver Süssmayr</a> did in fact complete the work from Mozart&#8217;s drafts, though the first half or so of the mass is entirely Mozart&#8217;s own work.) Perhaps the greatest of these conspiracy theories is the one involving his supposed poisoning by <a href="http://en.wikipedia.org/wiki/Antonio_Salieri" onclick="pageTracker._trackPageview('/outgoing/en.wikipedia.org/wiki/Antonio_Salieri?referer=');">Antonio Salieri</a> (his great rival in Vienna), perpetuated in the play and film Amadeus, but very likely without basis. Others say he wrote this Requiem Mass for his own funeral, knowing he was to die soon. What is known for sure however is that he was commissioned by a mysterious stranger. In hindsight, it is thought likely that this stranger was <a href="http://en.wikipedia.org/wiki/Franz_von_Walsegg" onclick="pageTracker._trackPageview('/outgoing/en.wikipedia.org/wiki/Franz_von_Walsegg?referer=');">Franz von Walsegg</a>, an Austrian nobleman who had a habit of commissioning works from notable composers and passing them off as his own. Whatever the true circumstances, this work is surely a fine tribute the composer and his tragic death. Indeed, the Requiem Mass was played not only at his funeral (incompletely), but also at those of Haydn in 1809 and Chopin in 1849.</p>
<p>Since the piece is (unsurprisingly) rather long in duration &#8211; more or less an hour &#8211; I&#8217;ve selected several of the movements that I think showcase both the wonder and variation of the work.</p>
<p><strong>Listen or Download:<br />
</strong></p>
<p><a href="http://wlym.com/%7eleesburg/iclc_conf/1985/Requiem_movements/02_Dies_irae.mp3" onclick="pageTracker._trackPageview('/outgoing/wlym.com/_7eleesburg/iclc_conf/1985/Requiem_movements/02_Dies_irae.mp3?referer=');">Dies Irae</a></p>
<p><a href="http://wlym.com/%7eleesburg/iclc_conf/1985/Requiem_movements/07_Lacrimosa.mp3" onclick="pageTracker._trackPageview('/outgoing/wlym.com/_7eleesburg/iclc_conf/1985/Requiem_movements/07_Lacrimosa.mp3?referer=');">Lacrimosa</a></p>
<p><a href="http://wlym.com/%7eleesburg/iclc_conf/1985/Requiem_movements/12_Agnus_Dei.mp3" onclick="pageTracker._trackPageview('/outgoing/wlym.com/_7eleesburg/iclc_conf/1985/Requiem_movements/12_Agnus_Dei.mp3?referer=');">Agnus Dei</a></p>
<p><a href="http://wlym.com/%7eleesburg/iclc_conf/1985/Requiem_movements/13_Lux_aeterna.mp3" onclick="pageTracker._trackPageview('/outgoing/wlym.com/_7eleesburg/iclc_conf/1985/Requiem_movements/13_Lux_aeterna.mp3?referer=');">Lux aeterna</a></p>
<p>(Performed by the Schiller Institute Orchestra and Chorus, 1985.)</p>
<p>The complete performance is available to listen/download for free on the <a href="http://www.schillerinstitute.org/music/Mozart_requieum_perf.html" onclick="pageTracker._trackPageview('/outgoing/www.schillerinstitute.org/music/Mozart_requieum_perf.html?referer=');">Schiller Institute website</a>.</p>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 58px; width: 1px; height: 1px; overflow: hidden;">
<h1 id="firstHeading" class="firstHeading">Franz Xaver Süssmayr</h1>
</div>
<img src="http://feeds.feedburner.com/~r/noldorin-blog/~4/OxyhCF0J6Po" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.noldorin.com/2010/04/musical-gem-of-the-week-8/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://wlym.com/%7eleesburg/iclc_conf/1985/Requiem_movements/02_Dies_irae.mp3" length="3918107" type="audio/mpeg" />
<enclosure url="http://wlym.com/%7eleesburg/iclc_conf/1985/Requiem_movements/07_Lacrimosa.mp3" length="6452136" type="audio/mpeg" />
<enclosure url="http://wlym.com/%7eleesburg/iclc_conf/1985/Requiem_movements/12_Agnus_Dei.mp3" length="5721600" type="audio/mpeg" />
<enclosure url="http://wlym.com/%7eleesburg/iclc_conf/1985/Requiem_movements/13_Lux_aeterna.mp3" length="11588530" type="audio/mpeg" />
		<feedburner:origLink>http://blog.noldorin.com/2010/04/musical-gem-of-the-week-8/</feedburner:origLink></item>
		<item>
		<title>WPF Utilities</title>
		<link>http://feedproxy.google.com/~r/noldorin-blog/~3/W1whnvb29EA/</link>
		<comments>http://blog.noldorin.com/2010/04/wpf-utilities/#comments</comments>
		<pubDate>Sat, 24 Apr 2010 20:08:31 +0000</pubDate>
		<dc:creator>Noldorin</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[.net 3.5]]></category>
		<category><![CDATA[.net 4.0]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[dispatcher]]></category>
		<category><![CDATA[extension methods]]></category>
		<category><![CDATA[film browser]]></category>
		<category><![CDATA[frameworkelement]]></category>
		<category><![CDATA[GUI]]></category>
		<category><![CDATA[helper class]]></category>
		<category><![CDATA[irc]]></category>
		<category><![CDATA[ircsil]]></category>
		<category><![CDATA[logical tree]]></category>
		<category><![CDATA[uielement]]></category>
		<category><![CDATA[user interface]]></category>
		<category><![CDATA[utilities]]></category>
		<category><![CDATA[utilities class]]></category>
		<category><![CDATA[utility class]]></category>
		<category><![CDATA[utility methods]]></category>
		<category><![CDATA[visual tree]]></category>
		<category><![CDATA[windows presentation foundation]]></category>
		<category><![CDATA[wpf]]></category>
		<category><![CDATA[wpf 3.5]]></category>

		<guid isPermaLink="false">http://blog.noldorin.com/?p=669</guid>
		<description><![CDATA[Code Updated: 7th May 2010 Having played around a lot with WPF recently (mainly as part of developing my little Windows 7 Film Browser app), I&#8217;ve found the need to create a variety of utility methods relating to WPF functionality. In particular, I&#8217;ve been finding certain utilities (helper and extension methods, that is) come in [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Code Updated: 7th May 2010</strong></p>
<p>Having played around a lot with <a href="http://en.wikipedia.org/wiki/Windows_Presentation_Foundation" onclick="pageTracker._trackPageview('/outgoing/en.wikipedia.org/wiki/Windows_Presentation_Foundation?referer=');">WPF</a> recently (mainly as part of developing my little Windows 7 <a href="http://repos.noldorin.com/film-browser/" onclick="pageTracker._trackPageview('/outgoing/repos.noldorin.com/film-browser/?referer=');">Film Browser</a> app), I&#8217;ve found the need to create a variety of utility methods relating to WPF functionality. In particular, I&#8217;ve been finding certain utilities (helper and extension methods, that is) come in handy particular often, hence I thought I&#8217;d post them here to share with anyone who might find them useful.</p>
<p>You&#8217;ll have to forgive the lack of comments, but I&#8217;d rather hope the purposes of the methods are pretty clear anyway! Note that the class resides in the <em>System.Windows</em> namespace, so you&#8217;ll need to import that, in particular if you want to make the extension methods available.</p>
<pre class="brush: csharp; collapse: true; light: false; toolbar: true; wrap-lines: false;">
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Threading;

namespace System.Windows
{
    public static class WindowsUtilities
    {
        // Useful for getting the item associated with the element clicked in a ListBox (generically any ItemsControl).
        public static object GetItemFromElement(this ItemsControl itemsControl, DependencyObject element)
        {
            return itemsControl.ItemContainerGenerator.ItemFromContainer(itemsControl.ContainerFromElement(element));
        }

        // Same as GetBounds method, but offsets bounds by Margin of element.
        public static Rect GetBoundsWithMargin(this FrameworkElement element)
        {
            var bounds = GetBounds(element);
            var margin = element.Margin;
            return new Rect(bounds.Left + margin.Left, bounds.Top + margin.Top, bounds.Right - margin.Right,
                bounds.Bottom - margin.Bottom);
        }

        public static Rect GetBounds(this UIElement element)
        {
            var window = Window.GetWindow(element);
            var position = element.TranslatePoint(new Point(0, 0), window);
            return new Rect(position, element.RenderSize);
        }

        public static Rect SubtractMargin(this Rect rect, Thickness margin)
        {
            return new Rect(rect.X + margin.Left, rect.Y + margin.Top, rect.Width - margin.Left - margin.Right,
                rect.Height - margin.Top - margin.Bottom);
        }

        public static TAncestor FindVisualAncestor&lt;TAncestor&gt;(this DependencyObject obj)
            where TAncestor : DependencyObject
        {
            var current = obj;
            do
            {
                if (current is TAncestor)
                    return (TAncestor)current;
                current = VisualTreeHelper.GetParent(current);
            } while (current != null);
            return null;
        }

        public static TAncestor FindLogicalAncestor&lt;TAncestor&gt;(this DependencyObject obj)
            where TAncestor : DependencyObject
        {
            var current = obj;
            do
            {
                if (current is TAncestor)
                    return (TAncestor)current;
                current = LogicalTreeHelper.GetParent(current);
            } while (current != null);
            return null;
        }

        public static IEnumerable&lt;TAncestor&gt; FindVisualDescendants&lt;TAncestor&gt;(this DependencyObject obj)
            where TAncestor : DependencyObject
        {
            var childrenCount = VisualTreeHelper.GetChildrenCount(obj);
            for (int i = 0; i &lt; childrenCount; i++)
            {
                var child = VisualTreeHelper.GetChild(obj, i);
                if (child is TAncestor)
                    yield return (TAncestor)child;
                foreach (var subChild in FindVisualDescendants&lt;TAncestor&gt;(child))
                    yield return subChild;
            }
        }

        public static IEnumerable&lt;TAncestor&gt; FindLogicalDescendants&lt;TAncestor&gt;(this DependencyObject obj)
            where TAncestor : DependencyObject
        {
            foreach (var child in LogicalTreeHelper.GetChildren(obj).OfType&lt;DependencyObject&gt;())
            {
                if (child is TAncestor)
                    yield return (TAncestor)child;
                foreach (var subChild in FindVisualDescendants&lt;TAncestor&gt;(child))
                    yield return subChild;
            }
        }

        // This eliminates the slightly cumbersome task of casting a lambda expression to a delegate when calling Dispatcher.Invoke.
        public static void Invoke(this Dispatcher dispatcher, Action action)
        {
            dispatcher.Invoke(action);
        }
    }
}
</pre>
<p>The code was written as part of a WPF 4 (.NET 4.0)  project, but I believe it&#8217;s totally compatible with WPF 3.5.</p>
<p>I&#8217;ll try to update to this post as my collection of handy utility methods grows (and maybe even add comments!). In the meanwhile, do feel free to suggest any improvements to the existing methods or even new ones that you find yourself using frequently.</p>
<img src="http://feeds.feedburner.com/~r/noldorin-blog/~4/W1whnvb29EA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.noldorin.com/2010/04/wpf-utilities/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.noldorin.com/2010/04/wpf-utilities/</feedburner:origLink></item>
	</channel>
</rss>
