<?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/"
	>

<channel>
	<title>OliverBrown.me.uk &#187; Languages</title>
	<atom:link href="http://www.oliverbrown.me.uk/category/languages/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.oliverbrown.me.uk</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Sat, 26 Jun 2010 09:39:30 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Silverlight is pretty cool</title>
		<link>http://www.oliverbrown.me.uk/2008/04/06/silverlight-is-pretty-cool/</link>
		<comments>http://www.oliverbrown.me.uk/2008/04/06/silverlight-is-pretty-cool/#comments</comments>
		<pubDate>Sun, 06 Apr 2008 14:28:51 +0000</pubDate>
		<dc:creator>Oliver</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Languages]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web Programming]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[LINQ]]></category>
		<category><![CDATA[REST]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[Silverlight 2.0]]></category>
		<category><![CDATA[WPF]]></category>

		<guid isPermaLink="false">http://www.oliverbrown.me.uk/2008/04/06/silverlight-is-pretty-cool/</guid>
		<description><![CDATA[More than two months since my last post. Which means I suddenly have a lot to say. Beware, rambling may follow&#8230;
Nearly five months ago I claimed to be making &#8220;rapid progress with language learning&#8221;. Well obviously not rapid enough to actually reveal anything. Well that might be at an end soon.
One of the problems of [...]]]></description>
			<content:encoded><![CDATA[<p>More than two months since my last post. Which means I suddenly have a lot to say. Beware, rambling may follow&#8230;</p>
<p>Nearly five months ago I claimed to be making <a href="http://www.oliverbrown.me.uk.nyud.net/2007/11/20/rapid-progress-with-language-learning/">&#8220;rapid progress with language learning&#8221;</a>. Well obviously not rapid enough to actually reveal anything. Well that might be at an end soon.</p>
<p>One of the problems of writing the app using things like <a href="http://www.oliverbrown.me.uk.nyud.net/2007/09/09/linq-is-magical/">LINQ</a> means most people will have other things to install to use the app (.NET 3.5 specifically &#8211; and possibly .NET 3.0 for non Vista users) and even then it&#8217;s limited to Windows users as Mono support for Windows Presentation Foundation will be a long way off (if they do it all). Since Silverlight 2.0 is supposed to be really cool and now supports a big chunk of the widgets from standard WPF (and has has quickly developing Moonlight support), why not write the app in that?</p>
<p>So that&#8217;s what I&#8217;ve been doing.</p>
<p>And it was a lot easier than I thought. The first piece of easiness I found was that I oly had to make like three changes to my non-UI code to make it compile as a Silverlight DLL. Unfortunately I can&#8217;t persuade Visual Studio to compile it as a Silverlight DLL and a normal DLL in one go, so I&#8217;ve currently got the same code added as two different projects and I copy the code between them (not ideal). The only real work I had to do was reimplement my data provider. When I started, I cunningly made sure that all resources (lessons, media, user progress) was grabbed from a data class. I wrote a new class that fetches it from a RESTful server (more on that in another post).</p>
<p>So hopefully, a nice Silverlight version of the app will be public soon&#8230;</p>
<p><strong>About Silverlight</strong><br />
For those that don&#8217;t know, Silverlight is Microsofts answer to Flash. Apparently. I&#8217;m not sure if it&#8217;s that a good analogy really. Silverlight 1.0 basically gave you access to a nice environment to draw things in the browser and then manipulate it with Javascript. Or something. To be honest I didn&#8217;t really care about version 1.0 since writing complicated things in Javascript doesn&#8217;t sound like fun. Silverlight 2.0 (formerly Silverlight 1.1) on the other hand gives you that same environment but the ability to manipulate the things with compiled .NET assemblies written in any CLR language and comes with implementations of a lot of the widgets in the WPF.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.oliverbrown.me.uk/2008/04/06/silverlight-is-pretty-cool/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Google Docs rule &#8211; if you use them right</title>
		<link>http://www.oliverbrown.me.uk/2008/01/04/google-docs-rule-if-you-use-them-right/</link>
		<comments>http://www.oliverbrown.me.uk/2008/01/04/google-docs-rule-if-you-use-them-right/#comments</comments>
		<pubDate>Fri, 04 Jan 2008 23:29:00 +0000</pubDate>
		<dc:creator>Oliver</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Languages]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Google Docs]]></category>
		<category><![CDATA[Google Spreadsheets]]></category>
		<category><![CDATA[language learning]]></category>
		<category><![CDATA[LINQ]]></category>
		<category><![CDATA[LINQ to XML]]></category>
		<category><![CDATA[online office]]></category>
		<category><![CDATA[XLINQ]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://www.oliverbrown.me.uk/2008/01/04/google-docs-rule-if-you-use-them-right/</guid>
		<description><![CDATA[I&#8217;ve been vaguely using Google Docs (specifically Spreadsheets) since it came out but never to do anything actually important. Most of the time I just had a list I need sorting, or if I was feeling sophisticated I&#8217;d use it to decide on what was best value for money (how much £/GB a range of [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been vaguely using <a href="http://docs.google.com">Google Docs</a> (specifically Spreadsheets) since it came out but never to do anything actually important. Most of the time I just had a list I need sorting, or if I was feeling sophisticated I&#8217;d use it to decide on what was best value for money (how much £/GB a range of hard drives were for instance).</p>
<p>Recently I started using it to plan lessons for the <a href="http://www.oliverbrown.me.uk/2007/11/20/rapid-progress-with-language-learning/">language learning app</a>. The ability to use it from work (or any other computer I might be on &#8211; including viewing it on my <a href="http://www.oliverbrown.me.uk/2007/06/14/n73-770-and-the-internet/">Nokia 770</a>) was useful, but in the end I was only really writing a list with it. Until now.</p>
<p>I now have a nifty little C# app that generates modules directly from a Google Spreadsheet which is definitely a Good Thing. I&#8217;ve been thinking of writing an app for module editing for a while since writing them by hand is tiresome and error prone. Google Spreadsheets does half the work for me by providing the user interface for generating a table and then provides access as simple XML.</p>
<p>Which brings me to the matter of actually accessing the data. Google provide a client library in C# for accessing quite a lot of their API. I tried using it but found it a little confusing. Luckily since I was just wanting to query data, I discovered that raw access was actually easier. You simply make a <code>GET</code> request to<br />
<code>http://spreadsheets.google.com/feeds/worksheets/<em>key</em>/public/values</code> (where <em>key</em> is provided to you when you &#8220;publish&#8221; a spreadsheet &#8211; access to unpublished spreadsheets requires authorization which is more complicated). This gives you an Atom feed of URLs to the individual worksheets which them contain Atom feeds of either rows or columns (your choice).</p>
<p>The query power of <a href="http://www.oliverbrown.me.uk.nyud.net/2007/09/09/linq-is-magical/">LINQ</a> (along with XElement, XAttribute etc.) make transforming the feeds into modules really easy. In fact the code that does the hard work (takes a spreadsheet key and generates the XML) is only 102 lines long, and that&#8217;s including unnecessary spacing to make the LINQ more readable (the main LINQ query is 35 lines).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.oliverbrown.me.uk/2008/01/04/google-docs-rule-if-you-use-them-right/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Rapid progress with language learning</title>
		<link>http://www.oliverbrown.me.uk/2007/11/20/rapid-progress-with-language-learning/</link>
		<comments>http://www.oliverbrown.me.uk/2007/11/20/rapid-progress-with-language-learning/#comments</comments>
		<pubDate>Tue, 20 Nov 2007 19:20:33 +0000</pubDate>
		<dc:creator>Oliver</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Languages]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Finnish]]></category>
		<category><![CDATA[iTunes]]></category>
		<category><![CDATA[language learning]]></category>
		<category><![CDATA[MP3]]></category>

		<guid isPermaLink="false">http://www.oliverbrown.me.uk/2007/09/14/rapid-progress-with-language-learning/</guid>
		<description><![CDATA[Thought I&#8217;d offer a quick status update regarding the language learning app. After a short break I&#8217;m back at it. Appart from enough Finnish content to generate ten 15-minute lessons the biggest progress is outputting MP3 files. My original plan was just to output M3U playlists but it seems iTunes and therefore iPods don&#8217;t support [...]]]></description>
			<content:encoded><![CDATA[<p>Thought I&#8217;d offer a quick status update regarding the language learning app. After a short break I&#8217;m back at it. Appart from enough Finnish content to generate ten 15-minute lessons the biggest progress is outputting MP3 files. My original plan was just to output M3U playlists but it seems iTunes and therefore iPods don&#8217;t support M3U files (as far as I can tell iTunes can only create playlists of files in it&#8217;s library &#8211; who wants hundres of files in their library consisting of a few words each?).</p>
<p>The sample MP3s should be available &#8220;soon&#8221;&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.oliverbrown.me.uk/2007/11/20/rapid-progress-with-language-learning/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Handling regional variations in language learning</title>
		<link>http://www.oliverbrown.me.uk/2007/04/27/handling-regional-variations-in-language-learning/</link>
		<comments>http://www.oliverbrown.me.uk/2007/04/27/handling-regional-variations-in-language-learning/#comments</comments>
		<pubDate>Fri, 27 Apr 2007 17:13:24 +0000</pubDate>
		<dc:creator>Oliver</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Languages]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[Cantonese]]></category>
		<category><![CDATA[Chinese]]></category>
		<category><![CDATA[French]]></category>
		<category><![CDATA[Mandarin]]></category>

		<guid isPermaLink="false">http://www.oliverbrown.me.uk/2007/04/27/handling-regional-variations-in-language-learning/</guid>
		<description><![CDATA[Warning, this post is long and rambling. You have been warned! :P
Part of the design philosophy of my language learning app is to reuse as much as possible. This brings up an interesting issue regarding regional variations of languages (I&#8217;m talking mainly about somewhat standardised variations) and how much should be shared between them.
For example [...]]]></description>
			<content:encoded><![CDATA[<p>Warning, this post is long and rambling. You have been warned! :P</p>
<p>Part of the design philosophy of my language learning app is to reuse as much as possible. This brings up an interesting issue regarding regional variations of languages (I&#8217;m talking mainly about somewhat standardised variations) and how much should be shared between them.</p>
<p>For example in Belgium, French is an official language. This is almost the same as French as spoken in France but with a few important differences. Firstly there are minor vocabulary variations (Belgian French has specific words for 70 and 90 for instance). There is also a lot of Flemish and Walloon vocabulary used in addition to the French vocabulary. Finally there are pronunciation differences but these seem no greater than differences in accent.</p>
<p>So, a course on Belgian French should be almost identical to a course on Standard French. The question is how to notate that in the <a href="http://www.oliverbrown.me.uk/2006/07/26/almost-ready-for-a-public-viewing/">script files</a> the language app uses.</p>
<p>There are basically three ways I&#8217;ve come up with to cope with the situation, and I think I&#8217;ll support all of them since they have different advantages in different situations.</p>
<p>The first is to allow in line region specific phrases. So for the numbers in Belgian French, the standard French files would be used but any Belgian French sections would take priority.</p>
<p>The second is to have whole region specific files. Extra Belgian phrases not appearing in standard French would be in these and be loaded in addition to the standard French files. This is really an extension of the first.</p>
<p>The final case is no link at all. This would be needed for Chinese. The language code for Mandarin is &#8220;zh-guoyu&#8221; and the code for Cantonese &#8220;zh-yue&#8221;. In this case however there is no such spoken language with the code &#8220;zh&#8221; and therefore nothing to inherit from. This is an specific case of the first two where no parent language exists.</p>
<p>So far this has just been considering audio. The app already supports text and will eventually support text only lessons of some sort. The first method above could be using for spelling variations (when learning English &#8220;color&#8221; and &#8220;colour&#8221; could use the same audio while appearing differently on the screen).  As more dramatic example Serbian could be taught using either the Cyrillic alphabet or the Latin alphabet with the codes &#8220;sr-cyrl&#8221; and &#8220;sr-latn&#8221; respectively. Or perhaps even both&#8230;</p>
<p>The final point I want to make regards the actual audio files themselves. Although it is true than most of spoken French is almost the same in Belgium and France, the accents are different and generally identifiable to French speakers. Therefore regional specific audio is desirable where possible. Since the script files and the audio are kept separate this is is possible with the language app. If the Belgian French audio exists that will be used, if not the standard French is used. That means that if a standard French course is created, an adequate Belgian French course can then be created with little effort but with the possibility of improving it later</p>
]]></content:encoded>
			<wfw:commentRss>http://www.oliverbrown.me.uk/2007/04/27/handling-regional-variations-in-language-learning/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>So much for Gtk#&#8230;</title>
		<link>http://www.oliverbrown.me.uk/2007/04/24/so-much-for-gtk/</link>
		<comments>http://www.oliverbrown.me.uk/2007/04/24/so-much-for-gtk/#comments</comments>
		<pubDate>Tue, 24 Apr 2007 17:55:12 +0000</pubDate>
		<dc:creator>Oliver</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Languages]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Gtk]]></category>
		<category><![CDATA[Mono]]></category>
		<category><![CDATA[Visual C# Express]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.oliverbrown.me.uk/2007/04/24/so-much-for-gtk/</guid>
		<description><![CDATA[Well I&#8217;ve abandoned my plans to use Gtk# in the language app (which actually secretly has a name now).
The main reason for changing is simplicity. I had a look at the TreeView control in Gtk and decided it was too much work. Although the theory of good MVC separation is good, the user interface is [...]]]></description>
			<content:encoded><![CDATA[<p>Well I&#8217;ve abandoned my plans to use Gtk# in the <a href="http://www.oliverbrown.me.uk/2007/04/17/language-learning-app-is-back-on">language app</a> (which actually secretly has a name now).</p>
<p>The main reason for changing is simplicity. I had a look at the TreeView control in Gtk and decided it was too much work. Although the theory of good MVC separation is good, the user interface is such a small, simple part of my app it wasn&#8217;t worth it. The stuff I need from <code>System.Windows.Forms</code> should work in Mono (and .NET 1.1 and hopefully even the Compact Framework).</p>
<p>I still prefer the way Gtk handles layout of controls in general, but I console myself with the Windows form designer in Visual C# Express&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.oliverbrown.me.uk/2007/04/24/so-much-for-gtk/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Language learning app is back on</title>
		<link>http://www.oliverbrown.me.uk/2007/04/17/language-learning-app-is-back-on/</link>
		<comments>http://www.oliverbrown.me.uk/2007/04/17/language-learning-app-is-back-on/#comments</comments>
		<pubDate>Tue, 17 Apr 2007 21:43:17 +0000</pubDate>
		<dc:creator>Oliver</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Languages]]></category>
		<category><![CDATA[Macs]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.oliverbrown.me.uk/2007/04/17/language-learning-app-is-back-on/</guid>
		<description><![CDATA[The language learning app which I went on and on about a while ago is now under development again. When I say again I mean I started again in a completely different way (at least from a technical implementation point of view &#8211; the user experience is intended to be the same).
You see I recently [...]]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://www.oliverbrown.me.uk/2006/07/26/almost-ready-for-a-public-viewing/">language learning app</a> which I went on and on about a while ago is now under development again. When I say again I mean I started again in a completely different way (at least from a technical implementation point of view &#8211; the user experience is intended to be the same).</p>
<p>You see I recently started a large project in C# at <a href="http://www.oliverbrown.me.uk/2006/03/27/distinctive-developments/">work</a> (a desktop app by the way, not <a href="http://www.oliverbrown.me.uk/2006/04/27/aspnet-sucks/">ASP.NET</a>) after saying I was somewhat familiar with it and it should be easy to learn. The good news is after two days I realise it actually is really easy to learn, providing you let it do the work for you. (To any programmers intending to learn it, you&#8217;ll spend most of your time at first not actually writing code but finding whereabouts in the huge class library the functionality already exists is. Once you get used to it and get the hang of how it works it is surprisingly relaxing.)</p>
<p>Despite all that I decided I still needed some practice in it so I came up with the idea of doing the language learning app as a fully fledged desktop application &#8211; although at work I&#8217;m using <code>System.Windows.Forms</code> I&#8217;m using <code>Gtk#</code> so it can hopefully run on <a href="http://www.oliverbrown.me.uk/2006/03/29/got-mono/">Mono</a> (and therefore Linux, Mac OS etc). The biggest problem I have is actually playing the audio. A quick search for &#8220;C# MP3&#8243; comes up with a solution based on MCI, some clever thing embedded in a Windows DLL that obviously won&#8217;t be cross platform. My workaround at the moment is just use an external program via the command line that I suppress the window of. If anybody knows of a better way that would work on .NET and Mono, let me know&#8230;</p>
<p><tags>Mono, C#, .NET, language learning, Linux, Gtk, winforms, MP3, dot net</tags></p>
]]></content:encoded>
			<wfw:commentRss>http://www.oliverbrown.me.uk/2007/04/17/language-learning-app-is-back-on/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Will Wiktionary ever be more than a mess?</title>
		<link>http://www.oliverbrown.me.uk/2006/11/16/will-wiktionary-ever-be-more-than-a-mess/</link>
		<comments>http://www.oliverbrown.me.uk/2006/11/16/will-wiktionary-ever-be-more-than-a-mess/#comments</comments>
		<pubDate>Thu, 16 Nov 2006 12:58:52 +0000</pubDate>
		<dc:creator>Oliver</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Languages]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[dictionaries]]></category>
		<category><![CDATA[MediaWiki]]></category>
		<category><![CDATA[Wikimedia]]></category>
		<category><![CDATA[Wikipedia]]></category>
		<category><![CDATA[Wiktionary]]></category>

		<guid isPermaLink="false">http://www.oliverbrown.me.uk/2006/11/16/will-wiktionary-ever-be-more-than-a-mess/</guid>
		<description><![CDATA[Wikipedia is great. You can find out almost anything. The only criticisms of Wikipedia are strenuous at best and tend to either be: a) It&#8217;s unreliable (you shouldn&#8217;t use a single source anyway &#8211; that&#8217;s why Wikipedia articles are supposed to cite references) or b) It&#8217;s somehow elitist or a &#8220;members only club&#8221; &#8211; a [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.wikipedia.org/">Wikipedia</a> is great. You can find out almost anything. The only criticisms of Wikipedia are strenuous at best and tend to either be: a) It&#8217;s unreliable (you shouldn&#8217;t use a single source anyway &#8211; that&#8217;s why Wikipedia articles are supposed to cite references) or b) It&#8217;s somehow elitist or a &#8220;members only club&#8221; &#8211; a view often held by banned users.</p>
<p>One of its oldest sister projects, <a href="http://www.wiktionary.org/">Wiktionary</a> on the other hand is not so good. I think it&#8217;s a marvelous idea that should be done and should definitely continue, but at the moment it is frankly a mess.</p>
<p>In case you don&#8217;t know what it is, it&#8217;s an attempt to create a free multilingual dictionary in every language. That is not a tautology &#8211; I&#8217;m emphasising the fact that it aims to translate from every language to every other language. That is the English version will contain every single word in every language with definitions and details in English. The German version will do the same but with definitions and details in German. And so on for every other language. Of course for some languages there will never be enough editors (English probably has the most and that&#8217;s nowhere near complete).</p>
<p>Ambitious. Possibly too ambitious. The number of editors doesn&#8217;t seem to be as high as Wikipedia and editing is far less fun &#8211; there is far more grunt work to do with laying out tables, sorting out headings, getting links pointing to the right places. There are quite a few bots which can automate some of it, but it&#8217;s still a large and largely dull undertaking.</p>
<p>Why am I telling you this? I don&#8217;t know. Maybe just to encourage a couple more editors to jump on board :)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.oliverbrown.me.uk/2006/11/16/will-wiktionary-ever-be-more-than-a-mess/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Google Custom Search &#8211; Language Learning</title>
		<link>http://www.oliverbrown.me.uk/2006/10/27/google-custom-search-oliverbrown-language-learning/</link>
		<comments>http://www.oliverbrown.me.uk/2006/10/27/google-custom-search-oliverbrown-language-learning/#comments</comments>
		<pubDate>Fri, 27 Oct 2006 11:11:32 +0000</pubDate>
		<dc:creator>Oliver</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Languages]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[custom search]]></category>
		<category><![CDATA[Google Coop]]></category>
		<category><![CDATA[language learning]]></category>
		<category><![CDATA[search engines]]></category>

		<guid isPermaLink="false">http://www.oliverbrown.me.uk/2006/10/27/google-custom-search-oliverbrown-language-learning/</guid>
		<description><![CDATA[Google just launched a clever new custom search thing. The idea is for people to create their own &#8220;custom&#8221; search engines that automatically give weight to certain sites, restrict others and silently append search terms therefore improving accuracy for niche topics. For example imagine an ornithologist searching for &#8220;a pair of great tits&#8221;..
So, I&#8217;ve created [...]]]></description>
			<content:encoded><![CDATA[<p>Google just launched a clever new <a href="http://www.google.com/coop">custom search thing</a>. The idea is for people to create their own &#8220;custom&#8221; search engines that automatically give weight to certain sites, restrict others and silently append search terms therefore improving accuracy for niche topics. For example imagine an ornithologist searching for &#8220;a pair of great tits&#8221;..</p>
<p>So, I&#8217;ve created an engine for finding language learning resources. And it&#8217;s surprisingly good.</p>
<p><!-- Google CSE Search Box Begins --></p>
<form id="searchbox_004416351624488750383:rnayfr21o9s" action="http://www.oliverbrown.me.uk/language-search">
<input name="cx" type="hidden" value="004416351624488750383:rnayfr21o9s" />
<input name="q" size="40" type="text" />
<input name="sa" type="submit" value="Search" />
</form>
]]></content:encoded>
			<wfw:commentRss>http://www.oliverbrown.me.uk/2006/10/27/google-custom-search-oliverbrown-language-learning/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Learning a language over Jabber/XMPP</title>
		<link>http://www.oliverbrown.me.uk/2006/10/24/learning-a-language-over-jabberxmpp/</link>
		<comments>http://www.oliverbrown.me.uk/2006/10/24/learning-a-language-over-jabberxmpp/#comments</comments>
		<pubDate>Tue, 24 Oct 2006 12:59:54 +0000</pubDate>
		<dc:creator>Oliver</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Entertainment]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Languages]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[chat bot]]></category>
		<category><![CDATA[Google Talk]]></category>
		<category><![CDATA[Jabber]]></category>
		<category><![CDATA[Jingle]]></category>
		<category><![CDATA[XMPP]]></category>

		<guid isPermaLink="false">http://www.oliverbrown.me.uk/2006/10/24/learning-a-language-over-jabberxmpp/</guid>
		<description><![CDATA[The language learning app of mine is still under development, but I doubt I&#8217;ll be spending too much time on it until after my trip to America (and by extension, until after Christmas).
In the meantime I&#8217;ve reading about XMPP, the protocol used by Google Talk and several others. One of the extensions that Google is [...]]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://www.oliverbrown.me.uk/2006/07/26/almost-ready-for-a-public-viewing/">language learning app</a> of mine is still under development, but I doubt I&#8217;ll be spending too much time on it until after my <a href="http://www.oliverbrown.me.uk/2006/09/01/i-wont-need-a-visa/">trip to America</a> (and by extension, until after Christmas).</p>
<p>In the meantime I&#8217;ve reading about <a href="http://xmpp.org">XMPP</a>, the protocol used by Google Talk and several others. One of the extensions that Google is largely responsible for <a href="http://www.xmpp.org/extensions/xep-0166.html">Jingle</a> which essentially allows voice communications. There are also a couple of XMPP clients written in PHP. So it may be possible to deliver lessons over XMPP through a chat bot.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.oliverbrown.me.uk/2006/10/24/learning-a-language-over-jabberxmpp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to learn a language</title>
		<link>http://www.oliverbrown.me.uk/2006/08/23/how-to-learn-a-language/</link>
		<comments>http://www.oliverbrown.me.uk/2006/08/23/how-to-learn-a-language/#comments</comments>
		<pubDate>Wed, 23 Aug 2006 09:33:32 +0000</pubDate>
		<dc:creator>Oliver</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Languages]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.oliverbrown.me.uk/2006/08/23/how-to-learn-a-language/</guid>
		<description><![CDATA[I found an interesting post through Technorati tagged Pimsleur about how to learn a language. And for once it actually seems quite sensible and plausible. It&#8217;s also made me think about grammar and how it should be handled in my language learning app.
At the moment it plays the audio at you without anything on the [...]]]></description>
			<content:encoded><![CDATA[<p>I found an interesting post through Technorati tagged Pimsleur about <a href="http://polyglottery.wordpress.com/2006/08/22/thinking/">how to learn a language</a>. And for once it actually seems quite sensible and plausible. It&#8217;s also made me think about grammar and how it should be handled in my <a href="http://www.oliverbrown.me.uk/2006/07/26/almost-ready-for-a-public-viewing/">language learning</a> app.</p>
<p>At the moment it plays the audio at you without anything on the screen. Perhaps the screen could display explanations of interesting or important points about what you hear? I&#8217;m worried about distracting people from listening and limiting the offline usability of precompiled lessons though&#8230;</p>
<p><tags>Pimsleur, polyglot</tags></p>
]]></content:encoded>
			<wfw:commentRss>http://www.oliverbrown.me.uk/2006/08/23/how-to-learn-a-language/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Collocation</title>
		<link>http://www.oliverbrown.me.uk/2006/08/15/collocation/</link>
		<comments>http://www.oliverbrown.me.uk/2006/08/15/collocation/#comments</comments>
		<pubDate>Tue, 15 Aug 2006 10:26:40 +0000</pubDate>
		<dc:creator>Oliver</dc:creator>
				<category><![CDATA[Languages]]></category>

		<guid isPermaLink="false">http://www.oliverbrown.me.uk/2006/08/15/collocation/</guid>
		<description><![CDATA[Collocation refers to a phrase or small group of words used together in normal speech with restrictions not explicitly imposed by grammar. Quite an odd concept, but vitally important to language learning. Correct use of collocation is probably the best way to identify a native speaker from a near native speaker.
I bring this up now [...]]]></description>
			<content:encoded><![CDATA[<p>Collocation refers to a phrase or small group of words used together in normal speech with restrictions not explicitly imposed by grammar. Quite an odd concept, but vitally important to language learning. Correct use of collocation is probably the best way to identify a native speaker from a near native speaker.</p>
<p>I bring this up now because <a href="http://www.luliriisi.me.uk/">Julia</a> made a wonderful example of an incorrect collocation for English. She came up with the phrase &#8220;two and a half hundred&#8221;. In English you can say &#8220;two and half thousand&#8221; and &#8220;two and half million&#8221; but for some reason it doesn&#8217;t work with hundreds (it does in Finnish incidentally).</p>
<p><tags>Finnish, linguistics, collocation</tags></p>
]]></content:encoded>
			<wfw:commentRss>http://www.oliverbrown.me.uk/2006/08/15/collocation/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Language learning pricing and making it pay for itself</title>
		<link>http://www.oliverbrown.me.uk/2006/08/14/language-learning-pricing-and-making-it-pay-for-itself/</link>
		<comments>http://www.oliverbrown.me.uk/2006/08/14/language-learning-pricing-and-making-it-pay-for-itself/#comments</comments>
		<pubDate>Mon, 14 Aug 2006 14:40:29 +0000</pubDate>
		<dc:creator>Oliver</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Languages]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.oliverbrown.me.uk/2006/08/14/language-learning-pricing-and-making-it-pay-for-itself/</guid>
		<description><![CDATA[If I&#8217;m considering paying for voice talent  for the language app (which let&#8217;s face it, I&#8217;m going to have to do) I have to be thinking about getting the money back somehow and I have an interesting idea that essentially equates to everyone helping each other learn languages.
Basically when learning, you pay per phrase [...]]]></description>
			<content:encoded><![CDATA[<p>If I&#8217;m considering <a href="http://www.oliverbrown.me.uk/2006/08/07/any-voice-talent-out-there/">paying for voice talent </a> for the <a href="http://www.oliverbrown.me.uk/2006/07/26/almost-ready-for-a-public-viewing/">language app</a> (which let&#8217;s face it, I&#8217;m going to have to do) I have to be thinking about getting the money back somehow and I have an interesting idea that essentially equates to everyone helping each other learn languages.</p>
<p>Basically when learning, you pay per phrase (phrase in this context means any named element. Usually a phrase but could also be a specific term). The cost would be something really low (say for example $0.01 each). You only pay for a phrase once regardless of how many times it gets repeated or how many conversations it appears in. Just to provide some sort of concrete example, the material I&#8217;m testing with (which covers the first two Pimsleur lessons) has 82* different phrases/terms. Quite a few simple conversations can be put together with that material. As the number of phrases increases, the number of conversations increases exponentially (the mathematician within me has to point out that strictly speaking it&#8217;s probably not exponential).</p>
<p>The clever part would be to allow people to upload their own audio. Although this has a few issues with regards to quality it might work. If you upload audio, you get a percentage of the money spent on listening to your audio. What the exact percentage should be is complicated though. As well as audio, the other big part of the system is the scripts. The traditional part of me feels that the scripts should have some sort of professional input from someone with experience teaching the language. Another part of me realises that hundreds of books exist for teaching languages that are written by professionals that are totally useless (and therefore professional input may not be all its cracked up to be). With that in mind, someone fluent in the language may be all that is required. Either way, the script writers need money too and should probably get a percentage as well. That $0.01 is being spread quite thin&#8230;</p>
<p>The system obviously needs an infrastructure in place to sort this. At a basic level it should list phrases that are needed in scripts but are missing. Another part would be to highlight underutilised phrases that need more conversations writing for them.</p>
<p>As a final note I&#8217;d like to explain another bit of cleverness in the system (and an associated problem, perhaps). Before a conversation is played it is checked for completeness &#8211; i.e. do sound files exist for all the required audio. Shortly I&#8217;ll be adding another layer to this &#8211; checking for sound files by <i>the right people</i>. Phrases in a script are marked by &#8220;person&#8221;. Simply a way of identifying who is doing the talking when a script involves more than one person (which most of them will do). It&#8217;s important that all elements in a script marked &#8220;Person1&#8243; are by the same person and all the parts by &#8220;Person2&#8243; are by the same person (and that &#8220;Person1&#8243; and &#8220;Person2&#8243; are different from each other). This means that there will be some duplication of audio going on. If someone records all the initial audio, but then never records any more, someone else will have to re-record most of it since it will be used in later scripts. Which also implies there&#8217;s nothing to stop people re-recording the initial material in an effort to get a percentage of the money (assuming enough is offered to make it worthwhile). I&#8217;m not sure if that really is so bad though &#8211; it offers more variety for listeners&#8230;</p>
<p>* Or perhaps 164. Whether you should pay for the native and foreign versions is a tough subject. I&#8217;d like the application to be independent of a specific language so my preference would be &#8220;yes&#8221;. They take just as much effort to record after all&#8230;</p>
<p><tags>Pimsleur, language learning, voice talent, foreign language</tags></p>
]]></content:encoded>
			<wfw:commentRss>http://www.oliverbrown.me.uk/2006/08/14/language-learning-pricing-and-making-it-pay-for-itself/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>How much fluff is needed?</title>
		<link>http://www.oliverbrown.me.uk/2006/08/13/how-much-fluff-is-needed/</link>
		<comments>http://www.oliverbrown.me.uk/2006/08/13/how-much-fluff-is-needed/#comments</comments>
		<pubDate>Sun, 13 Aug 2006 23:08:03 +0000</pubDate>
		<dc:creator>Oliver</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Languages]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web Programming]]></category>
		<category><![CDATA[foreign languages]]></category>
		<category><![CDATA[language learning]]></category>
		<category><![CDATA[Pimsleur]]></category>

		<guid isPermaLink="false">http://www.oliverbrown.me.uk/2006/08/13/how-much-fluff-is-needed/</guid>
		<description><![CDATA[I&#8217;ve been sorting out exactly what needs recording for the language app (which I finally have an idea for a name for) and I was trying to decide how much extra instructor speech is needed. Situations aren&#8217;t described for instance (no &#8220;Image an English man sitting next to a French woman&#8221;) and you aren&#8217;t asked [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been sorting out exactly what needs recording for the <a href="http://www.oliverbrown.me.uk/2006/07/26/almost-ready-for-a-public-viewing/">language app</a> (which I finally have an idea for a name for) and I was trying to decide how much extra instructor speech is needed. Situations aren&#8217;t described for instance (no &#8220;Image an English man sitting next to a French woman&#8221;) and you aren&#8217;t asked to say things explicitly (&#8221;How do you ask someone if they speak English?&#8221;). Will this harm the process at all?</p>
<p>The best thing to do perhaps would be to avoid trying to <em>be</em> Pimsleur quite so exactly.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.oliverbrown.me.uk/2006/08/13/how-much-fluff-is-needed/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Any voice talent out there?</title>
		<link>http://www.oliverbrown.me.uk/2006/08/07/any-voice-talent-out-there/</link>
		<comments>http://www.oliverbrown.me.uk/2006/08/07/any-voice-talent-out-there/#comments</comments>
		<pubDate>Mon, 07 Aug 2006 19:59:44 +0000</pubDate>
		<dc:creator>Oliver</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Languages]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.oliverbrown.me.uk/2006/08/07/any-voice-talent-out-there/</guid>
		<description><![CDATA[Foreign language voice talent needed for the still-unnamed language learning application.
I have a series of phrases I need recording with a total audio time of about five minutes. I need them in as many languages as possible (although if it isn&#8217;t English, German or Finnish then I&#8217;ll also need them translating &#8211; they are really [...]]]></description>
			<content:encoded><![CDATA[<p>Foreign language voice talent needed for the <a href="http://www.oliverbrown.me.uk/2006/07/26/almost-ready-for-a-public-viewing/">still-unnamed language learning application</a>.</p>
<p>I have a series of phrases I need recording with a total audio time of about five minutes. I need them in as many languages as possible (although if it isn&#8217;t English, German or Finnish then I&#8217;ll also need them translating &#8211; they are really simple by the way). My main requirements are that the recording is good quality and that you are a native or fluent speaker of the language.</p>
<p>After looking around the Internet for a bit I discovered I could technically afford the hourly rate of most voice actors marketing themselves on the Internet &#8211; except they all had rather high minimums which made my five minutes very expensive (although I realise five minutes of audio takes more than five minutes of work). As well as money I can also offer a link and a review which has to be worth something (after all people are paying me for links that have nothing to do with the content of the site and presumably think it&#8217;s worth it).</p>
<p>If you&#8217;re interested, <a href="mailto:galaxiaguy@googlemail.com">email me</a> with the language(s) you could do and a quote (and preferably a sample but I acknowledge that this approach is hardly targeting professionals).</p>
<p><tags>voice talent, voice actors, German, Finnish, French, Spanish, Italian, Pimsleur</tags></p>
]]></content:encoded>
			<wfw:commentRss>http://www.oliverbrown.me.uk/2006/08/07/any-voice-talent-out-there/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Multilingual pretty URLs</title>
		<link>http://www.oliverbrown.me.uk/2006/08/03/multilingual-pretty-urls/</link>
		<comments>http://www.oliverbrown.me.uk/2006/08/03/multilingual-pretty-urls/#comments</comments>
		<pubDate>Thu, 03 Aug 2006 15:16:53 +0000</pubDate>
		<dc:creator>Oliver</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Languages]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web Programming]]></category>

		<guid isPermaLink="false">http://www.oliverbrown.me.uk/2006/08/03/multilingual-pretty-urls/</guid>
		<description><![CDATA[There is more and more emphasis on pretty URLs these days. With things like Ruby on Rails around to easily support it and better knowledge and use of things like mod_rewrite the days of horrible query strings is going away (excluding of course the most used websites &#8211; search engines). But how do you make [...]]]></description>
			<content:encoded><![CDATA[<p>There is more and more emphasis on pretty URLs these days. With things like Ruby on Rails around to easily support it and better knowledge and use of things like mod_rewrite the days of horrible query strings is going away (excluding of course the most used websites &#8211; search engines). But how do you make your multilingual website have pretty URLs?</p>
<p>My <a href="http://www.oliverbrown.me.uk/2006/07/17/back-to-language-learning/">language learning app</a> uses the <a href="http://www.oliverbrown.me.uk/2006/07/18/zend-framework/">Zend Framework</a> and so uses pretty URLs by default. I need the interface available in many languages, but then the URLs should be pretty in a localized way.</p>
<p>For example, starting a new Finnish lesson uses the following:</p>
<p><code>/lesson/new/fi</code></p>
<p>That would be the <code>new</code> action of the <code>lesson</code> controller with an extra language code parameter of <code>fi</code>.</p>
<p>In German this should be something like:</p>
<p><code>/lektion/neu/fi</code></p>
<p>By default this would access the <code>neu</code> action of the <code>lektion</code> controller.</p>
<p>The &#8220;simple&#8221; solution would be to write lots of controllers that just delegate to the real one. Which is silly. Instead an extra layer has to be added to the routing process some sort of look-up table mapping localized URL fragments with &#8220;real&#8221; canonical ones. This should be fairly simple with Zend Framework (although I haven&#8217;t actually tried yet).</p>
<p>Just an important issue no-one seems to have brought up yet&#8230;</p>
<p><tags>pretty URLs, Zend, Zend Framework, web frameworks, MVC</tags></p>
]]></content:encoded>
			<wfw:commentRss>http://www.oliverbrown.me.uk/2006/08/03/multilingual-pretty-urls/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
