<?xml version="1.0" encoding="iso-8859-1"?>
<rss version="2.0">
  <channel>
    <title>Monologue</title>
    <description>The voices of Mono</description>
    <link>http://www.go-mono.com/monologue/</link>
    <docs>http://backend.userland.com/rss</docs>
    <generator>Monologue worker: b-diddy powered</generator>
    <item>
      <title>Mirco Bauer:  Smuxi 0.8 "Godsend" Release </title>
      <description> 	&lt;p&gt;5 weeks after the 0.7.2.2 "Lovegood" release, I am very happy to announce the major feature release, &lt;b&gt;0.8&lt;/b&gt; codenamed &lt;b&gt;"Godsend"&lt;/b&gt;. Major feature highlights of this release are desktop notifications (with full support of actions, icons, updates, append and sound), messaging menu / indicators (as provided by Ubuntu's &lt;a href="https://wiki.ubuntu.com/Ayatana"&gt;Ayatana project&lt;/a&gt;) and working Twitter support with OAuth (basic auth was disabled by Twitter on 31st August). This version also fixes all bugs that were reported since the release of 0.7.2.2.&lt;/p&gt;
	&lt;p&gt;Desktop Notifications&lt;br /&gt;&lt;img src="http://www.smuxi.org/attachments/52/smuxi-0.8-dev-notify-osd.png" /&gt;&lt;/p&gt;
	&lt;p&gt;Messaging Menu&lt;br /&gt;&lt;img src="http://www.smuxi.org/attachments/51/smuxi-0.8-dev-messaging-menu.png" /&gt;&lt;/p&gt;
	&lt;p&gt;&amp;#160;Further on, Smuxi comes with the following improvements in its user interface:&lt;/p&gt;
	&lt;ul&gt;
	&lt;li&gt;More distinct nick colors by using a combination of colors&lt;/li&gt;
	&lt;li&gt;Use of nick colors for userlists&lt;/li&gt;
	&lt;li&gt;Emphasis of own nick in bold, making it easier to distinguish sent messages&lt;/li&gt;
	&lt;li&gt;Toggle-able menubar&lt;/li&gt;
	&lt;li&gt;Full screen mode support for enhanced netbook experience&lt;/li&gt;
	&lt;li&gt;Browse mode support&lt;/li&gt;
	&lt;li&gt;Remembering of tab order when reconnecting to a smuxi-server&lt;/li&gt;
	&lt;li&gt;Sound support by notification daemons which support this extension&lt;/li&gt;
	&lt;li&gt;Display of IRC network name instead of hostname in the tab&lt;/li&gt;
	&lt;li&gt;Addition of "Open Log" button for easy viewing of logs.&lt;/li&gt;
	&lt;/ul&gt;
	&lt;p&gt;Smuxi provides better connectivity and security by supporting: HTTP and SOCKS proxies as well as secure connections to IRC servers by using SSL with optional certificate validation.&lt;/p&gt;
	&lt;p&gt;Last but not least, it comes with an enhanced Twitter experience by supporting the use of multiple Twitter accounts at the same time, reformatting tweets that contain newlines and showing the full retweet instead of a truncated version.&lt;/p&gt;
	&lt;p&gt;Updated languages includes: French (Clément BOURGEOIS) and German (Bianca Mix)&lt;/p&gt;
	&lt;p&gt;The &lt;a href="irc://irc.oftc.net/smuxi"&gt;#smuxi IRC channel&lt;/a&gt; can now also be found, in addition to OFTC, on other popular IRC networks such as freenode and GIMPnet. The messages on #smuxi are automatically relayed between the 3 IRC networks.&lt;/p&gt;
	&lt;p&gt;If you like Smuxi and want to support it by making micro-donations, &lt;a href="https://flattr.com/thing/51924/Smuxi-IRC-Client"&gt;Smuxi is available on Flattr&lt;/a&gt;.&lt;/p&gt;
	&lt;p&gt;There are also many other nice FOSS projects available on Flattr, see the &lt;a href="http://raphaelhertzog.com/2010/09/01/free-software-to-flattr-sep-2010/"&gt;Flattr-FOSS project&lt;/a&gt;.&lt;/p&gt;
	&lt;p&gt;Smuxi is available for download from &lt;a href="http://www.smuxi.org/page/Download"&gt;here&lt;/a&gt;.
&lt;/p&gt;
	&lt;p&gt;Binary Packages of Smuxi 0.8 are ready to be used by Debian/Experimental, Ubuntu/Maverick, Ubuntu/Lucid (via PPA), OpenSUSE, Foresight Linux, FreeBSD, and Windows.&lt;/p&gt;
 </description>
      <link>http://www.meebey.net/jaws/?gadget=Blog&amp;action=SingleView&amp;id=47</link>
      <category>Mono</category>
      <author>Mirco_x0020_Bauer@monologue.go-mono.com</author>
      <guid isPermaLink="false">http://www.meebey.net/jaws/?gadget=Blog&amp;action=SingleView&amp;id=47</guid>
      <pubDate>Wed, 08 Sep 2010 17:57:35 GMT</pubDate>
    </item>
    <item>
      <title>Andrés G. Aragoneses: Version Tolerant Serialization with Mono</title>
      <description>&lt;object width="640" height="385"&gt;&lt;param name="movie" value="http://www.youtube.com/v/sGCqd6qXqP0&amp;rel=0&amp;color1=0xb1b1b1&amp;color2=0xd0d0d0&amp;hl=en_US&amp;feature=player_embedded&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/sGCqd6qXqP0&amp;rel=0&amp;color1=0xb1b1b1&amp;color2=0xd0d0d0&amp;hl=en_US&amp;feature=player_embedded&amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="640" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;(Zoot Woman - Lonely By Your Syde)&lt;br /&gt;&lt;br /&gt;During the last months I've kept working {with|on} Mono, but not working for Novell anymore.&lt;br /&gt;&lt;br /&gt;Today I'm proud to blog about a bit of work I've done &lt;strong&gt;on&lt;/strong&gt; Mono towards a better Binary Serialization experience:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;mono-api-info&lt;/strong&gt; command now can output ABI instead of API if you append the flag &lt;strong&gt;--abi&lt;/strong&gt;. It has been useful for us in LindenLab while working on binary serialization compatibility between versions (already upstream!, so will be available in Mono v2.8, even with a new man page).&lt;br /&gt;&lt;br /&gt;If you ever wondered why your .NET code is no longer capable of deserializing some old binary object you had in your servers, instead of fixing the problem in a case-by-case basis, you can now see the whole picture by just diffing the output of mono-api-info --abi from your current and old codebase! A small TODO that I haven't completed yet is to deal with automatic properties (because we still don't use them) so that would be an exercise for the reader!&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Fix for upstream Mono to act as .NET in regards to &lt;a href="http://msdn.microsoft.com/en-us/library/ms229752(VS.80).aspx"&gt;Version Tolerant Serialization&lt;/a&gt;, a patch to which I have just added a lot more unit tests (soon to be pushed hopefully).&lt;br /&gt;&lt;br /&gt;You can see the patch of this quite old mono bug &lt;a href="https://bugzilla.novell.com/show_bug.cgi?id=324144"&gt;here&lt;/a&gt;. Disclaimer: to be honest you will only need the previous --abi tool if you use a Mono version prior this fix, because from my testing VTS in MS.NET works as if every new field had an &lt;a href="http://msdn.microsoft.com/en-us/library/system.runtime.serialization.optionalfieldattribute.aspx"&gt;[OptionalField]&lt;/a&gt; attached! (At least the BinaryFormatter, the TODO here for the reader is to test the SoapFormatter ;) )&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;On a totally unrelated note: kudos to the MonoDevelop team for making such a great releases lately (and fixing the bugs I report so promptly). I've been testing it the last months on Windows and I can say it's a great experience to see your favorite IDE working cross-platform and making you not depend on VS anymore if you need to work on Windows from time to time (I know the Express versions are free, and are great! but they do not support plugins :( ). BTW, I've been lately experimenting with the C language support in this IDE, and have had some problems, but the real culprit seems to lay behind some wierd behaviour of my &lt;strong&gt;gdb&lt;/strong&gt; in opensuse. Taking advantage that I'm in opensuse planet, can I do a couple of lazyweb requests?:&lt;br /&gt;&lt;br /&gt;a) If you're quite familiar with gdb, can you take a look at these 2 bugs in case it rings any bell for you? &lt;a href="https://bugzilla.novell.com/show_bug.cgi?id=588175"&gt;BNC#588175&lt;/a&gt;, &lt;a href="https://bugzilla.novell.com/show_bug.cgi?id=459274"&gt;BNC#459274&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;b) Can you try to reproduce those bugs in openSUSE 11.3? (I haven't migrated yet from 11.2 because I fear about the HALlessness of it :) )&lt;br /&gt;&lt;br /&gt;PS: Wondered why the video on the top? Well, I like the trend that some people have about posting random photos in their blog posts even when they may be completely unrelated, but in my case I love music so I figured this would suit better. Of course I would rather embed a WebM video or, even better, something that can preview a song (without video) in a "normally-lower-quality-than-what-you-can-buy" way, so if you have any hints, those are welcome! I especially mention the latter in this case because the Album version of the song above is much much better (synth pop FTW!).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13199395-6523353404955169440?l=knocte.blogspot.com' alt='' /&gt;&lt;/div&gt;</description>
      <link>http://knocte.blogspot.com/2010/09/version-tolerant-serialization-with.html</link>
      <category domain="http://www.blogger.com/atom/ns#">Programacion</category>
      <category domain="http://www.blogger.com/atom/ns#">SoftwareLibre</category>
      <category domain="http://www.blogger.com/atom/ns#">Ingenieria</category>
      <category domain="http://www.blogger.com/atom/ns#">General</category>
      <category domain="http://www.blogger.com/atom/ns#">CSharp</category>
      <category domain="http://www.blogger.com/atom/ns#">Mono</category>
      <author>Andrés_x0020_G._x0020_Aragoneses@monologue.go-mono.com</author>
      <guid isPermaLink="false">tag:blogger.com,1999:blog-13199395.post-6523353404955169440</guid>
      <pubDate>Wed, 08 Sep 2010 16:26:00 GMT</pubDate>
    </item>
    <item>
      <title>Unity Technologies: Announcing the 2010 Unity Awards</title>
      <description>

Come get the fame and fortune that&amp;#8217;s rightly yours at the annual awards ceremony to be held at Unite 2010.
The Unity Awards is our way of honoring the best content being created with Unity.
Categories
We&amp;#8217;ll be awarding a Unity Award to the winner and a runner up in each of these categories:
? Grand Prix
? Best Mobile [...]</description>
      <link>http://blogs.unity3d.com/2010/09/08/announcing-the-2010-unity-awards/</link>
      <category>Community News</category>
      <category>Events</category>
      <category>Unite</category>
      <author>Unity_x0020_Technologies@monologue.go-mono.com</author>
      <comments>http://blogs.unity3d.com/2010/09/08/announcing-the-2010-unity-awards/#comments</comments>
      <guid isPermaLink="false">http://blogs.unity3d.com/?p=3412</guid>
      <pubDate>Wed, 08 Sep 2010 09:33:22 GMT</pubDate>
    </item>
    <item>
      <title>Jackson Harper: You can call Contains with a Type as the key, but you...</title>
      <description>&lt;img src="http://24.media.tumblr.com/tumblr_l8e7b8dJQn1qcmw7mo1_500.png"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;You can call Contains with a Type as the key, but you can?t call Add with a Type as the key.&lt;/p&gt;

&lt;p&gt;And for some reason apps rely on this behavior.&lt;/p&gt;</description>
      <link>http://jacksonh.tumblr.com/post/1082466780</link>
      <author>Jackson_x0020_Harper@monologue.go-mono.com</author>
      <guid isPermaLink="false">http://jacksonh.tumblr.com/post/1082466780</guid>
      <pubDate>Tue, 07 Sep 2010 19:54:44 GMT</pubDate>
    </item>
    <item>
      <title>Jackson Harper: Simple Route Patterns in Manos</title>
      <description>&lt;p&gt;After looking at some ugly regexs I decided to implement a simple pattern matching system for routes in Manos. You can now use strings like this for your routes:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;[Get ("/articles/{slug}/{page}")]
public static void Articles (ManosApp app, IManosContext ctx, string slug, int page)
{
}

[Route ("/{foo}/{bar}")]
public void Foo (IManosContext ctx)
{
}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Everything inside of the { } block is matched as a string, but can be converted to any type by the action invoker.&lt;/p&gt;

&lt;p&gt;If you really want a { in your url string (even though its an illegal url char) you can double them up for escaping {{ or }}.  Note: I might just disable this feature since its kind of pointless.&lt;/p&gt;</description>
      <link>http://jacksonh.tumblr.com/post/1079473701</link>
      <author>Jackson_x0020_Harper@monologue.go-mono.com</author>
      <guid isPermaLink="false">http://jacksonh.tumblr.com/post/1079473701</guid>
      <pubDate>Tue, 07 Sep 2010 05:01:03 GMT</pubDate>
    </item>
    <item>
      <title>Jackson Harper: Updates to the routing system in Manos</title>
      <description>&lt;p&gt;I spent my memorial day updating the routing system in Manos to allow for parameterized actions.  Originally actions in Manos were simply a delegate that returned void and took an IManosContext param.  This made some things simple, but also made the API a little clunky to work with.  Here?s an example of what things sometimes looked like:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;[Get ("/Article/(?&lt;slug&gt;.*?)/(?&lt;index&gt;\\d+?)")]
public void Foo (IManosContext ctx)
{
    MyManosApp app = (MyManosApp) ctx.App;

    if (app.SomePropOnMyApp) {
          // ....
    }

    string slug = ctx.Request.Data ["slug"];
    int index = Int32.Parse (ctx.Request.Data ["index"];
}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Having to cast the IManosContext::ManosApp to the applications App type is rather awkward and is something that has bothered me for awhile.  Unfortunately because Actions are a static delegate and the context is a static interface, there wasn?t much I could do about it.&lt;/p&gt;

&lt;p&gt;On top of that, the Int32.Parse is rather scary looking.&lt;/p&gt;

&lt;p&gt;Today I came up with a system that allows me to pass an application specific ManosApp type to the actions and as a side benefit I can also pass in request data as parameters. So the updated example looks like this:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;[Get ("/Article/(?&lt;slug&gt;.*?)/(?&lt;index&gt;\\d+?)")]
public void Foo (MyManosApp app, IManosContext ctx, string slug, int index)
{
    if (app.SomePropOnMyApp) {
          // ....
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;Implicit Routes&lt;/h2&gt;

&lt;p&gt;Implicit routes are still available, anything that has the correct signature will have an implicit route based on method name added for it:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;public void Bar (IManosContext ctx)
{
}

public void Baz (MyManosApp app, IManosContext ctx, string foo)
{
}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;I also added explicit routing for ManosModule properties:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;[Route ("/Articles")]
public ArticlesModule Articles {
    get { 
        // ...
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;Routing Methods&lt;/h2&gt;

&lt;p&gt;Finally, all of the routing methods are still available, you can still do stuff like this if you want:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;public MyApp ()
{
    Get ("/Foobar", ctx =&gt; ctx.Response.Write ("Hello, Foobar"));

    Route ("/Admin", new AdminModule ());
}
&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;OH GOD MY EYES!&lt;/h2&gt;

&lt;p&gt;Writing this blog entry has made me realize the need for something simpler than regex for pattern matching.  Luckily Manos was designed to have a swappable matching system, so users can easily add their own matching system and I can take advantage of that system to make my new system.  Expect to see something like this in Manos really soon:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;[Get ("/Article/{slug}/{index}")]
public static void Foo (IManosContext ctx)
{
}    
&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;More info&lt;/h2&gt;

&lt;p&gt;Its rough, but here is my first draft on the routing docs:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://github.com/jacksonh/manos/blob/master/docs/routing.md"&gt;&lt;a href="http://github.com/jacksonh/manos/blob/master/docs/routing.md"&gt;http://github.com/jacksonh/manos/blob/master/docs/routing.md&lt;/a&gt;&lt;/a&gt;&lt;/p&gt;</description>
      <link>http://jacksonh.tumblr.com/post/1078471382</link>
      <author>Jackson_x0020_Harper@monologue.go-mono.com</author>
      <guid isPermaLink="false">http://jacksonh.tumblr.com/post/1078471382</guid>
      <pubDate>Tue, 07 Sep 2010 01:16:15 GMT</pubDate>
    </item>
    <item>
      <title>Jackson Harper: More Manos Manuals: Timeouts and Object Caching and a release coming soon</title>
      <description>&lt;p&gt;Just added some more docs on Manos.&lt;/p&gt;

&lt;h2&gt;Timeouts&lt;/h2&gt;

&lt;p&gt;The first doc I added is on the timeout system for scheduling periodic tasks to be performed in the Manos pipeline. Here?s a quick example:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;MyManosApp ()
{
    AddTimeout (TimeSpan.FromMinutes (5), 
                       RepeatBehavior.Forever, 
                       (app, data) =&gt; app.Cache.Clear ());
}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;That will clear the application?s object cache every five minutes.  You can also specifiy a number of iterations using RepeatBehavior.Iterations (count) or create a custom repeat behavior using the IRepeatBehavior interface.&lt;/p&gt;

&lt;p&gt;Timeouts are just for simple tasks, they run in the main message loop, so there aren?t guarantees on when they will fire, and they will not fire if the application is stopped.  So timeouts should not be treated as a task scheduler system like django?s Celery project.  In the future I will be adding a robust task scheduling system to Manos though.&lt;/p&gt;

&lt;p&gt;More info can be found here:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://github.com/jacksonh/manos/blob/master/docs/timeouts.md"&gt;&lt;a href="http://github.com/jacksonh/manos/blob/master/docs/timeouts.md"&gt;http://github.com/jacksonh/manos/blob/master/docs/timeouts.md&lt;/a&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;Object Caching&lt;/h2&gt;

&lt;p&gt;The object cache is simply a server side cache for storing objects by key.  This isn?t for view/page caching, this is just for sticking objects in a temporary storage area while the app is running. Right now there is only an in-process cache, but I?m planning on adding a memcached backend this week.&lt;/p&gt;

&lt;p&gt;Here?s a quick example:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;MyManosApp ()
{
    Cache ["foobar"] = "I am the foobar string";
}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;The one feature that the cache offers that?s beyond a simple dictionary interface is time based expiration.  So if you want your object to go away in 15 minutes, you can just do this:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;MyManosApp ()
{
    Cache.Set ("foobar",
                     "I am the foobar string", 
                     TimeSpan.FromMinutes (15));
}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;The rest of the doc can be found here:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://github.com/jacksonh/manos/blob/master/docs/object-cache.md"&gt;&lt;a href="http://github.com/jacksonh/manos/blob/master/docs/object-cache.md"&gt;http://github.com/jacksonh/manos/blob/master/docs/object-cache.md&lt;/a&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;Coming Soon&lt;/h2&gt;

&lt;p&gt;Manos is starting to gain some interest and I?m hoping to do a stripped down release in the next couple of weeks. I?m still not happy with the templating system, so that will probably be disabled, but building things like web services should be pretty easy. And you can always build websites using a different templating system like &lt;a href="http://www.stringtemplate.org/"&gt;StringTemplate&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I still haven?t done a comprehensive what/why/how document for Manos that will explain what it does, why i think its useful and how it works.  I?ve been intentionally avoiding this because I don?t like announcing things that aren?t usable, but unfortunately all my ?feedback requested? blog entries lately have done that for me.  This document should be out around the same time as the release.&lt;/p&gt;</description>
      <link>http://jacksonh.tumblr.com/post/1070023078</link>
      <author>Jackson_x0020_Harper@monologue.go-mono.com</author>
      <guid isPermaLink="false">http://jacksonh.tumblr.com/post/1070023078</guid>
      <pubDate>Sun, 05 Sep 2010 15:30:00 GMT</pubDate>
    </item>
    <item>
      <title>Jim Purbrick: HTML 5 Audio Redux
</title>
      <description>&lt;p&gt;My recent experiments in to using &lt;a href="http://processingjs.org/"&gt;Procssing.js&lt;/a&gt; and &lt;a href="http://www.w3schools.com/html5/tag_audio.asp"&gt;&lt;span class="caps"&gt;HTML5&lt;/span&gt; audio&lt;/a&gt; to generate multimedia web applications &lt;a href="http://jimpurbrick.com/2010/06/07/html-5-multimedia/"&gt;didn&amp;#8217;t get very far&lt;/a&gt;. I first tried generating a new &lt;span class="caps"&gt;HTML&lt;/span&gt; 5 audio element for each audio event, which quickly caused the browser to grind to a halt, and my attempts to reuse audio elements by resetting the playback position didn&amp;#8217;t seem work, leading me to conclude that &lt;span class="caps"&gt;HTML&lt;/span&gt; 5 audio was only really useful for playing back long audio files, not for building sequencers that play back many short samples. When I spoke to &lt;a href="http://remysharp.com/"&gt;@rem&lt;/a&gt; about my findings he was convinced that resetting audio elements should be possible and this weekend&amp;#8217;s &lt;a href="http://london.musichackday.org/2010/"&gt;Music Hackday London&lt;/a&gt; has provided the perfect incentive and opportunity to dust off my experiments and start tinkering again. An hour in and sure enough I&amp;#8217;ve managed to get audio elements to reset: it seems that the trick is to set currentTime after calling play() on the element, something that seems very counter-intuitive, but seems to work (at least in Firefox 3.6.8 and Safari 5.0.1 on &lt;span class="caps"&gt;OS&lt;/span&gt; X 10.6.4). Now I have reliable sample play back it&amp;#8217;s time to start playing around with more interesting interfaces in Processing and there are 26 hours of hacking left: game&amp;nbsp;on!&lt;/p&gt;

		&lt;script src="http://jimpurbrick.com/static/js/processing.js" type="text/javascript" language="javascript"&gt;&lt;/script&gt;
		&lt;script type="text/javascript" language="javascript"&gt;
		/* &lt;!-- */
		/*
		 * init.js, by John Resig
		 *
		 * This code searches for all the &lt;script type="application/processing" target="canvasid"&gt;
		 * in your page and loads each script in the target canvas with the proper id.
		 * It is useful to smooth the process of adding Processing code in your page and starting
		 * the Processing.js engine.
		 */
		
		// &lt;span class="caps"&gt;TODO&lt;/span&gt;: have a look at:
		// http://wiki.github.com/jeresig/processing-js/improved-initjs
		
		if ( window.addEventListener )
		{
			window.addEventListener("load", function()
			{
				var scripts = document.getElementsByTagName("script");
				
				for ( var i = 0; i &lt; scripts.length; i++ )
				{
					if ( scripts[i].type == "application/processing" )
					{
						var src = scripts[i].src, canvas = scripts[i].nextSibling;
			
						if ( src &amp;&amp; src.indexOf("#") )
						{
							canvas = document.getElementById( src.substr( src.indexOf("#") + 1 ) );
						}
						else
						{
							while ( canvas &amp;&amp; canvas.nodeName.toUpperCase() != "CANVAS" )
								canvas = canvas.nextSibling;
						}
		
						if ( canvas )
							Processing(canvas, scripts[i].text);
					}
				}
				
			}, false);
		}
		
		/* --&gt; */
		&lt;/script&gt;

	  &lt;audio id="audio0" src="http://jimpurbrick.com/media/1.wav"&gt;&lt;/audio&gt;
	  &lt;audio id="audio1" src="http://jimpurbrick.com/media/2.wav"&gt;&lt;/audio&gt;
	  &lt;audio id="audio2" src="http://jimpurbrick.com/media/3.wav"&gt;&lt;/audio&gt;
	  &lt;audio id="audio3" src="http://jimpurbrick.com/media/4.wav"&gt;&lt;/audio&gt;
	  &lt;audio id="audio4" src="http://jimpurbrick.com/media/5.wav"&gt;&lt;/audio&gt;
	  &lt;audio id="audio5" src="http://jimpurbrick.com/media/6.wav"&gt;&lt;/audio&gt;
	  &lt;audio id="audio6" src="http://jimpurbrick.com/media/7.wav"&gt;&lt;/audio&gt;
	  &lt;audio id="audio7" src="http://jimpurbrick.com/media/8.wav"&gt;&lt;/audio&gt;

		&lt;div id="content"&gt;
			&lt;div id="stepseq8x8_container"&gt;
				&lt;script type="application/processing"&gt;
/* v-v-v-v stepseq8x8 v-v-v-v */

playSample = function(i) {
  audio = document.getElementById("audio" + i);
  audio.play();
  audio.currentTime = 0;
}

int step = 0;
boolean[][] data = new boolean[8][8];
int offset = 27;
int space = 25;


void setup() 
{
  size(250,250);
  frameRate(2);
  strokeWeight(2);
}

void draw() 
{
  step++;
  step %= 8;
  background(0);
  for(int x=0; x &lt; 8; ++x)
  {
      for(int y=0; y &lt; 8; ++y)
      {
        int colour = 100;
        if(data[x][y])
        {
          colour += 100;
        }
        if(x == step)
        {
          colour += 50;
        }
        fill(colour);
        rect(offset + x * space, offset + y * space, 20, 20);
      }
  }

  for(int y = 0; y &lt; 8; ++y)
  {
    if(data[step][y])
    {
       playSample(y);
    }
  }
}

void mousePressed()
{
    int x = (int) mouseX;
    int y = (int) mouseY;
    x -= offset;
    y -= offset;
    x /= space;
    y /= space;
    x = (int) x;
    y = (int) y;
    data[x][y] = ! data[x][y];
}

/* ^-^-^-^ stepseq8x8 ^-^-^-^ */

&lt;/script&gt;
&lt;canvas width="250" height="250"&gt;&lt;/canvas&gt;

&lt;p&gt;(&lt;a href="http://creativecommons.org/licenses/sampling+/1.0/"&gt;cc-sampling+&lt;/a&gt; licensed samples by &lt;a href="http://www.freesound.org/usersViewSingle.php?id=207"&gt;vitriolix&lt;/a&gt; from &lt;a href="http://www.freesound.org/"&gt;freesound.org&lt;/a&gt;)&lt;/p&gt;
</description>
      <link>http://jimpurbrick.com/2010/09/04/html-5-audio-redux/</link>
      <category>audio</category>
      <category>html5</category>
      <category>music</category>
      <category>music hack day</category>
      <author>Jim_x0020_Purbrick@monologue.go-mono.com</author>
      <guid isPermaLink="false">http://jimpurbrick.com/2010/09/04/html-5-audio-redux/</guid>
      <pubDate>Sat, 04 Sep 2010 11:01:35 GMT</pubDate>
    </item>
    <item>
      <title>Maurits Rijk: Learning Clojure</title>
      <description>Recently I rediscovered an old love of mine. No, this didn&amp;#8217;t happen at a high-school reunion. As part of my New Year&amp;#8217;s resolution I had planned to learn two new programming languages in 2010. And somehow Clojure caught my eye. The language makes a lot of sense to me since I have always been (hence [...]&lt;img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=maurits.wordpress.com&amp;amp;blog=73044&amp;amp;post=240&amp;amp;subd=maurits&amp;amp;ref=&amp;amp;feed=1" width="1" height="1" /&gt;</description>
      <link>http://maurits.wordpress.com/2010/09/03/learning-clojure/</link>
      <category>Programming</category>
      <author>Maurits_x0020_Rijk@monologue.go-mono.com</author>
      <comments>http://maurits.wordpress.com/2010/09/03/learning-clojure/#comments</comments>
      <guid isPermaLink="false">http://maurits.wordpress.com/?p=240</guid>
      <pubDate>Fri, 03 Sep 2010 21:19:49 GMT</pubDate>
    </item>
    <item>
      <title>Rafael Teixeira: Managed Commons including WebM subproject is at Github</title>
      <description>Sorry, forgot to update here that the Managed Commons project now resides at Github:&amp;nbsp;&lt;a href="http://github.com/monoman/Managed-Commons"&gt;http://github.com/monoman/Managed-Commons&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It includes the WebM subproject, that will allow reading/writing WebM files/streams generally and decode/play such streams in Moonlight.&lt;br /&gt;&lt;br /&gt;Little time to work on it, so the progress is very slow, but if you want to contribute, please do: Fork it at Github and send those fantastic Pull Requests.&lt;br /&gt;&lt;br /&gt;Also please post issues there to help guide/prioritize development, I'm trying to first be able to read the Matroska files, them I'll start the decoder and pump some video data, and last plug it into Moonlight. Writing streams/files has low priority at this point, unless someone really want to develop a video producing app, or a slideshow-to-video converter and want to contribute code and testing to that end.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4134341-7266165139878494916?l=monoblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</description>
      <link>http://monoblog.blogspot.com/2010/09/managed-commons-including-webm.html</link>
      <category domain="http://www.blogger.com/atom/ns#">WebM</category>
      <category domain="http://www.blogger.com/atom/ns#">Mono</category>
      <category domain="http://www.blogger.com/atom/ns#">FOSS</category>
      <category domain="http://www.blogger.com/atom/ns#">Moonlight</category>
      <author>Rafael_x0020_Teixeira@monologue.go-mono.com</author>
      <guid isPermaLink="false">tag:blogger.com,1999:blog-4134341.post-7266165139878494916</guid>
      <pubDate>Fri, 03 Sep 2010 19:22:00 GMT</pubDate>
    </item>
    <item>
      <title>Jackson Harper: Nice doc on the resource stream locator format in Silverlight</title>
      <description>&lt;a href="http://msdn.microsoft.com/en-us/library/cc296240(VS.95).aspx"&gt;Nice doc on the resource stream locator format in Silverlight&lt;/a&gt;</description>
      <link>http://jacksonh.tumblr.com/post/1059377245</link>
      <author>Jackson_x0020_Harper@monologue.go-mono.com</author>
      <guid isPermaLink="false">http://jacksonh.tumblr.com/post/1059377245</guid>
      <pubDate>Fri, 03 Sep 2010 17:44:00 GMT</pubDate>
    </item>
    <item>
      <title>Jeffrey Stedfast: Microsoft Double Rainbow!</title>
      <description>&lt;p&gt;Microsoft has just created a new commercial for its Windows Live Photo Gallery software that plays on the "Double Rainbow!" stoner guy. I have to give them props for trying to be hip and cool, but I'm too busy laughing my butt off right now. You've got to see this:&lt;/p&gt;&lt;object width="640" height="385"&gt;&lt;param name="movie" value="http://www.youtube.com/v/8jXz7NrfzsI?fs=1&amp;amp;hl=en_US"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/8jXz7NrfzsI?fs=1&amp;amp;hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;
&lt;p&gt;What I want to know is what kind of camera is that guy using? Never seen anything like it. A friend suggested it was &lt;a href="http://tinyurl.com/26tetkz"&gt;this antique digital camera&lt;/a&gt;, but I'm not convinced. If you have any idea what that camera is, let me know in the comments - it is gonna bug me for days until I know what that was!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/203063759820106893-1370791452683555904?l=jeffreystedfast.blogspot.com' alt='' /&gt;&lt;/div&gt;</description>
      <link>http://jeffreystedfast.blogspot.com/2010/09/microsoft-double-rainbow.html</link>
      <category domain="http://www.blogger.com/atom/ns#">photography</category>
      <category domain="http://www.blogger.com/atom/ns#">humor</category>
      <category domain="http://www.blogger.com/atom/ns#">microsoft</category>
      <author>Jeffrey_x0020_Stedfast@monologue.go-mono.com</author>
      <guid isPermaLink="false">tag:blogger.com,1999:blog-203063759820106893.post-1370791452683555904</guid>
      <pubDate>Thu, 02 Sep 2010 18:12:00 GMT</pubDate>
    </item>
    <item>
      <title>Jordi Mas: gbrainy 1.51 for Linux and Windows</title>
      <description> &lt;p&gt;
Here we have &lt;a target="_blank" href="http://live.gnome.org/gbrainy"&gt;gbrainy&lt;/a&gt; 1.51, a minor bug fixing release. gbrainy is a game that challenges your logic, verbal, calculation and memory abilities.&lt;br /&gt;
&lt;br /&gt;
What is new in version 1.51 from the NEWS file:
&lt;/p&gt;
&lt;blockquote&gt;
	* 5 bug fixes&lt;br /&gt;
	* Updated and new translations &lt;br /&gt;
&lt;/blockquote&gt;
&lt;p&gt;
The new translations include Vietnamese, Korean and Traditional Chinese translation (Hong Kong and Taiwan). 
&lt;/p&gt;
&lt;p&gt;
gbrainy 1.51 is available for download in source code from:&lt;br /&gt;
&lt;br /&gt;
* &lt;a target="_blank" href="http://gent.softcatala.org/jmas/gbrainy/gbrainy-1.51.tar.gz"&gt;http://gent.softcatala.org/jmas/gbrainy/gbrainy-1.51.tar.gz&lt;/a&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; (md5sum 09762be168973e6157263ebbc0256a26)&lt;br /&gt;
&lt;br /&gt;
Additionally, gbrainy is available for all &lt;a target="_blank" href="http://live.gnome.org/gbrainy#Download"&gt;major Linux distributions&lt;/a&gt;. 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Updated Windows version&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
I have also updated&lt;a target="_blank" href="https://sourceforge.net/projects/gbrainy/files/gbrainy/"&gt; gbrainy for Windows installer&lt;/a&gt; to 1.51. I did not this for more than 10 months, I think that I had to do it since the Windows version is downloaded by an &lt;a target="_blank" href="https://sourceforge.net/project/stats/detail.php?group_id=221941&amp;amp;ugn=gbrainy&amp;amp;mode=week&amp;amp;&amp;amp;type=prdownload"&gt;average of 100 people per day&lt;/a&gt;. I have used Monodevelop 2.4 to build the Windows version and it worked very well making really easy now to build gbrainy cross platform.&lt;/p&gt; </description>
      <link>http://gent.softcatala.org/jmas/bloc/pivot/entry.php?id=452&amp;w=jordis_english_bloc</link>
      <category>default, Development</category>
      <author>Jordi_x0020_Mas@monologue.go-mono.com</author>
      <comments>http://gent.softcatala.org/jmas/bloc/pivot/entry.php?id=452&amp;w=jordis_english_bloc#comm</comments>
      <guid isPermaLink="false">452@http://gent.softcatala.org/jmas/bloc/pivot/</guid>
      <pubDate>Thu, 02 Sep 2010 14:47:00 GMT</pubDate>
    </item>
    <item>
      <title>Jackson Harper: First draft of Manos middleware docs</title>
      <description>&lt;p&gt;I just committed my first draft of documentation for Manos?s middleware layer. Its a pretty quick and easy read and I?d appreciate any questions, comments, death threats or concerns that you may have. The doc is written in markdown so you can read is pretty easily on github here:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://github.com/jacksonh/manos/blob/master/docs/middleware.md"&gt;&lt;a href="http://github.com/jacksonh/manos/blob/master/docs/middleware.md"&gt;http://github.com/jacksonh/manos/blob/master/docs/middleware.md&lt;/a&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Things still need to be fleshed out, especially with some examples of what methods can be called from inside the middleware hooks, but this gives you a basic idea.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Gist&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Middleware gives your application an easy way to ?do something? for every request/response transaction that goes into an application.&lt;/p&gt;

&lt;p&gt;You get these methods to register middleware:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;RegisterMiddleware (IManosMiddleware mw);
RegisterMiddleware (string name, IManosMiddleware mw);

RegisterMiddlewareBefore (IManosMiddleware mw);
RegisterMiddlewareBefore (string name, IManosMiddleware mw);
RegisterMiddlewareAfter (IManosMiddleware mw);
RegisterMiddlewareAfter (string name, IManosMiddleware mw);

ReplaceMiddleware (string name, IManosMiddleware mw);
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;And your middleware can override any of these methods:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;ProcessRequest (IManosContext)
PreProcessAction (IManosContext, IManosTarget)
PostProcessAction (IManosContext)
ProcessError (IManosContext)
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;From those methods you can easily re-write parts of the request, redirect to another URL, abort the transaction, manipulate the generated html or just log something to disk.  Really the sky is the limit.&lt;/p&gt;

&lt;p&gt;Most developers will never have to write their own middleware but a lot of really important plumbing pieces of a web framework can be written using middleware.  Things such as the auth system, rate limiting, url rewriting, and red/black testing are important components of a web application and will make use of the middleware layer.  So its important that I get this part right.&lt;/p&gt;</description>
      <link>http://jacksonh.tumblr.com/post/1051380503</link>
      <author>Jackson_x0020_Harper@monologue.go-mono.com</author>
      <guid isPermaLink="false">http://jacksonh.tumblr.com/post/1051380503</guid>
      <pubDate>Thu, 02 Sep 2010 03:43:51 GMT</pubDate>
    </item>
    <item>
      <title>Jackson Harper: Some cute C# tricks</title>
      <description>&lt;a href="http://geekswithblogs.net/BlackRabbitCoder/archive/2010/08/26/c.net-five-little-wonders-that-make-code-better-1-of.aspx"&gt;Some cute C# tricks&lt;/a&gt;</description>
      <link>http://jacksonh.tumblr.com/post/1050723740</link>
      <author>Jackson_x0020_Harper@monologue.go-mono.com</author>
      <guid isPermaLink="false">http://jacksonh.tumblr.com/post/1050723740</guid>
      <pubDate>Thu, 02 Sep 2010 01:18:45 GMT</pubDate>
    </item>
    <item>
      <title>Martin Baulig: MDB's new backend</title>
      <description>&lt;p&gt;Over the last couple of days, I did some extensive refactoring in MDB's backend and completely rewrote it.

&lt;p&gt;The new backend now lives out-of-process and is written in C++ and there's a managed C# counterpart which talks to the C++ classes over a wire protocol.

&lt;p&gt;One big mistake I made in MDB's old backend was abstracting things in the wrong way.  The old backend was basically just wrapping C functions like &lt;i&gt;ptrace()&lt;/i&gt; or &lt;i&gt;waitpid&lt;/i&gt; and making them accessible from managed code.  The big problem with this was that these functions have very specific calling semantics which needed to be replicated on the managed side to use them correctly.

&lt;p&gt;Take &lt;i&gt;ptrace()&lt;/i&gt; as an example - this function has to be called from one special thread and from this thread only.  Or &lt;i&gt;waitpid()&lt;/i&gt; as another example - interrupting it isn't trivial and there is no easy way of waiting for both the child process and user input.  Because of this, more and more hacks where added to the managed part of MDB - hacks which were designed to work around specific calling semantics of these system calls.  All this stuff made porting MDB very difficult.  For instance, when you want to port it to Windows, &lt;i&gt;WaitForDebugEvent&lt;/i&gt; must be called from the thread that created the child process - so the "wait event loop" has to be completely different than on Linux.

&lt;p&gt;Primary goal of the new backend is wrapping &lt;i&gt;functionality&lt;/i&gt;, not functions ... like "step one instruction, give me an event when done" - it doesn't matter &lt;i&gt;how&lt;/i&gt; exactly we wait for the target to stop again, all we're interested in is getting that event.

&lt;p&gt;This doesn't imply rewriting all of MDB in C++, but doing a little bit more in C++ than was previously done in C will make the C# code so much cleaner and so much more portable.  As an added benefit, all the managed code will be fully debuggable by a managed debugger - something that was impossible in the old MDB :-)

&lt;p&gt;The backend refactoring is now done, and we can do multi-thread single-stepping, so this afternoon, I cross-compiled Mono (trunk) from Linux to Windows, enabled mdb support in the runtime and started to play around with it ...</description>
      <link>http://primates.ximian.com/~martin/blog/entry_190.html</link>
      <author>Martin_x0020_Baulig@monologue.go-mono.com</author>
      <guid isPermaLink="false">190@http://primates.ximian.com/~martin/blog/</guid>
      <pubDate>Wed, 01 Sep 2010 18:50:00 GMT</pubDate>
    </item>
    <item>
      <title>Unity Technologies: Introducing The Fabricator Contest!</title>
      <description>
MuseGames.com &amp;#38; Unity Technologies are teaming up for a new bi-monthly Unity &amp;#8220;Prefab&amp;#8221; based contest called The Fabricator Contest! The contest will be a regular event that will challenge members of the community to show their stuff by creating prefabs based on specific themes, and of course because it&amp;#8217;s a contest that means winning entries [...]</description>
      <link>http://blogs.unity3d.com/2010/09/01/the-fabricator-contest/</link>
      <category>Community News</category>
      <category>Events</category>
      <author>Unity_x0020_Technologies@monologue.go-mono.com</author>
      <comments>http://blogs.unity3d.com/2010/09/01/the-fabricator-contest/#comments</comments>
      <guid isPermaLink="false">http://blogs.unity3d.com/?p=3400</guid>
      <pubDate>Wed, 01 Sep 2010 18:10:43 GMT</pubDate>
    </item>
    <item>
      <title>Jackson Harper: Add contact profiles to gmail</title>
      <description>&lt;a href="http://rapportive.com/"&gt;Add contact profiles to gmail&lt;/a&gt;</description>
      <link>http://jacksonh.tumblr.com/post/1047930381</link>
      <author>Jackson_x0020_Harper@monologue.go-mono.com</author>
      <guid isPermaLink="false">http://jacksonh.tumblr.com/post/1047930381</guid>
      <pubDate>Wed, 01 Sep 2010 14:00:08 GMT</pubDate>
    </item>
    <item>
      <title>Jackson Harper: Apparently this AsParallel thing works</title>
      <description>&lt;p&gt;Last night I added support to Manos to parallelize HTTP transactions.&lt;/p&gt;

&lt;p&gt;All I did was change this code:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;foreach (HttpTransaction transaction in transactions) {
    transaction.Run ();
}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;To this:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;transactions.AsParallel ().ForAll (t =&gt; t.Run ());
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;I got a chance to run apache-bench on both versions today and here are the results:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;foreach loop&lt;/strong&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;Concurrency Level:      200
Time taken for tests:   4.208 seconds
Complete requests:      10000
Requests per second:    2376.40 [#/sec] (mean)
Time per request:       84.161 [ms] (mean)
Time per request:       0.421 [ms] (mean, across all concurrent requests)
Transfer rate:          187.98 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0   15 200.8      0    3003
Processing:    28   68  21.8     61     819
Waiting:       28   68  21.8     61     818
Total:         30   83 202.9     61    3084

Percentage of the requests served within a certain time (ms)
  50%     61
  66%     67
  75%     75
  80%     79
  90%     87
  95%     96
  98%    205
  99%    215
 100%   3084 (longest request)
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;strong&gt;With AsParallel&lt;/strong&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;Concurrency Level:      200
Time taken for tests:   2.791 seconds
Complete requests:      10000
Requests per second:    3582.49 [#/sec] (mean)
Time per request:       55.827 [ms] (mean)
Time per request:       0.279 [ms] (mean, across all concurrent requests)
Transfer rate:          283.38 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    1   4.1      0      34
Processing:    21   37   7.2     36     240
Waiting:       10   37   7.2     36     240
Total:         21   38   8.4     36     240

Percentage of the requests served within a certain time (ms)
  50%     36
  66%     38
  75%     39
  80%     40
  90%     44
  95%     50
  98%     63
  99%     73
 100%    240 (longest request)
&lt;/code&gt;&lt;/pre&gt;</description>
      <link>http://jacksonh.tumblr.com/post/1044557152</link>
      <author>Jackson_x0020_Harper@monologue.go-mono.com</author>
      <guid isPermaLink="false">http://jacksonh.tumblr.com/post/1044557152</guid>
      <pubDate>Tue, 31 Aug 2010 22:55:00 GMT</pubDate>
    </item>
    <item>
      <title>Joseph Hill: Mono at NDDNUG Tomorrow Night</title>
      <description>&lt;p&gt;Tomorrow evening (Wednesday, September 1), I will be speaking on ?Mono, MonoTouch, and MonoDroid? at the &lt;a href="http://nddnug.net/"&gt;North Dallas .NET User Group&lt;/a&gt; at 6p.&amp;#160; I hope the title speaks for itself, but you can find event details and a map, as well as &lt;a href="http://monotouch.eventbrite.com/"&gt;RSVP on Eventbrite&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://beyondfocus.com/mono/north-dallas-mono-revisited/"&gt;Five years ago October&lt;/a&gt;, NDDNUG was the first .NET user group to give me the opportunity to present.&amp;#160; I?d like to imagine that my presentation skills have improved substantially since then.&amp;#160; More realistically, you should come anyways, simply because the evening will be action-packed with coverage of the many exciting things the Mono team are working on these days.&lt;/p&gt;</description>
      <link>http://beyondfocus.com/mono/mono-at-nddnug-tomorrow-night/</link>
      <category domain="http://beyondfocus.com/mono/">Mono</category>
      <author>Joseph_x0020_Hill@monologue.go-mono.com</author>
      <guid isPermaLink="true">http://beyondfocus.com/mono/mono-at-nddnug-tomorrow-night/</guid>
      <pubDate>Tue, 31 Aug 2010 14:03:15 GMT</pubDate>
    </item>
    <item>
      <title>Códice Software: Rename support on merge</title>
      <description>I'm going to go back to the basics today and describe how Plastic handles renames during merge with two different cases:&lt;br /&gt;&lt;li&gt;Rename a file, modify it in parallel in a second branch and check how the two branches are correctly merged back, which means: the result file is renamed and it contains the changes from the two branches.&lt;br /&gt;&lt;li&gt;Divergent merging: what if we rename a file in one branch and also in a second one to a different name and we merge back?&lt;br /&gt;&lt;br /&gt;As simple as it might sound, renaming during merging is one of the points where most of the SCMs break... And the good news is that Plastic simply excels there.&lt;br /&gt;&lt;br /&gt;&lt;h1&gt;Handling renames during merge&lt;/h1&gt;&lt;br /&gt;The scenario is very simple:&lt;br /&gt;&lt;li&gt;Create branch task003, rename and modify file agent.cs there&lt;br /&gt;&lt;li&gt;Create branch task004 (in parallel with task003) and modify agent.cs there&lt;br /&gt;&lt;li&gt;Merge back both branches to main&lt;br /&gt;The expected result is: getting agent.cs renamed and including the changes from the two branches.&lt;br /&gt;&lt;br /&gt;This is what Plastic does, but systems like Subversion dramatically fail: SVN will create two files as result and won't directly merge the changes...&lt;br /&gt;&lt;br /&gt;The following screencast shows Plastic in action dealing with this example:&lt;br /&gt;&lt;br /&gt;&lt;object width="640" height="480"&gt;&lt;param name="movie" value="http://www.youtube.com/v/0oAZOehi2oo?fs=1&amp;amp;hl=en_US&amp;amp;color1=0xe1600f&amp;amp;color2=0xfebd01&amp;amp;hd=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/0oAZOehi2oo?fs=1&amp;amp;hl=en_US&amp;amp;color1=0xe1600f&amp;amp;color2=0xfebd01&amp;amp;hd=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="480"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;h1&gt;Divergent renaming&lt;/h1&gt;&lt;br /&gt;The scenario is the following:&lt;br /&gt;&lt;li&gt;Rename a file on a branch&lt;br /&gt;&lt;li&gt;Rename the file to a different name, in parallel, on a different branch&lt;br /&gt;&lt;li&gt;Merge the branches together&lt;br /&gt;&lt;br /&gt;Plastic is able to detect the double rename and come up with a solution: choose one of the names or propose a new one. But Plastic won't end up creating two files and leaving you alone to handle further merging (changes on the files) yourself.&lt;br /&gt;&lt;br /&gt;Interestingly this is exactly what Mercurial does: it will create two files with the two names and warn you to solve the situation somehow.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_z6qpykplUvI/THfdwjU-hYI/AAAAAAAAA3E/Ki9ciHUzfo4/s1600/divergentrenaming.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_z6qpykplUvI/THfdwjU-hYI/AAAAAAAAA3E/Ki9ciHUzfo4/s400/divergentrenaming.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5510116495297774978" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Check it in action here:&lt;br /&gt;&lt;br /&gt;&lt;object width="640" height="480"&gt;&lt;param name="movie" value="http://www.youtube.com/v/Yc1DuJYBMAg?fs=1&amp;amp;hl=en_US&amp;amp;color1=0xe1600f&amp;amp;color2=0xfebd01&amp;amp;hd=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/Yc1DuJYBMAg?fs=1&amp;amp;hl=en_US&amp;amp;color1=0xe1600f&amp;amp;color2=0xfebd01&amp;amp;hd=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="480"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27232680-1351047185147175274?l=codicesoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</description>
      <link>http://codicesoftware.blogspot.com/2010/08/rename-support-on-merge.html</link>
      <category domain="http://www.blogger.com/atom/ns#">merging</category>
      <author>Códice_x0020_Software@monologue.go-mono.com</author>
      <guid isPermaLink="false">tag:blogger.com,1999:blog-27232680.post-1351047185147175274</guid>
      <pubDate>Fri, 27 Aug 2010 15:32:00 GMT</pubDate>
    </item>
    <item>
      <title>Códice Software: Shell Extension tour</title>
      <description>One of the key features in the new Plastic SCM 3.0 is the Windows Shell Extension integration.&lt;br /&gt;&lt;br /&gt;It's a feature that users coming from SVN or CVS were missing (the great "tortoise" family of tools, you know) so we finally cached up here, did our homework and released a very neat integration.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_z6qpykplUvI/THaPnJMH9gI/AAAAAAAAA2M/b09jOMYPXMQ/s1600/shellextbrexplorer.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_z6qpykplUvI/THaPnJMH9gI/AAAAAAAAA2M/b09jOMYPXMQ/s400/shellextbrexplorer.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5509749096778823170" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The really cool thing about the ShellExt is that you can use the entire Plastic GUI from it: the branch explorer, running merges and diff, the changeset browser, code reviews... everything is just there... which ends up creating a very tightly integrated and neat interface. You can access all the replication functionalities too, of course.&lt;br /&gt;&lt;br /&gt;Here's a short screencast (remember we've a &lt;a href="http://www.youtube.com/codicesoftware"&gt;YouTube channel&lt;/a&gt;) here showing most of the views popping up and so on.&lt;br /&gt;&lt;br /&gt;&lt;object width="320" height="200"&gt;&lt;param name="movie" value="http://www.youtube.com/v/RXIB02F7Jm4?fs=1&amp;amp;hl=en_US&amp;amp;hd=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/RXIB02F7Jm4?fs=1&amp;amp;hl=en_US&amp;amp;hd=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="320" height="200"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;The ShellExt shares most of the code with the Windows GUI, which is great for maintenance. We had to do a good refactor of some pieces (not that big at the end :P) in order to be able to display "views" on standalone windows, and then also some threading considerations to integrate with Explorer, but the result, IMHO, is really good.&lt;br /&gt;&lt;br /&gt;Enjoy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/27232680-2408649861914934190?l=codicesoftware.blogspot.com' alt='' /&gt;&lt;/div&gt;</description>
      <link>http://codicesoftware.blogspot.com/2010/08/shell-extension-tour.html</link>
      <category domain="http://www.blogger.com/atom/ns#">shell extension</category>
      <category domain="http://www.blogger.com/atom/ns#">news</category>
      <author>Códice_x0020_Software@monologue.go-mono.com</author>
      <guid isPermaLink="false">tag:blogger.com,1999:blog-27232680.post-2408649861914934190</guid>
      <pubDate>Thu, 26 Aug 2010 15:58:00 GMT</pubDate>
    </item>
    <item>
      <title>Mario Carrion: Mono Accessibility 2.1</title>
      <description>Last Tuesday, we presented Mono Accessibility 2.1. We worked really hard on this release. Our main goals were, among other things, to improve our UI Automation Client API implementation, polish the interaction with at-spi2, better Moonlight accessibility and to handle custom and client-side providers. The great work made by all the contributors was the reason [...]</description>
      <link>http://blog.carrion.mx/2010/08/26/mono-accessibility-2-1/</link>
      <category>english</category>
      <category>2010</category>
      <category>a11y</category>
      <category>august</category>
      <category>c#</category>
      <category>development</category>
      <category>gnome</category>
      <category>mono</category>
      <category>opensuse</category>
      <category>resolutions</category>
      <category>uia</category>
      <author>Mario_x0020_Carrion@monologue.go-mono.com</author>
      <comments>http://blog.carrion.mx/2010/08/26/mono-accessibility-2-1/#comments</comments>
      <guid isPermaLink="false">http://blog.carrion.mx/?p=645</guid>
      <pubDate>Thu, 26 Aug 2010 14:09:37 GMT</pubDate>
    </item>
  </channel>
</rss>