<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<feed xmlns="http://www.w3.org/2005/Atom">

	<title>Planet IronPython</title>
	<link rel="self" href="http://www.voidspace.org.uk/ironpython/planet/atom.xml"/>
	<link href="http://www.voidspace.org.uk/ironpython/planet/index.shtml"/>
	<id>http://www.voidspace.org.uk/ironpython/planet/atom.xml</id>
	<updated>2012-02-11T06:31:43+00:00</updated>
	<generator uri="http://www.planetplanet.org/">http://intertwingly.net/code/venus/</generator>

	<entry>
		<title type="html">Miguel de Icaza: C# for Gaming: AltDevConf This Weekend</title>
		<link href="http://tirania.org/blog/archive/2012/Feb-09.html"/>
		<id>http://tirania.org/blog/archive/2012/Feb-09.html</id>
		<updated>2012-02-10T02:19:00+00:00</updated>
		<content type="html">&lt;p&gt;It is a great honor to participate this weekend on the
	online &lt;a href=&quot;http://altdevconf.com/&quot;&gt;AltDevConf
	conference&lt;/a&gt;.   This is an
	online &lt;a href=&quot;http://altdevblogaday.com/2012/02/02/altdevconf-schedule/&quot;&gt;two-day
	event&lt;/a&gt; 

	&lt;/p&gt;&lt;blockquote&gt;
	Our goal is twofold: To provide free access to a comprehensive
	selection of game development topics taught by leading
	industry experts, and to create a space where bright and
	innovative voices can also be heard. We are able to do this,
	because as an online conference we are not subject to the same
	logistic and economic constrains imposed by the traditional
	conference model.
	&lt;/blockquote&gt;

	&lt;p&gt;I will be participating in the talk
	on &lt;a href=&quot;http://altdevblogaday.com/2012/02/09/altdevconf-programming-laban/&quot;&gt;Cross
	Platform Game Development&lt;/a&gt; using C# with Matthieu Laban and
	Philippe Rollin.    

	&lt;/p&gt;&lt;p&gt;You
	can &lt;a href=&quot;https://www4.gotomeeting.com/register/729719079&quot;&gt;register
	here&lt;/a&gt; for our session on Saturday at 3pm Eastern Standard
	Time, noon Pacific Time, and 6pm Paris Time.

	&lt;/p&gt;&lt;p&gt;If you are located in the Paris time zone, that means that
	you get to enjoy the talk sipping a tasty hot chocolate with
	some tasty baguettes.&lt;/p&gt;</content>
		<author>
			<name>Miguel de Icaza (miguel@gnome.org)</name>
			<uri>http://tirania.org/blog//index.html</uri>
		</author>
	</entry>

	<entry>
		<title type="html">The Voidspace Techie Blog: Callable object with state using generators</title>
		<link href="http://feedproxy.google.com/~r/voidspace/~3/1qE6GVVg23E/arch_d7_2012_01_21.shtml"/>
		<id>http://feedproxy.google.com/~r/voidspace/~3/1qE6GVVg23E/arch_d7_2012_01_21.shtml</id>
		<updated>2012-01-22T15:05:46+00:00</updated>
		<content type="html">It's often convenient to create callable objects that maintain some kind of state. In Python we can do this with objects that implement the __call__ method and store the state as instance attributes. ... [596 words]&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=1qE6GVVg23E:_oxAQaVOhA4:F7zBnMyn0Lo&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=1qE6GVVg23E:_oxAQaVOhA4:F7zBnMyn0Lo&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=1qE6GVVg23E:_oxAQaVOhA4:V_sGLiPBpWU&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=1qE6GVVg23E:_oxAQaVOhA4:V_sGLiPBpWU&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=1qE6GVVg23E:_oxAQaVOhA4:gIN9vFwOqvQ&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=1qE6GVVg23E:_oxAQaVOhA4:gIN9vFwOqvQ&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=1qE6GVVg23E:_oxAQaVOhA4:dnMXMwOfBR0&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?d=dnMXMwOfBR0&quot; /&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img height=&quot;1&quot; src=&quot;http://feeds.feedburner.com/~r/voidspace/~4/1qE6GVVg23E&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>The Voidspace Techie Blog</name>
			<uri>http://www.voidspace.org.uk/python/weblog/index.shtml</uri>
		</author>
	</entry>

	<entry>
		<title type="html">The Voidspace Techie Blog: Simple mocking of open as a context manager</title>
		<link href="http://feedproxy.google.com/~r/voidspace/~3/iAQ3FfQ-xKg/arch_d7_2012_01_07.shtml"/>
		<id>http://feedproxy.google.com/~r/voidspace/~3/iAQ3FfQ-xKg/arch_d7_2012_01_07.shtml</id>
		<updated>2012-01-13T12:18:35+00:00</updated>
		<content type="html">Using open as a context manager is a great way to ensure your file handles are closed properly and is becoming common: with open('/some/path', 'w') as f: f.write('something') The issue is that even if you mock out the call to open it is the returned object that is used as a context manager (and has __enter__ and __exit__ called). Using MagicMock from the mock library, we can mock out context managers very simply. ... [320 words]&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=iAQ3FfQ-xKg:HtP4LsCdEvU:F7zBnMyn0Lo&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=iAQ3FfQ-xKg:HtP4LsCdEvU:F7zBnMyn0Lo&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=iAQ3FfQ-xKg:HtP4LsCdEvU:V_sGLiPBpWU&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=iAQ3FfQ-xKg:HtP4LsCdEvU:V_sGLiPBpWU&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=iAQ3FfQ-xKg:HtP4LsCdEvU:gIN9vFwOqvQ&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=iAQ3FfQ-xKg:HtP4LsCdEvU:gIN9vFwOqvQ&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=iAQ3FfQ-xKg:HtP4LsCdEvU:dnMXMwOfBR0&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?d=dnMXMwOfBR0&quot; /&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img height=&quot;1&quot; src=&quot;http://feeds.feedburner.com/~r/voidspace/~4/iAQ3FfQ-xKg&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>The Voidspace Techie Blog</name>
			<uri>http://www.voidspace.org.uk/python/weblog/index.shtml</uri>
		</author>
	</entry>

	<entry>
		<title type="html">The Voidspace Techie Blog: Mocks with some attributes not present</title>
		<link href="http://feedproxy.google.com/~r/voidspace/~3/YOhkuo1iJSk/arch_d7_2012_01_07.shtml"/>
		<id>http://feedproxy.google.com/~r/voidspace/~3/YOhkuo1iJSk/arch_d7_2012_01_07.shtml</id>
		<updated>2012-01-12T12:33:15+00:00</updated>
		<content type="html">Mock objects, from the mock library, create attributes on demand. This allows them to pretend to be objects of any type. ... [199 words]&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=YOhkuo1iJSk:C6Xv1Mr6HH0:F7zBnMyn0Lo&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=YOhkuo1iJSk:C6Xv1Mr6HH0:F7zBnMyn0Lo&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=YOhkuo1iJSk:C6Xv1Mr6HH0:V_sGLiPBpWU&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=YOhkuo1iJSk:C6Xv1Mr6HH0:V_sGLiPBpWU&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=YOhkuo1iJSk:C6Xv1Mr6HH0:gIN9vFwOqvQ&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=YOhkuo1iJSk:C6Xv1Mr6HH0:gIN9vFwOqvQ&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=YOhkuo1iJSk:C6Xv1Mr6HH0:dnMXMwOfBR0&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?d=dnMXMwOfBR0&quot; /&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img height=&quot;1&quot; src=&quot;http://feeds.feedburner.com/~r/voidspace/~4/YOhkuo1iJSk&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>The Voidspace Techie Blog</name>
			<uri>http://www.voidspace.org.uk/python/weblog/index.shtml</uri>
		</author>
	</entry>

	<entry>
		<title type="html">The Voidspace Techie Blog: mock 0.8rc2: new release and development docs</title>
		<link href="http://feedproxy.google.com/~r/voidspace/~3/iNsW22_Sb74/arch_d7_2012_01_07.shtml"/>
		<id>http://feedproxy.google.com/~r/voidspace/~3/iNsW22_Sb74/arch_d7_2012_01_07.shtml</id>
		<updated>2012-01-11T02:13:32+00:00</updated>
		<content type="html">I've pushed out a new release of mock. This fixes an inconsistency in the create_autospec api I discovered whilst working on the docs (yes I've really been working on the docs), and a fix for a bug with using ANY. ... [190 words]&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=iNsW22_Sb74:RKfWd72U1HM:F7zBnMyn0Lo&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=iNsW22_Sb74:RKfWd72U1HM:F7zBnMyn0Lo&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=iNsW22_Sb74:RKfWd72U1HM:V_sGLiPBpWU&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=iNsW22_Sb74:RKfWd72U1HM:V_sGLiPBpWU&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=iNsW22_Sb74:RKfWd72U1HM:gIN9vFwOqvQ&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=iNsW22_Sb74:RKfWd72U1HM:gIN9vFwOqvQ&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=iNsW22_Sb74:RKfWd72U1HM:dnMXMwOfBR0&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?d=dnMXMwOfBR0&quot; /&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img height=&quot;1&quot; src=&quot;http://feeds.feedburner.com/~r/voidspace/~4/iNsW22_Sb74&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>The Voidspace Techie Blog</name>
			<uri>http://www.voidspace.org.uk/python/weblog/index.shtml</uri>
		</author>
	</entry>

	<entry>
		<title type="html">The Voidspace Techie Blog: Python on Google Plus</title>
		<link href="http://feedproxy.google.com/~r/voidspace/~3/gK_0hvjHSFA/arch_d7_2011_12_31.shtml"/>
		<id>http://feedproxy.google.com/~r/voidspace/~3/gK_0hvjHSFA/arch_d7_2011_12_31.shtml</id>
		<updated>2012-01-03T11:41:02+00:00</updated>
		<content type="html">As you may (or perhaps not) have noticed, I've been blogging a lot less in the last year. A new job with Canonical (although I've been there over a year now) and an eight month old daughter all make blogging harder. ... [83 words]&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=gK_0hvjHSFA:Izo_yNE6Ofg:F7zBnMyn0Lo&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=gK_0hvjHSFA:Izo_yNE6Ofg:F7zBnMyn0Lo&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=gK_0hvjHSFA:Izo_yNE6Ofg:V_sGLiPBpWU&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=gK_0hvjHSFA:Izo_yNE6Ofg:V_sGLiPBpWU&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=gK_0hvjHSFA:Izo_yNE6Ofg:gIN9vFwOqvQ&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=gK_0hvjHSFA:Izo_yNE6Ofg:gIN9vFwOqvQ&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=gK_0hvjHSFA:Izo_yNE6Ofg:dnMXMwOfBR0&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?d=dnMXMwOfBR0&quot; /&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img height=&quot;1&quot; src=&quot;http://feeds.feedburner.com/~r/voidspace/~4/gK_0hvjHSFA&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>The Voidspace Techie Blog</name>
			<uri>http://www.voidspace.org.uk/python/weblog/index.shtml</uri>
		</author>
	</entry>

	<entry>
		<title type="html">The Voidspace Techie Blog: Sphinx doctests and the execution namespace</title>
		<link href="http://feedproxy.google.com/~r/voidspace/~3/mNei5C2uzww/arch_d7_2011_12_31.shtml"/>
		<id>http://feedproxy.google.com/~r/voidspace/~3/mNei5C2uzww/arch_d7_2011_12_31.shtml</id>
		<updated>2012-01-01T00:28:03+00:00</updated>
		<content type="html">I've finally started work on the documentation for mock 0.8 release, and much of it involves converting the write-ups I did in the blog entries. The mock documentation is built with the excellent Sphinx (of course!) ... [402 words]&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=mNei5C2uzww:OgH5yPHMTcM:F7zBnMyn0Lo&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=mNei5C2uzww:OgH5yPHMTcM:F7zBnMyn0Lo&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=mNei5C2uzww:OgH5yPHMTcM:V_sGLiPBpWU&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=mNei5C2uzww:OgH5yPHMTcM:V_sGLiPBpWU&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=mNei5C2uzww:OgH5yPHMTcM:gIN9vFwOqvQ&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=mNei5C2uzww:OgH5yPHMTcM:gIN9vFwOqvQ&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=mNei5C2uzww:OgH5yPHMTcM:dnMXMwOfBR0&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?d=dnMXMwOfBR0&quot; /&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img height=&quot;1&quot; src=&quot;http://feeds.feedburner.com/~r/voidspace/~4/mNei5C2uzww&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>The Voidspace Techie Blog</name>
			<uri>http://www.voidspace.org.uk/python/weblog/index.shtml</uri>
		</author>
	</entry>

	<entry>
		<title type="html">The Voidspace Techie Blog: mock 0.8 release candidate 1 and handling mutable arguments</title>
		<link href="http://feedproxy.google.com/~r/voidspace/~3/4cyybb3Vx8w/arch_d7_2011_12_24.shtml"/>
		<id>http://feedproxy.google.com/~r/voidspace/~3/4cyybb3Vx8w/arch_d7_2011_12_24.shtml</id>
		<updated>2011-12-29T13:04:47+00:00</updated>
		<content type="html">I've released mock 0.8 release candidate 1. You can download it it or install it with: pip install -U mock==dev mock is a library for testing in Python. ... [613 words]&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=4cyybb3Vx8w:1VDhp2XefGM:F7zBnMyn0Lo&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=4cyybb3Vx8w:1VDhp2XefGM:F7zBnMyn0Lo&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=4cyybb3Vx8w:1VDhp2XefGM:V_sGLiPBpWU&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=4cyybb3Vx8w:1VDhp2XefGM:V_sGLiPBpWU&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=4cyybb3Vx8w:1VDhp2XefGM:gIN9vFwOqvQ&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=4cyybb3Vx8w:1VDhp2XefGM:gIN9vFwOqvQ&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=4cyybb3Vx8w:1VDhp2XefGM:dnMXMwOfBR0&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?d=dnMXMwOfBR0&quot; /&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img height=&quot;1&quot; src=&quot;http://feeds.feedburner.com/~r/voidspace/~4/4cyybb3Vx8w&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>The Voidspace Techie Blog</name>
			<uri>http://www.voidspace.org.uk/python/weblog/index.shtml</uri>
		</author>
	</entry>

	<entry>
		<title type="html">Miguel de Icaza: Mono in 2011</title>
		<link href="http://tirania.org/blog/archive/2011/Dec-21.html"/>
		<id>http://tirania.org/blog/archive/2011/Dec-21.html</id>
		<updated>2011-12-21T21:28:00+00:00</updated>
		<content type="html">&lt;p&gt;This was a very interesting year for Mono, and I wanted to
	capture some of the major milestones and news from the
	project as well as sharing a bit of what is coming up for Mono
	in 2012.

	&lt;/p&gt;&lt;p&gt;I used to be able to list all of the major applications and
	great projects built with Mono.    The user base has grown so
	large that I am no longer able to do this.  2011 was a year
	that showed an explosion of applications built with Mono.

	&lt;/p&gt;&lt;p&gt;In this post I list a few of the high profile projects, but
	it is by no means an extensive list.  There are too
	many &lt;a href=&quot;http://xamarin.com/apps/all&quot;&gt;great products&lt;/a&gt;
	and amazing technologies being built with Mono, but a
	comprehensive list would take too long to assemble.

&lt;/p&gt;&lt;h2&gt;Xamarin&lt;/h2&gt;

	&lt;p&gt;The largest event for Mono this year was that the team
	working on Mono technologies at Novell was laid off after
	Novell was acquired.

	&lt;/p&gt;&lt;p&gt;We got back on our feet, and two weeks after the layoffs
	had taken place, &lt;a href=&quot;http://tirania.org/blog/archive/2011/May-16.html&quot;&gt;the original Mono team incorporated as
	Xamarin&lt;/a&gt;.   

	&lt;/p&gt;&lt;p&gt;Xamarin's goal is to deliver great productivity and great
	tools for mobile developers.  Our main products are &lt;a href=&quot;http://ios.xamarin.com&quot;&gt;Mono on
	iOS&lt;/a&gt; and &lt;a href=&quot;http://android.xamarin.com&quot;&gt;Mono on Android&lt;/a&gt;.

	&lt;/p&gt;&lt;p&gt;These products are built on top of the open
	source &lt;a href=&quot;http://mono-project.com&quot;&gt;Mono project&lt;/a&gt; and
	the &lt;a href=&quot;http://monodevelop.com&quot;&gt;MonoDevelop project&lt;/a&gt;.
	We continue to contribute extensively to these two open source
	projects.

	&lt;/p&gt;&lt;p&gt;Launching Xamarin was a huge effort for all of us.

	&lt;/p&gt;&lt;p&gt;Xamarin would not have been possible without our great
	customers and friends in the industry.  Many people cared
	deeply about the technology and helped us get up and running. 

	&lt;/p&gt;&lt;p&gt;In July, we announced an agreement
	with &lt;a href=&quot;http://www.itworld.com/mobile-wireless/184215/xamarin-attachmate-band-together-mono&quot;&gt;Attachmate&lt;/a&gt;
	that ensured a bright future for our young company.

	&lt;/p&gt;&lt;p&gt;A couple of days later, we were ready to sell the mobile
	products that had been previously developed at Novell, and we
	started to provide all existing Novell customers with ongoing
	support for their Mono-based products. 

	&lt;/p&gt;&lt;p&gt;Half a year later, we grew the company and continued to do
	what we like the most: writing amazing software.

	&lt;/p&gt;&lt;p&gt;Meanwhile, our users have created amazing mobile
	applications.   You can see some of those in
	our &lt;a href=&quot;http://xamarin.com/apps&quot;&gt;App Catalog&lt;/a&gt;.

&lt;/p&gt;&lt;h2&gt;C# Everywhere&lt;/h2&gt;

	&lt;p&gt;&lt;b&gt;On the Mobile Space:&lt;/b&gt; This year Sony jumped to C# in
	a big way with the introduction of PS Suite (see the section
	below) and Nokia adopted Windows Phone 7 as their new
	operating system.

	&lt;/p&gt;&lt;p&gt;And &lt;a href=&quot;http://xamarin.com&quot;&gt;we got you covered&lt;/a&gt; on
	Android and iOS for all of your C# needs.

	&lt;/p&gt;&lt;p&gt;&lt;b&gt;On the Browser:&lt;/b&gt; we worked with Google to bring you
	Mono to Native Client.  In fact, every demo shown at the
	Google &lt;a href=&quot;http://www.youtube.com/watch?v=g3aBfkFbPWk&quot;&gt;Native
	Client event&lt;/a&gt; on December 8th was powered by Mono.

	&lt;/p&gt;&lt;p&gt;&lt;b&gt;On the Desktop:&lt;/b&gt; this year we added MacOS X as a
	first-class citizen in the world of supported Mono platforms.
	We did this
	by &lt;a href=&quot;http://tirania.org/monomac//archive/2011/Mar.html&quot;&gt;introducing
	MonoMac 1.0&lt;/a&gt; and supporting Apple's MacStore with it.

	&lt;/p&gt;&lt;p&gt;&lt;b&gt;Games:&lt;/b&gt; continue to take advantage of C# blend of
	performance and high-level features.   Read more on
	my &lt;a href=&quot;http://tirania.org/blog/archive/2011/Mar-07.html&quot;&gt;GDC
	2011&lt;/a&gt; post.

	&lt;/p&gt;&lt;p&gt;It is a wild new world for C# and .NET developers that were
	used to build their UI using ASP.NET or Winforms only.   It
	has been fascinating to see developers evolve their thinking
	from a Microsoft-only view of the world to a world where they
	design libraries and applications that split the presentation
	layer from the business logic.

	&lt;/p&gt;&lt;p&gt;Developers that make this transition will be able to get
	great native experiences on each device and form factor.
	

&lt;/p&gt;&lt;h2&gt;Sony PSSuite - Powered by Mono&lt;/h2&gt;

	&lt;p&gt;At GDC, Sony announced that PS Suite was built on top of
	Mono.  PS Suite is a new development stack for cross-platform
	games and cross-platform applications to run on Android
	devices and Sony Vita.


	&lt;/p&gt;&lt;p&gt;The PS Suite presentation is available in the following
	videos
	(&lt;a href=&quot;http://www.youtube.com/watch?v=clk3uu6o5KY&quot;&gt;first&lt;/a&gt;,
	&lt;a href=&quot;http://www.youtube.com/watch?v=hUQk-tuPFmY&quot;&gt;second&lt;/a&gt;
	and &lt;a href=&quot;http://www.youtube.com/watch?v=9L_oXvIhOWM&quot;&gt;third&lt;/a&gt;).

	&lt;/p&gt;&lt;center&gt;
	&lt;img src=&quot;http://tirania.org/s/51d6460d.png&quot; /&gt;
	&lt;/center&gt;

	&lt;p&gt;In particular, watch the game
	in &lt;a href=&quot;http://www.youtube.com/watch?v=hUQk-tuPFmY&quot;&gt;Video
	2&lt;/a&gt; to get a feeling for the speed of a 3D game purely
	written in managed code (no native code):

	&lt;/p&gt;&lt;p&gt;Some of the juicy details from the GDC announcement:

	&lt;/p&gt;&lt;ul&gt;

		&lt;li&gt;PS Suite will have an open appstore model,
		different than the traditional game publishing
		business.

		&lt;/li&gt;&lt;li&gt;Open SDK, available for everyone at launch time.

		&lt;/li&gt;&lt;li&gt;PS Suite supports both game development with
		Sony's 3D libraries as well as regular app
		development.

		&lt;/li&gt;&lt;li&gt;Cross-platform, cross-device, using the ECMA Common
		Intermediate Language.
		
		&lt;/li&gt;&lt;li&gt;Code in C#, run using Mono.

		&lt;/li&gt;&lt;li&gt;GUI Designer called &quot;UI Composer&quot; for non-game
		applications. 
		
		&lt;/li&gt;&lt;li&gt;The IDE is based on MonoDevelop.

		&lt;/li&gt;&lt;li&gt;Windows-simulator is included to try things out
		quickly. 
	&lt;/li&gt;&lt;/ul&gt;

	&lt;p&gt;MonoDevelop on PSSuite:

	&lt;/p&gt;&lt;center&gt;
	&lt;img src=&quot;http://tirania.org/s/b0510805.png&quot; /&gt;
	&lt;/center&gt;

	&lt;p&gt;PS Suite comes with a GUI Toolkit and this is what the UI
	composer looks like:

	&lt;/p&gt;&lt;center&gt;
	&lt;img src=&quot;http://tirania.org/s/2ee3ec28.png&quot; /&gt;
	&lt;/center&gt;

&lt;h2&gt;Google Native Client&lt;/h2&gt;

	&lt;p&gt;Google Engineers ported Mono to run on the sandboxed
	environment of &lt;a href=&quot;http://gonacl.com&quot;&gt;Native Client&lt;/a&gt;.
	Last year they had added support for Mono code generator to
	output code for Native Client using
	Mono's &lt;a href=&quot;http://www.mono-project.com/AOT&quot;&gt;static
	compiler&lt;/a&gt;.

	&lt;/p&gt;&lt;p&gt;This year Google extended Native Client to support Just in
	Time Compilation, in particular, Mono's brand of JIT
	compilation.   This was used by all three demos shown at the
	&lt;a href=&quot;http://www.youtube.com/watch?v=g3aBfkFbPWk&quot;&gt;Google
	Native Client&lt;/a&gt; event a couple of days ago:

	&lt;/p&gt;&lt;center&gt;
	&lt;img src=&quot;http://tirania.org/s/39e2119a.png&quot; /&gt;
	&lt;/center&gt;

	&lt;center&gt;
	&lt;img src=&quot;http://tirania.org/s/952a94db.png&quot; /&gt;
	&lt;p&gt;Unity Powered Builder
	&lt;/p&gt;&lt;/center&gt;

	&lt;p&gt;This is another game built with Unity's Native Client
	code generator:

	&lt;/p&gt;&lt;center&gt;
	&lt;img src=&quot;http://tirania.org/s/cb363aba.png&quot; /&gt;
	&lt;/center&gt;
	
	&lt;p&gt;To get the latest version of Mono with support for Native
	Client, download and build Mono
	from &lt;a href=&quot;https://github.com/elijahtaylor/mono&quot;&gt;Google's
	branch&lt;/a&gt; on github.
	
&lt;/p&gt;&lt;h2&gt;Mono 2.10&lt;/h2&gt;

	&lt;p&gt;This was the year
	of &lt;a href=&quot;http://www.mono-project.com/Release_Notes_Mono_2.10&quot;&gt;Mono
	2.10&lt;/a&gt;.  We went from a beta release for Mono 2.10 in
	January to making it our new stable release for Mono.

	&lt;/p&gt;&lt;p&gt;While the world is on Mono 2.10, we have started our work
	to
	get &lt;a href=&quot;http://www.mono-project.com/Release_Notes_Mono_2.12&quot;&gt;Mono
	2.12&lt;/a&gt; out in beta form in January.

&lt;/p&gt;&lt;h2&gt;Mono on Android&lt;/h2&gt;

	&lt;p&gt;This year we
	launched &lt;a href=&quot;http://xamarin.com/monoforandroid&quot;&gt;Mono for
	Android&lt;/a&gt;, a product that consists of port of Mono to the
	Android OS, C# bindings to the native Java APIs and IDE
	support for both MonoDevelop and Visual Studio.

	&lt;/p&gt;&lt;p&gt;The first release came out in April, it was rough around
	the edges, but thanks to the amazing community of users that
	worked with us during the year, we solved the performance
	problems, the slow debugging, vastly improved the
	edit/debug/deploy cycle and managed to catch up to Google's
	latest APIs with the introduction
	of &lt;a href=&quot;http://blog.xamarin.com/2011/12/05/mono-for-android-4-0-is-here/&quot;&gt;Mono
	for Android 4.0&lt;/a&gt;.
	
&lt;/p&gt;&lt;h2&gt;Mono on iOS&lt;/h2&gt;

	&lt;p&gt;Just like Android, we
	have &lt;a href=&quot;http://blog.xamarin.com/2011/10/12/monotouch-5-with-ios-5-support/&quot;&gt;been
	on a roll with MonoTouch&lt;/a&gt;.

	&lt;/p&gt;&lt;p&gt;In short, this year:
	&lt;/p&gt;&lt;ul&gt;
		&lt;li&gt;We kept up with Apple's newly introduced APIs
		(UIKit, iCloud, Airplay, Bluetooth, Newstand,
		CoreImage).

		&lt;/li&gt;&lt;li&gt;Integrated XCode 4's UI designer with MonoDevelop&amp;lt;
		and added support for storyboards.

		&lt;/li&gt;&lt;li&gt;Added the option of using LLVM for our builds,
		bringing thumb support and ARMv7 support along the
		way.
	&lt;/li&gt;&lt;/ul&gt;

	&lt;p&gt;We started beta-testing
	a &lt;a href=&quot;http://ios.xamarin.com/Releases/MonoTouch_5/MonoTouch_5.1&quot;&gt;whole
	new set of features&lt;/a&gt; to be released early next year: a new
	unit testing framework, a heap profiler, integrating
	MonoTouch.Dialog in the product and improving the debug/deploy
	process.&amp;lt;

	&lt;/p&gt;&lt;p&gt;Mono for iOS has been on the market now for two years, and
	many products are coming to the market based on it.

&lt;/p&gt;&lt;h2&gt;Phalanger&lt;/h2&gt;

	&lt;p&gt;&lt;img align=&quot;right&quot; src=&quot;http://tirania.org/s/c0573db7.png&quot; /&gt;&lt;a href=&quot;http://www.php-compiler.net/&quot;&gt;Phalanger&lt;/a&gt;
	is a PHP compiler that runs on the .NET and Mono VMs and is
	powered by the Dynamic Language Runtime.
	
	&lt;/p&gt;&lt;p&gt;It is so complete that it can run both MediaWiki and
	WordPress out of the box.   And does so by running faster than
	they would under PHP.

	&lt;/p&gt;&lt;center&gt;
	&lt;img src=&quot;http://www.php-compiler.net/wp-content/uploads/2011/08/wordpress-phalanger-201109-performance.png&quot; /&gt;
	&lt;/center&gt;

	&lt;p&gt;This year the Phalanger guys
	released &lt;a href=&quot;http://www.php-compiler.net/blog/2011/phalanger-3-0&quot;&gt;Phalanger
	3.0&lt;/a&gt; which now runs on Mono (previously they required the
	C++/CLI compiler to run).

	&lt;/p&gt;&lt;p&gt;Phalanger's performance is impressive as it is just as fast
	as the newly announced Facebook HipHop VM for PHP.   The major
	difference being that Phalanger is a complete PHP
	implementation and the HipHopVM is still not a complete
	implementation.

	&lt;/p&gt;&lt;p&gt;The other benefit of Phalanger is that it is able to
	&lt;a href=&quot;http://www.php-compiler.net/blog/2011/pass-delegates-into-php&quot;&gt;participate
	and interop&lt;/a&gt; with code written in other .NET languages as
	well as benefitting from the existing .NET interop story (C,
	C++).
	
&lt;/p&gt;&lt;h2&gt;CXXI&lt;/h2&gt;

	&lt;p&gt;Our &lt;a href=&quot;http://tirania.org/blog/archive/2011/Dec-19.html&quot;&gt;technology
	to bridge C# and C++&lt;/a&gt; matured to the point that it can be
	used by regular users.
	
&lt;/p&gt;&lt;h2&gt;Compiler as a Service&lt;/h2&gt;

	&lt;p&gt;This year our C# compiler was expanded in three directions:

	&lt;/p&gt;&lt;ul&gt;
		&lt;li&gt;We completed async/await support

		&lt;/li&gt;&lt;li&gt;We completed the two code output engines
		(System.Reflection.Emit and IKVM.Reflection).

		&lt;/li&gt;&lt;li&gt;We improved the compiler-as-a-service features of
		the compiler.
	&lt;/li&gt;&lt;/ul&gt;

	&lt;p&gt;Our async/await support is scheduled to go out with the
	first preview of Mono 2.11 in early January.    We can not
	wait to get this functionality to our users and start building
	a new generation of async-friendly/ready desktop, mobile and
	server apps.

	&lt;/p&gt;&lt;p&gt;One &lt;b&gt;major difference&lt;/b&gt; between our
	compiler-as-a-service and Microsoft's version of the C#
	compiler as a service is that we support two code generation
	engines, one generates complete assemblies (like Microsoft
	does) and the other one is able to be integrated with running
	code (this is possible because we use System.Reflection.Emit
	and we can reference static or dynamic code from the running
	process). 

	&lt;/p&gt;&lt;p&gt;We have also been improving the error recovery components
	of the compiler as this is going to power our new
	intellisense/code completion engine in MonoDevelop.   Mono's
	C# compiler is the engine that is powering the upcoming
	NRefactory2 library.

	&lt;/p&gt;&lt;p&gt;You can read more about
	our &lt;a href=&quot;http://tirania.org/blog/archive/2011/Feb-24.html&quot;&gt;compiler
	as a service updates&lt;/a&gt;.

&lt;/p&gt;&lt;h2&gt;Unity3D&lt;/h2&gt;

	&lt;p&gt;&lt;a href=&quot;http://www.unity3d.com&quot;&gt;Unity&lt;/a&gt; is one of Mono's
	major users.  At this point Unity no longer requires an
	introduction, they went from independent game engine a few
	years ago to be one of the major game engine platforms in the
	game industry this year.

	&lt;/p&gt;&lt;p&gt;The Unity engine runs on every platform under the sun.
	From the Consoles (PS3, Wii and XBox360) to iPhones and
	Androids and runs on your desktop either with the Unity3D
	plugin or using Google's Native Client technology.
	The &lt;a href=&quot;http://unity3d.com/gallery/made-with-unity/game-list&quot;&gt;list
	of games&lt;/a&gt; being built with Unity keeps growing every day
	and they are consistently among the top sellers on every app
	store. 

	&lt;/p&gt;&lt;p&gt;Mono is the engine that powers the scripts and
	custom code in games and applications built with Unity3D and
	it also powers the actual tool that users use to build games,
	the &lt;a href=&quot;http://unity3d.com/unity/editor/&quot;&gt;Unity3D editor&lt;/a&gt;:

	&lt;/p&gt;&lt;center&gt;
	&lt;img src=&quot;http://download.unity3d.com/unity/editor/images/editor-small.jpg&quot; /&gt;
	&lt;/center&gt;

	&lt;p&gt;The editor itself it implemented in terms of Unity
	primitives, and users can extend the Unity3D editor with C#,
	UnityScript or Boo scripts dynamically.

	&lt;/p&gt;&lt;p&gt;One of my favorite games built with Unity3D is Rochard was
	demoed earlier this year on a PS3 at the GDC and is now also
	avaialble on Steam:

	&lt;/p&gt;&lt;center&gt;
	&lt;img src=&quot;http://tirania.org/s/c50860ac.png&quot; /&gt;
	&lt;/center&gt;

&lt;h2&gt;Microsoft&lt;/h2&gt;

	&lt;p&gt;Just before the end of the year, Microsoft
	shipped &lt;a href=&quot;http://itunes.apple.com/us/app/kinectimals/id482365195?mt=8&quot;&gt;Kinectimals&lt;/a&gt;
	for iOS systems.

	&lt;/p&gt;&lt;p&gt;Kinectimals is built using Unity and this marks the first
	time that Microsoft ships a software product built with Mono.

	&lt;/p&gt;&lt;p&gt;Then again, this year has been an interesting year for
	Microsoft, as they
	have &lt;a href=&quot;http://www.zdnet.com/blog/microsoft/understanding-microsofts-big-picture-plans-for-hadoop-and-project-isotope/11466&quot;&gt;embraced
	open source technologies&lt;/a&gt; for
	Azure, &lt;a href=&quot;https://github.com/WindowsAzure&quot;&gt;released SDKs
	for iOS and Android&lt;/a&gt; at the same time they ship SDKs for
	their own platforms and shipped various applications on
	Apple's AppStore for iOS.

&lt;/p&gt;&lt;h2&gt;MonoDevelop&lt;/h2&gt;

	&lt;p&gt;&lt;img align=&quot;right&quot; src=&quot;http://xamarin.files.wordpress.com/2011/10/md-header1.png&quot; /&gt;We started the year with MonoDevelop 2.4 and we finished
	after two major releases
	with &lt;a href=&quot;http://blog.xamarin.com/2011/10/05/monodevelop-2-8-released/&quot;&gt;MonoDevelop
	2.8.5&lt;/a&gt;. 

	&lt;/p&gt;&lt;p&gt;In the course of the year, we added:

	&lt;/p&gt;&lt;ul&gt;
		&lt;li&gt;Native Git support
		&lt;/li&gt;&lt;li&gt;Added .NET 4.0 project support, upgraded where
		possible to XBuild/MSBuild
		&lt;/li&gt;&lt;li&gt;MonoMac Projects
		&lt;/li&gt;&lt;li&gt;XCode 4 support for MonoMac, MonoTouch and Storyboards
		&lt;/li&gt;&lt;li&gt;Support for Android development
		&lt;/li&gt;&lt;li&gt;Support for iOS5 style properties
		&lt;/li&gt;&lt;li&gt;Major upgrade to the debugger engine
		&lt;/li&gt;&lt;li&gt;Adopted native dialogs on OSX and Windows
	&lt;/li&gt;&lt;/ul&gt;

	&lt;p&gt;Our Git support was based on a machine assisted translation
	of the Java jGit library using
	Sharpen.  &lt;a href=&quot;https://github.com/slluis/sharpen&quot;&gt;Sharpen&lt;/a&gt;
	has proved to be an incredibly useful tool to bring Java code
	to the .NET world.

&lt;/p&gt;&lt;h2&gt;SGen&lt;/h2&gt;

	&lt;p&gt;Our precise collector has gotten a full year of testing
	now.   With Mono 2.10 we made it very easy for developers to
	try it out.   All users had to do was run their programs with
	the --sgen flag, or set MONO_ENV_OPTIONS to gc=sgen.

	&lt;/p&gt;&lt;p&gt;Some of the new features in our new Garbage Collector
	include:

	&lt;/p&gt;&lt;ul&gt;
		&lt;li&gt;Windows, MacOS X and S390x ports of SGen (in
		addition to the existing x86, x86-64 and ARM ports).

		&lt;/li&gt;&lt;li&gt;Lock-free allocation to improve scalability (we
		only take locks when we run out of memory).

		&lt;/li&gt;&lt;li&gt;Work stealing parallel collector and a parallel
		nursery collector, to take advantage of extra CPUs on
		the system to help with the GC.

		&lt;/li&gt;&lt;li&gt;Work on performance and scalability work, as our
		users tried things out in the field, we identified
		hot-spots in SGen which we have been addressing.
		
	&lt;/li&gt;&lt;/ul&gt;

	&lt;p&gt;As we are spending so much time on ARM-land these days,
	SGen has also gained various ARM-specific optimizations.

	&lt;/p&gt;&lt;p&gt;SGen was designed primarly to be used by Mono and we are
	extending it beyond being a pure garbage collector for Mono,
	to support scenarios where our garbage collector has to be
	integrated with other object systems and garbage collectors.
	This is the case of Mono for Android where we now have a
	cooperative garbage collector that works hand-in-hand with
	Dalvik's GC.    And we also introduce support for toggle
	references to better support Objective-C environments like
	MonoTouch and MonoMac. 

	
&lt;/p&gt;&lt;h2&gt;XNA and Mono: MonoGame&lt;/h2&gt;

	&lt;p&gt;&lt;img align=&quot;right&quot; src=&quot;http://tirania.org/s/2f9b5d8c.png&quot; /&gt;Ever since Microsoft published the XNA APIs for
	.NET, developers have been interested in bringing XNA to
	Mono-based platforms.

	&lt;/p&gt;&lt;p&gt;There was a MonoXNA project, which was later reused by
	projects like SilverXNA (an XNA implementation for
	Silverlight) and later XNAtouch an implementation of XNA for
	the iPhone powered by MonoTouch.   Both very narrow projects
	focused on single platforms.
	
	&lt;/p&gt;&lt;p&gt;This year, the community got together and turned the single
	platform XNATouch into a full cross-platform framework, the
	result is the &lt;a href=&quot;http://monogame.codeplex.com/&quot;&gt;MonoGame
	project&lt;/a&gt;:

	&lt;/p&gt;&lt;center&gt;
	&lt;img src=&quot;http://tirania.org/s/62c8bebf.png&quot; /&gt;
	&lt;p&gt;Platform Support Matrix
	&lt;/p&gt;&lt;/center&gt;
	
	&lt;p&gt;Currently MonoGame's strength is on building 2D games.
	They already have
	an &lt;a href=&quot;http://monogame.codeplex.com/&quot;&gt;extensive list
	of&lt;/a&gt; games that have been published on the iOS AppStore and
	the Mac AppStore and they were recently featured in Channel
	9's &lt;a href=&quot;http://channel9.msdn.com/coding4fun/blog/MonoGame-Write-Once-Play-Everywhere&quot;&gt;Coding
	For Fun: MonoGame Write Once Play Everywhere&lt;/a&gt;.

	&lt;/p&gt;&lt;p&gt;An early version of MonoGame/XnaTouch powers
	&lt;a href=&quot;http://supergiantgames.com/&quot;&gt;SuperGiantGame's&lt;/a&gt; &lt;a href=&quot;http://supergiantgames.com/?p=1231&quot;&gt;Bastion&lt;/a&gt;
	game on Google's Native Client.    Which allows users of
	Windows, Mac and Linux desktop systems to run the same
	executable on all systems.   If you are running Chrome, you
	can &lt;a href=&quot;https://chrome.google.com/webstore/detail/oohphhdkahjlioohbalmicpokoefkgid&quot;&gt;install
	it in seconds&lt;/a&gt;. 

	&lt;/p&gt;&lt;center&gt;
	&lt;img src=&quot;http://tirania.org/s/39e2119a.png&quot; /&gt;
	&lt;/center&gt;

	&lt;p&gt;Incidentally, Bastion just
	won &lt;a href=&quot;http://supergiantgames.com/?p=1261&quot;&gt;three
	awards&lt;/a&gt; at
	the &lt;a href=&quot;http://en.wikipedia.org/wiki/Spike_Video_Game_Awards&quot;&gt;Spike
	VGA awards&lt;/a&gt; including Best Downloadable Game, Best Indie
	Game, and Best Original Score.

	&lt;/p&gt;&lt;p&gt;The MonoGame team had been relatively quiet for the most
	part of 2011 as they were building their platform, but they
	got into a good release cadence with
	the &lt;a href=&quot;http://cocoa-mono.org/archives/400/monogame-goes-multi-platform-monogame-2-0-announced/&quot;&gt;MonoGame
	2.0&lt;/a&gt; release in October, when they launched as a
	cross-platform engine, followed up with a
	tasty &lt;a href=&quot;http://cocoa-mono.org/archives/452/monogame-takes-tentative-steps-into-3d-monogame-2-1-announced/&quot;&gt;2.1
	release&lt;/a&gt; only two weeks ago.
	
	&lt;/p&gt;&lt;p&gt;With the addition of OpenGL ES 2.0 support and 3D
	capabilities to MonoGame, 2012 looks like it will be a great
	year for the project.

&lt;/p&gt;&lt;h2&gt;Gtk+&lt;/h2&gt;

	&lt;p&gt;Since MonoDevelop is built on top of the Gtk+ toolkit and
	since it was primarily a Unix toolkit there have been a few
	rough areas for our users in both Mac and Windows.

	&lt;/p&gt;&lt;p&gt;This year we started working with the amazing team
	at &lt;a href=&quot;http://www.lanedo.com&quot;&gt;Lanedo&lt;/a&gt; to improve Gtk+
	2.x to work better on Mac and Windows.

	&lt;/p&gt;&lt;p&gt;The results are looking great and we want to encourage
	developers to try out our
	new &lt;a href=&quot;http://www.go-mono.com/mono-downloads/download.html&quot;&gt;Beta
	version of Mono&lt;/a&gt;, which features the updated Gtk+ stack.

	&lt;/p&gt;&lt;p&gt;This new Gtk+ stack solves many of the problems that our
	users have reported over the past few months.
	
&lt;/p&gt;&lt;h2&gt;Hosting Bills&lt;/h2&gt;

	&lt;p&gt;I never tracked Mono downloads as I always felt that
	tracking download numbers for open source code that got
	repackaged and redistributed elsewhere pointless.
	
	&lt;/p&gt;&lt;p&gt;This summer we moved the code hosting from Novell to
	&lt;a href=&quot;http://download.mono-project.com/archive/&quot;&gt;Xamarin&lt;/a&gt;
	and we were surprised by our hosting bills.

	&lt;/p&gt;&lt;p&gt;The major dominating force are binaries for Windows and
	MacOS which are communities that tend not to download source
	and package the software themselves.   This is the breakdown
	for completed downloads (not partial downloads, or interrupted
	ones) for our first month of hosting of Mono:

	&lt;/p&gt;&lt;ul&gt;
		&lt;li&gt;39,646 - Mono for Windows (Runtime + SDK)
		&lt;/li&gt;&lt;li&gt;27,491 - Mono for Mac (Runtime)
		&lt;/li&gt;&lt;li&gt;9,803 - Mono for Windows (Runtime)
		&lt;/li&gt;&lt;li&gt;9,910 - Mono for Mac (Runtime + SDK)
		&lt;br /&gt;&lt;br /&gt;
		&lt;/li&gt;&lt;li&gt;Total: 86,850 downloads for Windows and Mac
	&lt;/li&gt;&lt;/ul&gt;

	&lt;p&gt;These numbers are only for the Mono runtime, not
	MonoDevelop, the MonoDevelop add-ins or any other third party
	software.

	&lt;/p&gt;&lt;p&gt;It is also worth pointing out that none of our Windows
	products (MonoDevelop for Windows, or Mono for Android on
	Windows) use the Mono runtime.   So these downloads are for
	people doing some sort of embedding of Mono on their
	applications on Windows.

	&lt;/p&gt;&lt;p&gt;At this point, we got curious.   We ran a survey for two
	days and collected 3,949 answers.   These is the summary of
	the answers:

	&lt;/p&gt;&lt;center&gt;
	&lt;img src=&quot;http://tirania.org/s/ca4988e1.png&quot; /&gt;
	&lt;p&gt;What type of application will you run with Mono?
	&lt;/p&gt;&lt;/center&gt;

	&lt;p&gt;This one was fascinating, many new users to the .NET world:

	&lt;/p&gt;&lt;center&gt;
	&lt;img src=&quot;http://tirania.org/s/23a0c03a.png&quot; /&gt;
	&lt;/center&gt;

	&lt;p&gt;The best results came form the free-form answers in the
	form.   I am still trying to figure out how to summarize
	these answers, they are all very interesting, but they are
	also all over the map.

&lt;/p&gt;&lt;h2&gt;Some Key Quotes&lt;/h2&gt;

	&lt;p&gt;When I asked last week
	for &lt;a href=&quot;http://tirania.org/blog/archive/2011/Dec-15.html&quot;&gt;stories
	of how you used Mono in 2011&lt;/a&gt;, some of you posted on the
	thread, and some of you emailed me.

	&lt;/p&gt;&lt;p&gt;Here are a couple of quotes from Mono users:

	&lt;/p&gt;&lt;blockquote&gt;
		&lt;p&gt;I can't do without Mono and I don't just mean the
		iOS or Android dev with C# but MonoMac and Mono for
		*nix too. Thanks for everything; from the
		extraordinary tools to making hell turn into heaven,
		and thank you for making what used to be a predicament
		to effortless development pleasure.
	
		&lt;/p&gt;&lt;p&gt;I don't think we could have achieved our solutions
		without Mono in enterprise mobile development. It
		addresses so many key points, it is almost a trade
		secret. We extensively use AIR and JavaScript mobile
		frameworks too but ultimately we desperately need
		1-to-1 mapping of the Cocoa Touch APIs or tap into low
		level features which determines our choice of
		development platform and frameworks.
	
		&lt;/p&gt;&lt;p&gt;That's where Mono comes in.
	
		&lt;/p&gt;&lt;p&gt;Gratefulness and paying polite respects aside, the
		key tenets of Mono we use are:
	
		&lt;/p&gt;&lt;ul&gt;
		&lt;li&gt;shared C# code base for all our enterprise
		solutions - achieving the write once, compile
		everywhere promise with modern language and VM
		features everyone demands and expects in this century
	
		&lt;/li&gt;&lt;li&gt;logical, consistent and self-explanatory wrapper
		APIs for native services - allows us to write meta
		APIs of our own across platforms
	
		&lt;/li&gt;&lt;li&gt;low latency, low overhead framework
	
		&lt;/li&gt;&lt;li&gt;professional grade IDE and tools
	
		&lt;/li&gt;&lt;li&gt;native integration with iOS tools and
		development workflow
	
		&lt;/li&gt;&lt;li&gt;existence of satisfactory documentation and
		support
	
		&lt;/li&gt;&lt;li&gt;legal clarity - favorable licensing options
	
		&lt;/li&gt;&lt;li&gt;dedicated product vision via Xamarin - commercial backing
	
		&lt;/li&gt;&lt;li&gt;community support
	&lt;/li&gt;&lt;/ul&gt;
	
	&lt;/blockquote&gt;

	&lt;p&gt;Koen Pijnenburg shared this story with me:

	&lt;/p&gt;&lt;blockquote&gt;

		&lt;p&gt;We've been in touch a few times before and would
		like to contribute my story. It's not really an
		interesting setup, but a real nice development for
		Mono(Touch).  I've been developing app for iPhone
		since day 1, I was accepted in the early beta for the
		App Store. On launch day july 2008, 2 of the 500 apps
		in the App Store were mine, my share has decreased a
		lot in the past years ;)

		&lt;/p&gt;&lt;p&gt;I really, really, really like football(soccer),
		maybe you do also, I don't know. In september 2008 I
		created the first real soccer/football stats app for
		the iPhone called My Football. This was a huge succes,
		basically no competition at that time. In 2009 I
		released My Football Pro, an app with 800 leagues
		worldwide, including live data for more then 100
		leagues. Since then I created lots of apps, all
		created with the iPhone SDK and with Objective-C.

		&lt;/p&gt;&lt;p&gt;Since the launch of MonoTouch, it merged the best
		of two worlds in my opinion. I've been a Mono/.NET
		developer for years before the iPhone apps, for me it
		was love at first line of code.

		&lt;/p&gt;&lt;p&gt;The last year I've increased my work with MonoTouch
		/ Droid /MonoGame(Poppin' Frenzy etc ;)), and focused
		less on working with native SDK's only. Since our My
		Football apps are at the end of their lifecycle in
		this form, we are working on a new line of My Football
		apps. Our base framework supporting our data, is built
		with Mono, and the apps UI will be built with
		MonoTouch / MonoDroid / WP7 etc.

		&lt;/p&gt;&lt;p&gt;Included is the screenshot of our first app built
		with the framework, My Football Pro for iPad. It has a
		huge amount of data, stats / tables / matches / live
		data for more then 800 leagues worldwide. We think
		it's a great looking app!

		&lt;/p&gt;&lt;p&gt;Working with MonoTouch is fantastic and just wanted you to know this!
	
	&lt;/p&gt;&lt;/blockquote&gt;

&lt;h2&gt;Mono on Mainframes&lt;/h2&gt;

	&lt;p&gt;This year turned out to show a nice growh in the deployment
	of Mono for IBM zSeries computers.

	&lt;/p&gt;&lt;p&gt;Some are using ASP.NET, some are using Mono in headless
	mode.   This was something that we were advocating a few years
	ago, and this year the deployments went live both in Brazil
	and Europe.

	&lt;/p&gt;&lt;p&gt;Neale Ferguson from Sinenomine has kept the zSeries port
	active and in shape.

&lt;/p&gt;&lt;h2&gt;Mono and ASP.NET&lt;/h2&gt;

	&lt;p&gt;This year we delivered enough of ASP.NET 4.0 to run
	Microsoft's ASP.NET MVC 3.

	&lt;/p&gt;&lt;p&gt;Microsoft ASP.NET MVC 3 is a strange beast.   It is
	licensed under a great open source license (MS-PL) but the
	distribution includes a number of binary blobs (the Razor
	engine).

	&lt;/p&gt;&lt;p&gt;I am inclined to think that the binaries are not under the
	MS-PL, but strictly speaking, since the binaries are part of
	the MS-PL distribution labeled as such, the entire download is
	MS-PL.

	&lt;/p&gt;&lt;p&gt;That being said, we played it safe in Mono-land and we did
	not bundle ASP.NET MVC3 with Mono.   Instead, we provide
	&lt;a href=&quot;http://www.mono-project.com/Release_Notes_Mono_2.10#ASP.NET_MVC3_Support&quot;&gt;instructions
	on how users can deploy ASP.NET MVC 3 applications&lt;/a&gt; using
	Razor as well as pure Razor apps (those with .cshtml
	extensions) with Mono.

&lt;/p&gt;&lt;h2&gt;2012, the year of Mono 2.12&lt;/h2&gt;

	&lt;p&gt;2012 will be a year dominated by our upcoming Mono release:
	Mono 2.12.   It packs a year worth of improvements to the
	runtime, to our build process and to the API profiles.

	&lt;/p&gt;&lt;p&gt;Mono 2.12 defaults to the .NET 4.x APIs and include support
	for .NET 4.5.

	&lt;/p&gt;&lt;p&gt;This is going to be the last time that we branch Mono for
	these extended periods of time.  We
	are &lt;a href=&quot;http://tirania.org/blog/archive/2011/Oct-14.html&quot;&gt;changing
	our development process and release policies&lt;/a&gt; to reduce the
	amount of code that is waiting on a warehouse to be rolled out
	to developers.

&lt;/p&gt;&lt;h2&gt;ECMA&lt;/h2&gt;

	&lt;p&gt;We wrapped up our work on updating
	the &lt;a href=&quot;http://www.ecma-international.org/publications/standards/Ecma-335.htm&quot;&gt;ECMA
	CLI standard this year&lt;/a&gt;.  The resulting standard is now at
	ISO and going through the standard motions to become an
	official ISO standard.

	&lt;/p&gt;&lt;p&gt;The committee is getting ready for a juicy year ahead of us
	where we are shifting gears from polish/details to take on
	significant extensions to the spec.&lt;/p&gt;</content>
		<author>
			<name>Miguel de Icaza (miguel@gnome.org)</name>
			<uri>http://tirania.org/blog//index.html</uri>
		</author>
	</entry>

	<entry>
		<title type="html">Miguel de Icaza: CXXI: Bridging the C++ and C# worlds.</title>
		<link href="http://tirania.org/blog/archive/2011/Dec-19.html"/>
		<id>http://tirania.org/blog/archive/2011/Dec-19.html</id>
		<updated>2011-12-19T18:28:00+00:00</updated>
		<content type="html">&lt;p&gt;The Mono runtime engine has many language interoperability
	features but has never had a strong story to interop with C++.

	&lt;/p&gt;&lt;p&gt;Thanks to the work of Alex Corrado, Andreia Gaita and
	Zoltan Varga, this is about to change.

	&lt;/p&gt;&lt;p&gt;The short story is that the
	new &lt;a href=&quot;http://github.com/mono/cxxi&quot;&gt;CXXI&lt;/a&gt; technology
	allows C#/.NET developers to:

	&lt;/p&gt;&lt;ul&gt;
		&lt;li&gt;Easily consume existing C++ classes from C# or any
		other .NET language

		&lt;/li&gt;&lt;li&gt;Instantiate C++ objects from C#

		&lt;/li&gt;&lt;li&gt;Invoke C++ methods in C++ classes from C# code

		&lt;/li&gt;&lt;li&gt;Invoke C++ inline methods from C# code (provided
		your library is compiled with -fkeep-inline-functions
		or that you provide a surrogate library)

		&lt;/li&gt;&lt;li&gt;Subclass C++ classes from C#

		&lt;/li&gt;&lt;li&gt;Override C++ methods with C# methods

		&lt;/li&gt;&lt;li&gt;Expose instances of C++ classes or mixed C++/C#
		classes to both C# code and C++ as if they were native
		code.
	&lt;/li&gt;&lt;/ul&gt;

	&lt;p&gt;CXXI is the result of two summers of work from Google's
	Summer of Code towards improving the interoperability of Mono
	with the C++ language.

&lt;/p&gt;&lt;h2&gt;The Alternatives&lt;/h2&gt;

	&lt;p&gt;This section is merely a refresher of of the underlying
	technologies for interoperability supported by Mono and how
	developers coped with C++ and C# interoperability in the
	past.   You can skip it if you want to get to how to get
	started with CXXI.
	
	&lt;/p&gt;&lt;p&gt;As a reminder, Mono provides a number of interoperability
	bridges, mostly inherited from the ECMA standard.   These
	bridges include:

	&lt;/p&gt;&lt;ul&gt;
		&lt;li&gt;The bi-directional &quot;Platform Invoke&quot; technology
		(P/Invoke) which allows managed code (C#) to call methods in
		native libraries as well as support for native
		libraries to call back into managed code.

		&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.mono-project.com/COM_Interop&quot;&gt;COM
		Interop&lt;/a&gt; which allows Mono code to transparently
		call C or C++ code defined in native libraries as long
		as the code in the native libraries follows a few COM
		conventions [1].

		&lt;/li&gt;&lt;li&gt;A
		general &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/system.marshalbyrefobject(v=VS.80).aspx&quot;&gt;interceptor&lt;/a&gt;
		technology that can be used to intercept method
		invocations on objects.

	&lt;/li&gt;&lt;/ul&gt;

	&lt;p&gt;When it came to getting C# to consume C++ objects the
	choices were far from great.   For example, consider a sample
	C++ class that you wanted to consume from C#:

&lt;/p&gt;&lt;pre&gt;
class MessageLogger {
public:
	MessageLogger (const char *domain);
	void LogMessage (const char *msg);
}
&lt;/pre&gt;

	&lt;p&gt;One option to expose the above to C# would be to wrap the
	Demo class in a COM object.   This might work for some
	high-level objects, but it is a fairly repetitive exercise and
	also one that is devoid of any fun.   You can see how this
	looks like in the &lt;a href=&quot;http://www.mono-project.com/COM_Interop&quot;&gt;COM
	Interop&lt;/a&gt; page.

	&lt;/p&gt;&lt;p&gt;The other option was to produce a C file that was C
	callable, and invoke those C methods.    For the above
	constructor and method you would end up with something like
	this in C:

&lt;/p&gt;&lt;pre&gt;
/* bridge.cpp, compile into bridge.so */
MessageLogger *Construct_MessageLogger (const char *msg)
{
	return new MessageLogger (msg);
}

void LogMessage (MessageLogger *logger, const char *msg)
{
	logger-&amp;gt;LogMessage (msg);
}
&lt;/pre&gt;

	&lt;p&gt;And your C# bridge, like this:

&lt;/p&gt;&lt;pre&gt;
class MessageLogger {
	IntPtr handle;

	[DllImport (&quot;bridge&quot;)]
	extern static IntPtr Construct_MessageLogger (string msg);

	public MessageLogger (string msg)
	{
		handle = Construct_MessageLogger (msg);
	}

	[DllImport (&quot;bridge&quot;)]
	extern static void LogMessage (IntPtr handle, string msg);

	public void LogMessage (string msg)
	{
		LogMessage (handle, msg);
	}
}
&lt;/pre&gt;

	&lt;p&gt;This gets tedious very quickly.

	&lt;/p&gt;&lt;p&gt;Our &lt;a href=&quot;http://tirania.org/blog/archive/2009/Jun-08.html&quot;&gt;PhyreEngine#&lt;/a&gt;
	binding was a C# binding to Sony's PhyreEngine C++ API.   The
	code got very tedious, so we built a poor man's code generator
	for it.

	&lt;/p&gt;&lt;p&gt;To make things worse, the above does not even support
	overriding C++ classes with C# methods.   Doing so would
	require a whole load of manual code, special cases and
	callbacks.   The code quickly becomes very hard to maintain
	(as we found out ourselves with PhyreEngine).

	&lt;/p&gt;&lt;p&gt;This is what drove the motivation to build CXXI.
	
	&lt;/p&gt;&lt;p&gt;[1] The conventions that allow Mono to call unmanaged code
	via its COM interface are simple: a standard vtable layout,
	the implementation of the Add, Release and
	QueryInterface methods and using a well defined set of types
	that are marshaled between managed code and the COM world.

&lt;/p&gt;&lt;h2&gt;How CXXI Works&lt;/h2&gt;

	&lt;p&gt;Accessing C++ methods poses several challenges.   Here is a
	summary of the components that play a major role in CXXI:

	&lt;/p&gt;&lt;ul&gt;

		&lt;li&gt;&lt;b&gt;Object Layout:&lt;/b&gt; this is the binary layout of
		the object in memory.   This will vary from platform
		to platform.
		
		&lt;/li&gt;&lt;li&gt;&lt;b&gt;VTable Layout:&lt;/b&gt; this is the binary layout
		that the C++ compiler will use for a given class based
		on the base classes and their virtual methods.

		&lt;/li&gt;&lt;li&gt;&lt;b&gt;Mangled names:&lt;/b&gt; non-virtual methods do not
		enter an object vtable, instead these methods are
		merely turned into regular C functions.   The name of
		the C functions is computed based on the return type
		and the parameter types of the method.   These vary
		from &lt;a href=&quot;http://en.wikipedia.org/wiki/Name_mangling#Name_mangling_in_C.2B.2B&quot;&gt;compiler
		to compiler&lt;/a&gt;.

	&lt;/li&gt;&lt;/ul&gt;

	&lt;p&gt;For example, given this C++ class definition, with its
	corresponding implementation:

&lt;/p&gt;&lt;pre&gt;
class Widget {
public:
	void SetVisible (bool visible);
	virtual void Layout ();
	virtual void Draw ();
};

class Label : public Widget {
public:
	void SetText (const char *text);
	const char *GetText ();
};
&lt;/pre&gt;

	&lt;p&gt;The C++ compiler on my system will generate the following
	mangled names for the SetVisble, Layout, Draw, SetText and
	GetText methods:

&lt;/p&gt;&lt;pre&gt;
__ZN6Widget10SetVisibleEb
__ZN6Widget6LayoutEv
__ZN6Widget4DrawEv
__ZN5Label7SetTextEPKc
__ZN5Label7GetTextEv
&lt;/pre&gt;

	&lt;p&gt;The following C++ code:

&lt;/p&gt;&lt;pre&gt;
	Label *l = new Label ();
	l-&amp;gt;SetText (&quot;foo&quot;);
	l-&amp;gt;Draw ();	
&lt;/pre&gt;

	&lt;p&gt;Is roughly compiled into this (rendered as C code):

&lt;/p&gt;&lt;pre&gt;
	Label *l = (Label *) malloc (sizeof (Label));
	ZN5LabelC1Ev (l);   // Mangled name for the Label's constructor
	_ZN5Label7SetTextEPKc (l, &quot;foo&quot;);

	// This one calls draw
	(l-&amp;gt;vtable [METHOD_PTR_SIZE*2])();
&lt;/pre&gt;

	&lt;p&gt;For CXXI to support these scenarios, it needs to know the
	exact layout for the vtable, to know where each method lives
	and it needs to know how to access a given method based on
	their mangled name.

	&lt;/p&gt;&lt;p&gt;The following chart explains shows how a native C++ library
	is exposed to C# or other .NET languages:
	
	&lt;/p&gt;&lt;center&gt;
	&lt;img src=&quot;http://tirania.org/s/3add594b.png&quot; /&gt;
	&lt;/center&gt;

	&lt;p&gt;Your C++ source code is compiled twice.  Once with the
	native C++ compiler to generate your native library, and once
	with the CXXI toolchain.

	&lt;/p&gt;&lt;p&gt;Technically, CXXI only needs the header files for your C++
	project, and only the header files for the APIs that you are
	interested in wrapping.   This means that you can create
	bindings for C++ libraries that you do not have the source
	code to, but have its header files.

	&lt;/p&gt;&lt;p&gt;The CXXI toolchain produces a .NET library that you can
	consume from C# or other .NET languages.   This library
	exposes a C# class that has the following properties:

	&lt;/p&gt;&lt;ul&gt;
		&lt;li&gt;When you instantiate the C# class, it actually
		instantiates the underlying C++ class.

		&lt;/li&gt;&lt;li&gt;The resulting class can be used as the base class
		for other C# classes.   Any methods flagged as virtual
		can be overwritten from C#.

		&lt;/li&gt;&lt;li&gt;Supports C++ multiple inheritance: The generated
		C# classes expose a number of cast operators that you
		can use to access the different C++ base classes.

		&lt;/li&gt;&lt;li&gt;Overwritten methods can call use the &quot;base&quot; C#
		keyword to invoke the base class implementation of the
		given method in C++.

		&lt;/li&gt;&lt;li&gt;You can override any of the virtual methods from
		classes that support multiple inheritance.
		
		&lt;/li&gt;&lt;li&gt;A convenience constructor is also provided if you
		want to instantiate a C# peer for an existing C++
		instance that you surfaced through some other mean.
	&lt;/li&gt;&lt;/ul&gt;

	&lt;p&gt;This is pure gold.
	
	&lt;/p&gt;&lt;p&gt;&lt;img align=&quot;right&quot; src=&quot;http://tirania.org/s/220882cf.png&quot; /&gt;The CXXI pipeline in turn is made up of three
	components, as shown in the diagram on the right.

	&lt;/p&gt;&lt;p&gt;The GCC-XML compiler is used to parse your source code and
	extract the vtable layout information.  The generated XML
	information is then processed by the CXXI tooling to generate
	a set of partial C# classes that contain the bridge code to
	integrate with C++.
	&lt;/p&gt;&lt;p&gt;This is then combined with any customization code that you
	might want to add (for example, you can add some overloads to
	improve the API, add a ToString() implementation, add some
	async front-ends or dynamic helper methods).

	&lt;/p&gt;&lt;p&gt;The result is the managed assembly that interfaces with the
	native static library.

	&lt;/p&gt;&lt;p&gt;It is important to note that the resulting assembly
	(Foo.dll) does not encode the actual in-memory layout of the
	fields in an object.   Instead, the CXXI binder determines
	based on the ABI being used what the layout rules for the
	object are.    This means that the Foo.dll is compiled only
	once and could be used across multiple platforms that have
	different rules for laying out the fields in memory. 

&lt;/p&gt;&lt;h2&gt;Demos&lt;/h2&gt;

	&lt;p&gt;The code
	on &lt;a href=&quot;http://github.com/mono/cxxi&quot;&gt;GitHub&lt;/a&gt; contains
	various test cases as well as a couple of examples.   One of
	the samples is a minimal binding to the Qt stack.
	
&lt;/p&gt;&lt;h2&gt;Future Work&lt;/h2&gt;

	&lt;p&gt;CXXI is not finished, but it is a strong foundation to
	drastically improve the interoperability between .NET managed
	languages and C++.   
	
	&lt;/p&gt;&lt;p&gt;Currently CXXI achieves all of its work at runtime by using
	System.Reflection.Emit to generate the bridges on demand.
	This is useful as it can dynamically detect the ABI used by a
	C++ compiler.   
	
	&lt;/p&gt;&lt;p&gt;One of the projects that we are interested in doing is to add
	support for static compilation, this would allow PS3 and
	iPhone users to use this technology.    It would mean that the
	resulting library would be tied to the platform on which the
	CXXI tooling was used.

	&lt;/p&gt;&lt;p&gt;CXXI currently implements support for the GCC ABI, and has
	some early support for the MSVC ABI.  Support for other
	compiler ABIs as well as for completing the MSVC ABI is
	something that we would like help with.
	
	&lt;/p&gt;&lt;p&gt;Currently CXXI only supports deleting objects that were
	instantiated from managed code.   Other objects are assumed to
	be owned by the unmanaged world.   Support for the delete
	operator is something that would be useful.

	&lt;/p&gt;&lt;p&gt;We also want to better document the pipeline, the runtime
	APIs and improve the binding.&lt;/p&gt;</content>
		<author>
			<name>Miguel de Icaza (miguel@gnome.org)</name>
			<uri>http://tirania.org/blog//index.html</uri>
		</author>
	</entry>

	<entry>
		<title type="html">Jeff Hardy's Blog (NWSGI): Setting environment variables for MSBuild Exec tasks</title>
		<link href="http://feedproxy.google.com/~r/JeffHardysBlog/~3/ZcHd3P3pNrs/setting-environment-variables-for.html"/>
		<id>tag:blogger.com,1999:blog-597261753977781.post-4969348037610301838</id>
		<updated>2011-12-17T20:33:10+00:00</updated>
		<content type="html">&lt;p&gt;MSBuild has an &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/x8zx72cd.aspx&quot; target=&quot;_blank&quot;&gt;&amp;lt;Exec&amp;gt; task&lt;/a&gt; for calling external programs, but (bafflingly) it doesn’t allow you to set the environment the program runs in. In my case, I need to run a Python script with certain directories in the &lt;tt&gt;PYTHONPATH&lt;/tt&gt;.&lt;/p&gt; &lt;h3&gt;The Short Way&lt;/h3&gt; &lt;p&gt;On Unix machines, this is trivial:&lt;/p&gt;&lt;pre&gt;PYTHONPATH=”~/foo” python script.py&lt;/pre&gt;
&lt;p&gt;For Windows’ wonderful cmd.exe shell (which MSBuild uses to run Exec) it’s a little longer:&lt;/p&gt;&lt;pre&gt;(set PYTHONPATH=C:\Foo) &amp;amp; python script.py&lt;/pre&gt;
&lt;p&gt;If you want, you can chain multiple set commands together to set multiple variables:&lt;/p&gt;&lt;pre&gt;(set PYTHONPATH=C:\Foo) &amp;amp; (set FOO=42) &amp;amp; python script.py&lt;/pre&gt;
&lt;p&gt;To actually use this in the MSBuild file, you’ll need to escape it like so:&lt;/p&gt;&lt;pre&gt;&amp;lt;Exec Command=”(set PYTHONPATH=C:\Foo) &amp;amp;amp; python script.py” /&amp;gt;&lt;/pre&gt;
&lt;p&gt;Getting the quoting right for &amp;lt;Exec&amp;gt; can be tricky; I use the &amp;lt;Message&amp;gt; task for debugging the command line. Remember to use &lt;tt&gt;&amp;amp;quot;&lt;/tt&gt; instead of double quotes.&lt;/p&gt;
&lt;h3&gt;The Long Way&lt;/h3&gt;
&lt;p&gt;This method takes more typing but is a bit more clear, especially if you have multiple variables to set. Actually, it can be used to store whole batch files inside the MSBuild file, if necessary.&lt;/p&gt;&lt;pre&gt;&amp;lt;PropertyGroup&amp;gt;
  &amp;lt;PythonExec&amp;gt;&amp;lt;![CDATA[
set PYTHONPATH=C:\Foo
set FOO=42
python script.py
  ]]&amp;gt;&amp;lt;/PythonExec&amp;gt;
&amp;lt;/PropertyGroup&amp;gt;

&amp;lt;Exec Command=&quot;$(PythonExec)&quot; /&amp;gt;
&lt;/pre&gt;
&lt;p&gt;A CDATA section is required because the newlines need to be preserved. When running an &amp;lt;Exec&amp;gt; task, all MSBuild does is write the contents of Command to a temporary batch file an execute. This just provides more than the usual single line command.&lt;/p&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img alt=&quot;&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/597261753977781-4969348037610301838?l=blog.jdhardy.ca&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href=&quot;http://feedads.g.doubleclick.net/~a/lS2driRszg4VLFO22UaHjbH0CyY/0/da&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;true&quot; src=&quot;http://feedads.g.doubleclick.net/~a/lS2driRszg4VLFO22UaHjbH0CyY/0/di&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://feedads.g.doubleclick.net/~a/lS2driRszg4VLFO22UaHjbH0CyY/1/da&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;true&quot; src=&quot;http://feedads.g.doubleclick.net/~a/lS2driRszg4VLFO22UaHjbH0CyY/1/di&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img height=&quot;1&quot; src=&quot;http://feeds.feedburner.com/~r/JeffHardysBlog/~4/ZcHd3P3pNrs&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>jdhardy (noreply@blogger.com)</name>
			<uri>http://blog.jdhardy.ca/</uri>
		</author>
	</entry>

	<entry>
		<title type="html">Miguel de Icaza: 2011: Tell me how you used Mono this year</title>
		<link href="http://tirania.org/blog/archive/2011/Dec-15.html"/>
		<id>http://tirania.org/blog/archive/2011/Dec-15.html</id>
		<updated>2011-12-16T05:55:00+00:00</updated>
		<content type="html">&lt;p&gt;I have written a summary of Mono's progress in the year
	2011, but I want to complement my post with stories from the
	community.

	&lt;/p&gt;&lt;p&gt;Did you use Mono in an interesting setup during 2011?
	Please post a comment on this post, or email me the story and
	tell me a little bit about it.&lt;/p&gt;</content>
		<author>
			<name>Miguel de Icaza (miguel@gnome.org)</name>
			<uri>http://tirania.org/blog//index.html</uri>
		</author>
	</entry>

	<entry>
		<title type="html">Miguel de Icaza: Porto Alegre</title>
		<link href="http://tirania.org/blog/archive/2011/Dec-14.html"/>
		<id>http://tirania.org/blog/archive/2011/Dec-14.html</id>
		<updated>2011-12-14T19:30:00+00:00</updated>
		<content type="html">&lt;p&gt;We are traveling to Porto Alegre in Brazil today and will
	be staying in Brazil until January 4th.

	&lt;/p&gt;&lt;p&gt;Ping me by email (miguel at gnome dot org) if you would like to
	meet in Porto Alegre to talk hacking, Mono, Linux, open
	source, iPhone or if you want to enlighten me about the role
	of scrum masters as actors of social change.


	&lt;/p&gt;&lt;p&gt;Happy holidays!&lt;/p&gt;</content>
		<author>
			<name>Miguel de Icaza (miguel@gnome.org)</name>
			<uri>http://tirania.org/blog//index.html</uri>
		</author>
	</entry>

	<entry>
		<title type="html">Jeff Hardy's Blog (NWSGI): IronPython 2011 Survey</title>
		<link href="http://feedproxy.google.com/~r/JeffHardysBlog/~3/R-J4Unc0Cjo/ironpython-2011-survey.html"/>
		<id>tag:blogger.com,1999:blog-597261753977781.post-2978173372204914518</id>
		<updated>2011-12-13T03:55:19+00:00</updated>
		<content type="html">&lt;p&gt;The IronPython team would like to know more about how IronPython is being used and what improvements people would like to see in 2012.&lt;/p&gt; &lt;p&gt;&lt;a href=&quot;http://bit.ly/ipy-2011-survey&quot; target=&quot;_blank&quot;&gt;Take the IronPython 2011 survey!&lt;/a&gt;&lt;/p&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img alt=&quot;&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/597261753977781-2978173372204914518?l=blog.jdhardy.ca&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href=&quot;http://feedads.g.doubleclick.net/~a/iUwOi0wWxfzhOjBlZ8xmGIe-q2g/0/da&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;true&quot; src=&quot;http://feedads.g.doubleclick.net/~a/iUwOi0wWxfzhOjBlZ8xmGIe-q2g/0/di&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://feedads.g.doubleclick.net/~a/iUwOi0wWxfzhOjBlZ8xmGIe-q2g/1/da&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;true&quot; src=&quot;http://feedads.g.doubleclick.net/~a/iUwOi0wWxfzhOjBlZ8xmGIe-q2g/1/di&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img height=&quot;1&quot; src=&quot;http://feeds.feedburner.com/~r/JeffHardysBlog/~4/R-J4Unc0Cjo&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>jdhardy (noreply@blogger.com)</name>
			<uri>http://blog.jdhardy.ca/</uri>
		</author>
	</entry>

	<entry>
		<title type="html">Miguel de Icaza: Farewell to Google's CodeSearch</title>
		<link href="http://tirania.org/blog/archive/2011/Nov-29.html"/>
		<id>http://tirania.org/blog/archive/2011/Nov-29.html</id>
		<updated>2011-11-30T09:44:00+00:00</updated>
		<content type="html">&lt;p&gt;It seems that part of Steve Jobs' legacy was to give Larry
	Page some advise: focus.  This according to Steve Jobs'
	recently published biography.

	&lt;/p&gt;&lt;p&gt;So Larry Page took the advise seriously and decided to
	focus.  His brand of focus is to kill projects that were
	distracting to their goals.  One of them, -and the one I
	cared the most about-
	was &lt;a href=&quot;http://googleblog.blogspot.com/2011/10/fall-sweep.html&quot;&gt;CodeSearch&lt;/a&gt;.. 
	
&lt;/p&gt;&lt;h2&gt;What did CodeSearch do for programmers?&lt;/h2&gt;

	&lt;p&gt;The CodeSearch service was a unique tool as it indexed open
	source code in the wild.

	&lt;/p&gt;&lt;p&gt;Codesearch is one of the most valuable tools in existence
	for all software developers, specifically:

	&lt;/p&gt;&lt;ul&gt;

		&lt;li&gt;When an API is poorly documented, you could find
		sample bits of code that used the API.

		&lt;/li&gt;&lt;li&gt;When an API error codes was poorly documented, you
		could find sample bits of code that handled it.

		&lt;/li&gt;&lt;li&gt;When an API was difficult to use (and the world is
		packed with those), you could find sample bits of code
		that used it.

		&lt;/li&gt;&lt;li&gt;When you quickly wanted to learn a language, you
		knew you could find quality code with simple searches.

		&lt;/li&gt;&lt;li&gt;When you wanted to find different solutions to
		everyday problems dealing with protocols, new
		specifications, evolving standards and trends.   You
		could turn to CodeSearch.

		&lt;/li&gt;&lt;li&gt;When you were faced with an obscure error message,
		an obscure token, an obscure return value or other
		forms of poor coding, you would find sample bits of
		code that solved this problem.

		&lt;/li&gt;&lt;li&gt;When dealing with proprietary protocols or just
		poorly documented protocols, you could find how they
		worked in minutes.

		&lt;/li&gt;&lt;li&gt;When you were trying to debug yet another broken
		standard or yet another poorly specified standard, you
		knew you could turn quickly to CodeSearch to find the
		answers to your problems (memories of OAuth and IMAP
		flash in my head).

		&lt;/li&gt;&lt;li&gt;When learning a new programming language or
		trying to improve your skills on a new programming
		language, you could use CodeSearch to learn the idioms
		and the best (and worst practices).
		
		&lt;/li&gt;&lt;li&gt;When building a new version of a library, either
		in a new language, making a fluent version, making an
		open source version, building a more complete version
		you would just go to Codesearch to find answers to how
		other people did things.
	&lt;/li&gt;&lt;/ul&gt;

	&lt;p&gt;It is a shame that Google is turning their back on their
	officially stated
	mission &lt;a href=&quot;http://www.google.com/about/corporate/company/&quot;&gt;&quot;To
	organize the world‘s information and make it universally
	accessible and useful&quot;.&lt;/a&gt;  It is a shame that this noble
	goal is not as important as competing with Apple, Facebook,
	Microsoft, Twitter and Yelp.

&lt;/p&gt;&lt;h2&gt;Comparing Search Engines&lt;/h2&gt;

	&lt;p&gt;While writing this blog entry, I fondly remembered how
	Codesearch helped me understand the horrible Security
	framework that ships with iOS.    Nobody informed the Apple
	engineers that &quot;Security through obscurity&quot; was not intended
	for their developer documentation.

	&lt;/p&gt;&lt;p&gt;In this particular case, I was trying to understand the
	semantics of &lt;tt&gt;kSecReturnData&lt;/tt&gt;.  How to use this
	constant and how it interacts with the keyring system is both
	tricky, and poorly specified in Apple's docs.  Sometimes
	things fail without any indication of what went wrong, other
	than &quot;error&quot;.  So I used CodeSearch to figure this out (along
	with some other 30 constants and APIs in that library that are
	just as poorly documented).

	&lt;/p&gt;&lt;p&gt;These are the results of looking for this value in three
	search engines as of this morning.

&lt;/p&gt;&lt;h3&gt;First Contender: GrepCode&lt;/h3&gt;

	&lt;p&gt;&lt;a href=&quot;http://www.grepcode.com&quot;&gt;GrepCode&lt;/a&gt; shows
	absolutely nothing relevant.   But shows a bunch of Java
	packages with no context, no code snippets and if you make the
	mistake of drilling down, you wont find anything:

	&lt;/p&gt;&lt;center&gt;&lt;img src=&quot;http://tirania.org/s/668f579c.png&quot; /&gt;
	&lt;/center&gt;

	&lt;p&gt;Not useful.
	
&lt;/p&gt;&lt;h3&gt;Second Contender: Codease&lt;/h3&gt;
	&lt;p&gt;&lt;a href=&quot;http://www.codase.com&quot;&gt;Codase&lt;/a&gt; is indexing 250
	million lines of code, usually it takes minutes to get this
	page:

	&lt;/p&gt;&lt;center&gt;
	&lt;img src=&quot;http://tirania.org/s/ab8ab54f.png&quot; /&gt;
	&lt;/center&gt;

	&lt;p&gt;Maybe the server will come back up.

&lt;/p&gt;&lt;h3&gt;Third Contender: Koders&lt;/h3&gt;

	&lt;p&gt;&lt;a href=&quot;http://www.koders.com&quot;&gt;Koders&lt;/a&gt; is part of Black
	Duck, and searching for the term renders a bunch of matches.
	Not a single one of the results displayed actually contain a
	single use of the kSecReturnData constant.  And not a single
	one of the snippets actually show the kSecReturnData constant.
	It is as useful as configuring your browser to use StumbleUpon
	as your search engine:

	&lt;/p&gt;&lt;center&gt;
	&lt;img src=&quot;http://tirania.org/s/e1bffde7.png&quot; /&gt;
	&lt;/center&gt;

	&lt;p&gt;Not useful.

&lt;/p&gt;&lt;h3&gt;Google's CodeSearch&lt;/h3&gt;

	&lt;p&gt;And this is what Codesearch shows:

	&lt;/p&gt;&lt;center&gt;
	&lt;img src=&quot;http://tirania.org/s/20e4f136.png&quot; /&gt;
	&lt;/center&gt;

	&lt;p&gt;The big innovation on Google's search engine is that it
	actually works and shows real matches for the text being
	searched, with a relevant snippet of the information you are
	looking for.

	&lt;/p&gt;&lt;p&gt;We are going to be entering the dark ages of software
	research in the next few months.
	
&lt;/p&gt;&lt;h2&gt;Is there a hacker White Knight out there?&lt;/h2&gt;

	&lt;p&gt;Running a service like Codesearch is going to take a
	tremendous amount of resources.   There are major engineering
	challenges involved and hosting a service like this can not be
	cheap.    It is probably not even profitable.

	&lt;/p&gt;&lt;p&gt;Larry Page's Google has already dropped the project.   We
	can only hope that in a few years Sergey Brin's Google or Eric
	Schmidt's Google will bring this service back.

	&lt;/p&gt;&lt;p&gt;Microsoft is too busy catching up to Google and wont have
	any spare resources to provide a Bing for code search.   And
	if they did, they would limit the search to Win32 APIs.

&lt;/p&gt;&lt;h2&gt;Thanks!&lt;/h2&gt;

	&lt;p&gt;I should thank Google for funding that project for as long
	as they did as well as the Google engineers that worked on it
	as long as they could.  Over the years, it helped me fix
	problems in a fraction of the time and helped me understand
	complicated problems in minutes.


	&lt;/p&gt;&lt;p&gt;The Google engineers whose projects just got shutdown for
	in the name of strategy and focus are probably as sad as all
	of us are.
	
	&lt;/p&gt;&lt;p&gt;On the plus side, I get to share this rant on Google Plus
	with a dozen of my friends!&lt;/p&gt;</content>
		<author>
			<name>Miguel de Icaza (miguel@gnome.org)</name>
			<uri>http://tirania.org/blog//index.html</uri>
		</author>
	</entry>

	<entry>
		<title type="html">Miguel de Icaza: Updated Documentation Site</title>
		<link href="http://tirania.org/blog/archive/2011/Nov-22.html"/>
		<id>http://tirania.org/blog/archive/2011/Nov-22.html</id>
		<updated>2011-11-22T20:34:00+00:00</updated>
		<content type="html">&lt;p&gt;Jeremie Laval has upgraded our Web-based documentation
	engine over
	at &lt;a href=&quot;http://docs.go-mono.com&quot;&gt;docs.go-mono.com&lt;/a&gt;.
	This upgrade brings a few features:

	&lt;/p&gt;&lt;p&gt;&lt;b&gt;New Look:&lt;/b&gt; Base on Jonathan Pobst's redesign, this is
	what our documentation looks like now:

	&lt;/p&gt;&lt;center&gt;
	&lt;a href=&quot;http://docs.go-mono.com/?link=N%3aMonoTouch.CoreImage&quot;&gt;&lt;img src=&quot;http://tirania.org/s/25d86560.png&quot; /&gt;&lt;/a&gt;
	&lt;/center&gt;

	&lt;p&gt;&lt;b&gt;Better Links:&lt;/b&gt; Links to pages on the site
	will now properly open the left-side tree to the
	documentation you linked to.  This has been an open
	request for about six years, and it got finally
	implemented.

	&lt;/p&gt;&lt;p&gt;&lt;b&gt;Search:&lt;/b&gt; the search box on the web site uses
	Lucene to search the text on the server side, and
	shows you the matching results as you type:

	&lt;img src=&quot;http://tirania.org/s/2f2389f0.png&quot; /&gt;

	&lt;/p&gt;&lt;p&gt;&lt;b&gt;Easier to Plug:&lt;/b&gt; MonoDoc/Web now easily supports loading
	documentation from alternate directories, it is no longer
	limited to loading the system-configured documentation.

	&lt;/p&gt;&lt;p&gt;&lt;b&gt;No more frames:&lt;/b&gt; For years we used frames for the
	documentation pages.   They had a poor experience and made the
	code uglier.  They are now gone.

	&lt;/p&gt;&lt;p&gt;&lt;b&gt;Powered by Mono's SGen:&lt;/b&gt; We have reduced the memory
	consumption of our web documentation by switching to
	Mono's &lt;a href=&quot;http://mono-project.com/Generational_GC&quot;&gt;Generational
	GC&lt;/a&gt; from Boehm's.    The load on the server is lower,
	responses are faster and we scale better.   
	
	&lt;/p&gt;&lt;p&gt;The source code changes are now on GitHub in
	the &lt;a href=&quot;https://github.com/mono/mono-tools/tree/master/webdoc&quot;&gt;webdoc&lt;/a&gt;
	module.

	&lt;/p&gt;&lt;p&gt;We have also added Google Analytics support to our web site
	to help us determine which bits of documentation are more
	useful to you.&lt;/p&gt;</content>
		<author>
			<name>Miguel de Icaza (miguel@gnome.org)</name>
			<uri>http://tirania.org/blog//index.html</uri>
		</author>
	</entry>

	<entry>
		<title type="html">Mike Stall: Pyvot for Excel</title>
		<link href="http://blogs.msdn.com/b/jmstall/archive/2011/11/09/pyvot-for-excel.aspx"/>
		<id>91d46819-8472-40ad-a661-2c78acb4018c:10235450</id>
		<updated>2011-11-09T17:57:30+00:00</updated>
		<content type="html">&lt;p&gt;I’m thrilled to see the availability of &lt;a href=&quot;http://pytools.codeplex.com/wikipage?title=Pyvot&quot;&gt;Pyvot&lt;/a&gt;, a python package for manipulating tabular data in excel. This is part of the &lt;a href=&quot;http://pytools.codeplex.com/&quot;&gt;Python Tools for Visual Studio&lt;/a&gt; (PTVS) ecosystem. &lt;/p&gt;  &lt;p&gt;Check out the codeplex site at &lt;a href=&quot;http://pytools.codeplex.com/wikipage?title=Pyvot&quot; title=&quot;http://pytools.codeplex.com/wikipage?title=Pyvot&quot;&gt;http://pytools.codeplex.com/wikipage?title=Pyvot&lt;/a&gt; or the tutorial on &lt;a href=&quot;http://packages.python.org/Pyvot/tutorial.html&quot;&gt;python.org&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Excel does expose an object model through COM, but it’s tricky to use.  Pyvot provides a very simple python programming experience that focuses on your data instead of Excel COM object trivia. Here are some of my favorite examples:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Easy to send python data into excel, manipulate it in excel, and then send it back to python. &lt;/li&gt;    &lt;li&gt;if you ask for a column in Excel’s object model, it will give you back the entire Excel column, including the one million empty cells. Wheras Pyvot will just give you back the data you used. &lt;/li&gt;    &lt;li&gt;Pyvot will recognize column header names from tables. &lt;/li&gt;    &lt;li&gt;Pyvot makes it easy to compute new columns and add them to your table. &lt;/li&gt;    &lt;li&gt;Pyvot makes it easy to connect to an existing excel workbook, even if the workbook has not even been saved to a file. (This involved scanning down the running object table, and doing smart name matching). This allows you to use excel as a scratchpad for python. &lt;/li&gt;    &lt;li&gt;Pyvot works naturally with Excel’s existing auto-filters. This enables a great scenario where you can start with data in python, send it to excel and manipulate it with excel auto filters (sort it, remove bad values, etc), and then pull the cleaned data back into python. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Some other FAQs:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;&lt;em&gt;What can’t Pyvot do&lt;/em&gt;? Pyvot is really focused on tabular data. Excel becomes a Datatable viewer for Python. However Pyvot is not intended to be a full excel automation solution. &lt;/li&gt;    &lt;li&gt;&lt;em&gt;How does Pyvot compare to VBA&lt;/em&gt;? a) Pyvot is just Python and so you can use vast existing Python libraries. b) Also, VBA is embedded in a single excel workbook and is hard to share across workbooks. Pyvot is about real Python files that live outside of the workbook and can be shared and managed under source control.  c) VBA uses the excel object model, whereas Pyvot provides a much simpler experience for tabular data. &lt;/li&gt;    &lt;li&gt;&lt;em&gt;How does Pyvot compare to an Excel-addin&lt;/em&gt;? a) Pyvot runs entirely out-of-process, so you don’t need to worry about it crashing Excel on you.  b) Excel-addins, like VBA, use the excel object model. c) Excel addins need to be installed. Pyvot is just loose python files that don’t interfere with your excel installation.&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Anyway, if you need to excel goodness, especially filters, check out &lt;a href=&quot;http://pytools.codeplex.com/wikipage?title=Pyvot&quot;&gt;Pyvot&lt;/a&gt; and &lt;a href=&quot;http://pytools.codeplex.com/&quot;&gt;PTVS&lt;/a&gt;. &lt;/p&gt;&lt;div style=&quot;clear: both;&quot;&gt;&lt;/div&gt;&lt;img height=&quot;1&quot; src=&quot;http://blogs.msdn.com/aggbug.aspx?PostID=10235450&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>Mike Stall - MSFT</name>
			<uri>http://blogs.msdn.com/b/jmstall/</uri>
		</author>
	</entry>

	<entry>
		<title type="html">Miguel de Icaza: Hiring Mono Runtime Hackers</title>
		<link href="http://tirania.org/blog/archive/2011/Oct-18.html"/>
		<id>http://tirania.org/blog/archive/2011/Oct-18.html</id>
		<updated>2011-10-18T20:25:00+00:00</updated>
		<content type="html">&lt;p&gt;As Mono grows on servers, mobile and desktop platforms, we
	are looking to hire programmers to join our Mono Runtime team.

	&lt;/p&gt;&lt;p&gt;The Mono Runtime team owns the code generator, the
	just-in-time and ahead-of-time compilers, the garbage
	collector, the threadpool and async layers in the runtime and
	mostly works in the C-side of the house.

	&lt;/p&gt;&lt;p&gt;If you are a developer with low-level experience with
	virtual machines, just in time compilers or love garbage
	collection, real time processing, or you read every new research
	paper on incremental garbage collection, hardware
	acceleration, register allocation and you are interested in
	joining our young, self-funded and profitable startup, we want
	to hear from you.

	&lt;/p&gt;&lt;p&gt;Send your resumes to jobs@xamarin.com&lt;/p&gt;</content>
		<author>
			<name>Miguel de Icaza (miguel@gnome.org)</name>
			<uri>http://tirania.org/blog//index.html</uri>
		</author>
	</entry>

	<entry>
		<title type="html">Miguel de Icaza: Upcoming Mono Releases: Change in Policies</title>
		<link href="http://tirania.org/blog/archive/2011/Oct-14.html"/>
		<id>http://tirania.org/blog/archive/2011/Oct-14.html</id>
		<updated>2011-10-14T20:31:00+00:00</updated>
		<content type="html">&lt;p&gt;We have historically made stable releases of Mono that get
	branched and maintained for long periods of time.   During
	these long periods of time, we evolve our master release for
	some four to five months while we do major work on the branch.

	&lt;/p&gt;&lt;p&gt;Historically, we have had done some of these large changes
	since we have rewritten or re-architected large parts of our
	JIT, or our garbage collector, or our compilers.

	&lt;/p&gt;&lt;p&gt;There were points in the project history where it took us
	some 9 months to release: seven months of new development
	followed by two months of beta testing and fixing
	regressions.  With Mono 2.6 we tried to change this, we tried
	to close the release time to at most six months, and we were
	relatively good at doing this with 2.8 and 2.10.

	&lt;/p&gt;&lt;p&gt;We were on track to do a quick Mono 2.12 release roughly
	around May, but with the April bump in the road, this derailed
	our plans.

	&lt;/p&gt;&lt;p&gt;Since 2.10.0 was released two things happened:

	&lt;/p&gt;&lt;ul&gt;

		&lt;li&gt;&lt;b&gt;On Master:&lt;/b&gt; plenty of feature work and bug
		fixing.

		&lt;/li&gt;&lt;li&gt;&lt;b&gt;On our 2.10 branch:&lt;/b&gt; bug fixes and
		backporting fixes from master to 2.10

	&lt;/li&gt;&lt;/ul&gt;

	&lt;p&gt;Now that things have settled at Xamarin and that we are
	getting Mono back into continuous integration builds we are
	going to release our first public beta of the upcoming Mono,
	it will be called Mono 2.11.1.   We will keep it under QA
	until we are happy with the results and we will then release
	Mono 2.12 based on this.

	&lt;/p&gt;&lt;p&gt;But after Mono 2.12, we want to move to a new development
	model where we keep our master branch always in a very stable
	state.   This means that new experimental features will be
	developed in branches and only landed to the master branch
	once they have been completed.

	&lt;/p&gt;&lt;p&gt;Our goal is to more quickly bring the features that we are
	developing to our users instead of having everyone wait for
	very long periods of time to get their new features.

&lt;/p&gt;&lt;h3&gt;New Features in Mono 2.11&lt;/h3&gt;

	&lt;p&gt;These are some of
	the &lt;a href=&quot;http://www.mono-project.com/Release_Notes_Mono_2.12&quot;&gt;new
	features availalable in Mono 2.11&lt;/a&gt;:
	

		&lt;/p&gt;&lt;ul&gt;
			&lt;li&gt;We refactored our C# compiler to
			have two backends one based on Cecil, one based on
			Reflection.Emit.   Fixing some important
			usability properties of our compiler.

			&lt;/li&gt;&lt;li&gt;Implemented C# 5 Async.

			&lt;/li&gt;&lt;li&gt;Our C# compiler has TypedReference support
			(__refvalue, __reftype and __makeref).

			&lt;/li&gt;&lt;li&gt;Our compiler as a service can compile
			classes now and has an instance API
			(instantiate multiple C# compiler contexts
			independently). 

			&lt;/li&gt;&lt;li&gt;Added the .NET 4.5 API profile and many of
			the new async APIs to use with C# 5.

			&lt;/li&gt;&lt;li&gt;Improved our new Garbage Collector: it is
			faster, it is more responsive and it is more
			stable.   It has also gained MacOS/iOS native
			support. 

			&lt;/li&gt;&lt;li&gt;We made System.Json available on every
			profile.

			&lt;/li&gt;&lt;li&gt;We
			added &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/gg597391.aspx&quot;&gt;Portable
			Class Library&lt;/a&gt; support.

			&lt;/li&gt;&lt;li&gt;We added tooling for Code Contracts

			&lt;/li&gt;&lt;li&gt;We added a TPL Dataflow implementation

			&lt;/li&gt;&lt;li&gt;We added fast ThreadLocal support

			&lt;/li&gt;&lt;li&gt;We brought our ASP.NET implementation to
			the year 2011 and it now sports a new enormously cute
			error page as opposed to that error page that
			we have which transports you mind back to 1999.

			&lt;/li&gt;&lt;li&gt;Mono's debugger now supports attaching to
			a live process (deferred support)

			&lt;/li&gt;&lt;li&gt;Our socket stack is faster on BSD and OSX,
			by using kqueue (on Linux it uses epoll already).
		&lt;/li&gt;&lt;/ul&gt;</content>
		<author>
			<name>Miguel de Icaza (miguel@gnome.org)</name>
			<uri>http://tirania.org/blog//index.html</uri>
		</author>
	</entry>

	<entry>
		<title type="html">The Voidspace Techie Blog: mock 0.8 beta 4 released: bugfix and minor features</title>
		<link href="http://feedproxy.google.com/~r/voidspace/~3/tm5ZSXA3cDE/arch_d7_2011_10_08.shtml"/>
		<id>http://feedproxy.google.com/~r/voidspace/~3/tm5ZSXA3cDE/arch_d7_2011_10_08.shtml</id>
		<updated>2011-10-10T01:05:00+00:00</updated>
		<content type="html">I've released mock 0.8 beta 4. You can download it it or install it with: pip install -U mock==dev mock is a library for testing in Python. ... [602 words]&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=tm5ZSXA3cDE:0f5sO9cEtGc:F7zBnMyn0Lo&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=tm5ZSXA3cDE:0f5sO9cEtGc:F7zBnMyn0Lo&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=tm5ZSXA3cDE:0f5sO9cEtGc:V_sGLiPBpWU&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=tm5ZSXA3cDE:0f5sO9cEtGc:V_sGLiPBpWU&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=tm5ZSXA3cDE:0f5sO9cEtGc:gIN9vFwOqvQ&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=tm5ZSXA3cDE:0f5sO9cEtGc:gIN9vFwOqvQ&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=tm5ZSXA3cDE:0f5sO9cEtGc:dnMXMwOfBR0&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?d=dnMXMwOfBR0&quot; /&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img height=&quot;1&quot; src=&quot;http://feeds.feedburner.com/~r/voidspace/~4/tm5ZSXA3cDE&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>The Voidspace Techie Blog</name>
			<uri>http://www.voidspace.org.uk/python/weblog/index.shtml</uri>
		</author>
	</entry>

	<entry>
		<title type="html">Miguel de Icaza: WinRT and Mono</title>
		<link href="http://tirania.org/blog/archive/2011/Sep-26.html"/>
		<id>http://tirania.org/blog/archive/2011/Sep-26.html</id>
		<updated>2011-09-27T06:04:00+00:00</updated>
		<content type="html">&lt;p&gt;Today Joseph mentioned to me that some of our users got the
	impression from my previous post on WinRT that we would be
	implementing WinRT for Linux.   We are not working on a WinRT
	UI stack for Linux, and do not have plans to.

	&lt;/p&gt;&lt;p&gt;WinRT is a fabulous opportunity for Mono, because Microsoft
	is sending a strong message: if you want your code to run in
	multiple scenarios (server, desktops, sandboxed environments),
	you want to split your UI code from your backend code.

	&lt;/p&gt;&lt;p&gt;This is great because it encourages developers to think in
	terms of having multiple facades for the same code base and
	the direction that we have been taking Mono on in the last few
	years.

	&lt;/p&gt;&lt;p&gt;Use the native toolkit on each platform to produce an
	immersive user experience, and one that leverages the native
	platform in the best possible way.

	&lt;/p&gt;&lt;p&gt;These are the APIs that we envision .NET developers using
	on each platform:

	&lt;/p&gt;&lt;ul&gt;
		&lt;li&gt;Windows: WinRT, Winforms, WPF (fallbacks: Gtk#, Silverlight)

		&lt;/li&gt;&lt;li&gt;MacOS: MonoMac (fallback: Gtk#, Silverlight)

		&lt;/li&gt;&lt;li&gt;Linux: Gtk#

		&lt;/li&gt;&lt;li&gt;Android: MonoDroid APIs

		&lt;/li&gt;&lt;li&gt;iOS: MonoTouch

		&lt;/li&gt;&lt;li&gt;Windows Phone 7: Silverlight

		&lt;/li&gt;&lt;li&gt;XBox360: XNA-based UI

	&lt;/li&gt;&lt;/ul&gt;

	&lt;p&gt;Even if a lot of code could be reused from Moonlight, WinRT
	is a moving target.  It is not clear that the Linux desktop,
	as we know it today, is keeping up with the growth of other
	consumer environments.
	I &lt;a href=&quot;http://www.itwriting.com/blog/4925-miguel-de-icaza-talks-about-windows-8-and-the-failure-of-linux-on-the-desktop.html&quot;&gt;talked
	to Tim&lt;/a&gt; about this at Build.

&lt;/p&gt;&lt;h2&gt;Head-less WinRT&lt;/h2&gt;

	&lt;p&gt;There are some GUI-less components of WinRT that *do* make
	sense to bring to Mono platforms.   There is already an
	&lt;a href=&quot;https://github.com/ermau/WinRT.NET&quot;&gt;implementation of
	some bits&lt;/a&gt; of the headless WinRT components being done by
	Eric.

	&lt;/p&gt;&lt;p&gt;The above effort will enable more code sharing to take
	place between regular .NET 4 apps, WP7 apps, Mono apps and
	WinRT apps.&lt;/p&gt;</content>
		<author>
			<name>Miguel de Icaza (miguel@gnome.org)</name>
			<uri>http://tirania.org/blog//index.html</uri>
		</author>
	</entry>

	<entry>
		<title type="html">Mike Stall: Python Tools for VS</title>
		<link href="http://blogs.msdn.com/b/jmstall/archive/2011/09/20/python-tools-for-vs.aspx"/>
		<id>91d46819-8472-40ad-a661-2c78acb4018c:10214200</id>
		<updated>2011-09-20T18:16:05+00:00</updated>
		<content type="html">&lt;p&gt;I’ve been having a great time using &lt;a href=&quot;http://pytools.codeplex.com/&quot; target=&quot;_blank&quot;&gt;Python Tools for VS&lt;/a&gt;.  It’s a free download that provides CPython language support in Visual Studio 2010. The intellisense is pretty good (especially for a dynamic language!) and the debugger is useful to have. Having a good IDE is changing the way I view the language. Check out the &lt;a href=&quot;http://pytools.codeplex.com/&quot; target=&quot;_blank&quot;&gt;homepage&lt;/a&gt; for a long list of features it supports. One other perk is that because it’s using the VS 2010 shell, it works with my favorite VS 2010 editor extensions. &lt;/p&gt;&lt;div style=&quot;clear: both;&quot;&gt;&lt;/div&gt;&lt;img height=&quot;1&quot; src=&quot;http://blogs.msdn.com/aggbug.aspx?PostID=10214200&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>Mike Stall - MSFT</name>
			<uri>http://blogs.msdn.com/b/jmstall/</uri>
		</author>
	</entry>

	<entry>
		<title type="html">Miguel de Icaza: WinRT demystified</title>
		<link href="http://tirania.org/blog/archive/2011/Sep-15.html"/>
		<id>http://tirania.org/blog/archive/2011/Sep-15.html</id>
		<updated>2011-09-16T06:03:00+00:00</updated>
		<content type="html">&lt;p&gt;Windows 8 as introduced at Build is an exciting release as
	it has important updates to how Microsoft envisions users will
	interact with their computers, to a fresh new user interface
	to a new programming model and a lot more.    

	&lt;/p&gt;&lt;p&gt;If you build software for end-users, you
	should &lt;a href=&quot;http://channel9.msdn.com/Events/BUILD/BUILD2011/BPS-1004&quot;&gt;watch
	Jensen Harris&lt;/a&gt; discuss the Metro principles in Windows 8.
	I find myself wanting to spend time using Windows 8.
	
	&lt;/p&gt;&lt;p&gt;But the purpose of this post is to share what I learned at
	the conference specifically about WinRT and .NET.    

&lt;/p&gt;&lt;h2&gt;The Basics&lt;/h2&gt;

	&lt;p&gt;Microsoft is using the launch of Windows 8 as an
	opportunity to fix long-standing problems with Windows, bring
	a new user interface, and enable a safe AppStore model for
	Windows.

	&lt;/p&gt;&lt;p&gt;To do this, they have created a third implementation of the
	XAML-based UI system.   Unlike WPF which was exposed only to
	the .NET world and Silverlight which was only exposed to the
	browser, this new implementation is available to C++
	developers, HTML/Javascript developers and also .NET
	developers. 

	&lt;/p&gt;&lt;p&gt;.NET developers are very familiar with P/Invoke and COM
	Interop.   Those are two technologies that allow a .NET
	developer to consume an external component, for example, this
	is how you would use the libc &quot;system (const char *)&quot; API
	from C#:

	&lt;/p&gt;&lt;pre&gt;
	[DllImport (&quot;libc&quot;)]
	void system (string command);
	[...]

	system (&quot;ls -l /&quot;);
	&lt;/pre&gt;

	&lt;p&gt;We have used P/Invoke extensively in the Mono world to
	create bindings to native libraries.   Gtk# binds the Gtk+
	API, MonoMac binds the Cocoa API, Qyoto binds the Qt API and
	hundred other bindings wrap other libraries that are exposed
	to C# as object-oriented libraries.

	&lt;/p&gt;&lt;p&gt;COM Interop allows using C or C++ APIs directly from C# by
	importing the COM type libraries and having the runtime
	provide the necessary glue.    This is how Mono talked with
	OpenOffice (which is based on COM), or how Mono talks to
	VirtualBox (which has an XPCOM based API).

	&lt;/p&gt;&lt;p&gt;There are many ways of creating bindings for a native
	library, but doing it by hand is bound to be both tedious and
	error prone.   So everyone has adopted some form of &quot;contract&quot;
	that states what the API is, and the binding author uses this
	contract to create their language binding.

&lt;/p&gt;&lt;h2&gt;WinRT&lt;/h2&gt;

	&lt;p&gt;WinRT is a new set of APIs that have the following properties:

	&lt;/p&gt;&lt;ul&gt;
		&lt;li&gt;It implements the new Metro look.
		
		&lt;/li&gt;&lt;li&gt;Has a simple UI programming model for Windows
		developers (You do not need to learn Win32, what an
		HDC, WndProc or LPARAM is).

		&lt;/li&gt;&lt;li&gt;It exposes the WPF/Silverlight XAML UI model to
		developers.

		&lt;/li&gt;&lt;li&gt;The APIs are all designed to be asynchronous.

		&lt;/li&gt;&lt;li&gt;It is a sandboxed API, designed for creating
		self-contained, AppStore-ready applications.   You
		wont get everything you want to create for example
		Backup Software or Hard Disk Partitioning software.

		&lt;/li&gt;&lt;li&gt;The API definitions is exposed in the ECMA 335
		metadata format (the same one that .NET uses, you can
		find those as &quot;.winmd&quot; files).
	&lt;/li&gt;&lt;/ul&gt;

	&lt;p&gt;WinRT wraps both the new UI system as well as old Win32
	APIs and it happens that this implementation is based on top
	of COM.    

&lt;/p&gt;&lt;h3&gt;WinRT Projections&lt;/h3&gt;

	&lt;p&gt;What we call &quot;bindings&quot; Microsoft now calls &quot;projections&quot;.
	Projections are the process of exposing APIs to three
	environments: Native (C and C++), HTML/Javascript and .NET.

	&lt;/p&gt;&lt;li&gt;If you author a component in C++ or a .NET language, its
	API will be stored in a WinMD file and you will be able to
	consume it from all three environments (Native, JavaScript and
	.NET).
	
	&lt;p&gt;Even in C++ you are not exposed to COM.   The use of COM is
	hidden behind the C++ projection tools.   You use what looks
	and feels like a C++ object oriented API.

	&lt;/p&gt;&lt;p&gt;To support the various constructs of WinRT, the underlying
	platform defines a basic set of types and their mappings to
	various environment.   In particular, collection objects in
	WinRT are mapped to constructs that are native to each
	environment.   
	
&lt;/p&gt;&lt;h2&gt;Asynchronous APIs&lt;/h2&gt;

	&lt;p&gt;Microsoft feels that when a developer is given the choice
	of a synchronous and an asynchronous API, developers will
	choose the simplicity of a synchronous API.   The result
	usually works fine on the developer system, but is terrible
	when used in the wild.

	&lt;/p&gt;&lt;p&gt;With WinRT, Microsoft has followed a simple rule: if an API
	is expected to take more than 50 milliseconds to run, the API
	is asynchronous.

	&lt;/p&gt;&lt;p&gt;The idea of course is to ensure that every Metro
	application is designed to always respond to user input and
	to not hang, block or provide a poor user experience.

	&lt;/p&gt;&lt;p&gt;Async programming has historically been a cumbersome process as
	callbacks and state must be cascaded over dozens of places and
	error handling (usually poor error handling) is sprinkled
	across multiple layers of code.

	&lt;/p&gt;&lt;p&gt;To simplify this process, C# and VB have been extended to
	support the F#-inspired await/async pattern, turning async
	programming into a joy.    C++ got a setup that is as good as
	you can get with C++ lambdas and Javascript uses promises and
	&quot;then ()&quot;.

&lt;/p&gt;&lt;h2&gt;Is it .NET or Not?&lt;/h2&gt;

	&lt;p&gt;Some developers are confused as to whether .NET is there or
	not in the first place, as not all of the .NET APIs are
	present (File I/O, Sockets), many were moved and others were
	introduced to integrate with WinRT.

	&lt;/p&gt;&lt;p&gt;When you use C# and VB, you are using the full .NET
	framework.    But they have chosen to expose a smaller subset
	of the API to developers to push the new vision for Windows 8.

	&lt;/p&gt;&lt;p&gt;And this new vision includes safety/sandboxed systems and
	asynchronous programming.  This is why you do not get direct
	file system access or socket access and why synchronous APIs
	that you were used to consuming are not exposed.

	&lt;/p&gt;&lt;p&gt;Now, you notice that I said &quot;exposed&quot; and not &quot;gone&quot;.

	&lt;/p&gt;&lt;p&gt;What they did was that they only exposed to the compiler a
	set of APIs when you target the Metro profile.    So your
	application will not accidentally call File.Create for
	example.   At runtime though, the CLR will load the full class
	library, the very one that contains File.Create, so
	internally, the CLR could call something like File.Create, it
	is just you that will have no access to it.

	&lt;/p&gt;&lt;p&gt;This split is similar to what has been done in the past
	with Silverlight, where not every API was exposed, and where
	mscorlib was given rights that your application did not have
	to ensure the system safety.

	&lt;/p&gt;&lt;p&gt;You might be thinking that you can use some trick
	(referencing the GAC library instead of the compiler reference
	or using reflection to get to private APIs, or P/Invoking into
	Win32).   But all of those uses will be caught by AppStore
	review application and you wont be able to publish your app
	through Microsoft's store.

	&lt;/p&gt;&lt;p&gt;You can still do whatever ugly hack you please on your
	system.  It just wont be possible to publish that through the
	AppStore.

	&lt;/p&gt;&lt;p&gt;Finally, the .NET team has taken this opportunity to do
	some spring cleaning.  mscorlib.dll and System.dll have been
	split in various libraries and they have moved some types
	around. 
	
&lt;/p&gt;&lt;h2&gt;Creating WinRT Components&lt;/h2&gt;

	&lt;p&gt;Microsoft demoed creating new WinRT components on both C++
	and .NET.

	&lt;/p&gt;&lt;p&gt;In the .NET case, creating a WinRT component has been
	drastically simplified.   The following is the full source
	code for a component that adds 2:

	&lt;/p&gt;&lt;pre&gt;

	public sealed class AddTwo {
		public int Add (int a, int b)
		{
			return a + b;
		}

		public async IAsyncOperation SubAsync (int a, int b)
		{
			return a - await (CountEveryBitByHand (b));
		}
	}
	&lt;/pre&gt;

	&lt;p&gt;You will notice that there are no COM declarations of any
	kind.   The only restriction is that your class must be sealed
	(unless you are creating a XAML UI component, in that case the
	restriction is lifted).

	&lt;/p&gt;&lt;p&gt;There are also some limitations, you can not have private
	fields on structures, and there is not Task&amp;lt;T&amp;gt; for
	asynchronous APIs, instead you use the IAsyncOperation
	interface.

	&lt;b&gt;Update to clarify: the no private fields rule is only limited to
	structs exposed to WinRT, and it does not apply to classes.&lt;/b&gt;

&lt;/p&gt;&lt;h2&gt;UI Programming&lt;/h2&gt;

	&lt;p&gt;When it comes to your UI selection, you can either use HTML
	with CSS to style your app or you can use XAML UI.

	&lt;/p&gt;&lt;p&gt;To make it easy for HTML apps to adhere to the Metro UI
	style and interaction model, Microsoft distributes Javascript
	and CSS files that you can consume from your project.   Notice
	that this wont work on the public web.   As soon as you use
	any WinRT APIs, your application is a Windows app, and wont
	run in a standalone web browser.

	&lt;/p&gt;&lt;p&gt;.NET and C++ developers get to use XAML instead.

	&lt;/p&gt;&lt;p&gt;There is clearly a gap to be filled in the story.    It
	should be possible to use Microsoft's Razor formatting engine
	to style applications using HTML/CSS while using C#.
	Specially since they have shown the CLR running on their
	HTML/JS Metro engine.

	&lt;/p&gt;&lt;p&gt;Right now HTML and CSS is limited to the Javascript use.
	
&lt;/p&gt;&lt;h2&gt;In Short&lt;/h2&gt;

	&lt;p&gt;Microsoft has created a cool new UI library called WinRT
	and they have made it easy to consume from .NET, Javascript
	and C++ and if you adhere by their guidelines, they will
	publish the app on their appstore.

&lt;/p&gt;&lt;h2&gt;Xamarin at BUILD&lt;/h2&gt;

	&lt;p&gt;If you are at build, come &lt;a href=&quot;http://tirania.org/blog/archive/2011/Sep-14.html&quot;&gt;join us tonight at 6:30&lt;/a&gt; at the Sheraton
	Park hotel, just after Meet the Experts.  Come talk about
	Mono, Xamarin, MonoTouch, MonoDroid and MonoMac and discuss
	the finer points of this blog over an open bar.

&lt;/p&gt;&lt;h2&gt;Comments&lt;/h2&gt;

	&lt;p&gt;There is a long list of comments in the moderation queue
	that are not directly related to WinRT, or bigger questions
	that are not directly related to WinRT, .NET and this post's
	topic, so I wont be approving those comments to keep things on
	focus.  There are better forums to have discussions on Metro.&lt;/p&gt;&lt;/li&gt;</content>
		<author>
			<name>Miguel de Icaza (miguel@gnome.org)</name>
			<uri>http://tirania.org/blog//index.html</uri>
		</author>
	</entry>

	<entry>
		<title type="html">Miguel de Icaza: Xamarin and Mono at the BUILD Conference</title>
		<link href="http://tirania.org/blog/archive/2011/Sep-14.html"/>
		<id>http://tirania.org/blog/archive/2011/Sep-14.html</id>
		<updated>2011-09-14T21:07:00+00:00</updated>
		<content type="html">&lt;center&gt;
	&lt;img src=&quot;http://xamarin.files.wordpress.com/2011/09/flyer-web.jpg?w=700&amp;amp;h=295&quot; /&gt;
	&lt;/center&gt;

	&lt;p&gt;Continuing our tradition of getting together with Mono
	users at Microsoft conferences, we are going to be hosting an
	event at the Sheraton Hotel next to the conference on
	Thursday at 6:30pm (just after Ask the Experts).

	&lt;/p&gt;&lt;p&gt;Come join us with your iOS, Android, Mac and Linux
	questions.&lt;/p&gt;</content>
		<author>
			<name>Miguel de Icaza (miguel@gnome.org)</name>
			<uri>http://tirania.org/blog//index.html</uri>
		</author>
	</entry>

	<entry>
		<title type="html">Miguel de Icaza: MonoDevelop 2.6 is out</title>
		<link href="http://tirania.org/blog/archive/2011/Sep-07.html"/>
		<id>http://tirania.org/blog/archive/2011/Sep-07.html</id>
		<updated>2011-09-08T02:11:00+00:00</updated>
		<content type="html">&lt;p&gt;Lluis just released the final version of MonoDevelop 2.6.

	&lt;/p&gt;&lt;p&gt;This release packs
	a &lt;a href=&quot;http://monodevelop.com/Download/What's_new_in_MonoDevelop_2.6&quot;&gt;lot
	of new features&lt;/a&gt;, some of my favorite features in this
	release are:

	&lt;/p&gt;&lt;ul&gt;
		&lt;li&gt;Git support.
		&lt;ul&gt;
			&lt;li&gt;It not only provides the regular source
			code control commands, it adds full support
			for the various Git idioms not available in
			our Subversion addin.
			
			&lt;/li&gt;&lt;li&gt;Based on Java's JGit engine

			&lt;/li&gt;&lt;li&gt;Ported to C# using db4Object's sharpen
			tool.   Which
			Lluis &lt;a href=&quot;https://github.com/slluis/sharpen&quot;&gt;updated
			significantly&lt;/a&gt;

			&lt;/li&gt;&lt;li&gt;Logging and Blaming are built into the
			editor.

			&lt;center&gt;
			&lt;img src=&quot;http://monodevelop.com/@api/deki/files/308/=md26-ChangesView.png&quot; width=&quot;540&quot; /&gt;
			&lt;/center&gt;
		&lt;/li&gt;&lt;/ul&gt;

		&lt;/li&gt;&lt;li&gt;Mac support:

		&lt;ul&gt;
			&lt;li&gt;Our
			fancy &lt;a href=&quot;http://www.mono-project.com/MonoMac&quot;&gt;MonoMac&lt;/a&gt;
			support lets you build native Cocoa
			applications.   If you have not jumped into
			this Steve Jobs Love Fest, you can get started
			with our built-in templates and our &lt;a href=&quot;http://docs.go-mono.com/index.aspx?link=root:/monomac-lib&quot;&gt;online API
			documentation&lt;/a&gt;.

			&lt;/li&gt;&lt;li&gt;Native File Dialogs!    We now use the
			operating system file dialogs, and we even
			used our own MonoMac bindings to get this
			done.

			&lt;/li&gt;&lt;li&gt;You can also check
			my &lt;a href=&quot;http://tirania.org/monomac&quot;&gt;Mac/iOS-specific
			blog for more details&lt;/a&gt;.
		&lt;/li&gt;&lt;/ul&gt;

		&lt;/li&gt;&lt;li&gt;Unified editor for Gtk#, ASP.NET, MonoTouch and
		MonoDroid: we no longer have to track various forks of
		MonoDevelop, they have all converged into one tree.
	&lt;/li&gt;&lt;/ul&gt;

	&lt;p&gt;The above is just a taste of the new features in
	MonoDevelop 2.6.   There
	are &lt;a href=&quot;http://monodevelop.com/index.php?title=Download/What's_new_in_MonoDevelop_2.6&quot;&gt;many
	more&lt;/a&gt; nominate your own!

	&lt;/p&gt;&lt;p&gt;Congratulations to the MonoDevelop team on the great job
	they did!

	&lt;/p&gt;&lt;p&gt;And I want to thank everyone that contributed code to
	MonoDevelop, directly or indirectly to make this happen.&lt;/p&gt;</content>
		<author>
			<name>Miguel de Icaza (miguel@gnome.org)</name>
			<uri>http://tirania.org/blog//index.html</uri>
		</author>
	</entry>

	<entry>
		<title type="html">Miguel de Icaza: Learning Unix</title>
		<link href="http://tirania.org/blog/archive/2011/Sep-06.html"/>
		<id>http://tirania.org/blog/archive/2011/Sep-06.html</id>
		<updated>2011-09-06T18:45:00+00:00</updated>
		<content type="html">&lt;p&gt;As I meet new Unix hackers using Linux or Mac, sometimes I
	am surprised at how few Unix tricks they know.   It is
	sometimes painful to watch developers perform manual tasks on
	the shell.

	&lt;/p&gt;&lt;p&gt;What follows are my recommendations on how to improve your
	Unix skills, with a little introduction as to why you should
	get each book.    I have linked to each one of those books
	with my Amazon afiliates link, so feel free to click on those
	links liberally.

	&lt;/p&gt;&lt;p&gt;Here is the list of books that programmers using Unix
	should read.   It will only take you a couple of days to read
	them, but you will easily increase your productivity by a
	whole order of magnitude.

	
&lt;/p&gt;&lt;h3&gt;The Basics&lt;/h3&gt;

	
	
	&lt;p&gt;The &lt;a href=&quot;http://www.amazon.com/gp/product/013937681X/ref=as_li_ss_tl?ie=UTF8&amp;amp;tag=tiraniaorg-20&amp;amp;linkCode=as2&amp;amp;camp=217145&amp;amp;creative=399369&amp;amp;creativeASIN=013937681X&quot;&gt;Unix
	Programming Environment&lt;/a&gt; by Kernighan and Pike is a
	must-read.  Although this is a very old book and it does not
	cover the fancy new features in modern versions of Unix, no
	other book covers in such beauty the explanation of the shell
	quoting rules, expansion rules, shell functions and the
	redirection rules.

	&lt;/p&gt;&lt;p&gt;Every single thing you do in Unix will use the above in
	some form or shape, and until you commit those to memory you
	will be a tourist, and not a resident.

	&lt;/p&gt;&lt;p&gt;Then you will learn sed and basic awk, both tools that you
	will use on a daily basis once you become proficient.   You do
	not have to ever be scared of sed or regular expressions anymore.

	&lt;/p&gt;&lt;p&gt;Save yourself the embarrassment, and avoid posting on the
	comments section jwz's quote on regular expressions.  You are
	not jwz.

	&lt;/p&gt;&lt;p&gt;It will take you about a week of commuting by bus to read
	it.   You do not have to finish the book, you can skip over
	the second part.
	
&lt;/p&gt;&lt;h3&gt;Unix Boot Camp&lt;/h3&gt;

	

	&lt;p&gt;While Kernighan's book is basic literacy, you need to
	develop your muscles and you need to do this fast and not
	buy a book so thick and so packed with ridiculous screenshots
	that you will never get past page 20.   

	&lt;/p&gt;&lt;p&gt;Get &lt;a href=&quot;http://www.amazon.com/gp/product/0201823764/ref=as_li_ss_tl?ie=UTF8&amp;amp;tag=tiraniaorg-20&amp;amp;linkCode=as2&amp;amp;camp=217145&amp;amp;creative=399369&amp;amp;creativeASIN=0201823764&quot;&gt;UNIX
	for the Impatient&lt;/a&gt;.  This book is fun, compact and is
	packed with goodies that will make you enjoy every minute in
	Unix.

&lt;/p&gt;&lt;h3&gt;Learn Emacs&lt;/h3&gt;

	&lt;p&gt;Emacs has had a strong influence in Unix over the years.
	If you learn to use Emacs, you will automatically learn the
	hotkeys and keybindings in hundreds of applications in Unix.

	&lt;/p&gt;&lt;p&gt;The best place to learn Emacs is to launch Emacs and then
	press Control-h and then t.    This is the online tutorial and
	it will take you about two hours to complete.

	&lt;/p&gt;&lt;p&gt;The knowledge that you will gain from Emacs will be useful
	for years to come.   You will thank me.   And you will offer
	to buy me a beer, which I will refuse because I rather have
	you buy me a freshly squeezed orange juice. 
	
&lt;/p&gt;&lt;h3&gt;Tooting my own horn&lt;/h3&gt;

	&lt;p&gt;Learn to use the Midnight Commander.

	&lt;/p&gt;&lt;p&gt;The Midnight Commander blends the best of both worlds:
	GUI-esque file management with full access to the Unix
	console.

	&lt;/p&gt;&lt;p&gt;The Midnight Commander is a console application that shows
	2 panels listing two different directories side-by-side and
	provides a command line that is fed directly to the Unix
	shell.

	&lt;/p&gt;&lt;center&gt;
	&lt;a href=&quot;http://www.gnu.org/s/mc/images/mc-panels.png&quot;&gt;
	&lt;img src=&quot;http://www.gnu.org/s/mc/images/mc-panels.png&quot; width=&quot;640&quot; /&gt;
	&lt;/a&gt;
	&lt;/center&gt;

	&lt;p&gt;The basics are simple: use the arrow keys to move around,
	Control-S to do incremental searches over filenames,
	Control-t to tag or untag files and the F keys to perform
	copy, move or delete operations.   Copy and Move default to
	copy to the other panel (which you can conveniently switch to
	by pressing the tab key).
	
	&lt;/p&gt;&lt;p&gt;There is no better way of keeping your file system
	organized than using my file manager. 

&lt;/p&gt;&lt;h3&gt;Becoming a Power User&lt;/h3&gt;

	&lt;p&gt;

	If you can not quench your thirst for knowledge there is
	one last book that I will recommend.   This is the atomic bomb
	of Unix knowledge.

	&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://www.amazon.com/gp/product/0596003307/ref=as_li_ss_tl?ie=UTF8&amp;amp;tag=tiraniaorg-20&amp;amp;linkCode=as2&amp;amp;camp=217145&amp;amp;creative=399369&amp;amp;creativeASIN=0596003307&quot;&gt;Unix
	Power Tools&lt;/a&gt; is a compilation of tricks by some of the best
	Unix users that got compiled into a huge volume.  This is a
	book of individual tricks, each about a page long, ideal to
	keep either on your bedside or in the restoom to pick a new
	trick every day.

&lt;/p&gt;&lt;h3&gt;Mavis Beacon&lt;/h3&gt;

	&lt;p&gt;At this point you might be thinking &quot;I am awesome&quot;, &quot;the
	world is my oyster&quot; and &quot;Avatar 3D was not such a bad movie&quot;.

	&lt;/p&gt;&lt;p&gt;But unless
	you &lt;a href=&quot;http://en.wikipedia.org/wiki/Touch_typing&quot;&gt;touch-type&lt;/a&gt;,
	you are neither awesome, nor you are in a position to judge
	the qualities of the world as an oyster or any James Cameron
	movies.

	&lt;/p&gt;&lt;p&gt;You have to face the fact that not only you are a slow
	typist, you do look a little bit ridiculous.  You are typing
	with two maybe three fingers on each hand and you move your
	head like a chicken as you alternate looking at
	your keyboard and looking at your screen.

	&lt;/p&gt;&lt;p&gt;Do humanity a favor and learn to touch type.

	&lt;/p&gt;&lt;p&gt;You can learn to touch type in about three weeks if you
	spend some two to three hours per day
	using &lt;a href=&quot;http://www.amazon.com/gp/product/B003MU9CPY/ref=as_li_ss_tl?ie=UTF8&amp;amp;tag=tiraniaorg-20&amp;amp;linkCode=as2&amp;amp;camp=217145&amp;amp;creative=399369&amp;amp;creativeASIN=B003MU9CPY&quot;&gt;Mavis
	Beacon Teaches Typing&lt;/a&gt;.

	&lt;/p&gt;&lt;p&gt;Mavis Beacon costs seventeen dollars ($17).  Those
	seventeen dollars and the sixty three hours you will spend
	using it will do more to advance your carreer than the same
	sixty three hours spend reading editorials on Hacker News.

&lt;/p&gt;&lt;h3&gt;Classics&lt;/h3&gt;

	&lt;p&gt;All of the books I list here have stood the test of time.
	They were written at a time when books were designed to last a
	lifetime.   

	&lt;/p&gt;&lt;p&gt;Unlike most modern computer books, all of these were a
	pleasure to read.&lt;/p&gt;</content>
		<author>
			<name>Miguel de Icaza (miguel@gnome.org)</name>
			<uri>http://tirania.org/blog//index.html</uri>
		</author>
	</entry>

	<entry>
		<title type="html">The Voidspace Techie Blog: matplotlib and numpy for Python 2.7 on Mac OS X Lion</title>
		<link href="http://feedproxy.google.com/~r/voidspace/~3/_c0L8HoC6mw/arch_d7_2011_09_03.shtml"/>
		<id>http://feedproxy.google.com/~r/voidspace/~3/_c0L8HoC6mw/arch_d7_2011_09_03.shtml</id>
		<updated>2011-09-05T00:18:13+00:00</updated>
		<content type="html">Unfortunately, due to an API change, the latest released version of matplotlib is incompatible with libpng 1.5. Take a wild guess as to which version comes with Mac OS X Lion. ... [275 words]&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=_c0L8HoC6mw:2V6wlEwoBg8:F7zBnMyn0Lo&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=_c0L8HoC6mw:2V6wlEwoBg8:F7zBnMyn0Lo&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=_c0L8HoC6mw:2V6wlEwoBg8:V_sGLiPBpWU&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=_c0L8HoC6mw:2V6wlEwoBg8:V_sGLiPBpWU&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=_c0L8HoC6mw:2V6wlEwoBg8:gIN9vFwOqvQ&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=_c0L8HoC6mw:2V6wlEwoBg8:gIN9vFwOqvQ&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=_c0L8HoC6mw:2V6wlEwoBg8:dnMXMwOfBR0&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?d=dnMXMwOfBR0&quot; /&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img height=&quot;1&quot; src=&quot;http://feeds.feedburner.com/~r/voidspace/~4/_c0L8HoC6mw&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>The Voidspace Techie Blog</name>
			<uri>http://www.voidspace.org.uk/python/weblog/index.shtml</uri>
		</author>
	</entry>

	<entry>
		<title type="html">Dino Viehland: Announcing Python Tools for Visual Studio 1.0</title>
		<link href="http://blogs.msdn.com/b/dinoviehland/archive/2011/08/31/announcing-python-tools-for-visual-studio-1-0.aspx"/>
		<id>91d46819-8472-40ad-a661-2c78acb4018c:10203959</id>
		<updated>2011-08-31T20:25:01+00:00</updated>
		<content type="html">&lt;p&gt;As you can see from &lt;a href=&quot;http://blogs.msdn.com/b/somasegar/archive/2011/08/29/python-tools-for-visual-studio.aspx&quot; title=&quot;Soma's Blog&quot;&gt;Soma's blog&lt;/a&gt; on Monday we released &lt;a href=&quot;http://pytools.codeplex.com&quot; title=&quot;Python Tools for Visual Studio 1.0&quot;&gt;Python Tools for Visual Studio 1.0&lt;/a&gt;.  Of course I'm excited about this release as it's been the 1st stable release I've put since IronPython 2.6 (and the first blog too!).  This release of PTVS focuses on a combination of the core IDE experience (intellisense, debugging, profiling, code navigation, etc..) as well as a set of features which target Technical / High Performance Computing.  That includes support for MPI cluster debugging and integrated IPython support. &lt;/p&gt;
&lt;p&gt;PTVS has been a long time in the making and it represents the fruition of a lot of effort here at Microsoft to produce a Python IDE.  This actually goes back a long time starting it's development several years ago on the IronPython team.  Back then we had done several small projects to figure out what we'd want to do in the Python IDE space.  That included a couple of attempts of building a stand alone IDE using the same components Visual Studio is built upon as a few different attempts at extending Visual Studio to add Python support (some of this having seen the light of day in the form of IronPython Studio and the Python integration which ships w/ the VS SDK).  Ultimately we were able to re-use bits and pieces from all of these attempts and release IronPython Tools for Visual Studio w/ the Alpha of IronPython 2.7. &lt;/p&gt;
&lt;p&gt;But we needed one last push to turn PTVS into what you see today - and that final push brought support for more than just IronPython and we now have turned Visual Studio into a general purpose Python IDE.  Whatever version of Python you'd like to use I think you'll find that PTVS provides a great experience - whether you're using traditional CPython or IronPython (which we still have special support for including WPF designer support) or another Python distribution such as the speedy PyPy.  The only feature which doesn't currently work across Python distributions is the profiling support which for performance reasons is tied to the CPython embedding API.&lt;/p&gt;
&lt;p&gt;Anyway, if you're looking for doing Python development on Windows I hope you'll give PTVS a shot and let us know what you think.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;&lt;div style=&quot;clear: both;&quot;&gt;&lt;/div&gt;&lt;img height=&quot;1&quot; src=&quot;http://blogs.msdn.com/aggbug.aspx?PostID=10203959&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>DinoV</name>
			<uri>http://blogs.msdn.com/b/dinoviehland/</uri>
		</author>
	</entry>

	<entry>
		<title type="html">The Voidspace Techie Blog: mock 0.8 beta 3 released: feature complete</title>
		<link href="http://feedproxy.google.com/~r/voidspace/~3/ENdjSLfOp-w/arch_d7_2011_08_13.shtml"/>
		<id>http://feedproxy.google.com/~r/voidspace/~3/ENdjSLfOp-w/arch_d7_2011_08_13.shtml</id>
		<updated>2011-08-17T23:35:36+00:00</updated>
		<content type="html">I've released mock 0.8 beta 3. You can download it it or install it with: pip install -U mock==dev mock is a library for testing in Python. ... [534 words]&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=ENdjSLfOp-w:Ybi8oYI6ny8:F7zBnMyn0Lo&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=ENdjSLfOp-w:Ybi8oYI6ny8:F7zBnMyn0Lo&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=ENdjSLfOp-w:Ybi8oYI6ny8:V_sGLiPBpWU&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=ENdjSLfOp-w:Ybi8oYI6ny8:V_sGLiPBpWU&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=ENdjSLfOp-w:Ybi8oYI6ny8:gIN9vFwOqvQ&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=ENdjSLfOp-w:Ybi8oYI6ny8:gIN9vFwOqvQ&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=ENdjSLfOp-w:Ybi8oYI6ny8:dnMXMwOfBR0&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?d=dnMXMwOfBR0&quot; /&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img height=&quot;1&quot; src=&quot;http://feeds.feedburner.com/~r/voidspace/~4/ENdjSLfOp-w&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>The Voidspace Techie Blog</name>
			<uri>http://www.voidspace.org.uk/python/weblog/index.shtml</uri>
		</author>
	</entry>

	<entry>
		<title type="html">Miguel de Icaza: And we are back: Mono 2.10.3</title>
		<link href="http://tirania.org/blog/archive/2011/Aug-04.html"/>
		<id>http://tirania.org/blog/archive/2011/Aug-04.html</id>
		<updated>2011-08-04T22:00:00+00:00</updated>
		<content type="html">&lt;p&gt;This is Xamarin's first official Mono release.

	&lt;/p&gt;&lt;p&gt;This is a major bug fix release that addresses many of the
	problems that were reported since our last release back on
	April 25th.

	&lt;/p&gt;&lt;p&gt;The &lt;a href=&quot;http://www.mono-project.com/Release_Notes_Mono_2.10.3&quot;&gt;detailed
	release notes&lt;/a&gt; have all the details, but the highlights of
	this release include:

	&lt;/p&gt;&lt;ul&gt;
		&lt;li&gt;MacOS X Lion is supported: both the Mono runtime
		and Gtk+ as shipped with Mono have been updated to run
		properly on Lion.  This solves the known problems that
		users had running MonoDevelop on MacOS X.

		&lt;/li&gt;&lt;li&gt;Vastly improved WCF stack

		&lt;/li&gt;&lt;li&gt;Many bug fixes to our precise garbage collector.
	&lt;/li&gt;&lt;/ul&gt;

	&lt;p&gt;Major features continue to be developed in the main branch.
	Currently we are just waiting for the C# 5.0 Asynchronous
	Language support to be completed to release that version.

	&lt;/p&gt;&lt;p&gt;Mono 2.10.3 also serves as the foundation for the upcoming
	Mono for Android 1.0.3 and MonoTouch 4.1.

	&lt;/p&gt;&lt;p&gt;You can get it
	from &lt;a href=&quot;http://www.go-mono.com/mono-downloads/download.html&quot;&gt;Mono's
	Download Site&lt;/a&gt;.

	&lt;/p&gt;&lt;p&gt;Currently we offer source code, Windows and MacOS
	packages.   We will publish Linux packages as soon as we are
	done mirroring the contents of the old site that contains the
	Linux repositories.

&lt;/p&gt;&lt;h3&gt;On C# 5.0&lt;/h3&gt;

	&lt;p&gt;Our new compiler, as you might know, has been rewritten to
	support two backends: a System.Reflection.Emit backend, and
	the brilliant IKVM.Reflection backend.
	
	&lt;/p&gt;&lt;p&gt;The C# 5.0 support as found
	on &lt;a href=&quot;http://github.com/mono/mono&quot;&gt;master&lt;/a&gt; contains
	the C# 5.0 support as shipped by Microsoft on their latest
	public release.

	&lt;/p&gt;&lt;p&gt;To try it out, use -langversion:future when invoking the
	compiler.   You can try some of our samples in
	mono/mcs/tests/test-async*.cs&lt;/p&gt;</content>
		<author>
			<name>Miguel de Icaza (miguel@gnome.org)</name>
			<uri>http://tirania.org/blog//index.html</uri>
		</author>
	</entry>

	<entry>
		<title type="html">The Voidspace Techie Blog: mock 0.8 beta 2:bug fix and side_effect iterables</title>
		<link href="http://feedproxy.google.com/~r/voidspace/~3/fopkqgO3KHs/arch_d7_2011_07_30.shtml"/>
		<id>http://feedproxy.google.com/~r/voidspace/~3/fopkqgO3KHs/arch_d7_2011_07_30.shtml</id>
		<updated>2011-08-04T10:48:24+00:00</updated>
		<content type="html">I've released mock 0.8 beta 2. You can download it it or install it with: pip install -U mock==dev mock is a library for testing in Python. ... [459 words]&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=fopkqgO3KHs:i-qSrshnkm8:F7zBnMyn0Lo&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=fopkqgO3KHs:i-qSrshnkm8:F7zBnMyn0Lo&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=fopkqgO3KHs:i-qSrshnkm8:V_sGLiPBpWU&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=fopkqgO3KHs:i-qSrshnkm8:V_sGLiPBpWU&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=fopkqgO3KHs:i-qSrshnkm8:gIN9vFwOqvQ&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=fopkqgO3KHs:i-qSrshnkm8:gIN9vFwOqvQ&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=fopkqgO3KHs:i-qSrshnkm8:dnMXMwOfBR0&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?d=dnMXMwOfBR0&quot; /&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img height=&quot;1&quot; src=&quot;http://feeds.feedburner.com/~r/voidspace/~4/fopkqgO3KHs&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>The Voidspace Techie Blog</name>
			<uri>http://www.voidspace.org.uk/python/weblog/index.shtml</uri>
		</author>
	</entry>

	<entry>
		<title type="html">The Voidspace Techie Blog: mock 0.8 beta 1: easier asserts for multiple and chained calls</title>
		<link href="http://feedproxy.google.com/~r/voidspace/~3/UPMheRcfhkk/arch_d7_2011_07_23.shtml"/>
		<id>http://feedproxy.google.com/~r/voidspace/~3/UPMheRcfhkk/arch_d7_2011_07_23.shtml</id>
		<updated>2011-07-25T11:02:01+00:00</updated>
		<content type="html">I've released mock 0.8 beta 1. You can download it it or install it with: pip install -U mock==dev mock is a library for testing in Python. ... [1376 words]&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=UPMheRcfhkk:2tdiZqjE5l0:F7zBnMyn0Lo&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=UPMheRcfhkk:2tdiZqjE5l0:F7zBnMyn0Lo&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=UPMheRcfhkk:2tdiZqjE5l0:V_sGLiPBpWU&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=UPMheRcfhkk:2tdiZqjE5l0:V_sGLiPBpWU&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=UPMheRcfhkk:2tdiZqjE5l0:gIN9vFwOqvQ&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=UPMheRcfhkk:2tdiZqjE5l0:gIN9vFwOqvQ&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=UPMheRcfhkk:2tdiZqjE5l0:dnMXMwOfBR0&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?d=dnMXMwOfBR0&quot; /&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img height=&quot;1&quot; src=&quot;http://feeds.feedburner.com/~r/voidspace/~4/UPMheRcfhkk&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>The Voidspace Techie Blog</name>
			<uri>http://www.voidspace.org.uk/python/weblog/index.shtml</uri>
		</author>
	</entry>

	<entry>
		<title type="html">Miguel de Icaza: MonoDevelop on Lion</title>
		<link href="http://tirania.org/blog/archive/2011/Jul-20.html"/>
		<id>http://tirania.org/blog/archive/2011/Jul-20.html</id>
		<updated>2011-07-20T22:16:00+00:00</updated>
		<content type="html">&lt;p&gt;We here at Xamarin are as excited as you are about the
	release of Lion. But unfortunately we're not quite ready to
	support you on Lion yet, and MonoDevelop doesn't work quite
	right. We're working around the clock to make MonoDevelop work
	perfectly on Lion, and we'll let you know as soon as it's ready.

	&lt;/p&gt;&lt;p&gt;&lt;b&gt;Update on July 29th:&lt;/b&gt; We have most of the fixes in
	place for Mono and will issue a build for testing on the Alpha
	channel soon.&lt;/p&gt;</content>
		<author>
			<name>Miguel de Icaza (miguel@gnome.org)</name>
			<uri>http://tirania.org/blog//index.html</uri>
		</author>
	</entry>

	<entry>
		<title type="html">Aaron Marten's WebLog: Visual Studio @ UserVoice</title>
		<link href="http://feedproxy.google.com/~r/AaronMarten/~3/si5SqxS0MBs/visual-studio-uservoice.aspx"/>
		<id>91d46819-8472-40ad-a661-2c78acb4018c:10188262</id>
		<updated>2011-07-20T16:53:36+00:00</updated>
		<content type="html">&lt;p&gt;We now have an official site for Visual Studio on UserVoice! Please use this as a way to send suggestions and feature requests to the Visual Studio team. For specific bugs and errors, please continue to use &lt;a href=&quot;http://connect.microsoft.com/visualstudio&quot;&gt;Microsoft Connect&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://visualstudio.uservoice.com&quot;&gt;&lt;font size=&quot;4&quot;&gt;http://visualstudio.uservoice.com&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://visualstudio.uservoice.com/&quot;&gt;&lt;img alt=&quot;image&quot; border=&quot;0&quot; height=&quot;481&quot; src=&quot;http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-32-57-metablogapi/7534.image_5F00_7613503A.png&quot; style=&quot;background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px;&quot; title=&quot;image&quot; width=&quot;644&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div style=&quot;clear: both;&quot;&gt;&lt;/div&gt;&lt;img height=&quot;1&quot; src=&quot;http://blogs.msdn.com/aggbug.aspx?PostID=10188262&quot; width=&quot;1&quot; /&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~ff/AaronMarten?a=si5SqxS0MBs:j56dBL1PBI8:yIl2AUoC8zA&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/AaronMarten?d=yIl2AUoC8zA&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/AaronMarten?a=si5SqxS0MBs:j56dBL1PBI8:qj6IDK7rITs&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/AaronMarten?d=qj6IDK7rITs&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/AaronMarten?a=si5SqxS0MBs:j56dBL1PBI8:V_sGLiPBpWU&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/AaronMarten?i=si5SqxS0MBs:j56dBL1PBI8:V_sGLiPBpWU&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/AaronMarten?a=si5SqxS0MBs:j56dBL1PBI8:F7zBnMyn0Lo&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/AaronMarten?i=si5SqxS0MBs:j56dBL1PBI8:F7zBnMyn0Lo&quot; /&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img height=&quot;1&quot; src=&quot;http://feeds.feedburner.com/~r/AaronMarten/~4/si5SqxS0MBs&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>Aaron Marten</name>
			<uri>http://blogs.msdn.com/b/aaronmar/</uri>
		</author>
	</entry>

	<entry>
		<title type="html">Miguel de Icaza: Novell/Xamarin Partnership around Mono</title>
		<link href="http://tirania.org/blog/archive/2011/Jul-18.html"/>
		<id>http://tirania.org/blog/archive/2011/Jul-18.html</id>
		<updated>2011-07-18T20:27:00+00:00</updated>
		<content type="html">&lt;p&gt;I have great news to share with the Mono community.   
	
	&lt;/p&gt;&lt;p&gt;Today together with SUSE, an Attachmate Business
	Unit, &lt;a href=&quot;http://www.novell.com/news/press/2011/7/suse-and-xamarin-partner-to-accelerate-innovation-and-support-mono-customers-and-community.html?utm_source=twitterfeed&amp;amp;utm_medium=twitter&quot;&gt;we
	announced&lt;/a&gt;:

	&lt;/p&gt;&lt;ul&gt;
		&lt;li&gt;&lt;a href=&quot;http://xamarin.com&quot;&gt;Xamarin&lt;/a&gt; will be
		providing the support for all of the
		existing &lt;a href=&quot;http://ios.xamarin.com&quot;&gt;MonoTouch&lt;/a&gt;,
		&lt;a href=&quot;http://android.xamarin.com&quot;&gt;Mono for
		Android&lt;/a&gt; and Mono for Visual Studio customers.

		&lt;/li&gt;&lt;li&gt;Existing and future SUSE customers that use the
		Mono Enterprise products on their SLES and SLED
		systems will continue to receive great support backed
		by the engineering team at Xamarin.
		
		&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://xamarin.com&quot;&gt;Xamarin&lt;/a&gt; obtained
		a perpetual license to all the intellectual property
		of Mono, MonoTouch, Mono for Android, Mono for Visual
		Studio and will continue
		&lt;a href=&quot;http://store.xamarin.com&quot;&gt;updating and
		selling&lt;/a&gt; those products.

		&lt;/li&gt;&lt;li&gt;Starting today, developers will be able to
		purchase MonoTouch and Mono for Android
		from &lt;a href=&quot;http://store.xamarin.com&quot;&gt;the Xamarin
		store&lt;/a&gt;.  Existing customers will be able to
		purchase upgrades.

		&lt;/li&gt;&lt;li&gt;Xamarin will be taking over the stewardship of the
		&lt;a href=&quot;http://www.mono-project.com&quot;&gt;Mono open
		source&lt;/a&gt; community project.   This includes the
		larger Mono ecosystem of applications that you are
		familiar with including MonoDevelop and the other
		Mono-centric in
		the  &lt;a href=&quot;http://github.com/mono/&quot;&gt;Mono
		Organization&lt;/a&gt; at GitHub.  
	&lt;/li&gt;&lt;/ul&gt;

	&lt;center&gt;
	&lt;img src=&quot;http://tirania.org/images/xamarin-cat.jpg&quot; /&gt;
	&lt;/center&gt;
	
	&lt;p&gt;We are a young company, but we are completely dedicated to
	these mobile products and we can not wait to bring smiles to
	every one of our customers.

&lt;/p&gt;&lt;h3&gt;Roadmaps&lt;/h3&gt;

	&lt;p&gt;Our immediate plans for both MonoTouch and Mono for Android
	is to make sure that your critical and major bugs are fixed.
	We have been listening to the needs of the community and we
	are working to improve these products to meet your needs.
	You can expect updates to the products in the next week. 

	&lt;/p&gt;&lt;p&gt;In the past couple of months, we have met with some of our
	users and we have learned a lot about what you wanted.  We
	incorporated your feature requests into our products roadmaps
	for both
	the &lt;a href=&quot;http://ios.xamarin.com/Roadmap&quot;&gt;MonoTouch&lt;/a&gt; and
	the &lt;a href=&quot;http://android.xamarin.com/Roadmap&quot;&gt;Mono for
	Android&lt;/a&gt; products.

	&lt;/p&gt;&lt;p&gt;Another thing we learned is that many companies need to
	have a priority support offering for this class of products,
	so we have introduced this.  It can be either
	be &lt;a href=&quot;http://store.xamarin.com&quot;&gt;purchased&lt;/a&gt; when you
	first order MonoTouch or Mono for Android, or you get an
	upgrade to get the priority support.
	
&lt;/p&gt;&lt;h3&gt;Next Steps&lt;/h3&gt;

	&lt;p&gt;Our goals are to delight software developers by giving them
	the most enjoyable environment, languages and tools to build
	mobile applications.

	&lt;/p&gt;&lt;p&gt;We are thankful to everyone that provided feedback to us in
	our online form that we published a month ago.  Please keep
	your feedback coming, you can reach us
	at &lt;a href=&quot;mailto:contact@xamarin.com&quot;&gt;contact@xamarin.com&lt;/a&gt;.
	We are reading every email that you send us and you can use my
	new miguel at new company dot com email address to reach me.

	&lt;/p&gt;&lt;p&gt;We will be at the &lt;a href=&quot;http://monospace.us/&quot;&gt;Monospace conference&lt;/a&gt; this weekend at the
	&lt;a href=&quot;http://microsoftcambridge.com/Default.aspx&quot;&gt;Microsoft
	NERD Center&lt;/a&gt;, hope to see you there!

	&lt;/p&gt;&lt;p&gt;Remember to &lt;a href=&quot;http://store.xamarin.com&quot;&gt;purchase
	early and often&lt;/a&gt; so we have the resources to bring you the
	best developer tools on the planet.&lt;/p&gt;</content>
		<author>
			<name>Miguel de Icaza (miguel@gnome.org)</name>
			<uri>http://tirania.org/blog//index.html</uri>
		</author>
	</entry>

	<entry>
		<title type="html">The Voidspace Techie Blog: Mock subclasses and their attributes</title>
		<link href="http://feedproxy.google.com/~r/voidspace/~3/Ck3ZkmgamRU/arch_d7_2011_07_16.shtml"/>
		<id>http://feedproxy.google.com/~r/voidspace/~3/Ck3ZkmgamRU/arch_d7_2011_07_16.shtml</id>
		<updated>2011-07-18T17:22:00+00:00</updated>
		<content type="html">This blog entry is about creating subclasses of mock.Mock. mock is a library for testing in Python. It allows you to replace parts of your system under test with mock objects. ... [341 words]&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=Ck3ZkmgamRU:ccaZq9Y2zBE:F7zBnMyn0Lo&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=Ck3ZkmgamRU:ccaZq9Y2zBE:F7zBnMyn0Lo&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=Ck3ZkmgamRU:ccaZq9Y2zBE:V_sGLiPBpWU&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=Ck3ZkmgamRU:ccaZq9Y2zBE:V_sGLiPBpWU&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=Ck3ZkmgamRU:ccaZq9Y2zBE:gIN9vFwOqvQ&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=Ck3ZkmgamRU:ccaZq9Y2zBE:gIN9vFwOqvQ&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=Ck3ZkmgamRU:ccaZq9Y2zBE:dnMXMwOfBR0&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?d=dnMXMwOfBR0&quot; /&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img height=&quot;1&quot; src=&quot;http://feeds.feedburner.com/~r/voidspace/~4/Ck3ZkmgamRU&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>The Voidspace Techie Blog</name>
			<uri>http://www.voidspace.org.uk/python/weblog/index.shtml</uri>
		</author>
	</entry>

	<entry>
		<title type="html">The Voidspace Techie Blog: Mock 0.8 alpha 2: patch.multiple, new_callable and non-callable mocks</title>
		<link href="http://feedproxy.google.com/~r/voidspace/~3/3rSCOSKDPfo/arch_d7_2011_07_16.shtml"/>
		<id>http://feedproxy.google.com/~r/voidspace/~3/3rSCOSKDPfo/arch_d7_2011_07_16.shtml</id>
		<updated>2011-07-16T15:36:19+00:00</updated>
		<content type="html">I've released mock 0.8 alpha 2. You can download it it or install it with: pip install -U mock==dev mock is a library for testing in Python. ... [496 words]&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=3rSCOSKDPfo:B2h8V-gpbsU:F7zBnMyn0Lo&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=3rSCOSKDPfo:B2h8V-gpbsU:F7zBnMyn0Lo&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=3rSCOSKDPfo:B2h8V-gpbsU:V_sGLiPBpWU&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=3rSCOSKDPfo:B2h8V-gpbsU:V_sGLiPBpWU&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=3rSCOSKDPfo:B2h8V-gpbsU:gIN9vFwOqvQ&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=3rSCOSKDPfo:B2h8V-gpbsU:gIN9vFwOqvQ&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=3rSCOSKDPfo:B2h8V-gpbsU:dnMXMwOfBR0&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?d=dnMXMwOfBR0&quot; /&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img height=&quot;1&quot; src=&quot;http://feeds.feedburner.com/~r/voidspace/~4/3rSCOSKDPfo&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>The Voidspace Techie Blog</name>
			<uri>http://www.voidspace.org.uk/python/weblog/index.shtml</uri>
		</author>
	</entry>

	<entry>
		<title type="html">Hex Dump: I am speaking at PyCon AU 2011 about CouchDB</title>
		<link href="http://hex-dump.blogspot.com/2011/07/i-am-speaking-at-pycon-au-2011-about.html"/>
		<id>tag:blogger.com,1999:blog-10338754.post-589020831427779797</id>
		<updated>2011-07-14T00:40:00+00:00</updated>
		<content type="html">The official schedule for PyCon Australia 2011 has been announced (http://pycon-au.org/2011/conference/schedule/). My talk is the first session after the opening keynote and will be an overview of CouchDB and how you can use it with Python.

&quot;CouchDB  (http://couchdb.apache.org/) is an open source, document-oriented NoSQL Database Management Server.It supports queries via views using MapReduce,</content>
		<author>
			<name>Mark Rees (noreply@blogger.com)</name>
			<uri>http://hex-dump.blogspot.com/</uri>
		</author>
	</entry>

	<entry>
		<title type="html">Jeff Hardy's Blog (NWSGI): Using Downloaded IronPython Modules</title>
		<link href="http://feedproxy.google.com/~r/JeffHardysBlog/~3/Tgah_uaYEr8/using-downloaded-ironpython-modules.html"/>
		<id>tag:blogger.com,1999:blog-597261753977781.post-4550777446274299972</id>
		<updated>2011-07-13T15:46:48+00:00</updated>
		<content type="html">One of Internet Explorer’s many “helpful” features is one that will “taint” any downloaded files as so that the system knows they are from the internet. Honestly, I can’t see what value this feature adds other than &lt;a href=&quot;http://www.jeff.wilcox.name/2008/11/unblock-chms/&quot;&gt;breaking CHM files&lt;/a&gt;, and preventing IronPython from using downloaded modules.&lt;br /&gt;
This was brought to my attention by &lt;a href=&quot;http://www.ironshay.com/&quot;&gt;Shay Friedman&lt;/a&gt;, who was trying to use &lt;a href=&quot;https://bitbucket.org/jdhardy/ironpythonzlib&quot;&gt;IronPython.Zlib&lt;/a&gt; but couldn’t get it to work. In particular, the error message was misleading:&lt;br /&gt;
&lt;pre&gt;IronPython 2.6.1 (2.6.10920.0) on .NET 4.0.30319.1
Type &quot;help&quot;, &quot;copyright&quot;, &quot;credits&quot; or &quot;license&quot; for more information.
&amp;gt;&amp;gt;&amp;gt; import clr
&amp;gt;&amp;gt;&amp;gt; clr.AddReferenceToFileAndPath('C:\Users\Jeff\Downloads\IronPython.Zlib-2.6-clr4\IronPython.Zlib.dll')
Traceback (most recent call last):
  File &quot;&quot;, line 1, in 
IOError: System.IO.IOException: file does not exist: C:\Users\Jeff\Downloads\IronPython.Zlib-2.6-clr4\IronPython.Zlib.dll
   at Microsoft.Scripting.Actions.Calls.MethodCandidate.Caller.Call(Object[] args, Boolean&amp;amp; shouldOptimize)
...
&amp;gt;&amp;gt;&amp;gt;&lt;/pre&gt;The file, of course, does exist, so why can’t IronPython find it?&lt;br /&gt;
There are actually a few things that interplay here: first, it must be downloaded with a  browser that taints the file (which I believe are just IE and Chrome), and second, it must be unzipped with Windows’ built in unzipping tools. The built in tools have the interesting property that when unzipping a tainted zip file will also taint all of the unzipped files. Finally, the punchline: .NET will not load an assembly that is tainted.&lt;br /&gt;
So how do we get around this? Well, you can:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;use a different browser&lt;/li&gt;
&lt;li&gt;use a different unzipping tool (I highly recommend &lt;a href=&quot;http://www.7-zip.org/&quot;&gt;7-zip&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;unblock the zip file prior to unzipping&lt;/li&gt;
&lt;/ul&gt;To unblock the file, just right click on the zip file, click “Properties”, and click “Unblock”:&lt;br /&gt;
&lt;a href=&quot;http://lh6.ggpht.com/_RAOuCQw0XUY/TI1LSKhsQoI/AAAAAAAAAD0/ZVB0Fln5C3U/s1600-h/unblock-file%5B4%5D.png&quot;&gt;&lt;img alt=&quot;unblock-file&quot; border=&quot;0&quot; height=&quot;519&quot; src=&quot;http://lh6.ggpht.com/_RAOuCQw0XUY/TI1LS5ktXSI/AAAAAAAAAD4/GqAIr5K5dAM/unblock-file_thumb%5B2%5D.png?imgmax=800&quot; style=&quot;border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline;&quot; title=&quot;unblock-file&quot; width=&quot;414&quot; /&gt;&lt;/a&gt; &lt;br /&gt;
If you’ve already unzipped the file, you can just unblock the DLL. Depending on where you unzipped the file to, you my need to use an elevated Explorer window. You can also &lt;a href=&quot;http://www.elijahmanor.com/2009/09/recursively-unblock-assemblies-with.html&quot;&gt;unblock multiple files from the command line.&lt;/a&gt;&lt;br /&gt;
This may well affect applications other than IronPython, so it’s just one more thing to watch for.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img alt=&quot;&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/597261753977781-4550777446274299972?l=blog.jdhardy.ca&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href=&quot;http://feedads.g.doubleclick.net/~a/uAPG5vnAysR2r0cXPWBm3KY4_Wg/0/da&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;true&quot; src=&quot;http://feedads.g.doubleclick.net/~a/uAPG5vnAysR2r0cXPWBm3KY4_Wg/0/di&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://feedads.g.doubleclick.net/~a/uAPG5vnAysR2r0cXPWBm3KY4_Wg/1/da&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;true&quot; src=&quot;http://feedads.g.doubleclick.net/~a/uAPG5vnAysR2r0cXPWBm3KY4_Wg/1/di&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img height=&quot;1&quot; src=&quot;http://feeds.feedburner.com/~r/JeffHardysBlog/~4/Tgah_uaYEr8&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>jdhardy (noreply@blogger.com)</name>
			<uri>http://blog.jdhardy.ca/</uri>
		</author>
	</entry>

	<entry>
		<title type="html">Miguel de Icaza: Update on Mono</title>
		<link href="http://tirania.org/blog/archive/2011/Jul-06.html"/>
		<id>http://tirania.org/blog/archive/2011/Jul-06.html</id>
		<updated>2011-07-06T20:45:00+00:00</updated>
		<content type="html">&lt;p&gt;I have a posted
	an &lt;a href=&quot;http://lists.ximian.com/pipermail/mono-list/2011-July/047311.html&quot;&gt;update
	on Mono&lt;/a&gt; and the upcoming release of Mono 2.12.&lt;/p&gt;</content>
		<author>
			<name>Miguel de Icaza (miguel@gnome.org)</name>
			<uri>http://tirania.org/blog//index.html</uri>
		</author>
	</entry>

	<entry>
		<title type="html">Miguel de Icaza: Mono Consultants</title>
		<link href="http://tirania.org/blog/archive/2011/Jun-30.html"/>
		<id>http://tirania.org/blog/archive/2011/Jun-30.html</id>
		<updated>2011-07-01T04:21:00+00:00</updated>
		<content type="html">&lt;p&gt;We are getting flooded with paid support requests for
	Mono.   Developers looking for us to fix bugs in Mono, to do
	some custom work, to port applications, libraries and adjust
	Mono for some specific needs.

	&lt;/p&gt;&lt;p&gt;But we are trying to be a product company as opposed to a
	support company.   

	&lt;/p&gt;&lt;p&gt;We still want to help the Mono user community, and with all
	of the Mono talent out there, at least we can use this
	opportunity to get both groups in touch: the users that want
	custom engineering done, with the talented list of hackers.

	&lt;/p&gt;&lt;p&gt;If you are a consultant available to do custom engineering
	and support for customers, we would love to put you in touch
	with people that need the custom engineering done.    Email us
	at contact@xamarin.com, in the subject line, specify that you
	are available for custom engineering, and in the body of the
	message list both your Mono skills (C# or C coding) and your
	availability to engage on those gigs.

	&lt;/p&gt;&lt;p&gt;We will then get you in touch with users that needs the
	work done.&lt;/p&gt;</content>
		<author>
			<name>Miguel de Icaza (miguel@gnome.org)</name>
			<uri>http://tirania.org/blog//index.html</uri>
		</author>
	</entry>

	<entry>
		<title type="html">Miguel de Icaza: Xamarin Joy Factory</title>
		<link href="http://tirania.org/blog/archive/2011/Jun-28.html"/>
		<id>http://tirania.org/blog/archive/2011/Jun-28.html</id>
		<updated>2011-06-29T01:42:00+00:00</updated>
		<content type="html">&lt;p&gt;Setting up a new &lt;a href=&quot;http://www.xamarin.com&quot;&gt;company&lt;/a&gt;
	consumes a lot of time.   Specially as we are developing as
	fast as we can not one, but two products: .NET for iPhone and
	.NET for Android.

	&lt;/p&gt;&lt;p&gt;Structurally, we are better off than we were the first time
	that we built these products.  We have more developers working
	on each product than we did the first time around, so progress
	is faster.  But we also had to swap the developers around:
	those that wrote Foo, can not work on Foo again.  This is just
	one of the things that we have to do to ensure a clean room
	implementation.

	&lt;/p&gt;&lt;p&gt;Our vision is to create happy developers.  We did that in
	the past by bringing the C# language, garbage collection,
	LINQ, strongly typed APIs, Parallel FX, intellisense and
	inline documentation to iPhone and Android developers. And by
	making it possible for the world's 6 million .NET developers
	to reuse their skills on the most popular mobile platforms.

	&lt;/p&gt;&lt;p&gt;This time around, we are doing even more.  We are
	addressing many of the frustrations that developers had with
	the old products and making sure that those frustrations go
	away.  

	&lt;/p&gt;&lt;p&gt;Nat and myself complement each other very well here.  This
	means that there are a lot of new things that will be present
	in our offering that we never did in the past.

	&lt;/p&gt;&lt;p&gt;There is a new level of polish that those familiar with
	Nat's previous products had (SUSE Studio, NLD/SLED, Ximian
	Desktop).  Everyone at Xamarin can feel that Nat is hard at
	work when they noticed that one of the first things Nat did
	was to engage six design firms and an army of technical
	writers to ensure that our products go from &quot;Nice&quot; to
	&quot;Amazing&quot;.  And that was on his second week as CEO, a lot has
	happened since.

	&lt;/p&gt;&lt;p&gt;I do not want to give away everything that we are doing, it
	would ruin the surprise, but we are here to deliver joy to
	programmers everywhere.
	
	&lt;/p&gt;&lt;p&gt;If you are interested in working with us, and making mobile
	development and .NET development a joy that everyone can
	enjoy, check out
	our &lt;a href=&quot;http://xamarin.com/jobs.html&quot;&gt;Jobs page&lt;/a&gt;

&lt;/p&gt;&lt;h3&gt;Where we are now&lt;/h3&gt;

	&lt;p&gt;It gives me great pleasure to say that we
	have &lt;a href=&quot;http://tirania.org/blog/archive/2010/Jul-10.html&quot;&gt;elevated
	the discourse&lt;/a&gt; on the iPhone simulator and my
	Chicken-powered &lt;a href=&quot;http://tirania.org/tweetstation/&quot;&gt;TweetStation&lt;/a&gt;
	is up and running with the new iOS product.  The picture on
	the left is TweetStation powered by MonoTouch, the picture on
	the right is TweetStation powered by Xamarin's iPhone product:

	&lt;/p&gt;&lt;blockquote&gt;
	&lt;span style=&quot;float: left; text-align: center;&quot;&gt;
	&lt;a href=&quot;http://tirania.org/tmp/tweetstation-mt.png&quot;&gt;&lt;img src=&quot;http://tirania.org/tmp/tweetstation-mt-half.png&quot; /&gt;&lt;/a&gt;
	&lt;br /&gt;TweetStation on MonoTouch
	&lt;/span&gt;

	&lt;span style=&quot;float: left; text-align: center; margin-left: 5em;&quot;&gt;
	&lt;a href=&quot;http://tirania.org/tmp/tweetstation-xt.png&quot;&gt;&lt;img src=&quot;http://tirania.org/tmp/tweetstation-xt-half.png&quot; /&gt;&lt;/a&gt;
	&lt;br /&gt;TweetStation on Xamarin iOS
	&lt;/span&gt;
	&lt;/blockquote&gt;

	&lt;p style=&quot;clear: both;&quot;&gt;&lt;b&gt;Update:&lt;/b&gt;   TweetStation now starts up on Device!   We
	have the static compiler working!

	&lt;/p&gt;&lt;p&gt;We also have the delicious iOS5 APIs exposed as
	strongly-typed and intellisense-friendly C#.   We are now
	updating the APIs from Beta1 to Beta2, which should be
	completed today or tomorrow.    
	
	&lt;/p&gt;&lt;p&gt;Our Android efforts are moving fast.   Only this
	morning we got Layouts to render on the device.   This is a
	lot of work, as it gets Dalvik to start Mono, and initializes
	our entire bridge and exercises the C# and Java bridge.    In
	addition, we have identified and fixed a serious problem in
	the distributed garbage collector.   

	&lt;/p&gt;&lt;p&gt;We also have a number of surprises for everyone in
	MonoDevelop, we believe that you guys are going to love the
	new features for iPhone and Android development. 

	&lt;/p&gt;&lt;p&gt;There is still a lot of polish left to do.  We are working
	as hard as we can to have Preview releases in your hands, but
	we feel confident that we will have a great product for sale
	by the end of the summer. We hope you will all max out your
	credit cards buying it.&lt;/p&gt;</content>
		<author>
			<name>Miguel de Icaza (miguel@gnome.org)</name>
			<uri>http://tirania.org/blog//index.html</uri>
		</author>
	</entry>

	<entry>
		<title type="html">Miguel de Icaza: Monospace Conference</title>
		<link href="http://tirania.org/blog/archive/2011/Jun-21.html"/>
		<id>http://tirania.org/blog/archive/2011/Jun-21.html</id>
		<updated>2011-06-21T11:22:00+00:00</updated>
		<content type="html">&lt;p&gt;&lt;/p&gt;</content>
		<author>
			<name>Miguel de Icaza (miguel@gnome.org)</name>
			<uri>http://tirania.org/blog//index.html</uri>
		</author>
	</entry>

	<entry>
		<title type="html">Aaron Marten's WebLog: Temporary Post Used For Theme Detection (0b80dc13-367f-47f4-957b-bf8b55dc5edc - 3bfe001a-32de-4114-a6b4-4005b770f6d7)</title>
		<link href="http://feedproxy.google.com/~r/AaronMarten/~3/0Jtg0WOf7Go/temporary-post-used-for-theme-detection-0b80dc13-367f-47f4-957b-bf8b55dc5edc-3bfe001a-32de-4114-a6b4-4005b770f6d7.aspx"/>
		<id>91d46819-8472-40ad-a661-2c78acb4018c:10176677</id>
		<updated>2011-06-18T19:58:25+00:00</updated>
		<content type="html">&lt;p&gt;This is a temporary post that was not deleted. Please delete this manually. (72c9b318-73bf-43e4-89ed-ad8cc295876b - 3bfe001a-32de-4114-a6b4-4005b770f6d7)&lt;/p&gt;&lt;div style=&quot;clear: both;&quot;&gt;&lt;/div&gt;&lt;img height=&quot;1&quot; src=&quot;http://blogs.msdn.com/aggbug.aspx?PostID=10176677&quot; width=&quot;1&quot; /&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~ff/AaronMarten?a=0Jtg0WOf7Go:cMX8yXAZc4k:yIl2AUoC8zA&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/AaronMarten?d=yIl2AUoC8zA&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/AaronMarten?a=0Jtg0WOf7Go:cMX8yXAZc4k:qj6IDK7rITs&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/AaronMarten?d=qj6IDK7rITs&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/AaronMarten?a=0Jtg0WOf7Go:cMX8yXAZc4k:V_sGLiPBpWU&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/AaronMarten?i=0Jtg0WOf7Go:cMX8yXAZc4k:V_sGLiPBpWU&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/AaronMarten?a=0Jtg0WOf7Go:cMX8yXAZc4k:F7zBnMyn0Lo&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/AaronMarten?i=0Jtg0WOf7Go:cMX8yXAZc4k:F7zBnMyn0Lo&quot; /&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img height=&quot;1&quot; src=&quot;http://feeds.feedburner.com/~r/AaronMarten/~4/0Jtg0WOf7Go&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>Aaron Marten</name>
			<uri>http://blogs.msdn.com/b/aaronmar/</uri>
		</author>
	</entry>

	<entry>
		<title type="html">The Voidspace Techie Blog: mock 0.8 alpha 1: New Features</title>
		<link href="http://feedproxy.google.com/~r/voidspace/~3/LnjPn_jXTT0/arch_d7_2011_06_11.shtml"/>
		<id>http://feedproxy.google.com/~r/voidspace/~3/LnjPn_jXTT0/arch_d7_2011_06_11.shtml</id>
		<updated>2011-06-14T12:13:00+00:00</updated>
		<content type="html">This is a long entry, please forgive me. It describes all the new features in mock 0.8.0 alpha 1. The main reason I need to describe it here is that I haven't yet written the documentation. ... [2527 words]&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=LnjPn_jXTT0:k_sxKNXVMyg:F7zBnMyn0Lo&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=LnjPn_jXTT0:k_sxKNXVMyg:F7zBnMyn0Lo&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=LnjPn_jXTT0:k_sxKNXVMyg:V_sGLiPBpWU&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=LnjPn_jXTT0:k_sxKNXVMyg:V_sGLiPBpWU&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=LnjPn_jXTT0:k_sxKNXVMyg:gIN9vFwOqvQ&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=LnjPn_jXTT0:k_sxKNXVMyg:gIN9vFwOqvQ&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=LnjPn_jXTT0:k_sxKNXVMyg:dnMXMwOfBR0&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?d=dnMXMwOfBR0&quot; /&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img height=&quot;1&quot; src=&quot;http://feeds.feedburner.com/~r/voidspace/~4/LnjPn_jXTT0&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>The Voidspace Techie Blog</name>
			<uri>http://www.voidspace.org.uk/python/weblog/index.shtml</uri>
		</author>
	</entry>

	<entry>
		<title type="html">The Voidspace Techie Blog: Mocking Generator Methods</title>
		<link href="http://feedproxy.google.com/~r/voidspace/~3/0CTJWTPg1QI/arch_d7_2011_06_11.shtml"/>
		<id>http://feedproxy.google.com/~r/voidspace/~3/0CTJWTPg1QI/arch_d7_2011_06_11.shtml</id>
		<updated>2011-06-13T17:24:10+00:00</updated>
		<content type="html">Another mock recipe, this one for mocking generator methods. A Python generator is a function or method that uses the yield statement to return a series of values when iterated over [1]. ... [267 words]&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=0CTJWTPg1QI:bkdgp3UtCoM:F7zBnMyn0Lo&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=0CTJWTPg1QI:bkdgp3UtCoM:F7zBnMyn0Lo&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=0CTJWTPg1QI:bkdgp3UtCoM:V_sGLiPBpWU&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=0CTJWTPg1QI:bkdgp3UtCoM:V_sGLiPBpWU&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=0CTJWTPg1QI:bkdgp3UtCoM:gIN9vFwOqvQ&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=0CTJWTPg1QI:bkdgp3UtCoM:gIN9vFwOqvQ&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=0CTJWTPg1QI:bkdgp3UtCoM:dnMXMwOfBR0&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?d=dnMXMwOfBR0&quot; /&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img height=&quot;1&quot; src=&quot;http://feeds.feedburner.com/~r/voidspace/~4/0CTJWTPg1QI&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>The Voidspace Techie Blog</name>
			<uri>http://www.voidspace.org.uk/python/weblog/index.shtml</uri>
		</author>
	</entry>

	<entry>
		<title type="html">Jeff Hardy's Blog (NWSGI): NWSGI 2.1 Now Available</title>
		<link href="http://feedproxy.google.com/~r/JeffHardysBlog/~3/N1GcjdX7e5U/nwsgi-21-now-available.html"/>
		<id>tag:blogger.com,1999:blog-597261753977781.post-5202096533744176831</id>
		<updated>2011-06-12T20:25:20+00:00</updated>
		<content type="html">&lt;p&gt;I’ve finally updated &lt;a href=&quot;http://nwsgi.codeplex.com/&quot;&gt;NWSGI&lt;/a&gt; to use IronPython 2.7: &lt;a href=&quot;http://nwsgi.codeplex.com/releases/view/33909&quot;&gt;NWSGI 2.1&lt;/a&gt;. The only other change is that NWSGI.dll will be added to the GAC by default by the installer.&lt;/p&gt; &lt;h3&gt;NWSGI 3 Update&lt;/h3&gt; &lt;p&gt;The big feature of NWSGI 3 is decoupling it from IIS and ASP.NET, which involved creating an abstraction layer for web servers (which is funny, because that’s what WSGI is). Shortly after I started that, the &lt;a href=&quot;http://owin.org/&quot;&gt;OWIN&lt;/a&gt; project started, which has essentially the same goal. Since I hate duplicating effort, NWSGI 3 is on hold until OWIN stabilizes, which hopefully shouldn’t be too much longer.&lt;/p&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img alt=&quot;&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/597261753977781-5202096533744176831?l=blog.jdhardy.ca&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href=&quot;http://feedads.g.doubleclick.net/~a/2J2Qbcl0MDGMRngAr5M-rEgF26Q/0/da&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;true&quot; src=&quot;http://feedads.g.doubleclick.net/~a/2J2Qbcl0MDGMRngAr5M-rEgF26Q/0/di&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://feedads.g.doubleclick.net/~a/2J2Qbcl0MDGMRngAr5M-rEgF26Q/1/da&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;true&quot; src=&quot;http://feedads.g.doubleclick.net/~a/2J2Qbcl0MDGMRngAr5M-rEgF26Q/1/di&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img height=&quot;1&quot; src=&quot;http://feeds.feedburner.com/~r/JeffHardysBlog/~4/N1GcjdX7e5U&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>jdhardy (noreply@blogger.com)</name>
			<uri>http://blog.jdhardy.ca/</uri>
		</author>
	</entry>

	<entry>
		<title type="html">The Voidspace Techie Blog: Another approach to mocking properties</title>
		<link href="http://feedproxy.google.com/~r/voidspace/~3/UgoMY1zUDEQ/arch_d7_2011_06_04.shtml"/>
		<id>http://feedproxy.google.com/~r/voidspace/~3/UgoMY1zUDEQ/arch_d7_2011_06_04.shtml</id>
		<updated>2011-06-06T20:17:37+00:00</updated>
		<content type="html">mock is a library for testing in Python. It allows you to replace parts of your system under test with mock objects. ... [512 words]&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=UgoMY1zUDEQ:oai6oR5TbV8:F7zBnMyn0Lo&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=UgoMY1zUDEQ:oai6oR5TbV8:F7zBnMyn0Lo&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=UgoMY1zUDEQ:oai6oR5TbV8:V_sGLiPBpWU&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=UgoMY1zUDEQ:oai6oR5TbV8:V_sGLiPBpWU&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=UgoMY1zUDEQ:oai6oR5TbV8:gIN9vFwOqvQ&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=UgoMY1zUDEQ:oai6oR5TbV8:gIN9vFwOqvQ&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=UgoMY1zUDEQ:oai6oR5TbV8:dnMXMwOfBR0&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?d=dnMXMwOfBR0&quot; /&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img height=&quot;1&quot; src=&quot;http://feeds.feedburner.com/~r/voidspace/~4/UgoMY1zUDEQ&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>The Voidspace Techie Blog</name>
			<uri>http://www.voidspace.org.uk/python/weblog/index.shtml</uri>
		</author>
	</entry>

	<entry>
		<title type="html">The Voidspace Techie Blog: mock 0.7.2 released</title>
		<link href="http://feedproxy.google.com/~r/voidspace/~3/6AQbsy9yUBY/arch_d7_2011_05_28.shtml"/>
		<id>http://feedproxy.google.com/~r/voidspace/~3/6AQbsy9yUBY/arch_d7_2011_05_28.shtml</id>
		<updated>2011-05-30T20:11:33+00:00</updated>
		<content type="html">There's a new minor release of mock, version 0.7.2 with two bugfixes in it. http://pypi.python.org/pypi/mock/ (download) http://www.voidspace.org.uk/python/mock/ (documentation) https://code.google.com/p/mock/ (repo and issue tracker) mock is a Python library for simple mocking and patching (replacing objects with mocks during test runs). ... [696 words]&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=6AQbsy9yUBY:WvQ3JYOyiL4:F7zBnMyn0Lo&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=6AQbsy9yUBY:WvQ3JYOyiL4:F7zBnMyn0Lo&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=6AQbsy9yUBY:WvQ3JYOyiL4:V_sGLiPBpWU&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=6AQbsy9yUBY:WvQ3JYOyiL4:V_sGLiPBpWU&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=6AQbsy9yUBY:WvQ3JYOyiL4:gIN9vFwOqvQ&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=6AQbsy9yUBY:WvQ3JYOyiL4:gIN9vFwOqvQ&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=6AQbsy9yUBY:WvQ3JYOyiL4:dnMXMwOfBR0&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?d=dnMXMwOfBR0&quot; /&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img height=&quot;1&quot; src=&quot;http://feeds.feedburner.com/~r/voidspace/~4/6AQbsy9yUBY&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>The Voidspace Techie Blog</name>
			<uri>http://www.voidspace.org.uk/python/weblog/index.shtml</uri>
		</author>
	</entry>

	<entry>
		<title type="html">The Voidspace Techie Blog: namedtuple and generating function signatures</title>
		<link href="http://feedproxy.google.com/~r/voidspace/~3/UxPBgJI6dg8/arch_d7_2011_05_28.shtml"/>
		<id>http://feedproxy.google.com/~r/voidspace/~3/UxPBgJI6dg8/arch_d7_2011_05_28.shtml</id>
		<updated>2011-05-30T14:00:31+00:00</updated>
		<content type="html">Kristjan Valur, the chief Python developer at CCP games (creators of Eve Online), has posted an interesting blog entry about the use of exec in namedtuple. namedtuple is a relatively recent, and extraordinary useful, part of the Python standard library. ... [682 words]&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=UxPBgJI6dg8:xek5LAXsC4o:F7zBnMyn0Lo&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=UxPBgJI6dg8:xek5LAXsC4o:F7zBnMyn0Lo&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=UxPBgJI6dg8:xek5LAXsC4o:V_sGLiPBpWU&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=UxPBgJI6dg8:xek5LAXsC4o:V_sGLiPBpWU&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=UxPBgJI6dg8:xek5LAXsC4o:gIN9vFwOqvQ&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=UxPBgJI6dg8:xek5LAXsC4o:gIN9vFwOqvQ&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=UxPBgJI6dg8:xek5LAXsC4o:dnMXMwOfBR0&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?d=dnMXMwOfBR0&quot; /&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img height=&quot;1&quot; src=&quot;http://feeds.feedburner.com/~r/voidspace/~4/UxPBgJI6dg8&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>The Voidspace Techie Blog</name>
			<uri>http://www.voidspace.org.uk/python/weblog/index.shtml</uri>
		</author>
	</entry>

	<entry>
		<title type="html">The Voidspace Techie Blog: Nothing is Private: Python Closures (and ctypes)</title>
		<link href="http://feedproxy.google.com/~r/voidspace/~3/qvPNp2k66hQ/arch_d7_2011_05_28.shtml"/>
		<id>http://feedproxy.google.com/~r/voidspace/~3/qvPNp2k66hQ/arch_d7_2011_05_28.shtml</id>
		<updated>2011-05-30T12:40:05+00:00</updated>
		<content type="html">As I'm sure you know Python doesn't have a concept of private members. One trick that is sometimes used is to hide an object inside a Python closure, and provide a proxy object that only permits limited access to the original object. ... [482 words]&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=qvPNp2k66hQ:IGLaaJ4-Flk:F7zBnMyn0Lo&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=qvPNp2k66hQ:IGLaaJ4-Flk:F7zBnMyn0Lo&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=qvPNp2k66hQ:IGLaaJ4-Flk:V_sGLiPBpWU&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=qvPNp2k66hQ:IGLaaJ4-Flk:V_sGLiPBpWU&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=qvPNp2k66hQ:IGLaaJ4-Flk:gIN9vFwOqvQ&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=qvPNp2k66hQ:IGLaaJ4-Flk:gIN9vFwOqvQ&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=qvPNp2k66hQ:IGLaaJ4-Flk:dnMXMwOfBR0&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?d=dnMXMwOfBR0&quot; /&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img height=&quot;1&quot; src=&quot;http://feeds.feedburner.com/~r/voidspace/~4/qvPNp2k66hQ&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>The Voidspace Techie Blog</name>
			<uri>http://www.voidspace.org.uk/python/weblog/index.shtml</uri>
		</author>
	</entry>

	<entry>
		<title type="html">The Voidspace Techie Blog: Using patch.dict to mock imports</title>
		<link href="http://feedproxy.google.com/~r/voidspace/~3/UEi7MWcbbZU/arch_d7_2011_05_28.shtml"/>
		<id>http://feedproxy.google.com/~r/voidspace/~3/UEi7MWcbbZU/arch_d7_2011_05_28.shtml</id>
		<updated>2011-05-29T19:50:36+00:00</updated>
		<content type="html">I had an email from a mock user asking if I could add a patch_import to mock that would patch __import__ in a namespace to replace the result of an import with a Mock. It's an interesting question, with a couple of caveats: Don't patch __import__. ... [522 words]&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=UEi7MWcbbZU:6xIzYPh87_E:F7zBnMyn0Lo&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=UEi7MWcbbZU:6xIzYPh87_E:F7zBnMyn0Lo&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=UEi7MWcbbZU:6xIzYPh87_E:V_sGLiPBpWU&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=UEi7MWcbbZU:6xIzYPh87_E:V_sGLiPBpWU&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=UEi7MWcbbZU:6xIzYPh87_E:gIN9vFwOqvQ&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=UEi7MWcbbZU:6xIzYPh87_E:gIN9vFwOqvQ&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=UEi7MWcbbZU:6xIzYPh87_E:dnMXMwOfBR0&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?d=dnMXMwOfBR0&quot; /&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img height=&quot;1&quot; src=&quot;http://feeds.feedburner.com/~r/voidspace/~4/UEi7MWcbbZU&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>The Voidspace Techie Blog</name>
			<uri>http://www.voidspace.org.uk/python/weblog/index.shtml</uri>
		</author>
	</entry>

	<entry>
		<title type="html">Miguel de Icaza: Xamarin recruits best CEO in the Industry</title>
		<link href="http://tirania.org/blog/archive/2011/May-25.html"/>
		<id>http://tirania.org/blog/archive/2011/May-25.html</id>
		<updated>2011-05-25T20:14:00+00:00</updated>
		<content type="html">&lt;p&gt;I could not be more excited about this.

	&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://nat.org/blog&quot;&gt;Nat Friedman&lt;/a&gt; has &lt;a href=&quot;http://nat.org/blog/2011/05/xamarin/&quot;&gt;joined
	Xamarin&lt;/a&gt; as a company founder and CEO this week.

	&lt;/p&gt;&lt;p&gt;Nat and I have known each other and worked together on and off
	since the early days of Linux.  In 1999, we started
	&lt;a href=&quot;http://en.wikipedia.org/wiki/Ximian&quot;&gt;Ximian&lt;/a&gt;
	to advance the state of Linux, user experience and developer 
	platforms - with many of our efforts brought to fruition 
	after our acquisition by Novell in 2003.
	
	&lt;/p&gt;&lt;p&gt;Anyone that has had the pleasure to work with Nat knows
	that ideas come in one side, and objects of desire come out on
	the other end.   

	&lt;/p&gt;&lt;p&gt;In mobile development, we've discovered a great opportunity: 
	a need for products that developers love.  And we are going to 
 	fill this need with great products that will make everyone's 
	eyes shine every time they use our software.   

	&lt;/p&gt;&lt;p&gt;Update: Nat's most recent product
	was &lt;a href=&quot;http://susestudio.com&quot;&gt;SUSE Studio&lt;/a&gt;.&lt;/p&gt;</content>
		<author>
			<name>Miguel de Icaza (miguel@gnome.org)</name>
			<uri>http://tirania.org/blog//index.html</uri>
		</author>
	</entry>

	<entry>
		<title type="html">The Voidspace Techie Blog: Implementing __dir__ (and finding bugs in Pythons)</title>
		<link href="http://feedproxy.google.com/~r/voidspace/~3/h5qkWPD64Hs/arch_d7_2011_05_21.shtml"/>
		<id>http://feedproxy.google.com/~r/voidspace/~3/h5qkWPD64Hs/arch_d7_2011_05_21.shtml</id>
		<updated>2011-05-25T10:04:51+00:00</updated>
		<content type="html">A new magic method was added in Python 2.6 to allow objects to customise the list of attributes returned by dir. The new protocol method (I don't really like the term &quot;magic method&quot; but it is so entrenched both in the Python community and in my own mind) is __dir__. ... [1181 words]&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=h5qkWPD64Hs:t05hsWZGiX4:F7zBnMyn0Lo&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=h5qkWPD64Hs:t05hsWZGiX4:F7zBnMyn0Lo&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=h5qkWPD64Hs:t05hsWZGiX4:V_sGLiPBpWU&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=h5qkWPD64Hs:t05hsWZGiX4:V_sGLiPBpWU&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=h5qkWPD64Hs:t05hsWZGiX4:gIN9vFwOqvQ&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=h5qkWPD64Hs:t05hsWZGiX4:gIN9vFwOqvQ&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=h5qkWPD64Hs:t05hsWZGiX4:dnMXMwOfBR0&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?d=dnMXMwOfBR0&quot; /&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img height=&quot;1&quot; src=&quot;http://feeds.feedburner.com/~r/voidspace/~4/h5qkWPD64Hs&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>The Voidspace Techie Blog</name>
			<uri>http://www.voidspace.org.uk/python/weblog/index.shtml</uri>
		</author>
	</entry>

	<entry>
		<title type="html">Hex Dump: Python Informix Database Connection Options</title>
		<link href="http://hex-dump.blogspot.com/2011/05/python-informix-database-connection.html"/>
		<id>tag:blogger.com,1999:blog-10338754.post-16842198215378951</id>
		<updated>2011-05-18T15:58:00+00:00</updated>
		<content type="html">I am currently at the International Informix Users Group Conference (http://www.iiug.org/index.php) in Kansas. In the opening keynote by Jerry Keesee, there some discussion about IBM's Open Source Initiatives for Informix. On the accompanying slide, Python and Django were listed. This reminded me that I hadn't taken stock of what the Informix DB connections options were for the Python user lately</content>
		<author>
			<name>Mark Rees (noreply@blogger.com)</name>
			<uri>http://hex-dump.blogspot.com/</uri>
		</author>
	</entry>

	<entry>
		<title type="html">Miguel de Icaza: Announcing Xamarin</title>
		<link href="http://tirania.org/blog/archive/2011/May-16.html"/>
		<id>http://tirania.org/blog/archive/2011/May-16.html</id>
		<updated>2011-05-17T01:39:00+00:00</updated>
		<content type="html">&lt;p&gt;&lt;img align=&quot;right&quot; src=&quot;http://primates.ximian.com/~miguel/pictures/larrymoon.png&quot; /&gt;Today we start &lt;a href=&quot;http://www.Xamarin.com&quot;&gt;Xamarin&lt;/a&gt;, our
	new company focused on Mono-based products.   

	&lt;/p&gt;&lt;p&gt;These are some of the things that we will be doing at
	Xamarin:

	&lt;/p&gt;&lt;ul&gt;
		&lt;li&gt;Build a new commercial .NET offering for iOS

		&lt;/li&gt;&lt;li&gt;Build a new commercial .NET offering for Android

		&lt;/li&gt;&lt;li&gt;Continue to contribute, maintain and develop the
		open source Mono and Moonlight components.

		&lt;/li&gt;&lt;li&gt;Explore the Moonlight opportunities in the mobile
		space and the Mac appstore.
	&lt;/li&gt;&lt;/ul&gt;

	&lt;p&gt;We believe strongly
	in &lt;a href=&quot;http://tirania.org/blog/archive/2011/Apr-06.html#split&quot;&gt;splitting
	the presentation layer from
	the business logic&lt;/a&gt; in your application and supporting both
	your backend needs with C# on the server, the client or mobile
	devices and giving you the tools to use .NET languages in
	&lt;a href=&quot;http://tirania.org/blog/archive/2011/Feb-14.html&quot;&gt;every desktop and mobile client&lt;/a&gt;.
	
	&lt;/p&gt;&lt;p&gt;Development started early this morning, we will first
	deliver the iPhone stack, followed by the Android stack, and
	then the Moonlight ports to both platforms.

	&lt;/p&gt;&lt;p&gt;The new versions of .NET for the iPhone and Android will be
	source compatible with MonoTouch and Mono for Android.  Like
	those versions, they will be commercial products, built on top
	of the open core Mono.

	&lt;/p&gt;&lt;p&gt;In addition, we are going to provide support and custom
	development of Mono.  A company that provides International
	Mono Support, if you will.

	&lt;/p&gt;&lt;p&gt;As usual, your feedback will help us determine which
	platforms and features are important to you.  Help us by
	filling out
	&lt;a href=&quot;https://spreadsheets0.google.com/spreadsheet/viewform?hl=en&amp;amp;hl=en&amp;amp;formkey=dHZNYTFXU3dqbXp6d2JwajhXTGRUNlE6MQ#gid=0&quot;&gt;our
	survey&lt;/a&gt;.   If you give us your email address, we will also
	add you to our preview/beta list for our upcoming products. 
	
&lt;/p&gt;&lt;h2&gt;Fighting for Your Right to Party&lt;/h2&gt;

	&lt;p&gt;We have been trying to spin Mono off from Novell for more
	than a year now.  Everyone agreed that Mono would have a
	brighter future as an independent company, so a plan was
	prepared last year.   
	
	&lt;/p&gt;&lt;p&gt;To make a long story short, the plan to spin off was not
	executed.  Instead on Monday May 2nd, the Canadian and
	American teams were laid off; Europe, Brazil and Japan
	followed a few days later.  These layoffs included all the
	MonoTouch and MonoDroid engineers and other key Mono
	developers.  Although Attachmate allowed us to go home that
	day, we opted to provide technical support to our users until
	our last day at Novell, which was Friday last week.

	&lt;/p&gt;&lt;p&gt;We were clearly bummed out by this development, and had no
	desire to quit, especially with all the great progress in this
	last year.  So, with a heavy dose of motivation from my
	&lt;a href=&quot;http://benjaminzander.com/&quot;&gt;music teacher&lt;/a&gt;, we hatched a plan.

	&lt;/p&gt;&lt;p&gt;Now, two weeks later, we have a plan in place, which
	includes both angel funding for keeping the team together, as
	well as a couple of engineering contracts that will help us
	stay together as a team while we ship our revenue generating
	products.

&lt;/p&gt;&lt;h2&gt;Next Steps&lt;/h2&gt;

	&lt;p&gt;Our plan is to maximize the pleasure that developers derive
	from using Mono and .NET languages on their favorite
	platforms.   
	
	&lt;/p&gt;&lt;p&gt;We do have some funding to get started and ship our initial
	products.  But we are looking to raise more capital to address
	the shortcomings that we could not afford to do before, these
	include:

	&lt;/p&gt;&lt;ul&gt;
		&lt;li&gt;Tutorials for our various developer stacks

		&lt;/li&gt;&lt;li&gt;API documentation for the various Mono-specific APIs
		
		&lt;/li&gt;&lt;li&gt;Dedicated Customer Support Software (assistly or
		getsatisfaction)

		&lt;/li&gt;&lt;li&gt;Upgrade our Bug system

		&lt;/li&gt;&lt;li&gt;Training

		&lt;/li&gt;&lt;li&gt;Consulting and Support

		&lt;/li&gt;&lt;li&gt;and Marketing: we have a best of breed developer
		platform, and we need the world to know.  Our previous
		marketing budget is what the ancient Olmec culture
		referred to
		as &lt;a href=&quot;http://en.wikipedia.org/wiki/0_(number)#History_of_zero&quot;&gt;Zero&lt;/a&gt;.

	&lt;/li&gt;&lt;/ul&gt;

	&lt;p&gt;Stay tuned for more, meanwhile, hope to see you in July at the
	&lt;a href=&quot;http://monospace.us/&quot;&gt;Monospace conference in Boston!&lt;/a&gt;&lt;/p&gt;</content>
		<author>
			<name>Miguel de Icaza (miguel@gnome.org)</name>
			<uri>http://tirania.org/blog//index.html</uri>
		</author>
	</entry>

	<entry>
		<title type="html">The Voidspace Techie Blog: Django concurrency, database locking and refreshing model objects</title>
		<link href="http://feedproxy.google.com/~r/voidspace/~3/DSs6w_fFQKw/arch_d7_2011_05_07.shtml"/>
		<id>http://feedproxy.google.com/~r/voidspace/~3/DSs6w_fFQKw/arch_d7_2011_05_07.shtml</id>
		<updated>2011-05-13T10:06:41+00:00</updated>
		<content type="html">Using expressions to make some of our model updates atomic (as discussed previously) wasn't sufficient to make all of our operations safe for concurrent database modifications (although still useful). This is because having fetched some values we wanted to perform operations based on those values, and they must not change whilst the operations are taking place (because the end result will be written back and would overwrite any other changes made). ... [1090 words]&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=DSs6w_fFQKw:SQNiizkbm0Y:F7zBnMyn0Lo&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=DSs6w_fFQKw:SQNiizkbm0Y:F7zBnMyn0Lo&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=DSs6w_fFQKw:SQNiizkbm0Y:V_sGLiPBpWU&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=DSs6w_fFQKw:SQNiizkbm0Y:V_sGLiPBpWU&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=DSs6w_fFQKw:SQNiizkbm0Y:gIN9vFwOqvQ&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=DSs6w_fFQKw:SQNiizkbm0Y:gIN9vFwOqvQ&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=DSs6w_fFQKw:SQNiizkbm0Y:dnMXMwOfBR0&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?d=dnMXMwOfBR0&quot; /&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img height=&quot;1&quot; src=&quot;http://feeds.feedburner.com/~r/voidspace/~4/DSs6w_fFQKw&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>The Voidspace Techie Blog</name>
			<uri>http://www.voidspace.org.uk/python/weblog/index.shtml</uri>
		</author>
	</entry>

	<entry>
		<title type="html">The Voidspace Techie Blog: mock 0.7.1 and matching objects in assert_called_with</title>
		<link href="http://feedproxy.google.com/~r/voidspace/~3/SbOoy5ScOEY/arch_d7_2011_05_07.shtml"/>
		<id>http://feedproxy.google.com/~r/voidspace/~3/SbOoy5ScOEY/arch_d7_2011_05_07.shtml</id>
		<updated>2011-05-12T23:20:40+00:00</updated>
		<content type="html">I've done a new release of mock, version 0.7.1. There are no code changes, but the new release fixes some packaging issues identified by Michael Fladischer. ... [624 words]&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=SbOoy5ScOEY:5MTZo3OhNJY:F7zBnMyn0Lo&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=SbOoy5ScOEY:5MTZo3OhNJY:F7zBnMyn0Lo&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=SbOoy5ScOEY:5MTZo3OhNJY:V_sGLiPBpWU&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=SbOoy5ScOEY:5MTZo3OhNJY:V_sGLiPBpWU&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=SbOoy5ScOEY:5MTZo3OhNJY:gIN9vFwOqvQ&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=SbOoy5ScOEY:5MTZo3OhNJY:gIN9vFwOqvQ&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=SbOoy5ScOEY:5MTZo3OhNJY:dnMXMwOfBR0&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?d=dnMXMwOfBR0&quot; /&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img height=&quot;1&quot; src=&quot;http://feeds.feedburner.com/~r/voidspace/~4/SbOoy5ScOEY&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>The Voidspace Techie Blog</name>
			<uri>http://www.voidspace.org.uk/python/weblog/index.shtml</uri>
		</author>
	</entry>

	<entry>
		<title type="html">Aaron Marten's WebLog: Visual Studio Extensions and Build Servers</title>
		<link href="http://feedproxy.google.com/~r/AaronMarten/~3/PMci149AbY8/visual-studio-extensions-and-build-servers.aspx"/>
		<id>91d46819-8472-40ad-a661-2c78acb4018c:10161888</id>
		<updated>2011-05-10T18:35:00+00:00</updated>
		<content type="html">&lt;p&gt;From time to time, we see questions around building a project created with &lt;a href=&quot;http://www.microsoft.com/downloads/en/details.aspx?FamilyID=21307c23-f0ff-4ef2-a0a4-dca54ddb1e21&quot;&gt;the Visual Studio 2010 SDK&lt;/a&gt; on a build server (e.g. &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/dd793166.aspx&quot;&gt;Team Foundation Build&lt;/a&gt;, &lt;a href=&quot;http://www.jetbrains.com/teamcity/&quot;&gt;TeamCity&lt;/a&gt;, &lt;a href=&quot;http://confluence.public.thoughtworks.org/display/CCNET/Welcome+to+CruiseControl.NET&quot;&gt;CC.NET&lt;/a&gt;, etc…). The primary misconception that folks have is that you must install Visual Studio 2010 + SDK on the build server.&lt;/p&gt;
&lt;p&gt;In this post, I’ll walk through the process of getting a C#/VB VSPackage project up and running on Team Foundation Build, without requiring an install of Visual Studio on the build agent machine. The same steps apply for editor extensions or other extensibility project types.&lt;/p&gt;
&lt;h3&gt;&lt;/h3&gt;
&lt;p&gt;Once you’ve configured the build server and are ready to try out a build, you’ll probably see something like the following error in your build log:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-32-57-metablogapi/5826.image_5F00_6A8B3CA3.png&quot;&gt;&lt;img alt=&quot;The imported project &amp;quot;C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\VSSDK\Microsoft.VsSDK.targets&amp;quot; was not found. Confirm that the path in the &amp;lt;Import&amp;gt; declaration is correct, and that the file exists on disk.&quot; border=&quot;0&quot; height=&quot;106&quot; src=&quot;http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-32-57-metablogapi/7651.image_5F00_thumb_5F00_34A585E2.png&quot; style=&quot;background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;&quot; title=&quot;builderror1&quot; width=&quot;479&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Step #1: Put Visual Studio SDK targets/tasks in source control&lt;/h3&gt;
&lt;p&gt;Since neither Visual Studio nor the Visual Studio SDK are installed on my build machine, the build complains about the missing Microsoft.VsSDK.targets file. This is simple enough to fix by doing the following:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Create a folder at the root of your solution directory called “vssdk_tools”. We’ll be adding all the necessary targets, tasks, etc… to this folder and adding it to source control. &lt;/li&gt;
&lt;li&gt;Copy the contents of %ProgramFiles%\MSBuild\Microsoft\VisualStudio\v10.0\VSSDK into this directory. &lt;/li&gt;
&lt;li&gt;Add the contents of your vssdk_tools directory to source control. 
&lt;ul&gt;
&lt;li&gt;If you’re using TFS Source Control, you can do this via the “tf add” command or through the Source Control Explorer tool window in Visual Studio 2010. &lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Edit your project file to point to this new targets file. Change the line: &lt;br /&gt;&amp;lt;Import Project=&quot;$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\VSSDK\Microsoft.VsSDK.targets&quot; /&amp;gt; &lt;br /&gt;   to &lt;br /&gt;&amp;lt;Import Project=&quot;..\vssdk_tools\Microsoft.VsSDK.targets&quot; /&amp;gt; &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Let’s try checking in again and seeing where we are now:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-32-57-metablogapi/0310.image_5F00_5F7DE9F4.png&quot;&gt;&lt;img alt=&quot;image&quot; border=&quot;0&quot; height=&quot;212&quot; src=&quot;http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-32-57-metablogapi/2451.image_5F00_thumb_5F00_6630F377.png&quot; style=&quot;background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;&quot; title=&quot;image&quot; width=&quot;649&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Step #2: Put COMReference binaries in source control&lt;/h3&gt;
&lt;p&gt;The reason that MSBuild is trying to run AxImp.exe is because we have a collection of COMReference elements in our VSPackage project. Instead of registering these assemblies as COM components on the build server, let’s copy these binaries to our local project and add them as normal assembly references:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Remove the following COMReferences from your project: 
&lt;ul&gt;
&lt;li&gt;EnvDTE &lt;/li&gt;
&lt;li&gt;EnvDTE80 &lt;/li&gt;
&lt;li&gt;EnvDTE90 &lt;/li&gt;
&lt;li&gt;EnvDTE100 &lt;/li&gt;
&lt;li&gt;Microsoft.VisualStudio.CommandBars &lt;/li&gt;
&lt;li&gt;stdole &lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Create a “binaries” folder in our VSPackage project &lt;/li&gt;
&lt;li&gt;“Add existing item…” on this binaries folder for the following assemblies: 
&lt;ul&gt;
&lt;li&gt;%ProgramFiles%\Common Files\Microsoft Shared\MSEnv\PublicAssemblies\EnvDTE.dll &lt;/li&gt;
&lt;li&gt;%ProgramFiles%\Common Files\Microsoft Shared\MSEnv\PublicAssemblies\EnvDTE80.dll &lt;/li&gt;
&lt;li&gt;%ProgramFiles%\Common Files\Microsoft Shared\MSEnv\PublicAssemblies\EnvDTE90.dll &lt;/li&gt;
&lt;li&gt;%ProgramFiles%\Common Files\Microsoft Shared\MSEnv\PublicAssemblies\EnvDTE100.dll &lt;/li&gt;
&lt;li&gt;%ProgramFiles%\Common Files\Microsoft Shared\MSEnv\PublicAssemblies\Microsoft.VisualStudio.CommandBars.dll &lt;/li&gt;
&lt;li&gt;%ProgramFiles%\Common Files\Microsoft Shared\MSEnv\PublicAssemblies\stdole.dll &lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Select all the binary files and set the “Build Action” property to “None”. &lt;/li&gt;
&lt;li&gt;Re-add assembly references to the binaries you just added. &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Important&lt;/strong&gt;: Select all the references and set the “Embed Interop Types” property to &lt;strong&gt;false.&lt;/strong&gt; (You can select and change them all in one operation.) &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Let’s check in and try another build on the server&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-32-57-metablogapi/5187.image_5F00_3EF6AA42.png&quot;&gt;&lt;img alt=&quot;image&quot; border=&quot;0&quot; height=&quot;165&quot; src=&quot;http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-32-57-metablogapi/6406.image_5F00_thumb_5F00_65C4C082.png&quot; style=&quot;background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;&quot; title=&quot;image&quot; width=&quot;717&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Step #3: Manually set the VsSDKInstall locations&lt;/h3&gt;
&lt;p&gt;Let’s take a look at the actual line where we’re hitting the error in Microsoft.VsSDK.Common.targets:&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: Consolas;&quot;&gt;&amp;lt;Target Name=&quot;FindSDKInstallation&quot; &lt;strong&gt;&lt;span style=&quot;background-color: #ffff00;&quot;&gt;Condition=&quot;'$(VsSDKInstall)'==''&quot;&lt;/span&gt;&amp;gt;&lt;/strong&gt; &lt;br /&gt;  &amp;lt;FindVsSDKInstallation SDKVersion=&quot;$(VsSDKVersion)&quot;&amp;gt; &lt;br /&gt;    …&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;The reason this task needs to run is because the VsSDKInstall property (and friends) hasn’t been set yet. Let’s use the “vssdk_tools” folder we had set up earlier. Edit your project file again, and add the following properties to the first &amp;lt;ProjectGroup&amp;gt; element: &lt;br /&gt;&lt;span style=&quot;font-family: Consolas;&quot;&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: Consolas;&quot;&gt;&amp;lt;VsSDKInstall&amp;gt;..\vssdk_tools&amp;lt;/VsSDKInstall&amp;gt; &lt;br /&gt;&amp;lt;VsSDKIncludes&amp;gt;$(VsSDKInstall)\inc&amp;lt;/VsSDKIncludes&amp;gt; &lt;br /&gt;&amp;lt;VsSDKToolsPath&amp;gt;$(VsSDKInstall)\bin&amp;lt;/VsSDKToolsPath&amp;gt; &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Clearly, this won’t work until we actually have the corresponding files from the Visual Studio SDK also checked in to those directories. Let’s do that now:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Copy the contents of %ProgramFiles%\Microsoft Visual Studio 2010 SDK SP1\VisualStudioIntegration\Common\Inc to vssdk_tools\inc &lt;/li&gt;
&lt;li&gt;Copy the contents of %ProgramFiles%\Microsoft Visual Studio 2010 SDK SP1\VisualStudioIntegration\Tools\Bin to vssdk_tools\bin &lt;/li&gt;
&lt;li&gt;Add all these new files to source control &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Let’s checkin again and see where we are now:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-32-57-metablogapi/3857.image_5F00_258EA708.png&quot;&gt;&lt;img alt=&quot;image&quot; border=&quot;0&quot; height=&quot;204&quot; src=&quot;http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-32-57-metablogapi/7651.image_5F00_thumb_5F00_376B3AD5.png&quot; style=&quot;background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;&quot; title=&quot;image&quot; width=&quot;745&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Step #4: Set VsSDKToolsPath as an Environment Variable&lt;/h3&gt;
&lt;p&gt;Hmmm…this one is a bit tricky. It turns out that some of the VSSDK build tasks rely on not only the $(VsSDKToolsPath) MSBuild property, but they also rely on this being set &lt;strong&gt;&lt;em&gt;as an environment variable&lt;/em&gt;&lt;/strong&gt;. We can do that fairly easily with an inline build task which we can add to our project file:&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: Consolas;&quot;&gt;&amp;lt;UsingTask TaskName=&quot;SetVsSDKEnvironmentVariables&quot; TaskFactory=&quot;CodeTaskFactory&quot; AssemblyFile=&quot;$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll&quot;&amp;gt; &lt;br /&gt;  &amp;lt;ParameterGroup&amp;gt; &lt;br /&gt;    &amp;lt;ProjectDirectory Required=&quot;true&quot; /&amp;gt; &lt;br /&gt;  &amp;lt;/ParameterGroup&amp;gt; &lt;br /&gt;  &amp;lt;Task&amp;gt; &lt;br /&gt;    &amp;lt;Code Type=&quot;Fragment&quot; Language=&quot;cs&quot;&amp;gt; &lt;br /&gt;      System.Environment.SetEnvironmentVariable(&quot;VsSDKToolsPath&quot;, System.IO.Path.GetFullPath(ProjectDirectory + @&quot;\..\vssdk_tools\bin&quot;)); &lt;br /&gt;    &amp;lt;/Code&amp;gt; &lt;br /&gt;  &amp;lt;/Task&amp;gt; &lt;br /&gt;&amp;lt;/UsingTask&amp;gt; &lt;br /&gt;&amp;lt;Target Name=&quot;SetVsSDKEnvironmentVariables&quot; BeforeTargets=&quot;VSCTCompile&quot;&amp;gt; &lt;br /&gt;  &amp;lt;SetVsSDKEnvironmentVariables ProjectDirectory=&quot;$(MSBuildProjectDirectory)&quot; /&amp;gt; &lt;br /&gt;&amp;lt;/Target&amp;gt; &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: Consolas;&quot;&gt;&lt;span style=&quot;font-family: Segoe UI;&quot;&gt;Let’s cross our fingers and try again:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-32-57-metablogapi/0804.image_5F00_0C307FF5.png&quot;&gt;&lt;img alt=&quot;image&quot; border=&quot;0&quot; height=&quot;103&quot; src=&quot;http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-32-57-metablogapi/8321.image_5F00_thumb_5F00_3AC688D7.png&quot; style=&quot;background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;&quot; title=&quot;image&quot; width=&quot;687&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Step #5: Use 32-bit MSBuild.exe&lt;/h3&gt;
&lt;p&gt;By default, TFS will use the x64 version of MSBuild.exe (assuming you’re on a 64-bit server). Since the VSCT assembly is 32-bit only, it will fail to load in a 64-bit process. To use 32-bit MSBuild.exe on the server (if you’re using Team Foundation Build), simply edit the build definition and change Process =&amp;gt; Advanced =&amp;gt; MSBuild Platform to “X86” instead of “Auto”.&lt;/p&gt;
&lt;p&gt;One more try:&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: Consolas;&quot;&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-32-57-metablogapi/4011.image_5F00_0C26A3CE.png&quot;&gt;&lt;img alt=&quot;image&quot; border=&quot;0&quot; height=&quot;228&quot; src=&quot;http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-32-57-metablogapi/3438.image_5F00_thumb_5F00_36FF07E0.png&quot; style=&quot;background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;&quot; title=&quot;image&quot; width=&quot;734&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;/h3&gt;
&lt;p&gt;&lt;span style=&quot;font-family: Consolas;&quot;&gt; &lt;/span&gt;&lt;/p&gt;
&lt;h3&gt;Step #6: Add other VSSDK Assemblies to source control&lt;/h3&gt;
&lt;p&gt;In step 3, we only added the COMReferences to source control. Now, let’s do a similar procedure with the other assemblies:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Remove the following assembly references from your project: 
&lt;ul&gt;
&lt;li&gt;Microsoft.VisualStudio.OLE.Interop &lt;/li&gt;
&lt;li&gt;Microsoft.VisualStudio.Shell.10.0 &lt;/li&gt;
&lt;li&gt;Microsoft.VisualStudio.Shell.Immutable.10.0 &lt;/li&gt;
&lt;li&gt;Microsoft.VisualStudio.Shell.Interop &lt;/li&gt;
&lt;li&gt;Microsoft.VisualStudio.Shell.Interop.10.0 &lt;/li&gt;
&lt;li&gt;Microsoft.VisualStudio.Shell.Interop.8.0 &lt;/li&gt;
&lt;li&gt;Microsoft.VisualStudio.Shell.Interop.9.0 &lt;/li&gt;
&lt;li&gt;Microsoft.VisualStudio.TextManager.Interop &lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;“Add existing item…” on the binaries folder for the following assemblies: 
&lt;ul&gt;
&lt;li&gt;%ProgramFiles%\Microsoft Visual Studio 2010 SDK SP1\VisualStudioIntegration\Common\Assemblies\v2.0\Microsoft.VisualStudio.OLE.Interop.dll &lt;/li&gt;
&lt;li&gt;%ProgramFiles%\Microsoft Visual Studio 2010 SDK SP1\VisualStudioIntegration\Common\Assemblies\v2.0\Microsoft.VisualStudio.Shell.Interop.dll &lt;/li&gt;
&lt;li&gt;%ProgramFiles%\Microsoft Visual Studio 2010 SDK SP1\VisualStudioIntegration\Common\Assemblies\v2.0\Microsoft.VisualStudio.Shell.Interop.8.0.dll &lt;/li&gt;
&lt;li&gt;%ProgramFiles%\Microsoft Visual Studio 2010 SDK SP1\VisualStudioIntegration\Common\Assemblies\v2.0\Microsoft.VisualStudio.Shell.Interop.9.0.dll &lt;/li&gt;
&lt;li&gt;%ProgramFiles%\Microsoft Visual Studio 2010 SDK SP1\VisualStudioIntegration\Common\Assemblies\v2.0\Microsoft.VisualStudio.Shell.Interop.10.0.dll &lt;/li&gt;
&lt;li&gt;%ProgramFiles%\Microsoft Visual Studio 2010 SDK SP1\VisualStudioIntegration\Common\Assemblies\v2.0\Microsoft.VisualStudio.TextManager.Interop.dll &lt;/li&gt;
&lt;li&gt;%ProgramFiles%\Microsoft Visual Studio 2010 SDK SP1\VisualStudioIntegration\Common\Assemblies\v4.0\Microsoft.VisualStudio.Shell.10.0.dll &lt;/li&gt;
&lt;li&gt;%ProgramFiles%\Microsoft Visual Studio 2010 SDK SP1\VisualStudioIntegration\Common\Assemblies\v4.0\Microsoft.VisualStudio.Shell.Immutable.10.0.dll &lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Select all the binary files and set the “Build Action” property to “None”. &lt;/li&gt;
&lt;li&gt;Re-add assembly references to the binaries you just added. &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;One more time…&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-32-57-metablogapi/2451.image_5F00_76C8EE65.png&quot;&gt;&lt;img alt=&quot;image&quot; border=&quot;0&quot; height=&quot;85&quot; src=&quot;http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-32-57-metablogapi/5187.image_5F00_thumb_5F00_32888719.png&quot; style=&quot;background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;&quot; title=&quot;image&quot; width=&quot;806&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;/h3&gt;
&lt;ol&gt;&lt;/ol&gt;
&lt;h3&gt;Step #7: Add Microsoft.VisualStudio.Shell.Immutable.10.0.dll to the tools directory&lt;/h3&gt;
&lt;p&gt;CreatePkgDef.exe is the tool used to create a pkgdef file for your VSPackage. The tool itself relies on types defined in the Microsoft.VisualStudio.Shell.Immutable.10.0 assembly. On a machine with Visual Studio 2010 installed, there isn’t a problem loading it since the assembly is installed to the GAC. However, on our build server, the assembly is not in the GAC since Visual Studio 2010 isn’t installed.&lt;/p&gt;
&lt;p&gt;In order to allow CreatePkgDef.exe to find the assembly, we can simply add a copy of this binary in our vssdk_tools\bin directory. Do the following:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Copy Microsoft.VisualStudio.Shell.Immutable.10.0.dll from our project binaries folder to vssdk_tools\bin. &lt;/li&gt;
&lt;li&gt;Add this new file to source control and checkin &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;a href=&quot;http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-32-57-metablogapi/0211.image_5F00_44651AE6.png&quot;&gt;&lt;img alt=&quot;image&quot; border=&quot;0&quot; height=&quot;160&quot; src=&quot;http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-32-57-metablogapi/8637.image_5F00_thumb_5F00_042F016C.png&quot; style=&quot;background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;&quot; title=&quot;image&quot; width=&quot;891&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Step #8: Add the VSIXManifestSchema.xsd to allow VsixManifest validation on the build server&lt;/h3&gt;
&lt;p&gt;This task fails because the build task can’t locate the XML schema file for VSIXManifest to do schema validation. We could just switch this task off, but since it’s a good idea to run this validation when we build, let’s do what’s necessary to enable validation. There is an MSBuild property we can set to override this location on our build server. Simply add the following property to the first &amp;lt;PropertyGroup&amp;gt;:&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: Consolas;&quot;&gt;&amp;lt;VsixSchemaPath&amp;gt;$(VsSDKInstall)\schemas\VSIXManifestSchema.xsd&amp;lt;/VsixSchemaPath&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Of course, we also need to add the schema file to this directory:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Copy the VSIXManifestSchema.xsd file from “%ProgramFiles%\Microsoft Visual Studio 10.0\Xml\Schemas” to vssdk_tools\schemas. &lt;/li&gt;
&lt;li&gt;Add VSIXManifestSchema.xsd to source control &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Let’s try again and see where we are: &lt;br /&gt;&lt;a href=&quot;http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-32-57-metablogapi/6165.image_5F00_43F8E7F1.png&quot;&gt;&lt;img alt=&quot;image&quot; border=&quot;0&quot; height=&quot;302&quot; src=&quot;http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-32-57-metablogapi/5582.image_5F00_thumb_5F00_4AABF174.png&quot; style=&quot;background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;&quot; title=&quot;image&quot; width=&quot;609&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Step #9: Disable deployment to the Experimental Instance&lt;/h3&gt;
&lt;p&gt;To make ‘F5’ debugging work without any work by the user, by default, there are some additional targets that run in Microsoft.VsSDK.Common.targets. These targets ‘deploy’ your extension’s files to the Experimental instance for debugging. Since this scenario doesn’t make sense for our build server, we should disable it.&lt;/p&gt;
&lt;p&gt;The Visual Studio SDK includes a project property page for configuring this property:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-32-57-metablogapi/8228.image_5F00_0A75D7FA.png&quot;&gt;&lt;img alt=&quot;image&quot; border=&quot;0&quot; height=&quot;373&quot; src=&quot;http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-32-57-metablogapi/2474.image_5F00_thumb_5F00_1C526BC7.png&quot; style=&quot;background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;&quot; title=&quot;image&quot; width=&quot;630&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Note that you will probably want a separate build configuration for your build server (to set this property to false) so that developers can still easily debug their package on a client machine.&lt;/p&gt;
&lt;p&gt;If you prefer to configure this directly in your project file instead of using the UI, use the following property:&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: Consolas;&quot;&gt;&amp;lt;DeployExtension&amp;gt;False&amp;lt;/DeployExtension&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Let’s see how this affects our build:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-32-57-metablogapi/4431.image_5F00_5C1C524C.png&quot;&gt;&lt;img alt=&quot;image&quot; border=&quot;0&quot; height=&quot;95&quot; src=&quot;http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-32-57-metablogapi/5001.image_5F00_thumb_5F00_1BE638D2.png&quot; style=&quot;background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;&quot; title=&quot;image&quot; width=&quot;195&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Success!!&lt;/h3&gt;
&lt;p&gt;Hooray! If I check the build output directory, we now see that we have a VSIX file that was built on the server:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-32-57-metablogapi/6180.image_5F00_29B87ECD.png&quot;&gt;&lt;img alt=&quot;image&quot; border=&quot;0&quot; height=&quot;315&quot; src=&quot;http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-32-57-metablogapi/0726.image_5F00_thumb_5F00_3B95129A.png&quot; style=&quot;background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;&quot; title=&quot;image&quot; width=&quot;468&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div style=&quot;clear: both;&quot;&gt;&lt;/div&gt;&lt;img height=&quot;1&quot; src=&quot;http://blogs.msdn.com/aggbug.aspx?PostID=10161888&quot; width=&quot;1&quot; /&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~ff/AaronMarten?a=PMci149AbY8:L65GsNAUDqw:yIl2AUoC8zA&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/AaronMarten?d=yIl2AUoC8zA&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/AaronMarten?a=PMci149AbY8:L65GsNAUDqw:qj6IDK7rITs&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/AaronMarten?d=qj6IDK7rITs&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/AaronMarten?a=PMci149AbY8:L65GsNAUDqw:V_sGLiPBpWU&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/AaronMarten?i=PMci149AbY8:L65GsNAUDqw:V_sGLiPBpWU&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/AaronMarten?a=PMci149AbY8:L65GsNAUDqw:F7zBnMyn0Lo&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/AaronMarten?i=PMci149AbY8:L65GsNAUDqw:F7zBnMyn0Lo&quot; /&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img height=&quot;1&quot; src=&quot;http://feeds.feedburner.com/~r/AaronMarten/~4/PMci149AbY8&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>Aaron Marten</name>
			<uri>http://blogs.msdn.com/b/aaronmar/</uri>
		</author>
	</entry>

	<entry>
		<title type="html">The Voidspace Techie Blog: Danger with django expression objects</title>
		<link href="http://feedproxy.google.com/~r/voidspace/~3/5iaYtrjc2Aw/arch_d7_2011_04_30.shtml"/>
		<id>http://feedproxy.google.com/~r/voidspace/~3/5iaYtrjc2Aw/arch_d7_2011_04_30.shtml</id>
		<updated>2011-05-06T14:58:05+00:00</updated>
		<content type="html">I've recently been dealing with a bunch of concurrency issues in our django app. Some of the views modify database rows (model objects), which is unsurprising, but we did have a few situations where concurrent modifications could cause modifications to be overwritten (silently lost). ... [467 words]&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=5iaYtrjc2Aw:0WeDFYgdXQI:F7zBnMyn0Lo&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=5iaYtrjc2Aw:0WeDFYgdXQI:F7zBnMyn0Lo&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=5iaYtrjc2Aw:0WeDFYgdXQI:V_sGLiPBpWU&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=5iaYtrjc2Aw:0WeDFYgdXQI:V_sGLiPBpWU&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=5iaYtrjc2Aw:0WeDFYgdXQI:gIN9vFwOqvQ&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=5iaYtrjc2Aw:0WeDFYgdXQI:gIN9vFwOqvQ&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=5iaYtrjc2Aw:0WeDFYgdXQI:dnMXMwOfBR0&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?d=dnMXMwOfBR0&quot; /&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img height=&quot;1&quot; src=&quot;http://feeds.feedburner.com/~r/voidspace/~4/5iaYtrjc2Aw&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>The Voidspace Techie Blog</name>
			<uri>http://www.voidspace.org.uk/python/weblog/index.shtml</uri>
		</author>
	</entry>

	<entry>
		<title type="html">IronPython Cookbook (New Entries): Endeavor launch postponed at last minute Faulty heaters 5</title>
		<link href="http://www.ironpython.info/index.php/Endeavor_launch_postponed_at_last_minute_Faulty_heaters_5"/>
		<id>http://www.ironpython.info/index.php/Endeavor_launch_postponed_at_last_minute_Faulty_heaters_5</id>
		<updated>2011-05-05T20:42:17+00:00</updated>
		<content type="html">&lt;p&gt;TheophilaThomason: Created page with 'thumb|  Cushions  Correct maintenance of your patio furniture will ensure that it remains in beneficial condition with long time. Patio furniture…'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:patio_heaterz_2186.jpg|thumb|]]&lt;br /&gt;
&lt;br /&gt;
Cushions&lt;br /&gt;
&lt;br /&gt;
Correct maintenance of your patio furniture will ensure that it remains in beneficial condition with long time. Patio furniture cushions may be waterproof, yet this doesn't mean they don't need to be cleaned. Semi-annual cleaning of patio furniture cushions will retain them serviceable for any long time.&lt;br /&gt;
&lt;br /&gt;
Trouble:&lt;br /&gt;
Moderately Easy&lt;br /&gt;
&lt;br /&gt;
Instructions&lt;br /&gt;
&lt;br /&gt;
things you'll need:&lt;br /&gt;
&lt;br /&gt;
1 Remove the cushions from the patio furniture plus acquire them to any flat surface.&lt;br /&gt;
&lt;br /&gt;
2 Wipe down the cushion by a damp towel to remove surface dirt.&lt;br /&gt;
&lt;br /&gt;
3 Prepare a solution of warm water plus 1 tsp. dish detergent. Dip your scrub brush within the answer and scrub the the front and the back of your [http://eng.utah.edu/~agardner/cs4500/index.php?n=PatioHeater.PatioHeater patio] cushion from some circular motion.&lt;br /&gt;
&lt;br /&gt;
4 Wash your patio cushions. For stains that were not removed by general cleaning, mix a paste of 1 component drinking water and 2 elements baking soda. Work this into the stain with a circular motion with your scrub brush or a toothbrush. Rinse and allow the cushions to air dry.&lt;br /&gt;
&lt;br /&gt;
5 Clean the cushions before putting them out for the summer also prior to storing them with the winter. Feel-ups need to be completed to remove stains as they appear. Merely make a smaller solution of soap and water, use a sponge to scrub, and rinse.&lt;br /&gt;
&lt;br /&gt;
Flip patio cushions occasionally.&lt;br /&gt;
Do not use bleach on patio furniture cushions.&lt;br /&gt;
Create never place cushions back on the furniture previous to they dry fully.&lt;br /&gt;
&lt;br /&gt;
Print&lt;br /&gt;
Email&lt;br /&gt;
Share&lt;br /&gt;
&lt;br /&gt;
Comments&lt;/div&gt;</content>
		<author>
			<name>TheophilaThomason</name>
			<uri>http://www.ironpython.info/index.php/Special:NewPages</uri>
		</author>
	</entry>

	<entry>
		<title type="html">Aaron Marten's WebLog: PerfWatson – Automatically report responsiveness issues in Visual Studio 2010</title>
		<link href="http://feedproxy.google.com/~r/AaronMarten/~3/M-ltszRytR0/perfwatson-automatically-report-responsiveness-issues-in-visual-studio-2010.aspx"/>
		<id>91d46819-8472-40ad-a661-2c78acb4018c:10159655</id>
		<updated>2011-04-29T22:41:00+00:00</updated>
		<content type="html">&lt;p&gt;We’ve just released a new extension on the Visual Studio Gallery called &lt;a href=&quot;http://visualstudiogallery.msdn.microsoft.com/fa85b17d-3df2-49b1-bee6-71527ffef441&quot;&gt;PerfWatson&lt;/a&gt;. Have you ever seen this dreaded error message?&lt;/p&gt;
&lt;h6&gt;Microsoft Visual studio is waiting for an internal operation to complete. If you regularly encounter this delay during normal usage, please report this problem to Microsoft.&lt;/h6&gt;
&lt;p&gt;Well, now you actually can report these problems to Microsoft…automatically. Here’s a description of the extension from the Visual Studio Gallery page:&lt;/p&gt;
&lt;p&gt;&lt;em&gt;“We’re constantly working to improve the performance of Visual Studio and take feedback about it very seriously. Our investigations into these issues have found that there are a variety of scenarios where a long running task can cause the UI thread to hang or become unresponsive. Visual Studio PerfWatson is a low overhead telemetry system that helps us capture these instances of UI unresponsiveness and report them back to Microsoft automatically and anonymously. We then use this data to drive performance improvements that make Visual Studio faster.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Here’s how it works: when the tool detects that the Visual Studio UI has become unresponsive, it records information about the length of the delay and the root cause, and submits a report to Microsoft. The Visual Studio team can then aggregate the data from these reports to prioritize the issues that are causing the largest or most frequent delays across our user base. By installing the PerfWatson extension, you are helping Microsoft identify and fix the performance issues that you most frequently encounter on your PC.”&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;I’d strongly encourage you to &lt;a href=&quot;http://visualstudiogallery.msdn.microsoft.com/fa85b17d-3df2-49b1-bee6-71527ffef441&quot;&gt;install PerfWatson&lt;/a&gt; if you’re frustrated with seemingly random UI hangs in Visual Studio. This extension won’t fix the issues, but it will help us see where the real-world responsiveness issues are to help improve future releases.&lt;/p&gt;&lt;div style=&quot;clear: both;&quot;&gt;&lt;/div&gt;&lt;img height=&quot;1&quot; src=&quot;http://blogs.msdn.com/aggbug.aspx?PostID=10159655&quot; width=&quot;1&quot; /&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~ff/AaronMarten?a=M-ltszRytR0:S7HKMXq7hDo:yIl2AUoC8zA&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/AaronMarten?d=yIl2AUoC8zA&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/AaronMarten?a=M-ltszRytR0:S7HKMXq7hDo:qj6IDK7rITs&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/AaronMarten?d=qj6IDK7rITs&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/AaronMarten?a=M-ltszRytR0:S7HKMXq7hDo:V_sGLiPBpWU&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/AaronMarten?i=M-ltszRytR0:S7HKMXq7hDo:V_sGLiPBpWU&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/AaronMarten?a=M-ltszRytR0:S7HKMXq7hDo:F7zBnMyn0Lo&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/AaronMarten?i=M-ltszRytR0:S7HKMXq7hDo:F7zBnMyn0Lo&quot; /&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img height=&quot;1&quot; src=&quot;http://feeds.feedburner.com/~r/AaronMarten/~4/M-ltszRytR0&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>Aaron Marten</name>
			<uri>http://blogs.msdn.com/b/aaronmar/</uri>
		</author>
	</entry>

	<entry>
		<title type="html">Miguel de Icaza: Dropbox Lack of Security</title>
		<link href="http://tirania.org/blog/archive/2011/Apr-19.html"/>
		<id>http://tirania.org/blog/archive/2011/Apr-19.html</id>
		<updated>2011-04-19T09:10:00+00:00</updated>
		<content type="html">&lt;p&gt;I am a fan of Dropbox.   It is a great tool, a great
	product, and clearly they have a passionate team over at
	Dropbox building the product.

	&lt;/p&gt;&lt;p&gt;Dropbox recently announced an update to its
	&lt;a href=&quot;http://www.businessinsider.com/dropbox-updates-security-terms-of-service-to-say-it-can-decrpyt-files-if-the-government-asks-it-to-2011-4&quot;&gt;security
	terms of service&lt;/a&gt; in which they announced that they would
	provide the government with your decrypted files if requested
	to do so.

	&lt;/p&gt;&lt;p&gt;This is not my problem with Dropbox.

	&lt;/p&gt;&lt;p&gt;My problem is that for as long as I have tried to figure
	out, Dropbox made
	some &lt;a href=&quot;https://www.dropbox.com/help/27&quot;&gt;bold claims&lt;/a&gt;
	about how your files were encrypted and how nobody had access
	to them, with statements like:

	&lt;/p&gt;&lt;blockquote&gt;
	&lt;ul&gt;
	&lt;li&gt;All transmission of file data occurs over an encrypted channel (SSL).

	&lt;/li&gt;&lt;li&gt;All files stored on Dropbox servers are encrypted
	(AES-256)
	
	&lt;/li&gt;&lt;li&gt;Dropbox employees aren't able to access user files, and
	when troubleshooting an account they only have access to file
	metadata (filenames, file sizes, etc., not the file contents)
	&lt;/li&gt;&lt;/ul&gt;
	&lt;/blockquote&gt;

	&lt;p&gt;But anyone that tried to look further came out empty
	handed.   There really are no more details on what procedures
	Dropbox has in place or how they implement the crypto to
	prevent unauthorized access to your files.   We all had to
	just take them at their word.

	&lt;/p&gt;&lt;p&gt;This wishy-washy statement always made me felt uneasy.

	&lt;/p&gt;&lt;p&gt;But this announcement that they are able to decrypt the
	files on behalf of the government &lt;b&gt;contradicts their prior
	public statements&lt;/b&gt;.  They claim that Dropbox employees
	aren't able to access user files.

	&lt;/p&gt;&lt;p&gt;This announcement means that Dropbox never had any
	mechanism to prevent employees from accessing your files, and
	it means that Dropbox never had the crypto smarts to ensure
	the privacy of your files and never had the smarts to only
	decrypt the files for you.  It turns out, they keep their keys
	on their servers, and anyone with clearance at Dropbox or
	anyone that manages to hack into their servers would be able
	to get access to your files.

	&lt;/p&gt;&lt;p&gt;If companies with a very strict set of security policies
	and procedures like
	Google &lt;a href=&quot;http://technolog.msnbc.msn.com/_news/2010/09/15/5116575-google-had-at-least-two-creepy-stalker-engineers&quot;&gt;have
	had problems with employees that abused their privileges&lt;/a&gt;,
	one has to wonder what can happen at a startup like Dropbox
	where the security perimeter and the policies are likely going
	to be orders of magnitude laxer.

	&lt;/p&gt;&lt;p&gt;Dropbox needs to come clear about what privacy do they
	actually offer in their product.  Not only from the
	government, but from their own employees that could be bribed,
	blackmailed, making some money on the side or are just plain
	horny.
	
	&lt;/p&gt;&lt;p&gt;Dropbox needs to recruit a neutral third-party to vouch for
	their security procedures and their security stack that
	surrounds users' files and privacy.   If they are not up to their own
	marketed statements, they need to clearly specify where their
	service falls short and what are the potential security
	breaches that 

	&lt;/p&gt;&lt;p&gt;Unless Dropbox can prove that algorithmically they can
	protect your keys and only you can get access to your files,
	they need to revisit their public statements and explicitly
	state that Dropbox storage should be considered semi-public
	and not try
	to &lt;a href=&quot;http://www.philzimmermann.com/EN/essays/SnakeOil.html&quot;&gt;sell
	us snake oil&lt;/a&gt;.&lt;/p&gt;</content>
		<author>
			<name>Miguel de Icaza (miguel@gnome.org)</name>
			<uri>http://tirania.org/blog//index.html</uri>
		</author>
	</entry>

	<entry>
		<title type="html">Miguel de Icaza: Save the Date: Monospace Conferece in Boston</title>
		<link href="http://tirania.org/blog/archive/2011/Apr-18.html"/>
		<id>http://tirania.org/blog/archive/2011/Apr-18.html</id>
		<updated>2011-04-19T02:49:00+00:00</updated>
		<content type="html">&lt;p&gt;The dates for the MonoSpace conference have been announced:
	July 23rd to 25th, 2011.   The event will take place at the
	&lt;a href=&quot;http://microsoftcambridge.com/Default.aspx&quot;&gt;Microsoft
	NERD Center&lt;/a&gt;.

	&lt;/p&gt;&lt;p&gt;The organizers have just made
	a &lt;a href=&quot;http://monospace.us/callforspeakers.html&quot;&gt;call for
	speakers&lt;/a&gt;.   If you have an interesting topic to discuss,
	please submit a talk, we would love to hear from you.&lt;/p&gt;</content>
		<author>
			<name>Miguel de Icaza (miguel@gnome.org)</name>
			<uri>http://tirania.org/blog//index.html</uri>
		</author>
	</entry>

	<entry>
		<title type="html">Miguel de Icaza: Mono Android and iPhone Updates</title>
		<link href="http://tirania.org/blog/archive/2011/Apr-06.html"/>
		<id>http://tirania.org/blog/archive/2011/Apr-06.html</id>
		<updated>2011-04-06T23:40:00+00:00</updated>
		<content type="html">&lt;p&gt;Today we are happy to release Mono for Android 1.0 as well
	as &lt;a href=&quot;http://tirania.org/monomac/archive/2011/Apr-06.html&quot;&gt;MonoTouch
	4.0&lt;/a&gt;. 

	&lt;/p&gt;&lt;p&gt;Both products allow you to use the C# language to write
	applications that run on Android and iOS devices.   

	&lt;/p&gt;&lt;p&gt;Both products are based on the
	latest &lt;a href=&quot;http://www.mono-project.com/Release_Notes_Mono_2.10&quot;&gt;Mono
	2.10&lt;/a&gt; core.  The Parallel Frameworks can be used to write
	more elegant multi-threaded code across all devices, and
	automatically takes advantage of multiple cores available on the
	iPad2 and Xoom devices.   The C# 4.0 is now the default as
	well as the .NET 4.0 APIs.

&lt;/p&gt;&lt;h2&gt;Mono for Android&lt;/h2&gt;

	&lt;p&gt;Our &lt;img align=&quot;right&quot; src=&quot;http://tirania.org/images/mono-android.png&quot; /&gt;Mono
	for Android debuts today after almost a year worth of
	development.

	&lt;/p&gt;&lt;p&gt;Perhaps the most important lesson that we got from
	MonoTouch's success was that we had to provide a completely
	enabled platform.  What we mean by this is that we needed to
	provide a complete set of tools that would assist developers
	from &lt;a href=&quot;http://mono-android.net/Tutorials/Hello_World&quot;&gt;creating their first Android application&lt;/a&gt;,
	to &lt;a href=&quot;http://mono-android.net/Documentation/Guides/Preparing_Package_for_Android_Marketplace&quot;&gt;distributing
	the application to the market place&lt;/a&gt;,
	to &lt;a href=&quot;http://mono-android.net/Documentation/Guides&quot;&gt;guides&lt;/a&gt;,
	tutorials, &lt;a href=&quot;http://docs.mono-android.net/&quot;&gt;API
	documentation&lt;/a&gt;
	and &lt;a href=&quot;https://github.com/mono/monodroid-samples&quot;&gt;samples&lt;/a&gt;.

	&lt;/p&gt;&lt;p&gt;Mono for Android can be used from either Visual Studio
	Professional 2010 for Windows users, or using MonoDevelop on
	the Mac.

	&lt;/p&gt;&lt;center&gt;
	&lt;img src=&quot;http://mono-android.net/@api/deki/files/3/=newproject.jpg&quot; /&gt;
	&lt;/center&gt;

	&lt;p&gt;Mono code runs side-by-side the Dalvik virtual machine in
	the same process:

	&lt;/p&gt;&lt;center&gt;
	&lt;img src=&quot;http://tirania.org/pictures/android-dalvik-mono.png&quot; /&gt;
	&lt;/center&gt;
	
	&lt;p&gt;This is necessary since code running in Dalvik provides the
	user interface elements for Android as well as the hosting and
	activation features for applications on Android. 
	
&lt;/p&gt;&lt;h2&gt;APIs&lt;/h2&gt;

	&lt;p&gt;The Mono for Android API is made up of the following
	components: Core .NET APIs, Android.* APIs, OpenGL APIs and
	Java bridge APIs.

	&lt;/p&gt;&lt;p&gt;Let us start with the most interesting one: Android.* APIs.
	These are basically a 1:1 mapping to the native Java Android
	APIs but they have been C#-ified, for example, you will find
	C# properties instead of set/get method calls, and you will
	use C# events with complete lambda support (with variables
	being automatically captured) instead  of Java inner classes.  This
	means that while in Java you would write something like:

	&lt;/p&gt;&lt;pre class=&quot;code-csharp&quot;&gt;
	// Java code
	button.setOnClickListener (new View.OnClickListener() {
             public void onClick(View v) {
		button.setText (&quot;Times clicked: &quot; + Integer.toString(counter));
             }
         });
	&lt;/pre&gt;

	&lt;pre class=&quot;code-csharp&quot;&gt;
	// C# code
	button.Click += delegate {
		button.Text = &quot;Times clicked: &quot; + counter;
	};
	&lt;/pre&gt;

	&lt;p&gt;In addition to the UI APIs, there are some 57 Android.*
	namespaces bound that provide access to various Android
	features like telephony, database, device, speech, testing and
	many other services.

	&lt;/p&gt;&lt;p&gt;In what is becoming the standard in the Mono world, OpenGL
	is exposed through the
	brilliant &lt;a href=&quot;http://www.opentk.com/&quot;&gt;OpenTK&lt;/a&gt; API.
	OpenTK is a strongly
	typed, &lt;a href=&quot;http://tirania.org/blog/archive/2008/Nov-13.html&quot;&gt;Framework
	Design Guidelines-abiding&lt;/a&gt; binding of OpenGL.   The benefit
	is that both Visual Studio and MonoDevelop can provide
	intellisense hints as you develop for the possible parameters,
	values and their meaning without having to look up the
	documentation every time.

	&lt;/p&gt;&lt;p&gt;Finally, for the sake of interoperability with the native
	platform, we exposed many types from the Java.* namespaces (31
	so far) that you might need if you are interoperating with
	third party libraries that might require an instance of one of
	those Java.* types (for example, a crypto stack might want you
	to provide a Javax.Crypto.Cipher instance.   We got you
	covered. 

&lt;/p&gt;&lt;h2&gt;Core Differences&lt;/h2&gt;

	&lt;p&gt;Mono for Android has a few differences from MonoTouch and
	Windows Phone 7 when it comes to the runtime.  Android
	supports JIT compilation while iOS blocks it at the kernel
	level and Windows Phone 7 has limitations. 

	&lt;/p&gt;&lt;p&gt;This means that developers using Mono on Android have
	complete access to System.Reflection.Emit.   This in turn
	means that generics-heavy code like F# work on Android as do
	&lt;a href=&quot;https://github.com/IronLanguages&quot;&gt;dynamic
	languages&lt;/a&gt; powered by the Dynamic Language Runtime like
	IronPython, IronRuby
	and &lt;a href=&quot;https://github.com/fholm/IronJS&quot;&gt;IronJS&lt;/a&gt;.

	&lt;/p&gt;&lt;p&gt;And of course, you can also use our
	own &lt;a href=&quot;http://www.mono-project.com/CsharpRepl&quot;&gt;C#
	Compiler as a Service&lt;/a&gt;

	&lt;/p&gt;&lt;p&gt;Now, although those languages can run on Mono for Android,
	we do not currently have templates for them.   The Ruby and
	Python support suffer due to Android limitations.   The
	Dalvik virtual needs to know in advance which classes you
	customize, and since it is not really possible to know this
	with a dynamic language, the use of Iron* languages is limited
	in that they cant subclass Android classes.   But they can
	still call into Android APIs and subclass as much .NET class
	libraries as they want. 

&lt;/p&gt;&lt;h2&gt;Native User Interfaces&lt;/h2&gt;

	&lt;p&gt;MonoTouch and MonoDroid share a common runtime, a common
	set of class libraries, but each provides different user
	interface and device specific APIs.

	&lt;/p&gt;&lt;p&gt;For example, this code takes advantage of iOS's
	UINavigationController and animates the transition to a new
	state in response to a user action:

	&lt;/p&gt;&lt;pre class=&quot;code-csharp&quot;&gt;
void OnSettingsTapped ()
{
	var settings = new SettingsViewController ();
	PushViewController (settings, true);
}
	&lt;/pre&gt;

	&lt;p&gt;This is an equivalent version for Mono for Android:

	&lt;/p&gt;&lt;pre class=&quot;code-csharp&quot;&gt;
void OnSettingsTapped ()
{
	var intent = new Intent ();
	intent.SetClass (this, typeof (SettingsActivity));
	StartActivity (intent);
}
	&lt;/pre&gt;
	
	&lt;p&gt;We chose to not follow the Java write-once-run-anywhere
	approach for user interfaces and instead expose every single
	bit of native functionality to C# developers.   

	&lt;/p&gt;&lt;p&gt;We felt that this was necessary since the iOS and Android
	programming models are so different.    We also wanted to make
	sure that everything that is possible to do with the native
	APIs on each OS continues to be possible while using Mono.

	&lt;/p&gt;&lt;p&gt;For instance, if you want to
	use &lt;a href=&quot;http://go-mono.com/docs/index.aspx?link=N:MonoTouch.CoreAnimation&quot;&gt;CoreAnimation&lt;/a&gt;
	to drive your user interactions, you should be able to
	leverage every single bit of it, without being forced into a
	common denominator with Android where nothing similar to this
	is available.

	&lt;/p&gt;&lt;p&gt;Craig Dunn, one of the authors of
	the &lt;a href=&quot;http://www.amazon.com/dp/047063782X/ref=as_li_ss_til?tag=tiraniaorg-20&amp;amp;camp=213381&amp;amp;creative=390973&amp;amp;linkCode=as4&amp;amp;creativeASIN=047063782X&amp;amp;adid=12Z07C36B4TXR7Y4QRM4&amp;amp;&quot;&gt;MonoTouch
	Programming Book&lt;/a&gt;, has written a
	nice &lt;a href=&quot;http://conceptdev.blogspot.com/2011/03/mosetta-stone.html&quot;&gt;Mosetta
	Stone&lt;/a&gt; document that compares side-by-side some of the key
	UI differences across platforms.

	&lt;/p&gt;&lt;p&gt;He also has written
	the &lt;a href=&quot;https://github.com/conceptdev/RestaurantGuide&quot;&gt;Restaurant
	Guide Sample&lt;/a&gt; which sports a unique user interface for
	Android, iOS and Windows Phone 7:

	&lt;/p&gt;&lt;center&gt;
	&lt;img src=&quot;http://tirania.org/pictures/RestGuide_DROID.png&quot; /&gt;
	&lt;/center&gt;

	&lt;p&gt;You can take a look
	at &lt;a href=&quot;https://github.com/conceptdev/RestaurantGuide&quot;&gt;this
	cross platform sample&lt;/a&gt; from GitHub.

&lt;a name=&quot;split&quot;&gt;
&lt;/a&gt;&lt;/p&gt;&lt;h2&gt;&lt;a name=&quot;split&quot;&gt;Split your Presentation from your Engine&lt;/a&gt;&lt;/h2&gt;

	&lt;p&gt;&lt;a name=&quot;split&quot;&gt;Faced with the diversity of platforms to support, both
	mobile and desktop, this is a good time to design, refactor
	and prepare your code for this new era.

	&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a name=&quot;split&quot;&gt;Today developers can use C# to target various UIs:

	&lt;/a&gt;&lt;/p&gt;&lt;ul&gt;
		&lt;li&gt;&lt;a name=&quot;split&quot;&gt;MonoTouch for iOS.
		
		&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a name=&quot;split&quot;&gt;Mono for Android for Android.

		&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a name=&quot;split&quot;&gt;Silverlight/Mobile for Windows Phone 7.
		
		&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a name=&quot;split&quot;&gt;MonoMac for MacOS X.

		&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a name=&quot;split&quot;&gt;Gtk# for Linux, Mac and Windows.

		&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a name=&quot;split&quot;&gt;Silverlight 4 for Linux, Mac and Windows

		&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.asp.net&quot;&gt;ASP.NET&lt;/a&gt;, &lt;a href=&quot;http://www.servicestack.net/&quot;&gt;ServiceStack&lt;/a&gt;,
		and &lt;a href=&quot;http://manosdemono.org/&quot;&gt;Manos de
		Mono&lt;/a&gt; for HTML presentations.
	&lt;/li&gt;&lt;/ul&gt;

	&lt;p&gt;To give your code the most broad reach, you should consider
	splitting your backend code from your presentation code.
	This can be done by putting reusable code in shared libraries
	(for example, REST clients) and shared business logic on its
	own libraries.

	&lt;/p&gt;&lt;p&gt;By splitting your presentation code from your business
	logic code for your application, not only you gain the ability
	to create native experiences in each platform, you also get a
	chance to test your business logic/shared libraries more
	easily.

&lt;/p&gt;&lt;h2&gt;Linking&lt;/h2&gt;

	&lt;p&gt;In Mono for Android when you build an application for
	distribution, we embed the Mono runtime with your application.
	This is necessary so your application is entirely
	self-contained and does not take any external dependencies.

	&lt;/p&gt;&lt;p&gt;Mono for Android uses
	the &lt;a href=&quot;http://www.mono-project.com/Linker&quot;&gt;Mono
	Linker&lt;/a&gt; to ensure that only the bits of Mono that you
	actually use end up in your package and that you do not pay a
	high tax for just using a handful of functions.

	&lt;/p&gt;&lt;p&gt;For example, if you want to just use a method from
	XElement, you would only pay the price for using this class
	and any of its dependencies.  But you would not end up
	bringing the entire System.XML stack: you only pay for what
	you use.

	&lt;/p&gt;&lt;p&gt;During development a different approach is used: the Mono
	runtime is installed on your emulator or test device as a
	shared runtime.   This minimizes both the build and deploy
	times.
	
&lt;/p&gt;&lt;h2&gt;Mono for Android References&lt;/h2&gt;

	&lt;p&gt;Start with
	our &lt;a href=&quot;http://mono-android.net/Documentation&quot;&gt;documentation
	portal&lt;/a&gt;, there you will find
	our &lt;a href=&quot;http://mono-android.net/Installation&quot;&gt;Installation
	Guide&lt;/a&gt;, a tutorial
	for &lt;a href=&quot;http://mono-android.net/Tutorials/Hello_World&quot;&gt;your
	first C# Android application&lt;/a&gt;,
	our &lt;a href=&quot;http://mono-android.net/Tutorials&quot;&gt;tutorials&lt;/a&gt;
	(many ported from their Java equivalents) and
	our &lt;a href=&quot;http://mono-android.net/Documentation/Guides&quot;&gt;How-To
	Guides&lt;/a&gt; and a large collection
	of &lt;a href=&quot;https://github.com/mono/monodroid-samples&quot;&gt;sample programs&lt;/a&gt;.

	&lt;/p&gt;&lt;p&gt;You can also explore the documentation for the &lt;a href=&quot;http://docs.mono-android.net/&quot;&gt;Mono for
	Android API&lt;/a&gt; in a convenient to remember url: docs.mono-android.net.
	
	&lt;/p&gt;&lt;p&gt;The first book
	of &lt;a href=&quot;http://www.amazon.com/gp/product/1118026438/ref=as_li_ss_tl?ie=UTF8&amp;amp;tag=tiraniaorg-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=1118026438&quot;&gt;Mono
	for Android&lt;/a&gt; will be available on July 12th.   In the
	meantime, we have created many tutorials and guides that will
	help you go 

	&lt;/p&gt;&lt;p&gt;I also strongly suggest those interested in parallel
	programming to check out
	the &lt;a href=&quot;http://www.microsoft.com/downloads/en/details.aspx?FamilyID=86b3d32b-ad26-4bb8-a3ae-c1637026c3ee&amp;amp;displaylang=en&quot;&gt;Patterns
	for Parallel Programming: Understanding and Applying Parallel
	Patterns with the .NET Framework 4&lt;/a&gt;.   This is a free PDF,
	and is a must-read for anyone building multi-core applications.

&lt;/p&gt;&lt;h2&gt;Thank You!&lt;/h2&gt;

	&lt;p&gt;Mono for Android would not have been possible without the
	hard work of the MonoDroid team at Novell.   The team worked
	around the clock for almost a year creating this amazing
	product.

	&lt;/p&gt;&lt;p&gt;The team was backed up by the Mono core team that helped us
	get C# 4.0 out, WCF, the linker, the LLVM support, improve the VM,
	extend the MonoDevelop IDE, scale Mono, improve our
	threadpool, support OpenTK, implement the Parallel
	Frameworks, ship dozens of betas for MonoDevelop, Mono and
	Mono for Android.&lt;/p&gt;</content>
		<author>
			<name>Miguel de Icaza (miguel@gnome.org)</name>
			<uri>http://tirania.org/blog//index.html</uri>
		</author>
	</entry>

	<entry>
		<title type="html">Dave Fugate (Testing IronPython): How I Lost 25 Pounds in a Month Without Exercising</title>
		<link href="http://knowbody.livejournal.com/21827.html"/>
		<id>http://knowbody.livejournal.com/21827.html</id>
		<updated>2011-04-02T20:02:45+00:00</updated>
		<content type="html">&lt;strong&gt;&lt;span style=&quot;font-size: large;&quot;&gt;How Things Got So Bad&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Since joining Microsoft back in mid-2006, my weight skyrocketed about 15% or 30 pounds. A large part of this can be attributed to the abundance of unhealthy, free food at Microsoft, but that’s only half of the story. When I worked at University of Calgary, I had to walk at least a mile and a half each day to get to and from various transit points. Now, the parking lot is at best 50 meters away from my building. While I might have complained about walking around in -20 degree weather in Canada, I really had no idea how good it was for my health. Up until recently, I didn’t know just how bad Microsoft’s &lt;a href=&quot;http://careers.microsoft.com/careers/en/us/collegeusbenefits.aspx&quot; rel=&quot;nofollow&quot;&gt;free perks &lt;/a&gt;such as unlimited soda and the constant supply of junk food outside co-workers' offiices were really harming me either. That said, my health is my own responsibility and I shouldn't have listened to the &lt;em&gt;demons in my head &lt;/em&gt;that kept telling me to eat more.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=&quot;font-size: large;&quot;&gt;The Scare&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Flash forward to January 2011. An annual check-up revealed that my “fatty-liver” condition (human equivalent of &lt;a href=&quot;http://en.wikipedia.org/wiki/Foie_gras&quot; rel=&quot;nofollow&quot;&gt;foie gras&lt;/a&gt;) diagnosed in 2008 had progressed such that I now have either gallstones or possibly even a growth in my gallbladder. I was only 30 at the time! Any ways, this was exactly the ‘scare’ I needed for a major lifestyle change. My amazing wife letting me know that my snoring had gotten far worse since moving to Seattle wasn’t enough. Fear of cancer and Microsoft’s announcement that our 100% healthcare would disappear in two short years skyrocketed me into action.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=&quot;font-size: large;&quot;&gt;Douglas Crockford&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;By chance, I came across a wonderful blog post, &lt;a href=&quot;http://www.crockford.com/pwl/&quot; rel=&quot;nofollow&quot;&gt;http://www.crockford.com/pwl/&lt;/a&gt;, by Douglas Crockford which explained our society’s current obesity epidemic and gave some awesome advice on losing weight. If you haven’t read this post before, I highly recommend it as it’s quite logical and well thought-out. &lt;/span&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;&lt;strong&gt;&lt;span style=&quot;font-size: large;&quot;&gt;Dr. Sandra Cabot  &lt;/span&gt;&lt;br /&gt;&lt;/strong&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Concurrently, I was also trying to abide by &lt;a href=&quot;http://www.liverdoctor.com/&quot; rel=&quot;nofollow&quot;&gt;Dr. Sandra Cabot’s &lt;/a&gt;advice she gave in her book, the Liver Cleanse Diet. The basic premise of the book is that the liver is solely responsible for removing fat from the bloodstream, and an unhealthy liver implies you’ll pack on the pounds. Well, the way my “fatty-liver” was diagnosed was via blood tests looking for chemicals the liver releases when it’s under duress.&lt;/span&gt;&lt;br /&gt; &lt;/div&gt;&lt;div&gt;&lt;strong&gt;&lt;span style=&quot;font-size: large;&quot;&gt;The Lifestyle Changes&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;What exactly did I do to lose the 25 pounds you ask? It was a combination of the Liver Cleanse Diet, Doug’s advice, and strong support from my wife:&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;No more sausage biscuits for breakfast. Instead, my wife or I typically juice apples/carrots/celery/kiwi/etc. or eat a bowl of oatmeal followed by a cup of black coffee&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Replaced Indian food, pizza, and burgers for lunch with either a low-fat salad or a turkey (Subway) sub. The former set is incredibly high in fat&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Take double the daily recommended amount of Milk Thistle, a herb purported to protect the liver&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;I used to eat 90% meat/cheese/dairy/flour for every meal, and perhaps 10% were fruits and vegetables. Now more than 50% of my food intake comes from fruits and vegetables&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Portion control, portion control, portion control. My wife’s culture “loves you with food” which needed to change to “love you with less food”&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Limited my intake of fats to those found in avocadoes, nuts, and lean poultry. It was hard to give up cheese and red meat, but it has paid off&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Severely restricted my intake of alcohol. While it doesn’t necessarily add fat to my bloodstream, it does hurt one’s liver. Over the course of three months I’ve had a grand total of four beers&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Severely restricted my intake of refined sugar. Had only one coke in three months and all the oatmeal cookies I’ve eaten have been low-sugar and low-fat. Have had a few peanut butter and honey sandwiches though&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;For two weeks I took a commercial (As Seen on TV) product called the “The Cleaner”. Basically just pop some pills every day and have weird looking bowel movements&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;This is perhaps the most difficult, yet also the most important facet of my diet – do a gallbladder cleanse. After finishing “The Cleaner”, one evening I downed 1.25 cups of the finest cold-pressed olive oil I could find chased by 1 cup of fresh lemon juice; all over the course of three hours. If you want to do this, be forewarned the next day will not be fun by any means. I didn’t *really* start shedding weight like crazy until after the gallbladder cleanse &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;I even jumped off the wagon for four days while on a business trip last month and have lost five pounds since then!&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;&lt;strong&gt;&lt;span style=&quot;font-size: large;&quot;&gt;The Benefits&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Now onto the benefits I’ve seen thus far:&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;the look of shock from people who haven’t seen me in a while&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;a recent blood test indicates my liver function is back to normal&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;a sleep study performed after I’d lost about 15 pounds showed I was no longer snoring excessively nor breathing incorrectly&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;my brain is operating at a frequency I quite honestly haven’t experienced since 2004&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;far less tired yet I’ve also been getting less sleep (i.e., maybe six hours a night)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;lost 31 pounds to date. After another five I plan on relaxing the diet just a bit&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;</content>
		<author>
			<name>Dave Fugate (Testing IronPython)</name>
			<uri>http://knowbody.livejournal.com/</uri>
		</author>
	</entry>

	<entry>
		<title type="html">Miguel de Icaza: Mono and Google Summer of Code</title>
		<link href="http://tirania.org/blog/archive/2011/Mar-30.html"/>
		<id>http://tirania.org/blog/archive/2011/Mar-30.html</id>
		<updated>2011-03-31T01:23:00+00:00</updated>
		<content type="html">&lt;p&gt;We have been lucky enough that Google accepted Mono as a
	mentoring organization for
	the &lt;a href=&quot;http://www.google-melange.com/gsoc/org/google/gsoc2011/mono&quot;&gt;Google
	Summer of Code 2011&lt;/a&gt;

	&lt;/p&gt;&lt;p&gt;This is a great opportunity for students to get involved with
	open source, contribute, learn and get paid for their work
	during the summer.

	&lt;/p&gt;&lt;p&gt;We have a lot of ideas to choose from in our student
	projects page, ranging from virtual machine hacking, MacOS X
	improvements, MonoDevelop extensions, language bindings and
	even improving the Manos web application framework.

	&lt;/p&gt;&lt;p&gt;Do not let our limited imagination stop you.  Although
	there are plenty of ideas to choose from, students should feel
	free to come up with their own ideas.  In the past years
	projects based on students' ideas have been very successful
	and we want to encourage more of those.

	&lt;/p&gt;&lt;p&gt;&lt;b&gt;Proposal submission is open until Friday April 8&lt;/b&gt;, so
	now is the time to join our wonderful community, discuss your
	project ideas and start working on those proposals.

	&lt;/p&gt;&lt;p&gt;The Mono Summer of Code IRC channel is #monosoc on irc.gnome.org&lt;/p&gt;</content>
		<author>
			<name>Miguel de Icaza (miguel@gnome.org)</name>
			<uri>http://tirania.org/blog//index.html</uri>
		</author>
	</entry>

	<entry>
		<title type="html">Miguel de Icaza: Monospace Conference: Boston, July 2011</title>
		<link href="http://tirania.org/blog/archive/2011/Mar-29-1.html"/>
		<id>http://tirania.org/blog/archive/2011/Mar-29-1.html</id>
		<updated>2011-03-30T01:05:00+00:00</updated>
		<content type="html">&lt;p&gt;The Mono community is organizing
	the &lt;a href=&quot;http://monospace.us&quot;&gt;Monospace conference&lt;/a&gt; to
	be held in July in Boston.   This event is being organized by
	Dale Ragan, Louis Salin and Paul Bowden.

	&lt;/p&gt;&lt;p&gt;The organizers have just made
	a &lt;a href=&quot;http://monospace.us/callforspeakers.html&quot;&gt;call for
	speakers&lt;/a&gt;.

	&lt;/p&gt;&lt;p&gt;If you have an interesting technology that you would like
	to talk about during this 3-day event, you should submit a
	talk.

	&lt;/p&gt;&lt;p&gt;Monospace is on a very aggressive schedule.   The good news
	is that the entire Mono team will be participating in the
	event.

	&lt;/p&gt;&lt;p&gt;Once the dates are set in stone, we will open
	registration.   Currently we are thinking of hosting an event
	for some 200 attendees.&lt;/p&gt;</content>
		<author>
			<name>Miguel de Icaza (miguel@gnome.org)</name>
			<uri>http://tirania.org/blog//index.html</uri>
		</author>
	</entry>

	<entry>
		<title type="html">Miguel de Icaza: Save your Cleverness</title>
		<link href="http://tirania.org/blog/archive/2011/Mar-29.html"/>
		<id>http://tirania.org/blog/archive/2011/Mar-29.html</id>
		<updated>2011-03-29T21:31:00+00:00</updated>
		<content type="html">&lt;p&gt;Today, while discussing
	how &lt;a href=&quot;http://twitter.com/hipsterhacker&quot;&gt;@hipsterhacker&lt;/a&gt;
	reminds us some of our friends,
	&lt;a href=&quot;http://nat.org&quot;&gt;Nat&lt;/a&gt; pointed me
	to &lt;a href=&quot;http://www.readwriteweb.com/hack/2011/02/pinboard-creator-maciej-ceglow.php&quot;&gt;this
	interview&lt;/a&gt; where Maciej has this beautiful nugget of
	wisdom:

	&lt;/p&gt;&lt;blockquote&gt;
	&lt;b&gt;Q: The Pinboard about page says: &quot;There is absolutely
	nothing interesting about the Pinboard architecture or
	implementation; I consider that a feature!&quot;&lt;/b&gt;


	&lt;p&gt;&lt;b&gt;Can you explain why you think that's a feature?&lt;/b&gt;

	&lt;/p&gt;&lt;p&gt;I believe that relying on very basic and well-understood
	technologies at the architectural level forces you to save all
	your cleverness and new ideas for the actual app, where it can
	make a difference to users.

	&lt;/p&gt;&lt;p&gt;I think many developers (myself included) are easily
	seduced by new technology and are willing to burn a lot of
	time rigging it together just for the joy of tinkering. So
	nowadays we see a lot of fairly uninteresting web apps with
	very technically sweet implementations.
	
	&lt;/p&gt;&lt;/blockquote&gt;

	&lt;p&gt;Too many people over-engineer their software to the point
	that you can no longer see what the software was supposed to
	do.   Once people find a religion in one of the modern
	development fads, they tend to jump with both feet, and we end
	up with uninspiring user-facing software, but internally
	amazing.

	&lt;/p&gt;&lt;p&gt;This disease is widespread.  From everyone trying to turn
	their program into a platform (current fad: dependency
	injection), to trying to force programming models, to
	compulsively writing unit tests while ignoring the basic
	principles that unit tests can not be used to prove the
	absence of bugs (&lt;b&gt;update:&lt;/b&gt; this is
	my &lt;a href=&quot;http://amzn.to/why-programs-fail&quot;&gt;favorite
	book&lt;/a&gt; on the subject; Namedrop
	alert: &lt;a href=&quot;http://se.ethz.ch/~meyer/&quot;&gt;Bertrand Meyer&lt;/a&gt;
	introduced me to it).

	&lt;/p&gt;&lt;p&gt;There is only one reason to throw away your life writing
	useless code and that is to train yourself.   If you are
	writing this in a Karate Kid wax-on, wax-off kind of way, go
	ahead.

	&lt;/p&gt;&lt;p&gt;But if you are building a product, you end up spending all
	of your time designing your architecture, and very little time
	in delivering a great experience.

	&lt;/p&gt;&lt;p&gt;Premature architecture design is like premature
	optimization: you will be wrong about the things that actually
	mattered.

	&lt;/p&gt;&lt;p&gt;Take the shortcut.   Build the product.   And if later, it
	turns out you made a design mistake, refactor the code.   But
	at least you will have a product that your users love.&lt;/p&gt;</content>
		<author>
			<name>Miguel de Icaza (miguel@gnome.org)</name>
			<uri>http://tirania.org/blog//index.html</uri>
		</author>
	</entry>

	<entry>
		<title type="html">Miguel de Icaza: Hardware Accelerated Video Playback in Moonlight</title>
		<link href="http://tirania.org/blog/archive/2011/Mar-23-1.html"/>
		<id>http://tirania.org/blog/archive/2011/Mar-23-1.html</id>
		<updated>2011-03-24T08:53:00+00:00</updated>
		<content type="html">&lt;p&gt;David Reveman has just completed a series of optimizations
	in the Moonlight engine that allows Moonlight to take
	advantage of your GPU for the data intensive video rendering
	operations.   This is in addition to the standard GPU hardware
	acceleration that
	we &lt;a href=&quot;http://tirania.org/blog/archive/2011/Feb-16.html&quot;&gt;debuted
	a few weeks ago&lt;/a&gt;. 

	&lt;/p&gt;&lt;p&gt;This is what the video rendering loop looks like in
	Moonlight:

	&lt;/p&gt;&lt;center&gt;
	&lt;img src=&quot;http://primates.ximian.com/~miguel/pictures/mediaelement-pipeline.PNG&quot; /&gt;
	&lt;/center&gt;

	&lt;p&gt;Every one of those steps is an expensive process as it has
	to crunch to a lot of data.  For example, a 720p video which
	has a frame size of 1280x720, this turns out to be 921,600
	pixels.  This frame while stored in RGB format at 8 bits per
	channel takes 2,764,800 bytes of memory.  If you are decoding
	video at 30 frames per second, you need to at least move from
	the encoded input to the video 82 megabytes per second.
	Things are worse because the data is transformed on every step
	in that pipeline.  This is what each step does:
	
	&lt;/p&gt;&lt;p&gt;&lt;b&gt;The video decoding&lt;/b&gt; is the step that decompresses
	your video frames.  This is done one frame at a time, the
	input might be small, but the output will be the size of the
	original video.  

	&lt;/p&gt;&lt;p&gt;The decoding process generates images
	in &lt;a href=&quot;http://en.wikipedia.org/wiki/YUV&quot;&gt;YUV format&lt;/a&gt;.
	This format is used to store images and videos but and with
	previous versions of Moonlight, we had to &lt;b&gt;convert this YUV
	data&lt;/b&gt; into an in-memory bitmap encoded
	in &lt;a href=&quot;http://en.wikipedia.org/wiki/RGB_color_model&quot;&gt;RGB
	format&lt;/a&gt;.

	&lt;/p&gt;&lt;p&gt;The final step is to transfer this image to the graphics
	card.   This typically involves copying the data from the
	system memory to the graphics card, and in Unix this goes
	through the user process to the X server process, which
	eventually moves the data to the graphics card.

&lt;/p&gt;&lt;h2&gt;New Hardware Accelerated Framework&lt;/h2&gt;

	&lt;p&gt;The new hardware acceleration framework now skips plenty of
	these steps and lets the GPU on the system take over, this is
	what the new pipeline looks like:

	&lt;/p&gt;&lt;center&gt;
	&lt;img src=&quot;http://primates.ximian.com/~miguel/pictures/newmediaelement-pipeline.PNG&quot; /&gt;
	&lt;/center&gt;

	&lt;p&gt;The uncompressed image in YUV format is sent directly to
	the GPU.   Since OpenGL does not really know about YUV images,
	we use a custom pixel shader that runs on the graphics card to
	do the conversion for us and we also let the GPU take care of
	scaling the image.

	&lt;/p&gt;&lt;p&gt;The resulting buffer is composited with the rest of the
	scene, using the
	new &lt;a href=&quot;http://tirania.org/blog/archive/2011/Feb-16.html&quot;&gt;rendering
	framework&lt;/a&gt; introduced in Moonlight 4.
	
	&lt;/p&gt;&lt;p&gt;Although native video playback solutions have been doing
	similar things for a while on Linux, we had to integrate this
	into the larger retained graphics system that is Moonlight.
	We might be late to the party, but it is now a hardware
	accelerated and smooth party.

	&lt;/p&gt;&lt;p&gt;And what does this looks like?  It looks like heaven.

	&lt;/p&gt;&lt;p&gt;We were watching 1080p videos, running at full screen in
	David's office and it is absolutely perfect.

&lt;/p&gt;&lt;h2&gt;Getting the Code&lt;/h2&gt;

	&lt;p&gt;The code
	is &lt;a href=&quot;https://github.com/mono/moon&quot;&gt;available now on
	Github&lt;/a&gt; and will be available in a few hours as a
	&lt;a href=&quot;http://go-mono.com/moonlight/nightlies.aspx&quot;&gt;pre-packaged
	binary&lt;/a&gt; from our nightly builds.&lt;/p&gt;</content>
		<author>
			<name>Miguel de Icaza (miguel@gnome.org)</name>
			<uri>http://tirania.org/blog//index.html</uri>
		</author>
	</entry>

	<entry>
		<title type="html">Miguel de Icaza: Kid's Games on the iPad</title>
		<link href="http://tirania.org/blog/archive/2011/Mar-23.html"/>
		<id>http://tirania.org/blog/archive/2011/Mar-23.html</id>
		<updated>2011-03-24T05:04:00+00:00</updated>
		<content type="html">&lt;p&gt;My eight month old daugther loves her iPad.

	&lt;/p&gt;&lt;p&gt;We have gotten a bunch of baby games, kids games and
	visualizations for her.

	&lt;/p&gt;&lt;p&gt;But many of these apps have one fundamental issue: the
	author adds one or more buttons with useless stuff like
	&quot;Provide Feedback&quot;, &quot;Info&quot;, &quot;Visit Web Site&quot;, &quot;Check my Other
	Apps&quot; and other assorted buttons on the screen:

	&lt;/p&gt;&lt;center&gt;
	&lt;img src=&quot;http://primates.ximian.com/~miguel/pictures/game-ipad.png&quot; /&gt;
	&lt;/center&gt;

	&lt;p&gt;Now, perhaps the apps did great when used by a professional
	QA team in Daytona that reported back &quot;yes, every animal in
	the app makes the proper sound, and the cows scroll as they
	are intended to&quot;.

	&lt;/p&gt;&lt;p&gt;In this case, the &quot;Main&quot; button, will bring up a convenient
	page with options to send feedback to the author, to visit his
	web site and check out his other apps.

	&lt;/p&gt;&lt;p&gt;This means that my daugther can not really enjoy her games
	without supervision, since every few seconds, she will end up
	visiting a web site in Safari.

	&lt;/p&gt;&lt;p&gt;Joseph has a similar problem, he has equipped both of his
	kids with iPads, and they routinely report &quot;the iPad broke&quot;,
	every time one of their games ends up in some lame web site
	for the developer.

	&lt;/p&gt;&lt;p&gt;Developers for kid games should use slider switches if
	they really want to impose their hooks into their customers. 

&lt;/p&gt;&lt;h3&gt;Some Games&lt;/h3&gt;

	&lt;p&gt;On twitter Paul Hudson suggested a couple of games for
	1-year olds: Uzu (my daughter also loves this one), BeBot and
	SoundTouch.

	&lt;/p&gt;&lt;p&gt;I have found that she likes GarageBand a lot (we just have
	to be around to make sure we can reset the screen when she
	changes instruments).&lt;/p&gt;</content>
		<author>
			<name>Miguel de Icaza (miguel@gnome.org)</name>
			<uri>http://tirania.org/blog//index.html</uri>
		</author>
	</entry>

	<entry>
		<title type="html">The Voidspace Techie Blog: configure_mock: improved mock configuration (take two)</title>
		<link href="http://feedproxy.google.com/~r/voidspace/~3/rtS47rj-Ug4/arch_d7_2011_03_19.shtml"/>
		<id>http://feedproxy.google.com/~r/voidspace/~3/rtS47rj-Ug4/arch_d7_2011_03_19.shtml</id>
		<updated>2011-03-23T23:34:06+00:00</updated>
		<content type="html">A coupla days ago I blogged my ideas for making mock configuration less verbose. After some useful feedback in the comments here's an improved version. ... [189 words]&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=rtS47rj-Ug4:nJRbv7j8aoI:F7zBnMyn0Lo&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=rtS47rj-Ug4:nJRbv7j8aoI:F7zBnMyn0Lo&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=rtS47rj-Ug4:nJRbv7j8aoI:V_sGLiPBpWU&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=rtS47rj-Ug4:nJRbv7j8aoI:V_sGLiPBpWU&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=rtS47rj-Ug4:nJRbv7j8aoI:gIN9vFwOqvQ&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=rtS47rj-Ug4:nJRbv7j8aoI:gIN9vFwOqvQ&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=rtS47rj-Ug4:nJRbv7j8aoI:dnMXMwOfBR0&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?d=dnMXMwOfBR0&quot; /&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img height=&quot;1&quot; src=&quot;http://feeds.feedburner.com/~r/voidspace/~4/rtS47rj-Ug4&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>The Voidspace Techie Blog</name>
			<uri>http://www.voidspace.org.uk/python/weblog/index.shtml</uri>
		</author>
	</entry>

	<entry>
		<title type="html">The Voidspace Techie Blog: Mock 0.7.0 final release and PyCon talk video</title>
		<link href="http://feedproxy.google.com/~r/voidspace/~3/OAfk96yIqVc/arch_d7_2011_03_19.shtml"/>
		<id>http://feedproxy.google.com/~r/voidspace/~3/OAfk96yIqVc/arch_d7_2011_03_19.shtml</id>
		<updated>2011-03-21T23:47:46+00:00</updated>
		<content type="html">Yay for conference driven development, I got the final release of mock 0.7.0 done in time for PyCon. No api changes since the release candidate. ... [622 words]&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=OAfk96yIqVc:h9hJPp3Jrdw:F7zBnMyn0Lo&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=OAfk96yIqVc:h9hJPp3Jrdw:F7zBnMyn0Lo&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=OAfk96yIqVc:h9hJPp3Jrdw:V_sGLiPBpWU&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=OAfk96yIqVc:h9hJPp3Jrdw:V_sGLiPBpWU&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=OAfk96yIqVc:h9hJPp3Jrdw:gIN9vFwOqvQ&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=OAfk96yIqVc:h9hJPp3Jrdw:gIN9vFwOqvQ&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=OAfk96yIqVc:h9hJPp3Jrdw:dnMXMwOfBR0&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?d=dnMXMwOfBR0&quot; /&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img height=&quot;1&quot; src=&quot;http://feeds.feedburner.com/~r/voidspace/~4/OAfk96yIqVc&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>The Voidspace Techie Blog</name>
			<uri>http://www.voidspace.org.uk/python/weblog/index.shtml</uri>
		</author>
	</entry>

	<entry>
		<title type="html">The Voidspace Techie Blog: Lococast PyCon Podcast</title>
		<link href="http://feedproxy.google.com/~r/voidspace/~3/ZWQgG2r9b0o/arch_d7_2011_03_19.shtml"/>
		<id>http://feedproxy.google.com/~r/voidspace/~3/ZWQgG2r9b0o/arch_d7_2011_03_19.shtml</id>
		<updated>2011-03-21T23:27:23+00:00</updated>
		<content type="html">Whilst I was at PyCon (which was awesome by the way) I recorded an interview with Rick Harding from the Lococast podcast. It's a half hour ramble around topics like IronPython, testing, PyCon, working for canonical, choice of operating system and other topics. ... [68 words]&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=ZWQgG2r9b0o:06k6dEJn9zM:F7zBnMyn0Lo&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=ZWQgG2r9b0o:06k6dEJn9zM:F7zBnMyn0Lo&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=ZWQgG2r9b0o:06k6dEJn9zM:V_sGLiPBpWU&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=ZWQgG2r9b0o:06k6dEJn9zM:V_sGLiPBpWU&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=ZWQgG2r9b0o:06k6dEJn9zM:gIN9vFwOqvQ&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=ZWQgG2r9b0o:06k6dEJn9zM:gIN9vFwOqvQ&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=ZWQgG2r9b0o:06k6dEJn9zM:dnMXMwOfBR0&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?d=dnMXMwOfBR0&quot; /&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img height=&quot;1&quot; src=&quot;http://feeds.feedburner.com/~r/voidspace/~4/ZWQgG2r9b0o&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>The Voidspace Techie Blog</name>
			<uri>http://www.voidspace.org.uk/python/weblog/index.shtml</uri>
		</author>
	</entry>

	<entry>
		<title type="html">The Voidspace Techie Blog: Less verbose configuration of mock objects</title>
		<link href="http://feedproxy.google.com/~r/voidspace/~3/y0CjUgnib9c/arch_d7_2011_03_19.shtml"/>
		<id>http://feedproxy.google.com/~r/voidspace/~3/y0CjUgnib9c/arch_d7_2011_03_19.shtml</id>
		<updated>2011-03-21T17:40:40+00:00</updated>
		<content type="html">One of the things to come out of recent discussions with mock module users, and developers of alternative mock frameworks, is that for non-trivial mocking scenarios configuring your mocks can be verbose. If you have a mock object, particularly one created for you by patch, setting up attributes and return values for methods takes one line for every aspect of configuration. ... [431 words]&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=y0CjUgnib9c:pB6Blnxu2LQ:F7zBnMyn0Lo&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=y0CjUgnib9c:pB6Blnxu2LQ:F7zBnMyn0Lo&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=y0CjUgnib9c:pB6Blnxu2LQ:V_sGLiPBpWU&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=y0CjUgnib9c:pB6Blnxu2LQ:V_sGLiPBpWU&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=y0CjUgnib9c:pB6Blnxu2LQ:gIN9vFwOqvQ&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=y0CjUgnib9c:pB6Blnxu2LQ:gIN9vFwOqvQ&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=y0CjUgnib9c:pB6Blnxu2LQ:dnMXMwOfBR0&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?d=dnMXMwOfBR0&quot; /&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img height=&quot;1&quot; src=&quot;http://feeds.feedburner.com/~r/voidspace/~4/y0CjUgnib9c&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>The Voidspace Techie Blog</name>
			<uri>http://www.voidspace.org.uk/python/weblog/index.shtml</uri>
		</author>
	</entry>

	<entry>
		<title type="html">The Voidspace Techie Blog: Mock: tracking order of calls and less verbose call assertions</title>
		<link href="http://feedproxy.google.com/~r/voidspace/~3/wvs6aw3J4IA/arch_d7_2011_03_19.shtml"/>
		<id>http://feedproxy.google.com/~r/voidspace/~3/wvs6aw3J4IA/arch_d7_2011_03_19.shtml</id>
		<updated>2011-03-21T17:39:21+00:00</updated>
		<content type="html">One advantage of jet-lag is opportunity to write blog entries. The Mock class in the mock module allows you to track the order of method calls on your mock objects through the method_calls attribute. ... [394 words]&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=wvs6aw3J4IA:PBgunlcKfHY:F7zBnMyn0Lo&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=wvs6aw3J4IA:PBgunlcKfHY:F7zBnMyn0Lo&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=wvs6aw3J4IA:PBgunlcKfHY:V_sGLiPBpWU&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=wvs6aw3J4IA:PBgunlcKfHY:V_sGLiPBpWU&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=wvs6aw3J4IA:PBgunlcKfHY:gIN9vFwOqvQ&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=wvs6aw3J4IA:PBgunlcKfHY:gIN9vFwOqvQ&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=wvs6aw3J4IA:PBgunlcKfHY:dnMXMwOfBR0&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?d=dnMXMwOfBR0&quot; /&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img height=&quot;1&quot; src=&quot;http://feeds.feedburner.com/~r/voidspace/~4/wvs6aw3J4IA&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>The Voidspace Techie Blog</name>
			<uri>http://www.voidspace.org.uk/python/weblog/index.shtml</uri>
		</author>
	</entry>

	<entry>
		<title type="html">Noah Gift: PyCon 2011:  Exceeded My Expectations</title>
		<link href="http://artificialcode.blogspot.com/2011/03/pycon-2011-exceeded-my-expectations.html"/>
		<id>tag:blogger.com,1999:blog-4258103213764887486.post-2067670309143773675</id>
		<updated>2011-03-21T05:47:20+00:00</updated>
		<content type="html">&lt;a href=&quot;http://4.bp.blogspot.com/-G3UAiRkniCE/TYblm7LofpI/AAAAAAAAB7k/kmtNLy4HXZw/s1600/Forbidden_fruit.jpg&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5586404844683951762&quot; src=&quot;http://4.bp.blogspot.com/-G3UAiRkniCE/TYblm7LofpI/AAAAAAAAB7k/kmtNLy4HXZw/s400/Forbidden_fruit.jpg&quot; style=&quot;display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; cursor: hand; width: 400px; height: 175px;&quot; /&gt;&lt;/a&gt;&lt;br /&gt;It had been a couple of years since I went PyCon, but I was very happy with my experience.  Conferences are expensive to me, both in terms of the cost of travel, and in the opportunity cost.  Essentially, the money I could have made doing something else.  &lt;br /&gt;&lt;br /&gt;What would make me come back next year is a continued emphasis on the diversity of thought and ideas.  I enjoyed watching the talk &lt;a href=&quot;http://pycon.blip.tv/file/4880330/&quot;&gt;David Cramer did about the worlds largest Django website&lt;/a&gt;, which runs his own bootleg version of Django.  I also enjoyed talking to him in person.  He is a bright guy, and I think he is going to do some interesting things.  Would love to hear more talks from him in the future, and more about people willing to go bootleg.  Love that stuff!!!&lt;br /&gt;&lt;br /&gt;I also enjoyed talking to Jim Fulton, who I met randomly while washing my hands.  I mentioned to him that I absolutely LOVE &lt;a href=&quot;http://pypi.python.org/pypi/bobo/0.2.0&quot;&gt;bobo&lt;/a&gt;.  It is my favorite web framework, and I love it that is was done with minimalism, by a true master of the language.&lt;br /&gt;&lt;br /&gt;Finally, I met Massimo Di Pierro who is the creator of &lt;a href=&quot;http://www.web2py.com/&quot;&gt;web2py&lt;/a&gt;.  There were a couple of threads both at the convention, and online about how I shouldn't use web2py.  To me this literally puts the web framework on the map.  If anyone is taking the effort to go out of their way to tell me to NOT use someone else's code, it has to be an interesting idea.  I can think of no higher praise in fact.&lt;br /&gt;&lt;br /&gt;On my to do list, it is try to use web2py as much as I can this year.  That fact that it is forbidden makes the fruit all the more sweet to taste!  Will blog on my experiences with web2py this year, as time permits.&lt;br /&gt;&lt;br /&gt;I enjoyed giving a talk on writing command-line tools on Windows, where I was able to bring up Windows, PowerShell, and F#, and still have a great discussion afterwards with some really smart people:  &lt;a href=&quot;http://pycon.blip.tv/file/4883215/&quot;&gt;http://pycon.blip.tv/file/4883215/&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Essentially, I love the &lt;a href=&quot;http://www.amazon.com/Outliers-Story-Success-Malcolm-Gladwell/dp/0316017922&quot;&gt;Outliers&lt;/a&gt; I meet at PyCon.  Not the guys who are the most popular, but who have the most interesting viewpoints and ideas.  Ideas people tell me I shouldn't listen to!  I want those please, double helping in fact.  This is why I come to PyCon, I hope it stays that way.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img alt=&quot;&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/4258103213764887486-2067670309143773675?l=artificialcode.blogspot.com&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Noah Gift (noreply@blogger.com)</name>
			<uri>http://artificialcode.blogspot.com/search/label/IronPython</uri>
		</author>
	</entry>

	<entry>
		<title type="html">Aaron Marten's WebLog: Temporary Post Used For Theme Detection (6f2d4d1e-786d-4503-862e-6696167d20ad - 3bfe001a-32de-4114-a6b4-4005b770f6d7)</title>
		<link href="http://feedproxy.google.com/~r/AaronMarten/~3/pjrSO3-sIG0/temporary-post-used-for-theme-detection-6f2d4d1e-786d-4503-862e-6696167d20ad-3bfe001a-32de-4114-a6b4-4005b770f6d7.aspx"/>
		<id>91d46819-8472-40ad-a661-2c78acb4018c:10142797</id>
		<updated>2011-03-17T21:10:36+00:00</updated>
		<content type="html">&lt;p&gt;This is a temporary post that was not deleted. Please delete this manually. (04b29f36-2655-4638-a217-6d6eb0bce6ef - 3bfe001a-32de-4114-a6b4-4005b770f6d7)&lt;/p&gt;&lt;div style=&quot;clear: both;&quot;&gt;&lt;/div&gt;&lt;img height=&quot;1&quot; src=&quot;http://blogs.msdn.com/aggbug.aspx?PostID=10142797&quot; width=&quot;1&quot; /&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~ff/AaronMarten?a=pjrSO3-sIG0:YKGIqJ-k2BM:yIl2AUoC8zA&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/AaronMarten?d=yIl2AUoC8zA&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/AaronMarten?a=pjrSO3-sIG0:YKGIqJ-k2BM:qj6IDK7rITs&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/AaronMarten?d=qj6IDK7rITs&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/AaronMarten?a=pjrSO3-sIG0:YKGIqJ-k2BM:V_sGLiPBpWU&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/AaronMarten?i=pjrSO3-sIG0:YKGIqJ-k2BM:V_sGLiPBpWU&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/AaronMarten?a=pjrSO3-sIG0:YKGIqJ-k2BM:F7zBnMyn0Lo&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/AaronMarten?i=pjrSO3-sIG0:YKGIqJ-k2BM:F7zBnMyn0Lo&quot; /&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img height=&quot;1&quot; src=&quot;http://feeds.feedburner.com/~r/AaronMarten/~4/pjrSO3-sIG0&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>Aaron Marten</name>
			<uri>http://blogs.msdn.com/b/aaronmar/</uri>
		</author>
	</entry>

	<entry>
		<title type="html">Miguel de Icaza: GDC 2011</title>
		<link href="http://tirania.org/blog/archive/2011/Mar-07.html"/>
		<id>http://tirania.org/blog/archive/2011/Mar-07.html</id>
		<updated>2011-03-08T03:18:00+00:00</updated>
		<content type="html">&lt;p&gt;Three years ago, we were almost laughed out of the Game
	Developer Conference Show floor.

	&lt;/p&gt;&lt;p&gt;C# as the heir to C++ back then was mostly an academic
	discussion.   And there were only a few anecdotal examples of
	developers using C# for fast and safe scripting in games such
	as Second Life and Unity.
	
	&lt;/p&gt;&lt;p&gt;Three years ago, C# as a scripting language for games had
	shared the reputation that Javascript had before the Ajax
	and Web 2.0 revolutions.  It was a bad word.  Anything short
	of C++ and assembly language was not up to the taste of most
	game developers.    Ironically, developers were willing to
	take the hit of an interpreted languages to drive their
	games. 

	&lt;/p&gt;&lt;p&gt;It was perhaps Unity Technologies that started to change
	this when they adopted Mono as their scripting engine, giving
	their developers a choice of C#, strongly typed Javascript and
	Boo as programming languages to author their game's logic,
	effects and behaviors.    They got the benefits of high-level
	languages, with the added performance of being compiled:

	&lt;/p&gt;&lt;center&gt;
	&lt;img src=&quot;http://tirania.org/pictures/unity-layer.png&quot; /&gt;
	&lt;/center&gt;

&lt;h2&gt;A New Generation of Game Developers&lt;/h2&gt;

	&lt;p&gt;In the past years, a new generation of game developers have
	entered the stage.   These are developers that have cut their
	teeth with Unity, XNA and frameworks like PyGame.

	&lt;/p&gt;&lt;p&gt;They value malleability, rapid iteration and safe
	environments without crashing over raw performance.  They have
	grown used to profiling their software and tuning the
	hot-spots instead of depending on hunches that lead to
	premature optimizing.
	
	&lt;/p&gt;&lt;p&gt;This year things were very different at our booth.   Lots
	of happy Unity users came by to talk about MonoDevelop, about
	the new soft debugger, and about the joy of using C# to build
	applications with Unity.    Lots of people are working on big
	and small game titles using Mono.   

	&lt;/p&gt;&lt;p&gt;MonoTouch and MonoDroid also helped us gain visibility in
	this space.  Lots of existing users, and users-to-be came to
	discuss Mono's state.
	
	&lt;/p&gt;&lt;p&gt;But Mono has now spread its wings from being a pure
	extension system for C++-based systems (like Unity or the
	Sims3), to be used as the main language for building game
	engines and game frameworks.

	&lt;/p&gt;&lt;p&gt;There is the
	2D &lt;a href=&quot;http://monogame.codeplex.com/&quot;&gt;MonoGame&lt;/a&gt; (an
	open source effort previously known as XNAtouch) which
	supports iPhone, Android (and they are working on Windows and
	Mac backends).
	
	&lt;/p&gt;&lt;p&gt;At the show,
	both &lt;a href=&quot;http://deltaengine.net/&quot;&gt;DeltaEngine&lt;/a&gt;
	and &lt;a href=&quot;http://www.siliconstudio.co.jp/english/&quot;&gt;Silicon
	Studio&lt;/a&gt; were showing pure C#-based 3D game engines powered
	by Mono.    There were as well a number of stealth-mode
	projects and startups using Mono either as their scripting
	engine or the main runtime.

	&lt;/p&gt;&lt;p&gt;Walking around the GDC show-floor, you could see Mono
	running in many booths thanks to Unity's &lt;a href=&quot;http://unity3d.com/gallery/game-list/&quot;&gt;overwhelming
	popularity&lt;/a&gt;.
	
	&lt;/p&gt;&lt;p&gt;Perhaps my favorite Unity game at the show was Rochard, an
	upcoming PS3 game with interesting puzzles and the level of
	polish that you expect from a game like Ratchet and Clank
	(&lt;a href=&quot;http://www.ign.com/videos/2011/03/01/rochard-box-of-all-trades?objectid=99033&quot;&gt;videos&lt;/a&gt;,
	&lt;a href=&quot;http://media.ps3.ign.com/media/099/099033/imgs_1.html&quot;&gt;screenshots&lt;/a&gt;). 

&lt;/p&gt;&lt;h2&gt;Helping Game Developers&lt;/h2&gt;

	&lt;p&gt;In the past couple of years we have made some changes to
	Mono that help developers use Mono as either a scripting
	system for an existing C or C++ code base, or for those using
	Mono as their main runtime.

	&lt;/p&gt;&lt;p&gt;We still deliver all the bonus features that come from
	using C# and the CLI, like lambda functions, functional
	style-programming, garbage collection, type safety, iterators,
	generics and improve upon the basics to include:

	&lt;/p&gt;&lt;ul&gt;
		&lt;li&gt;Mobile profile: a minimal profile of class
		libraries that is better suited for mobile, embedded
		and console uses.

		&lt;/li&gt;&lt;li&gt;LLVM-based code optimizer: in addition to our
		standard code generator designed for JIT compilation,
		we now offer developers a choice to use
		the &lt;a href=&quot;http://llvm.org/&quot;&gt;LLVM optimizing
		compiler&lt;/a&gt; to generate code.  Modulo a handful of
		issues, the code generated is as good as the one you
		would get by doing low-level programming with C++.

		&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://tirania.org/blog/archive/2008/Nov-03.html&quot;&gt;SIMD
		intrinsics&lt;/a&gt;: we treat the
		various &lt;a href=&quot;http://go-mono.com/docs/index.aspx?link=N:Mono.Simd&quot;&gt;Vector
		data types&lt;/a&gt; in the Mono.Simd namespace as
		first-class types recognized by the JIT and mapped
		directly to hardware supported SIMD operations:

		&lt;pre class=&quot;code-csharp&quot;&gt;
		// This code:
		using Mono.Simd;
		
		Vector4f Add (Vector4f one, Vector4f two)
		{
			return one + two;
		}

		// Is inlined by our LLVM code generator when invoked
		// with the two statics first and second:
		mov    first,%eax
		movups (%eax),%xmm0
		mov    second,%eax
		movups (%eax),%xmm1
		addps  %xmm1,%xmm0
		&lt;/pre&gt;
		
		&lt;/li&gt;&lt;li&gt;Unsafe execution: some of our users wanted to
		continue using Mono and C# for their code for compute
		intensive operations.  We now offer an &lt;b&gt;unsafe&lt;/b&gt;
		option that will remove all arrays bounds check from
		the code.  This, needless to say, is incredibly unsafe
		as it would open the doors to the sort of bugs that
		are common in C++.  But if you are dying to squeeze
		the last bit of performance and treat C# as a nicer
		C++ and are ready to make a commitment to debug
		memory-corruption bugs, we got you covered.

		&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.mono-project.com/Continuations&quot;&gt;Runtime
		Continuations:&lt;/a&gt; to create lightweight co-routines
		that are not bound to threads and allow developers to
		suspend execution at any point without having to
		change their code, or require new compilers.   Silicon
		Studio's Homei system uses it.
	&lt;/li&gt;&lt;/ul&gt;

	&lt;p&gt;Additionally, many developers are doing a little bit of
	embrace-and-extending the Mono runtime in creative ways to
	extend the CLI in new ways.

	&lt;/p&gt;&lt;p&gt;We want for example to introduce both a [ForceInline] and a
	[UnsafeCode] attributes that can be applied to methods to hint
	the code generation engine to always inline a method, and to
	remove arrays-bounds-checking on a per-method basis.
	
&lt;/p&gt;&lt;h2&gt;Hot Topics&lt;/h2&gt;

	&lt;p&gt;A hot topic at the GDC was when we would bring the
	new &lt;a href=&quot;http://player.microsoftpdc.com/Session/1b127a7d-300e-4385-af8e-ac747fee677a&quot;&gt;C#
	5 &quot;await&quot;&lt;/a&gt; feature to Mono.

	&lt;/p&gt;&lt;p&gt;C#'s await is a perfect solution to many of the problems
	that game developers face.   Although there are solutions like
	&lt;a href=&quot;http://unity3d.com/support/documentation/ScriptReference/index.Coroutines_26_Yield.html&quot;&gt;Unity's
	co-routines&lt;/a&gt;, &lt;a href=&quot;http://www.mono-project.com/Continuations&quot;&gt;Mono
	Continuations&lt;/a&gt;/&lt;a href=&quot;https://github.com/mono/mono-microthreads&quot;&gt;microthreads&lt;/a&gt;
	and Michael Hutchinson's &lt;a href=&quot;http://mjhutchinson.com/journal/2010/02/01/iteratorbased_microthreading&quot;&gt;open sourced micro-threading
	framework&lt;/a&gt; these features require a particular set of
	programming practices and pattern or support in the VM to do
	this. 
	
	&lt;/p&gt;&lt;p&gt;C# Await is beautiful in that it integrates directly into
	the language and allows developers to focus on the algorithm
	and not in the administrivia of suspending execution and the
	boilerplate involved.   

	&lt;/p&gt;&lt;p&gt;Which leads me to F#.    The C# await functionality is
	based
	on &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/dd233250.aspx&quot;&gt;F#'s
	Asynchronous Workflows&lt;/a&gt; which is available to everyone
	(thanks to Microsoft open sourcing the F# compiler and
	runtime). 

	&lt;/p&gt;&lt;p&gt;What is fascinating is what some people are doing with F# in
	games: they can use F# to express the game AI in more succinct
	terms than any other scripting language can do.   Not being a
	game designer, I do not quite understand the domain space, but
	apparently F# is just what the doctor ordered for complicated
	AI behaviors.

	&lt;/p&gt;&lt;p&gt;This coupled with async execution is a game engine
	developer's dream.  But F# is not for everyone, there is a
	learning curve for getting to express problems in F# that is
	not suitable for game developers that have simple needs for
	their in-game logic.

&lt;/p&gt;&lt;h2&gt;WPF: A Recurring Topic&lt;/h2&gt;

	&lt;p&gt;Many tool vendors (animation, pipeline, version control)
	have used WPF for their software or are planning on using it
	for new projects.  These vendors have historically only
	supported Windows and are now looking at adding either Mac or
	Linux.  This became almost a FAQ at the Mono booth: when are
	you going to ship WPF on Mac/Linux.

	&lt;/p&gt;&lt;p&gt;We have no plans on building WPF.   We just do not have the
	man power to build an implementation in any reasonable
	time-frame.

	&lt;/p&gt;&lt;p&gt;Today, we offer a few suggestions to developers.   Feel
	free to pick and choose:

	&lt;/p&gt;&lt;ul&gt;
		&lt;li&gt;Use Gtk# if you want to share the same code across
		all three platforms.

		&lt;/li&gt;&lt;li&gt;Split your UI code from the non-UI code and build
		a UI per system.  On Windows, use WPF, on Mac use
		MonoMac, on Linux Gtk#.  Or use gtk# on Mac and Linux.

		&lt;/li&gt;&lt;li&gt;For tools that are mostly OpenGL/DirectX based,
		use Windows.Forms, keeping in mind that some bug
		fixing or work around on their part might be needed as
		our Windows.Forms is not actively developed. 
	&lt;/li&gt;&lt;/ul&gt;

	&lt;center&gt;
	&lt;img src=&quot;http://tirania.org/pictures/transform.PNG&quot; /&gt;
	&lt;p&gt;&lt;i&gt;If you can afford building two or three UIs&lt;/i&gt;
	&lt;/p&gt;&lt;/center&gt;

	&lt;p&gt;Those are the toolkits you can use &lt;b&gt;today&lt;/b&gt; to get your
	.NET-based tools working on multiple platforms.   There are a
	number of longer-term options in the horizon that could be
	useful, but would require a concerted effort by the community
	to complete:

	&lt;/p&gt;&lt;ul&gt;
		&lt;p&gt;&lt;a href=&quot;https://github.com/Clancey/MonoMac.Windows.Form&quot;&gt;Monomac.Winforms&lt;/a&gt;:
		assist the effort to have a Winforms look-alike API
		that happens to be based entirely on MonoMac and
		provides a native experience at the expense of
		dropping compatibility with some Winforms features.

		&lt;/p&gt;&lt;p&gt;Create an SWT-like toolkit, like Eclipse did for
		Java, but this time for .NET.   Mapping UI components
		to Cocoa, Gtk+ or WPF depending on the platform. 

		&lt;/p&gt;&lt;p&gt;Use Silverlight on Windows.  And then use a
		modified version of Moonlight on Linux (and assist
		porting Moonlight to Mac) to get enough support to
		integrate with the native OS (menus, file dialogs,
		file system access) and to access and embed OpenGL in
		their applications.

		&lt;/p&gt;&lt;p&gt;WPF implementation: not impossible, but this will
		require someone to fund some 15-20 developers to
		implement this enormous stack and some 2-3 years of
		work. 

	&lt;/p&gt;&lt;/ul&gt;</content>
		<author>
			<name>Miguel de Icaza (miguel@gnome.org)</name>
			<uri>http://tirania.org/blog//index.html</uri>
		</author>
	</entry>

	<entry>
		<title type="html">The Voidspace Techie Blog: mock 0.7.0 release candidate one, a theme a talk and an interview</title>
		<link href="http://feedproxy.google.com/~r/voidspace/~3/ARC1fN2Z1Uw/arch_d7_2011_02_26.shtml"/>
		<id>http://feedproxy.google.com/~r/voidspace/~3/ARC1fN2Z1Uw/arch_d7_2011_02_26.shtml</id>
		<updated>2011-02-27T14:52:54+00:00</updated>
		<content type="html">Mock 0.7.0 release candidate 1 has been released. http://pypi.python.org/pypi/mock This is intended to be the last release of mock before 0.7.0 final and the only changes anticipated are documentation changes which I've finally started work on. ... [461 words]&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=ARC1fN2Z1Uw:wKVSzKRc418:F7zBnMyn0Lo&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=ARC1fN2Z1Uw:wKVSzKRc418:F7zBnMyn0Lo&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=ARC1fN2Z1Uw:wKVSzKRc418:V_sGLiPBpWU&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=ARC1fN2Z1Uw:wKVSzKRc418:V_sGLiPBpWU&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=ARC1fN2Z1Uw:wKVSzKRc418:gIN9vFwOqvQ&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=ARC1fN2Z1Uw:wKVSzKRc418:gIN9vFwOqvQ&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=ARC1fN2Z1Uw:wKVSzKRc418:dnMXMwOfBR0&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?d=dnMXMwOfBR0&quot; /&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img height=&quot;1&quot; src=&quot;http://feeds.feedburner.com/~r/voidspace/~4/ARC1fN2Z1Uw&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>The Voidspace Techie Blog</name>
			<uri>http://www.voidspace.org.uk/python/weblog/index.shtml</uri>
		</author>
	</entry>

	<entry>
		<title type="html">The Voidspace Techie Blog: PyCrypto 2.3 Windows binaries</title>
		<link href="http://feedproxy.google.com/~r/voidspace/~3/vK51mjQ7UwM/arch_d7_2011_02_26.shtml"/>
		<id>http://feedproxy.google.com/~r/voidspace/~3/vK51mjQ7UwM/arch_d7_2011_02_26.shtml</id>
		<updated>2011-02-27T14:52:09+00:00</updated>
		<content type="html">Hey all, seems like a long time since we've spoken. I'm afraid I'm still crazy busy so I can't chat for long. ... [57 words]&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=vK51mjQ7UwM:QO1HSi3Zq2c:F7zBnMyn0Lo&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=vK51mjQ7UwM:QO1HSi3Zq2c:F7zBnMyn0Lo&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=vK51mjQ7UwM:QO1HSi3Zq2c:V_sGLiPBpWU&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=vK51mjQ7UwM:QO1HSi3Zq2c:V_sGLiPBpWU&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=vK51mjQ7UwM:QO1HSi3Zq2c:gIN9vFwOqvQ&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=vK51mjQ7UwM:QO1HSi3Zq2c:gIN9vFwOqvQ&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=vK51mjQ7UwM:QO1HSi3Zq2c:dnMXMwOfBR0&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?d=dnMXMwOfBR0&quot; /&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img height=&quot;1&quot; src=&quot;http://feeds.feedburner.com/~r/voidspace/~4/vK51mjQ7UwM&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>The Voidspace Techie Blog</name>
			<uri>http://www.voidspace.org.uk/python/weblog/index.shtml</uri>
		</author>
	</entry>

	<entry>
		<title type="html">Miguel de Icaza: Saturday Mono Update</title>
		<link href="http://tirania.org/blog/archive/2011/Feb-26.html"/>
		<id>http://tirania.org/blog/archive/2011/Feb-26.html</id>
		<updated>2011-02-26T21:54:00+00:00</updated>
		<content type="html">&lt;p&gt;Following a long established tradition of doing a quick
	Mono update after we do a major release,
	we &lt;a href=&quot;http://www.mono-project.com/Release_Notes_Mono_2.10.1#Changes_Since_Mono_2.10&quot;&gt;released
	Mono 2.10.1&lt;/a&gt; to the world.

	&lt;/p&gt;&lt;p&gt;There are four big features in this release that we
	backported from our master branch in addition to some 25 fresh
	bug fixes:

	&lt;/p&gt;&lt;ul&gt;
		&lt;li&gt;Support for
		running &lt;a href=&quot;http://orchard.codeplex.com/&quot;&gt;OrchardCMS&lt;/a&gt;
		on Linux.    We also wrote a PostgreSQL backend for
		it.   You can find the patches
		in &lt;a href=&quot;http://orchard.codeplex.com/discussions/247340&quot;&gt;this
		discussion&lt;/a&gt;.

		&lt;/li&gt;&lt;li&gt;The Parallel Framework's Default task scheduler
		has been switched to use our new and improved internal
		threadpool that we introduced with Mono 2.10.
		Previously it used its own (and amazing) scheduler,
		but did not share the same properties as .NET as there
		were by default two active threadpools, now there is
		only one. 

		&lt;/li&gt;&lt;li&gt;Plenty of updates to the WCF stack.

		&lt;/li&gt;&lt;li&gt;OSX is a fast growing OS for Mono, this release
		brings performance counters for OSX as well as adding
		debugging symbols to all of our libraries if you
		install the CSDK package from our download page. 
	&lt;/li&gt;&lt;/ul&gt;
	
	&lt;p&gt;There were also three important regressions from Mono 2.8
	that have been fixed.   We encourage everyone to use Mono 2.10.1.&lt;/p&gt;</content>
		<author>
			<name>Miguel de Icaza (miguel@gnome.org)</name>
			<uri>http://tirania.org/blog//index.html</uri>
		</author>
	</entry>

	<entry>
		<title type="html">Miguel de Icaza: MVP Summit and GDC 2011</title>
		<link href="http://tirania.org/blog/archive/2011/Feb-25.html"/>
		<id>http://tirania.org/blog/archive/2011/Feb-25.html</id>
		<updated>2011-02-26T03:21:00+00:00</updated>
		<content type="html">&lt;p&gt;Next week I will be in Bellevue, WA from Sunday to
	Wednesday to participate in the 2011 Microsoft MVP Summit.

	&lt;/p&gt;&lt;p&gt;From Wednesday to Friday I will be San Francisco attending
	the Game Developer's Conference.

	&lt;/p&gt;&lt;p&gt;Ping me if you want to get together.&lt;/p&gt;</content>
		<author>
			<name>Miguel de Icaza (miguel@gnome.org)</name>
			<uri>http://tirania.org/blog//index.html</uri>
		</author>
	</entry>

	<entry>
		<title type="html">Miguel de Icaza: C# Compiler as a Service Update</title>
		<link href="http://tirania.org/blog/archive/2011/Feb-24.html"/>
		<id>http://tirania.org/blog/archive/2011/Feb-24.html</id>
		<updated>2011-02-24T10:49:00+00:00</updated>
		<content type="html">&lt;p&gt;Our &lt;a href=&quot;http://www.mono-project.com/CsharpRepl&quot;&gt;C#
	compiler-as-a-service library&lt;/a&gt; can now process any C#
	construct, it is no longer limited to expressions and
	statements.

	&lt;/p&gt;&lt;p&gt;This means, that you can now enter entire class definitions
	in the command line:

&lt;/p&gt;&lt;pre class=&quot;code-csharp&quot;&gt;
csharp&amp;gt; class Demo {
      &amp;gt;     public int Add (int a, int b)
      &amp;gt;     {
      &amp;gt;          return a + b;
      &amp;gt;     }
      &amp;gt; }
csharp&amp;gt; new Demo ().Add (1, 3);
4
csharp&amp;gt;
&lt;/pre&gt;

	&lt;p&gt;This work was done by the amazing Marek and is now
	available on
	Mono's &lt;a href=&quot;http://github.com/mono/mono&quot;&gt;master branch in
	github&lt;/a&gt;.

	&lt;/p&gt;&lt;p&gt;This functionality can also be used for scripts, in
	particular in Unix, you can now create C# &quot;source executable&quot;
	files, like this:

&lt;/p&gt;&lt;pre&gt;
bash$ cat demo.cs
#!/usr/bin/csharp
class Demo {
	public dynamic Add (dynamic a, dynamic b)
	{
		return a + b;
	}
}
Console.WriteLine (new Demo ().Add (&quot;this is&quot;, &quot; cute&quot;));
bash$ chmod +x demo.cs
bash$ ./demo.cs
this is cute
bash$
&lt;/pre&gt;

&lt;h2&gt;Multiple Compiler Instances&lt;/h2&gt;

	&lt;p&gt;In addition, we turned the static API Evalutor.Eval (string
	expression), into an instance API.   The instance API allows
	developers that are embedding the C# compiler-as-a-service in
	their application to have different contexts.

	&lt;/p&gt;&lt;p&gt;This required the entire compiler to be updated from being
	a giant set of static classes that could safely use global
	variables and state into a state that was properly
	encapsulated.

	&lt;/p&gt;&lt;p&gt;The API is now richer, we provide a way to configure the
	compiler settings using a settings class.   This can be
	populated either manually, or by using the build-in
	command-line parser for compiler options.   The following
	sample shows how this could be used:

&lt;/p&gt;&lt;pre class=&quot;code-csharp&quot;&gt;
using Mono.CSharp;
using System;

class Runner {
	static int Main (string [] args)
	{
		var r = new Report (new ConsoleReportPrinter ());
		var cmd = new CommandLineParser (r);
		
		var settings = cmd.ParseArguments (args);
		if (settings == null || r.Errors &amp;gt; 0)
			Environment.Exit (1);

		var evaluator = new Evaluator (settings, r);

		evaluator.Run (&quot;class Demo { public static int Add (int a, int b) { return a+b; }}&quot;);
		evaluator.Run (&quot;print (Demo.Add (1,2));&quot;);
		return 0;
	}
}&lt;/pre&gt;

&lt;h2&gt;Testers Wanted&lt;/h2&gt;

	&lt;p&gt;This revamped compiler will be part of Mono 2.12, but we
	would love to get users to test the new functionality and to
	help us identify any problems early on, before we even release
	this code.

	&lt;/p&gt;&lt;p&gt;We do provide
	a &lt;a href=&quot;https://github.com/mono/mono/tree/master/mcs/class/Mono.CSharp&quot;&gt;convenient
	sln file&lt;/a&gt; that you can use the compiler as a service, and
	it works both in Visual Studio/.NET and Mono.

&lt;/p&gt;&lt;h2&gt;Silverlight&lt;/h2&gt;

	&lt;p&gt;We have not tested this with Silverlight, but in theory, it
	should now work fine with it.   We would love to see someone
	build an interactive shell like the one we did with Gtk# but
	hosted on the browser:

	&lt;/p&gt;&lt;center&gt;
	&lt;img src=&quot;http://www.mono-project.com/files/9/9c/Xbyhja.png&quot; /&gt;
	&lt;/center&gt;</content>
		<author>
			<name>Miguel de Icaza (miguel@gnome.org)</name>
			<uri>http://tirania.org/blog//index.html</uri>
		</author>
	</entry>

	<entry>
		<title type="html">Miguel de Icaza: Well, Actually</title>
		<link href="http://tirania.org/blog/archive/2011/Feb-17.html"/>
		<id>http://tirania.org/blog/archive/2011/Feb-17.html</id>
		<updated>2011-02-18T04:14:00+00:00</updated>
		<content type="html">&lt;h3&gt;Why you are not getting laid&lt;/h3&gt;

	&lt;p&gt;&lt;img align=&quot;right&quot; src=&quot;http://primates.ximian.com/~miguel/pictures/well_actually_small.jpg&quot; /&gt;As software developers, we develop habits that
	allow us to build products that work and do not fail under
	stress.  Every software developer knows what an &quot;off-by-one&quot;
	error is, and like the Karate Kid, we train extensively so we
	can avoid those traps.  We learn how to avoid these and other
	similar software problems and we sharpen our skills to find
	logic errors.

	&lt;/p&gt;&lt;p&gt;As we mature as developers, finding logic errors and
	incomplete solutions becomes our way of life.   It defines us.

	&lt;/p&gt;&lt;p&gt;But our engineering strength is also our social weakness.
	Countless times as engineers you will find yourself
	interrupting someone telling a story, an anecdote or a joke
	to correct a false assumption, provide an extra fact that the
	narrator overlooked, give a bigger perspective on the problem
	or point out that the joke premise is actually flawed.

	&lt;/p&gt;&lt;p&gt;You can identify this behavior because the person
	interrupting usually starts with the phrase &quot;Well,
	actually...&quot;.

	&lt;/p&gt;&lt;p&gt;As a kid, I thought this was my strength.  I knew a little
	bit more than my sister.  So whenever she would say something,
	I would quickly interject something like &quot;Well, actually, the
	origin of the word Shih Tzu means Lion Dog and has nothing to
	do with the dog's digestive patterns&quot;.

	&lt;/p&gt;&lt;p&gt;Yes, I was really fun to hang out with.

	&lt;/p&gt;&lt;p&gt;As a child, I wondered why my sister could make friends and
	keep them so easily, while I could not.  It would take me
	years to discover this.  And now, as a public service I am
	sharing with you, my fellow geek friends, what I learned.

	&lt;/p&gt;&lt;p&gt;Whoever pulls a &quot;well, actually&quot; almost always shifts the
	conversation to himself.  And now we are no longer following
	along with your friend's joke, we get to learn how much more
	you know about the limitations of the Sun Protection Factor
	scale in sunblock products. 

&lt;/p&gt;&lt;h3&gt;You are doing it wrong&lt;/h3&gt;

	&lt;p&gt;As a seasoned engineer, you need to learn control your
	impulses.  Having dealt with my own &lt;i&gt;well, actually&lt;/i&gt;
	problem, I can attest that adjusting this social behavior
	might even get you laid.

	&lt;/p&gt;&lt;p&gt;Jokes are funny because they surprise us.  But a joke is
	not funny if you have to present a 30-page document setting up
	every little detail.  An ill-placed &quot;Well, actually&quot; will get
	your colleagues to abandon in an instant the water cooler
	conversation and escape to the peaceful solitude of their
	workstations.

&lt;/p&gt;&lt;h3&gt;Range of Action&lt;/h3&gt;

	&lt;p&gt;You can find full-time &lt;i&gt;well-actually&lt;/i&gt; folks both in person
	or monitoring your every quip on twitter.

	&lt;/p&gt;&lt;p&gt;Even the most rudimentary of the &lt;i&gt;well-actuallistas&lt;/i&gt;
	is able to spoil even the best Ricky Gervais material.

	&lt;/p&gt;&lt;p&gt;Twitter being a medium limited to 140 character is like
	catnip for patronizing douchebags.  They can not resist the
	urge to point out logic flaws in your minimalist observation.

	&lt;/p&gt;&lt;p&gt;This is particularly a problem for those of us that love to
	tweet things that amuse us or that we find amusing.  Fear of a
	barrage of factoids from an omitted detail can be paralyzing.
	
&lt;/p&gt;&lt;h3&gt;Dealing with the Well Actually crowd&lt;/h3&gt;

	&lt;p&gt;The &lt;i&gt;well-actually&lt;/i&gt; crowd wants as much as everyone
	else to participate in the conversation.  They want to be
	loved.

	&lt;/p&gt;&lt;p&gt;But instead of rolling with the punches and participating
	in a brainstorm of ideas and exploding humor, they contribute
	interruptions, facts and details that merely produce stop
	energy on an ongoing discussion.  They turn the center of
	attention towards them.

	&lt;/p&gt;&lt;p&gt;The &lt;i&gt;well-actually&lt;/i&gt; crowd means well.  They want to be
	loved, they just have not realized that they are undermining
	their own &lt;a href=&quot;http://amzn.to/dZqFBs&quot;&gt;quest for
	friends&lt;/a&gt;.

	&lt;/p&gt;&lt;p&gt;If you are a sagacious &lt;i&gt;well-actuallista&lt;/i&gt; you need to
	understand that you are not outwitting anyone.  It takes more
	intelligence to build a joke, tell a funny anecdote or narrate
	a gripping story than it takes to nitpick.

	&lt;/p&gt;&lt;p&gt;You are not impressing anyone with your hard earned
	encyclopedic knowledge that you obtained by spending hours on
	the Internet.  You are just making everyone around you realize
	that you are as much fun to have lunch with as a flaming turd
	in a bag.

	&lt;/p&gt;&lt;p&gt;Those of us in the receiving end of a &lt;i&gt;well-actually&lt;/i&gt;,
	need to start an awareness campaign.  Perhaps using Twibbons to
	cure this disease.  Unlike many diseases, this awareness
	program will lead to a cure.

	&lt;/p&gt;&lt;p&gt;While being &lt;a href=&quot;http://amzn.to/heKv3l&quot;&gt;technically
	correct is the best kind of correct&lt;/a&gt;, what you don't
	realize is that while you enjoy the triumph of
	your &lt;i&gt;well-actually&lt;/i&gt;, everyone around you is secretly
	hoping that you
	&lt;a href=&quot;http://www.jwz.org/blog/2003/05/no-good-deed-goes-unpunished/&quot;&gt;choke
	on a bucket of cocks&lt;/a&gt;.

&lt;/p&gt;&lt;h3&gt;Practical Solutions&lt;/h3&gt;

	&lt;p&gt;In the office, we have lots of talented engineers and at
	one point or another one of us will interject a well placed
	&quot;well, actually&quot; at an innapropriate moment.

	&lt;/p&gt;&lt;p&gt;These days we are fully aware of this social disease and we
	strive to avoid it.   When someone interrupts a discussion
	with a &lt;i&gt;well-actually&lt;/i&gt; you can hear someone say:

	&lt;/p&gt;&lt;blockquote&gt;&lt;i&gt;
	&quot;Did you just &lt;b&gt;well-actually&lt;/b&gt; me?&quot;
	&lt;/i&gt;&lt;p&gt;&lt;i&gt;
	&lt;/i&gt;&lt;/p&gt;&lt;/blockquote&gt;

	&lt;p&gt;Which is basically a way of saying &quot;That has nothing to do
	with the topic, but thanks for derailing us&quot; without having to
	go into the explanation and getting lost on the tangent.
	
	&lt;/p&gt;&lt;p&gt;This is a good first step.  In our case, we have printed
	copies of
	the &lt;a href=&quot;http://trollcats.com/2009/11/okay-its-time-to-explain-some-stuff-patronizing-douchebag-trollcat/&quot;&gt;Ok,
	It's Time To Explain Some Stuff Patronizing Douchebag
	Trollcat&lt;/a&gt; in two sizes: a full-size well-actually cat, and
	a small one that is given as an award to the douchiest
	interruption:

	&lt;/p&gt;&lt;center&gt;
	&lt;img src=&quot;http://primates.ximian.com/~miguel/pictures/well_actually_trollcat.jpg&quot; /&gt;
	&lt;p&gt;&lt;i&gt;&lt;a href=&quot;http://trollcats.com/2009/11/okay-its-time-to-explain-some-stuff-patronizing-douchebag-trollcat/&quot;&gt;
	Okay it’s time to explain some stuff patronizing douchebag trollcat&lt;/a&gt;&lt;/i&gt;
	&lt;/p&gt;&lt;/center&gt;
	
	&lt;p&gt;On the Internet, you can try to point the patronizing
	douchebag to this blog post.  Or if you have no patience, just
	click &quot;block&quot; on twitter.&lt;/p&gt;</content>
		<author>
			<name>Miguel de Icaza (miguel@gnome.org)</name>
			<uri>http://tirania.org/blog//index.html</uri>
		</author>
	</entry>

	<entry>
		<title type="html">Miguel de Icaza: Moonlight 4 Preview 1 is out</title>
		<link href="http://tirania.org/blog/archive/2011/Feb-16.html"/>
		<id>http://tirania.org/blog/archive/2011/Feb-16.html</id>
		<updated>2011-02-17T05:19:00+00:00</updated>
		<content type="html">&lt;p&gt;&lt;img align=&quot;right&quot; src=&quot;http://tirania.org/shots/1102152326oHTojOUv.png&quot; /&gt;Yesterday we
	released &lt;a href=&quot;http://www.go-mono.com/moonlight/&quot;&gt;Moonlight
	4, Preview 1&lt;/a&gt;.

	&lt;/p&gt;&lt;p&gt;This release of Moonlight completes the Moonlight 3 feature
	set and includes many features from Silverlight 4.  Check out
	our release notes for the list of things that
	are &lt;a href=&quot;http://www.mono-project.com/Release_Notes_Moonlight4_Preview&quot;&gt;currently
	missing from our Silverlight 4 support&lt;/a&gt;.

&lt;/p&gt;&lt;h2&gt;Rendering&lt;/h2&gt;

	&lt;p&gt;Moonlight rendering system uses a painter's algorithm
	coupled with culling to reduce the amount of rasterization
	that needs to take place. 

	&lt;/p&gt;&lt;p&gt;For example, if we had these objects all rendered at the
	same location, on top of each other:

	&lt;/p&gt;&lt;center&gt;
	&lt;img src=&quot;http://primates.ximian.com/~miguel/pictures/ml4-objects.PNG&quot; /&gt;
	&lt;/center&gt;

	&lt;p&gt;A simple implementation would render the triangle, then the
	rectangle and then the circle, and we would get this result:

	&lt;/p&gt;&lt;center&gt;
	&lt;img src=&quot;http://primates.ximian.com/~miguel/pictures/ml4-rendered.PNG&quot; /&gt;
	&lt;/center&gt;

	&lt;p&gt;Moonlight optimizes this rendering by computing the
	bounding boxes of each element and determining which objects
	are completely obscured.  In this case, the triangle never
	needs to be rendered as it is fully covered.

	&lt;/p&gt;&lt;p&gt;Since we have the entire graph scene in memory, we can push
	all the rendering to the X server without ever having to pull
	data back from it.

	&lt;/p&gt;&lt;p&gt;Each visible element on Silverlight derives from the class
	UIElement and Moonlight tracks the bounding box for all of
	each individual element.   As you compose elements, the
	aggregate bounding box is computed.   For example, a canvas
	that hosts these three UIElements would have a bounding box
	that contains all three of them:

	&lt;/p&gt;&lt;center&gt;
	&lt;img src=&quot;http://primates.ximian.com/~miguel/pictures/ml4-uiebbox.PNG&quot; /&gt;
	&lt;/center&gt;

&lt;h3&gt;New Rendering Features&lt;/h3&gt;

	&lt;p&gt;With Silverlight 3, Microsoft introduced two large
	important changes to the framework: 3D transformations on
	objects and support for pixel shaders.   Both of these are
	applied to every visual element in Silverlight (this is
	implemented in the class UIElement). 

	&lt;/p&gt;&lt;p&gt;In addition to the properties inherited from Silverlight 2,
	UIElements now have two new properties: Projection and Effect.

	&lt;/p&gt;&lt;p&gt;The Projection property is a 3D matrix transformation (the
	3D variation of the 2D affine transform that is available in
	most 2D graphics APIs).  Silverlight exposes both
	the &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/system.windows.media.matrix3dprojection(v=VS.95).aspx&quot;&gt;raw
	3D matrix&lt;/a&gt; or a set
	of &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/system.windows.media.planeprojection(v=VS.95).aspx&quot;&gt;convenient
	properties&lt;/a&gt; that are easier to use and require no
	understanding of the interactions of the twelve elements of
	the 3D matrix
	(see &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/dd470131(v=vs.95).aspx&quot;&gt;this
	page for an explanation&lt;/a&gt;).   

	&lt;/p&gt;&lt;p&gt;Just like 2D affine APIs typically expose convenience
	methods to scale, rotate, skew and translate, the
	PlaneProjection properties allow developers to focus on those
	components.

	&lt;/p&gt;&lt;p&gt;You can see a
	sample &lt;a href=&quot;http://www.silverlightshow.net/items/Perspective-3D-in-Silverlight-3.aspx&quot;&gt;here&lt;/a&gt;.

	&lt;/p&gt;&lt;p&gt;Effects follow a similar pattern.   The blur and
	drop-shadow effects are given convenient names and accessors
	(&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/system.windows.media.effects.blureffect(v=VS.95).aspx&quot;&gt;BlurEffect&lt;/a&gt;
	and &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/system.windows.media.effects.dropshadoweffect(v=VS.95).aspx&quot;&gt;DropShadowEffect&lt;/a&gt;
	but Silverlight exposes an API to create programmable pixel
	shaders that go beyond these two simple cases.

	&lt;/p&gt;&lt;p&gt;The &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/system.windows.media.effects.shadereffect(v=VS.95).aspx&quot;&gt;ShaderEffect&lt;/a&gt;
	allows users to load pixel shaders written using
	the &lt;a href=&quot;http://en.wikipedia.org/wiki/High_Level_Shader_Language&quot;&gt;High
	Level Shader Language&lt;/a&gt; (HLSL).  Here is
	a &lt;a href=&quot;http://www.microsoft.com/silverlight/pixel-shader/demo/&quot;&gt;sample
	app&lt;/a&gt; showing pixel shaders in action. 

	&lt;/p&gt;&lt;p&gt;3D transformations and pixel shaders require that the
	contents of a UIElement are rendered to an intermediate output
	surface. The 3D transformation and shader effect is applied
	when this surface is composited onto the parent output
	surface. This compositing operation can be accelerated using
	graphics hardware.

	&lt;/p&gt;&lt;p&gt;From our previous example, the three elements would be
	rendered into a 2D surface, and the actual transformation 
	can be done in the hardware:

	&lt;/p&gt;&lt;center&gt;
	&lt;img src=&quot;http://primates.ximian.com/~miguel/pictures/ml4-box3d.PNG&quot; /&gt;
	&lt;/center&gt;
	
	&lt;p&gt;Finally, the third new rendering upgrade was the
	introduction of a bitmap cache that can be applied to a
	UIElement.  When a UIElement is flagged for being bitmap
	cached, the same kind of intermediate surface rendering and
	hardware accelerated compositing is performed as for elements
	with 3D transformations or pixel shaders.  The contents of
	bitmap cache elements are also rendered once and kept on a
	bitmap that is later composited.  This can improve performance
	vastly for complex controls with many interlocking pieces:
	instead of computing and re-rendering the entire contents
	every time, the bitmap cache is used.

	&lt;/p&gt;&lt;p&gt;This of course has some visible effect.   If you instruct
	Silverlight to use a bitmap cache, and then you zoom-in the
	contents, you will see the result get pixelated.   You can
	learn more about
	this &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/system.windows.media.bitmapcache(v=vs.95).aspx&quot;&gt;on
	the BitmapCache documentation&lt;/a&gt;. 
	
&lt;/p&gt;&lt;h3&gt;Moonlight's New Rendering Pipeline and GPU Acceleration&lt;/h3&gt;

	&lt;p&gt;Both effects and projections can be implemented purely in
	software.  Effects can be implemented by providing a small
	interpreter for HLSL code and projections by performing the
	rendering in software and compositing the results.

	&lt;/p&gt;&lt;center&gt;
	&lt;img src=&quot;http://wiki.compiz.org/Welcome?action=AttachFile&amp;amp;do=get&amp;amp;target=cube2.png&quot; /&gt;
	&lt;/center&gt;
	
	&lt;p&gt;David Reveman, the hacker behind Compiz joined the
	Moonlight team last year to implement the new rendering
	primitives, but also to figure out how we could hardware
	accelerate Moonlight.  The results of his work are available
	on yesterday's release of Moonlight 4.

	&lt;/p&gt;&lt;p&gt;The rendering pipeline was modified.   Now, whenever a
	UIElement has either a Projection, an Effect or has the the
	flag BitmapCache set the entire UIElement and its children are
	rendered into a surface that is then off-loaded for the GPU to
	render.

	&lt;/p&gt;&lt;p&gt;When OpenGL is available on the system, the composition of
	UIElements is entirely done by the GPU.

	&lt;/p&gt;&lt;p&gt;Moonlight will use the GPU to accelerate for compositing,
	perspective transformations and pixel shaders if the hardware
	is present without having to turn this on.  Silverlight by
	default requires developers to opt into hardware acceleration
	and has
	its &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ee309563(VS.95).aspx&quot;&gt;own
	set of features&lt;/a&gt; that it will hardware accelerate.

	&lt;/p&gt;&lt;p&gt;In general, Moonlight uses the GPU more than Silverlight
	does, except in the case of DeepZoom, where we still do not
	accelerate this code path.

&lt;/p&gt;&lt;h3&gt;Gallium3D&lt;/h3&gt;

	&lt;p&gt;Our new rendering pipeline is built using OpenGL
	and &lt;a href=&quot;http://en.wikipedia.org/wiki/Gallium3D&quot;&gt;Gallium3D&lt;/a&gt;.

	&lt;/p&gt;&lt;p&gt;Gallium is an engine that is typically used to implement
	OpenGL.   In our case, we use the Gallium3D API when we need
	to fallback to software rendering 3D transforms on Linux.
	Otherwise we go through the OpenGL pipeline:

	&lt;/p&gt;&lt;center&gt;
	&lt;img src=&quot;http://primates.ximian.com/~miguel/pictures/opengl-gallium.PNG&quot; /&gt;
	&lt;/center&gt;

	&lt;p&gt;If we were to only support Linux/X11, Gallium3D would have
	been a better choice for us.  But we want to allow the
	Moonlight runtime to be ported to other windowing systems
	(Like &lt;a href=&quot;http://wayland.freedesktop.org/architecture.html&quot;&gt;Wayland
	on Linux&lt;/a&gt;) and other operating systems.
	
&lt;/p&gt;&lt;h3&gt;Room for Growth&lt;/h3&gt;

	&lt;p&gt;Now that we have this 3D accelerated platform in place, it
	is easy to fine-tune specific UIElements to be hardware
	accelerated.

	&lt;/p&gt;&lt;p&gt;This first release did only the basics, but we
	can now trivially use hardware decoders for video and have
	that directly composited in hardware with the rest of a scene,
	or we can offload image transformations entirely to the
	hardware on a type-by-type basis and of course, DeepZoom.

&lt;/p&gt;&lt;h2&gt;Object Lifecycle&lt;/h2&gt;

	&lt;p&gt;Objects in moonlight live in two spaces, low-level
	components live in C++ and are surfaced to C#.   Typically
	this means that we have code that looks like this in C++:

	&lt;/p&gt;&lt;pre class=&quot;code-csharp&quot;&gt;
	//
	class MyElement : public UIElement {
	  protected:
		MyElement ();
	  private:
	        // fields and methods for MyElement go here
	}
	&lt;/pre&gt;

	&lt;p&gt;In C# we create a mirror, like this:

	&lt;/p&gt;&lt;pre class=&quot;code-csharp&quot;&gt;

	public class DependencyObject {
		// Points to the C++ instance.
		IntPtr _native;
	}
	&lt;/pre&gt;

	&lt;p&gt;When a user wrote in C# &quot;new MyElement&quot;, we would P/Invoke
	into C++ code that does &quot;new MyElement&quot;, get a pointer back to
	this instance and store it in the &quot;_native&quot; field.

	&lt;/p&gt;&lt;p&gt;In the other direction, if we created a C++ object and then
	we had to &quot;surface&quot; it to the managed world, we would
	initialize the object based on our C++ &quot;this&quot; pointer.   
	
	&lt;/p&gt;&lt;p&gt;We could create instances of MyElement in C++, and when
	this instance needs to be surfaces to the managed world, we
	would create an instance of the managed object, and store the
	pointer to the underlying C++ object in the _native pointer.

	
	&lt;/p&gt;&lt;p&gt;In the Moonlight 2.0 days we used to have C++ objects that
	would only create managed objects on
	demand.  &lt;a href=&quot;http://tirania.org/blog/archive/2009/Feb-11.html&quot;&gt;At
	the time&lt;/a&gt;, we did this to avoid creating thousands of
	managed objects when loading a XAML file when only a handful
	of those would be controlled by user code.

	&lt;/p&gt;&lt;p&gt;The Moonlight runtime, running in pure C++ code, surfaced
	objects to the C# world and we tracked the object life cycle
	with good old reference counts.  But with Silverlight 2,
	we started to see problems with the design as it was possible
	to end up with cycles.   These cycles did not happen only in
	the C++ side or the C# side, but they spanned the boundaries.
	This made it very hard to debug and it made it hard to keep
	Moonlight from not leaking memory.

	&lt;/p&gt;&lt;p&gt;Templates for example could create these cycles. 

	&lt;/p&gt;&lt;p&gt;With Moonlight 4, we have landed a new life cycle
	management system that works like this:

	&lt;/p&gt;&lt;ul&gt;
		&lt;li&gt;Every C++ object that we create always points to a
		managed counterpart.  Gone are the days where the
		managed peer was created only when needed.

		&lt;/li&gt;&lt;li&gt;Every C++ instance field that points to a
		DependencyObject subclass goes through this cool C++
		templated class that notifies managed when the
		reference changes.

		&lt;/li&gt;&lt;li&gt;There are no ref/unref pairs surrounding stores to
		instance fields in c++ anymore.
	&lt;/li&gt;&lt;/ul&gt;

	&lt;p&gt;Now our base class in C++ has this:

	&lt;/p&gt;&lt;pre class=&quot;code-csharp&quot;&gt;
	// Our entire hierarchy exposed to managed code
	// derives from EventObject
	class EventObject {
        	GCHandle managed_handle;
	}
	&lt;/pre&gt;

	&lt;p&gt;Now all the c++ objects exist and are kept alive solely by
	their managed peers (there are some rare exceptions for things
	like async calls) and the whole graph is traversable by Mono's GC
	because all stores to c++ instance fields result in a managed
	ref between the respective peers.

	&lt;/p&gt;&lt;p&gt;With the new code, we no longer live in a world of
	refs/unrefs (again, except for some rare cases) and whenever
	we assign to a C++ field that points to a managed object we notify
	the managed peer of the change.
	
	&lt;/p&gt;&lt;p&gt;We were not able to ship Moonlight 4 with our new garbage
	collection system (Sgen) as we ran into a couple of hard to
	track down bugs at the last minute, but we are going to switch
	it on again soon.

&lt;/p&gt;&lt;h3&gt;Future Work&lt;/h3&gt;

	&lt;p&gt;There is still room for improvement, and now that we know
	how to cook this kind of code, the goal is to use Mono's new
	GC in Moonlight more extensively.

	&lt;/p&gt;&lt;p&gt;We want to teach SGen to scan the C++ heap and track
	references to managed objects, dropping another potential
	source of problems and reducing the code needed.   We would
	also love to go back to only creating managed objects on
	demand. 

&lt;/p&gt;&lt;h2&gt;Platform Abstraction Layer&lt;/h2&gt;

	&lt;p&gt;Moonlight was originally designed as a Linux-only, X11-only
	plugin for rendering Silverlight content.   Developers
	constantly ask us whether they could run Moonlight on platform
	XX that is either not Linux or does not use X11.

	&lt;/p&gt;&lt;p&gt;The amount of work to port Moonlight 2 to those kinds of
	scenarios was so overwhelming that most people abandoned the
	efforts relatively quickly.

	&lt;/p&gt;&lt;p&gt;With Moonlight 4, we have introduced a
	new &lt;a href=&quot;http://www.mono-project.com/Release_Notes_Moonlight4_Preview#New_Platform_Abstraction_Layer&quot;&gt;platform
	abstraction layer&lt;/a&gt; that will make it simpler for developers
	to port the Moonlight engine to other platforms.

	&lt;/p&gt;&lt;p&gt;Whether you want hardware accelerated user experiences in your
	video game or you want to put Moonlight on a the FreezeMaster
	10000 Domestic Fridge with an Internet Connection and
	SmoothStreaming running on a barebones ARM CPU, you can now
	enjoy this in the comfort of your home.

	&lt;/p&gt;&lt;p&gt;We have done some minimal tests to exercise the API and can
	run the Moonlight engine on both MacOS and Android.  You can
	look at exclusive footage of the animation test suite running
	on &lt;a href=&quot;http://primates.ximian.com/~miguel/movies/darwoon-progress.mov&quot;&gt;OSX&lt;/a&gt;
	and
	on &lt;a href=&quot;http://primates.ximian.com/~miguel/movies/moondroid.mov&quot;&gt;Android&lt;/a&gt;.

	&lt;/p&gt;&lt;p&gt;If you are like me, not much of a click-on-the-video kind
	of person, and would rather get a screenshot, you
	can &lt;a href=&quot;http://sublimeintervention.com/images/moondroid-thu.png&quot;&gt;bask
	on the smooth colors of this screenshot on Android&lt;/a&gt; or
	in this delightful test on &lt;a href=&quot;http://sublimeintervention.com/images/darwoon-stackpanel.png&quot;&gt;MacOS&lt;/a&gt;.
	
	&lt;/p&gt;&lt;p&gt;We are currently not planning on completing that work
	ourselves, so this is a fabulous opportunity for a
	caffeine-driven hacker to complete these ports.

	&lt;/p&gt;&lt;p&gt;Some possibilities, from the top of my head include being
	able to use Silverlight to design parts of your user
	experience for apps on the Mac AppStore
	(think &lt;tt&gt;MoonlightView&lt;/tt&gt; in your MonoMac apps),
	or for your Android app.

	&lt;/p&gt;&lt;p&gt;Using Expression beats coding cute animations and
	futuristic UIs by hand.  That is why every major video game
	embeds ScaleForm, the embeddable Flash runtime for handling
	the UI.

&lt;/p&gt;&lt;h2&gt;New XAML Parser&lt;/h2&gt;

	&lt;p&gt;Our original XAML parser was written in C++, this worked
	fine for Moonlight 1, but with Moonlight 2 it started to
	become obvious that we were spending too much time calling
	back from C++ to C# to create managed objects.

	&lt;/p&gt;&lt;p&gt;This was acceptable up to version 2, but it no longer
	scaled with Moonlight 3.   Too much time was spent going back
	and forth between the C++ world and the C# world.    Those
	following the development of Moonlight would have noticed that
	every couple of weeks a new extra parameter to the xaml_load
	function was added to deal with yet another callback. 

	&lt;/p&gt;&lt;p&gt;The new XAML parser is entirely written in C#, is faster
	and more reliable.

&lt;/p&gt;&lt;h2&gt;And lots more&lt;/h2&gt;

	&lt;p&gt;Check out
	our &lt;a href=&quot;http://www.mono-project.com/Release_Notes_Moonlight4_Preview&quot;&gt;release
	notes&lt;/a&gt; for Moonlight 4 Preview 1.&lt;/p&gt;</content>
		<author>
			<name>Miguel de Icaza (miguel@gnome.org)</name>
			<uri>http://tirania.org/blog//index.html</uri>
		</author>
	</entry>

	<entry>
		<title type="html">Miguel de Icaza: Three Months and Ten Days</title>
		<link href="http://tirania.org/blog/archive/2011/Feb-16-1.html"/>
		<id>http://tirania.org/blog/archive/2011/Feb-16-1.html</id>
		<updated>2011-02-17T03:24:00+00:00</updated>
		<content type="html">&lt;p&gt;&lt;img align=&quot;right&quot; src=&quot;http://primates.ximian.com/~miguel/pictures/using-mono.png&quot; /&gt;That is the time between our last major Mono release and
	the new hotness: Mono 2.10.

	&lt;/p&gt;&lt;p&gt;New in this release:

	&lt;/p&gt;&lt;ul&gt;
	&lt;li&gt; &lt;a href=&quot;http://www.mono-project.com/Release_Notes_Mono_2.10#Google_Native_Client_Support&quot; title=&quot;&quot;&gt;Google Native Client Support&lt;/a&gt; 

	&lt;/li&gt;&lt;li&gt; &lt;a href=&quot;http://www.mono-project.com/Release_Notes_Mono_2.10#New_Mono_Profiler&quot; title=&quot;&quot;&gt;New Profiler engine&lt;/a&gt;, it is beyond amazing.

	&lt;/li&gt;&lt;li&gt; &lt;a href=&quot;http://www.mono-project.com/Release_Notes_Mono_2.10#Improved_Socket_and_Async_Stack&quot; title=&quot;&quot;&gt;Faster socket stack&lt;/a&gt; 

	&lt;/li&gt;&lt;li&gt; &lt;a href=&quot;http://www.mono-project.com/Release_Notes_Mono_2.10#Parallel_Framework_Updates&quot; title=&quot;&quot;&gt;Improved Parallel Framework&lt;/a&gt; 

	&lt;/li&gt;&lt;li&gt; Our SGen GC now
	supports  &lt;a href=&quot;http://www.mono-project.com/Release_Notes_Mono_2.10#SGen_Garbage_Collector&quot; title=&quot;&quot;&gt;Precise Stack Scanning &lt;/a&gt; and has been further fine
	tuned to increase our performance.

	&lt;/li&gt;&lt;li&gt; Unified MonoTouch/Monodroid runtime support

	&lt;/li&gt;&lt;li&gt;
	New &lt;a href=&quot;http://www.mono-project.com/Release_Notes_Mono_2.10#Cecil.2FLight&quot; title=&quot;&quot;&gt;Cecil/Light&lt;/a&gt; API is faster and lighter

	&lt;/li&gt;&lt;li&gt; &lt;a href=&quot;http://www.mono-project.com/Release_Notes_Mono_2.10#New_C.23_Compiler_Backend&quot; title=&quot;&quot;&gt;New C# Compiler backend&lt;/a&gt; (can now use any custom mscorlib)

	&lt;/li&gt;&lt;li&gt; &lt;a href=&quot;http://www.mono-project.com/Release_Notes_Mono_2.10#VB_Compiler&quot; title=&quot;&quot;&gt;VB Compiler&lt;/a&gt; can now compile to both 2.0 and 4.0 profiles.

	&lt;/li&gt;&lt;li&gt; &lt;a href=&quot;http://www.mono-project.com/Release_Notes_Mono_2.10#ASP.NET_MVC3_Support&quot; title=&quot;&quot;&gt;Supports ASP.NET MVC3&lt;/a&gt;, Razor and new WebPages.

	&lt;/li&gt;&lt;li&gt; New &lt;a href=&quot;http://www.mono-project.com/Release_Notes_Mono_2.10#WebMatrix.Data&quot; title=&quot;&quot;&gt;WebMatrix.Data&lt;/a&gt; database API.

	&lt;/li&gt;&lt;li&gt; &lt;a href=&quot;http://www.mono-project.com/Release_Notes_Mono_2.10#OSX_Updates&quot; title=&quot;&quot;&gt;Improved OSX Mono&lt;/a&gt; 

	&lt;/li&gt;&lt;li&gt; &lt;a href=&quot;http://www.mono-project.com/Release_Notes_Mono_2.10#Languages&quot; title=&quot;&quot;&gt;F#, IronRuby and IronPython&lt;/a&gt;  are now bundled in OSX and
	packaged for Linux.

	&lt;/li&gt;&lt;/ul&gt;

	&lt;p&gt;Check out
	our &lt;a href=&quot;http://www.mono-project.com/Release_Notes_Mono_2.10&quot;&gt;Mono
	2.10 release notes&lt;/a&gt; for all the details.&lt;/p&gt;</content>
		<author>
			<name>Miguel de Icaza (miguel@gnome.org)</name>
			<uri>http://tirania.org/blog//index.html</uri>
		</author>
	</entry>

	<entry>
		<title type="html">Miguel de Icaza: Nokia Simplifies the Mobile Landscape</title>
		<link href="http://tirania.org/blog/archive/2011/Feb-14.html"/>
		<id>http://tirania.org/blog/archive/2011/Feb-14.html</id>
		<updated>2011-02-15T01:49:00+00:00</updated>
		<content type="html">&lt;p&gt;On Friday, Nokia announced that they were adopting WP7 as
	their operating system.  Although some open source advocates
	might see this as a set-back for Linux, Android is already the
	best-selling Linux OS of all times.  Meanwhile, as a Ben
	Zander student, all I see is possibility and the the world of
	opportunities that this opens to developers.

	&lt;/p&gt;&lt;p&gt;Although they will continue shipping Symbian for a while,
	they are effectively sun-setting it.  Just like you can still
	purchase Itanium systems from HP, nobody really develops for
	those anymore.

	&lt;/p&gt;&lt;p&gt;Nokia had this chart to offer on Friday:

	&lt;/p&gt;&lt;center&gt;
	&lt;img src=&quot;http://primates.ximian.com/~miguel/pictures/2wpchart.png&quot; /&gt;
	&lt;/center&gt;

	&lt;p&gt;This is fascinating turn of events for C# developers as
	Nokia will make WP7 more relevant in the marketplace, making
	C# the lingua-franca of all major mobile operating systems.
	This astute chart explains why I am basking in joy:

	&lt;/p&gt;&lt;center&gt;
	&lt;img src=&quot;http://primates.ximian.com/~miguel/pictures/cute-mobile-language-table.PNG&quot; /&gt;
	&lt;p&gt;C# and the ECMA CLI everywhere!
	&lt;/p&gt;&lt;/center&gt;

	&lt;p&gt;Now, certainly lots of developer houses can afford to build
	their software once for each platform.  This is fine if your
	VC has a mandate to &quot;spend that cash quickly&quot; or if you have
	a surplus of interns at your disposal.

	&lt;/p&gt;&lt;p&gt;Now, if trollcats have taught us one thing is that users
	like the UI of their apps to be as native as possible.  That
	is, mind-blowingly beautiful on iOS and try to match the
	carpet on the others.

	&lt;/p&gt;&lt;p&gt;Other snake oil vendors will tell you that you can use the
	same code across all platforms and still deliver an
	emotional experience to your users.   I agree, you can deliver
	the same emotion of disgust when using a cross platform
	toolkit.

	&lt;/p&gt;&lt;p&gt;With Mono we have taken a different approach, based on our
	own failures from the past.  We give developers access to all
	of the native APIs in the platform to create the best possible
	user experience, and exploit every single last bit of
	functionality available on the platform.

	&lt;/p&gt;&lt;p&gt;We advise our users to split their user interface code from
	the engine, or their business logic.  Developers should create
	a native experience for their mobile apps: one per platform.
	For example,
	consider &lt;a href=&quot;http://primates.ximian.com/~miguel/pictures/angry-birds-free.jpg&quot;&gt;Angry
	Birds on iOS&lt;/a&gt;
	and &lt;a href=&quot;http://primates.ximian.com/~miguel/pictures/angry-birds-blackberry.jpg&quot;&gt;Angry
	Birds on Blackberry&lt;/a&gt;.  Each version adapts to provide the
	best user experience available on the platform.

	&lt;/p&gt;&lt;p&gt;This is a grand time to be a mobile developer.  This chart
	illustrates the elegant balance of native experience and code
	sharing available to C# developers:
	
	&lt;/p&gt;&lt;center&gt;
	&lt;img src=&quot;http://primates.ximian.com/~miguel/pictures/mobile-stacks.png&quot; /&gt;
	&lt;/center&gt;

	&lt;p&gt;&lt;b&gt;Update:&lt;/b&gt; As much as I have enjoyed responding to the
	comments on this blog post, the comments are now closed.  I
	will make an exception with anyone that wants to follow up on
	an existing discussion.  For everyone else, if you have
	something to share, write it on your blog.&lt;/p&gt;</content>
		<author>
			<name>Miguel de Icaza (miguel@gnome.org)</name>
			<uri>http://tirania.org/blog//index.html</uri>
		</author>
	</entry>

	<entry>
		<title type="html">Jeff Hardy's Blog (NWSGI): First IronPython Bug Weekend Coming Up</title>
		<link href="http://feedproxy.google.com/~r/JeffHardysBlog/~3/IdIn9ggAFGw/first-ironpython-bug-weekend-coming-up.html"/>
		<id>tag:blogger.com,1999:blog-597261753977781.post-71724829297810959</id>
		<updated>2011-02-11T18:14:42+00:00</updated>
		<content type="html">&lt;p&gt;The first IronPython Bug Weekend is this weekend, February 12-13, 2011. The purpose of the bug weekend is to get as many issues as possible looked at and fixed before the next pre-release of 2.7. There are a large number of issues in the issue tracker that need to checked to see if they are still valid (based on what I've seen, probably half of them are already fixed). If they're not reproducible, they can be closed; if they are reproducible, then patches are always welcome!&lt;/p&gt; &lt;p&gt;In particular, we'd like to get people who haven't contributed to IronPython before to chip in. It's really not that scary, I promise! To get started, check out &lt;a href=&quot;http://ironpython.codeplex.com/wikipage?title=Respository%20Instructions&amp;amp;referringTitle=Home&quot;&gt;how to get and build the source code&lt;/a&gt; and &lt;a href=&quot;http://ironpython.codeplex.com/wikipage?title=Contributing%20to%20IronPython&amp;amp;referringTitle=Home&quot;&gt;how to handle issues&lt;/a&gt;. If you have any questions, just ask – everyone is willing to help out.&lt;/p&gt; &lt;p&gt;To get in touch with the other bug weekend participants, there are two primary channels: the mailing list (&lt;a href=&quot;http://lists.ironpython.com/listinfo.cgi/users-ironpython.com&quot;&gt;sign up&lt;/a&gt;, &lt;a href=&quot;http://lists.ironpython.com/pipermail/users-ironpython.com&quot;&gt;view the archives&lt;/a&gt;) and the #ironpython IRC channel on freenode.net. If you're looking at a particular bug, make an update to the &lt;a href=&quot;https://spreadsheets.google.com/ccc?key=0AlhyN5J6eVpldEFlcEhETjlRRnB0TnZ2RDNBLTMzdlE&amp;amp;hl=en&quot;&gt;Bug Weekend spreadsheet&lt;/a&gt;, and make sure no one else is working on it either. It's a good idea to send a message on IRC or the mailing list as well.&lt;/p&gt; &lt;p&gt;Here's to a good bug-fixing weekend!&lt;/p&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img alt=&quot;&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/597261753977781-71724829297810959?l=blog.jdhardy.ca&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href=&quot;http://feedads.g.doubleclick.net/~a/mrS1GJX7BHo25bfnf75mwRFL9Ho/0/da&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;true&quot; src=&quot;http://feedads.g.doubleclick.net/~a/mrS1GJX7BHo25bfnf75mwRFL9Ho/0/di&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://feedads.g.doubleclick.net/~a/mrS1GJX7BHo25bfnf75mwRFL9Ho/1/da&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;true&quot; src=&quot;http://feedads.g.doubleclick.net/~a/mrS1GJX7BHo25bfnf75mwRFL9Ho/1/di&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img height=&quot;1&quot; src=&quot;http://feeds.feedburner.com/~r/JeffHardysBlog/~4/IdIn9ggAFGw&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>jdhardy (noreply@blogger.com)</name>
			<uri>http://blog.jdhardy.ca/</uri>
		</author>
	</entry>

	<entry>
		<title type="html">IronPython Cookbook (New Entries): I did right below her insurance number 58577</title>
		<link href="http://www.ironpython.info/index.php/I_did_right_below_her_insurance_number_58577"/>
		<id>http://www.ironpython.info/index.php/I_did_right_below_her_insurance_number_58577</id>
		<updated>2011-02-09T10:38:14+00:00</updated>
		<content type="html">&lt;p&gt;HuldahStiles2: Created page with 'thumb|  User-Submitted Document  Learning how to reduce your home owner's insurance rates can keep funds in your pocket and out of the insurance poli…'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:insurance_2844.jpg|thumb|]]&lt;br /&gt;
&lt;br /&gt;
User-Submitted Document&lt;br /&gt;
&lt;br /&gt;
Learning how to reduce your home owner's insurance rates can keep funds in your pocket and out of the insurance policy organization's hands.  Home owner's insurance can be some major expense and it is important to get out how to save money while nevertheless having appropriate coverage for your house.  Insurance companies depend on their customers not spending time to unearth out the way in which to conserve cash on their policies.  They expect the consumers to be as well busy to look with ways to hold their home owner's insurance quotes low.  Now is the time to bear in mind insurance companies work to you, the consumer.    Spend some duration learning how to lower your home [http://progrape.jp/pgr/hiki.cgi?Automobile+Insurance+-+Thing+You+Should+to+Have+Fo insurance] policy rate in reading this easy to make article.&lt;br /&gt;
&lt;br /&gt;
Difficulty: Uncomplicated&lt;br /&gt;
Directions&lt;br /&gt;
&lt;br /&gt;
1 Collect your current scheme paperwork for your home owner's insurance.  Maintain your policy nearby so that you can refer when trying to reduce your rates.&lt;br /&gt;
&lt;br /&gt;
3 Examine with protection discounts on your residence owner's insurance if you have some home security method.  Question the insurance policy company if there is some way to reduce your rate if you have an alarm program to your home.&lt;br /&gt;
&lt;br /&gt;
4 Inquire for fire safety discounts.  Test to spot if you homeowner's insurance will offer a reduce premium if you contain fire alarms and/or sprinklers installed within your home.Boost the quantity regarding policies you hold by way of them.  Question if they offer any discount if you carry extra than single policy with the company.  Decide if it is cheaper to include your car insurance or lifetime insurance through the company if they offer them.&lt;br /&gt;
&lt;br /&gt;
5 Keep a good credit score.  Home insurance premiums are often based on your credit score so keep some beneficial score and check it continually for any inaccurate information.&lt;/div&gt;</content>
		<author>
			<name>HuldahStiles2</name>
			<uri>http://www.ironpython.info/index.php/Special:NewPages</uri>
		</author>
	</entry>

	<entry>
		<title type="html">IronPython Cookbook (New Entries): Insurance conference in Dallas Likely very similar to latest tweet 54261</title>
		<link href="http://www.ironpython.info/index.php/Insurance_conference_in_Dallas_Likely_very_similar_to_latest_tweet_54261"/>
		<id>http://www.ironpython.info/index.php/Insurance_conference_in_Dallas_Likely_very_similar_to_latest_tweet_54261</id>
		<updated>2011-02-09T09:51:11+00:00</updated>
		<content type="html">&lt;p&gt;BorromeoShea5: Created page with 'thumb|  Crashing your car will considerably increase auto insurance rates. website reports that the rate will be elevated for three long time. I…'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:auto_insurance_2438.jpg|thumb|]]&lt;br /&gt;
&lt;br /&gt;
Crashing your car will considerably increase auto insurance rates. website reports that the rate will be elevated for three long time. If you were at fault and if you were ticketed for the accident, your premiums may increase with some longer period. While you probably won't be able to lower your auto insurance policy rates at once after some automobile accident, there are steps you can take that might keep them from going sky huge.&lt;br /&gt;
&lt;br /&gt;
Difficulty: Moderately Easy&lt;br /&gt;
Directions&lt;br /&gt;
&lt;br /&gt;
Report any accidents to your insurance policy company immediately after the crash, even if they are minor. State laws may prevent the auto insurance premium from being elevated unless the accident was your fault. If you are with fault, the auto insurance policy firm lawyers may be able to demonstrate that is the other driver was additionally at fault. Proving responsibility about the other driver will reduce the period your organization has to spend out for mend claims, so it could reduce the amount regarding the premium improve. If you fail to report even a minor crash, you could get hit for some great premium increase if the insurance company finds out.&lt;br /&gt;
&lt;br /&gt;
2 No accidents for years is a plus.&lt;br /&gt;
&lt;br /&gt;
Inquire for forgiveness away from your insurer. Some vehicle insurance companies maintain a &quot;forgive the first accident&quot; policy. As the substitute remains getting hit along with a 40 percent premium improve and losing current discounts, according to Netquote, you will want to ask in regard to this policy when you talk to your insurance company after the accident. Express Farm yous just one business that offers this policy if you have had no additional accidents for nine years. The Canadian Vehicle Association also offers any &quot;forgive the first accident&quot; policy.&lt;br /&gt;
&lt;br /&gt;
3 Too many points on your license will increase rates.&lt;br /&gt;
&lt;br /&gt;
Maintain your driving record clean. One of the ingredients that is influences your [http://marketing-mastermind.com/howtomakeaclaim54/blog/54550 vehicle insurance] rate remains the amount of points you have on your driving record. Purchase as well many points also your license is suspended, plus each point improves the insurance policy premium. Visit your state's Division of Car Cars web site for any list regarding transgressions and the point penalty for each one. There are two ways to get rid regarding the points: attend driving school courses or wait some few years and the points will vanish if you lodge outside about trouble.&lt;/div&gt;</content>
		<author>
			<name>BorromeoShea5</name>
			<uri>http://www.ironpython.info/index.php/Special:NewPages</uri>
		</author>
	</entry>

	<entry>
		<title type="html">IronPython Cookbook (New Entries): Maybe I need medical insurance It d be so expensive I m so broken 79266</title>
		<link href="http://www.ironpython.info/index.php/Maybe_I_need_medical_insurance_It_d_be_so_expensive_I_m_so_broken_79266"/>
		<id>http://www.ironpython.info/index.php/Maybe_I_need_medical_insurance_It_d_be_so_expensive_I_m_so_broken_79266</id>
		<updated>2011-02-09T09:39:17+00:00</updated>
		<content type="html">&lt;p&gt;GaryLocke9: Created page with 'thumb|  Insurance regulations with Florida are covered under Title XXXVIII of the Florida Statutes, since defined by the Legislative Branc…'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Automobile_insurance_2311.jpg|thumb|]]&lt;br /&gt;
&lt;br /&gt;
Insurance regulations with Florida are covered under Title XXXVIII of the Florida Statutes, since defined by the Legislative Branch of the state govt. These ordinances protect law for a broad range about insurance types, including homeowners, vehicle , health , existence and credit living policies. Guidelines and regulations applicable to the licensing about insurance factors, as well as policy rates are furthermore protected under Title XXXVIII.&lt;br /&gt;
&lt;br /&gt;
During the 2009to 2010 fiscal year, the FOIR monitored nearly 69 million dollars in customer refunds.&lt;br /&gt;
&lt;br /&gt;
The Florida Office of Insurance Regulation (FLOIR) is responsible for the rule, compliance and enforcement of Florida insurance statutes. As of 2000 to 2010 fiscal year reporting, the FLOIR was responsible for overseeing nearly 4,000 insurance entities, such as real estate, health, life plus casualty insurers, and more than 100 billion bucks valued at about insurance premiums. Throughout this same reporting point, the FOLIR assessed almost 13 million dollars valued at regarding goods.&lt;br /&gt;
&lt;br /&gt;
Factor Licensing&lt;br /&gt;
&lt;br /&gt;
Fingerprints are applied to establish criminal history of agent candidates.&lt;br /&gt;
&lt;br /&gt;
Rates&lt;br /&gt;
&lt;br /&gt;
Insurance policy rates plus rate boosts are controlled by way of the FLOIR. Insurance policy entities must apply with permission before applying any across-the-board rate improves to policies with Florida. This procedure helps to ensure that Florida residents are not issue to incongruous or illegal increases, whereas well being providing insurers the capability to boost rates with relation to marketplace changes. Rate increase requests must garner the approval about the Florida Insurance Commissioner earlier to going into effect.&lt;br /&gt;
&lt;br /&gt;
Homeowners Insurance&lt;br /&gt;
&lt;br /&gt;
According to Florida Statutes, new homeowners insurance cannot take effect while any area about Florida remains below a hurricane watch or warning.&lt;br /&gt;
&lt;br /&gt;
Due to climate plus other geographic issues, homeowners insurance is some subject below continuous dialogue. Major catastrophes, such as the unusually active 2005 hurricane season, may result in billions regarding dollars worth of destruction plus insurance policy declares. This level of liability has forced many insurers out of the homeowners insurance market, forcing the state to create the Citizens Property Insurance policy Company. Regulation of homeowners insurance covers kinds regarding coverages, limitations, compliance, claims course of action and coverage termination.&lt;br /&gt;
&lt;br /&gt;
Types&lt;br /&gt;
&lt;br /&gt;
Within addition to conventional insurance policies, such as automobile, homeowners plus health, the FLOIR yous also responsible to the oversight and regulation of any extensive range of insurance kinds. Numerous regarding these kinds contain car vehicle service arrangements, home warranties, mortgage guaranty insurance, legal cost insurance, bail bonds, discount medical plans also workers' salary. [http://www.markpreston.co.uk/dokuwiki/doku.php?id=automobile_insurance Automobile insurance].&lt;/div&gt;</content>
		<author>
			<name>GaryLocke9</name>
			<uri>http://www.ironpython.info/index.php/Special:NewPages</uri>
		</author>
	</entry>

	<entry>
		<title type="html">IronPython Cookbook (New Entries): Don t assume all companies provide dental insurance plans 5293</title>
		<link href="http://www.ironpython.info/index.php/Don_t_assume_all_companies_provide_dental_insurance_plans_5293"/>
		<id>http://www.ironpython.info/index.php/Don_t_assume_all_companies_provide_dental_insurance_plans_5293</id>
		<updated>2011-02-09T09:36:49+00:00</updated>
		<content type="html">&lt;p&gt;YaropolkMoody: Created page with 'thumb|  Effective June 1, 2010, Wisconsin is a compulsory insurance state. All drivers must contain automobile insurance that meets minimum peri…'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:auto_insurance_2732.jpg|thumb|]]&lt;br /&gt;
&lt;br /&gt;
Effective June 1, 2010, Wisconsin is a compulsory insurance state. All drivers must contain automobile insurance that meets minimum periods for liability and uninsured motorists. The mandatory insurance yous meant to guarantee the safety plus financial obligation regarding drivers on the road in Wisconsin. [http://simteach.com/wiki/index.php?title=Automobile_Insurance_-_How_To_Buy_Auto_Insurance auto insurance].&lt;br /&gt;
&lt;br /&gt;
Responsibility&lt;br /&gt;
&lt;br /&gt;
Uninsured Motorist&lt;br /&gt;
&lt;br /&gt;
Your insurance policy must watch over you against uninsured motorists. It take on the place of the other driver's scheme,  and your complete declare is settled together with your own insurance company. You are needed to cooperate with the insurance company considering it  issued the insurance. This may require giving entry to your medical records and/or seeing a doctor the organization chooses. Beyond this, however, your state is the same because if the other motorist were insured. It's   recommended that you have an attorney represent you and negotiate your claim so you do not overlook away on any coverage to which you are entitled.&lt;br /&gt;
&lt;br /&gt;
Under-Insured Motorist&lt;br /&gt;
&lt;br /&gt;
Under-insured motorist coverage is not required yet is good to boast,  and you should buy as very much coverage because possible. This coverage applies when the person at fault has insurance policy but the limits aren't huge enough to  compensate you thoroughly  for your losses. If you carry $50,000 about under-insured insurance coverage plus the additional driver has $50,000 of responsibility coverage, he would never be considered exclusive under-insured motorist when compared to you. As a end result your wounds may never be completely covered because the price tag of the injuries could be greater besides the amount of coverage. Under-insured motorist coverage is inexpensive, so frequently try to get as very much seeing that possible to defend you and your family .&lt;/div&gt;</content>
		<author>
			<name>YaropolkMoody</name>
			<uri>http://www.ironpython.info/index.php/Special:NewPages</uri>
		</author>
	</entry>

	<entry>
		<title type="html">IronPython Cookbook (New Entries): Maybe I need medical insurance It d be so expensive I m so broken 39428</title>
		<link href="http://www.ironpython.info/index.php/Maybe_I_need_medical_insurance_It_d_be_so_expensive_I_m_so_broken_39428"/>
		<id>http://www.ironpython.info/index.php/Maybe_I_need_medical_insurance_It_d_be_so_expensive_I_m_so_broken_39428</id>
		<updated>2011-02-09T08:56:30+00:00</updated>
		<content type="html">&lt;p&gt;BoleslawMccray: Created page with 'thumb|  User-Submitted Article  Health insurance policy is a must for any student planning to study abroad but the preparation can regularly be mind-…'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:insurance_1166.jpg|thumb|]]&lt;br /&gt;
&lt;br /&gt;
User-Submitted Article&lt;br /&gt;
&lt;br /&gt;
Health insurance policy is a must for any student planning to study abroad but the preparation can regularly be mind-boggling for those unfamiliar by way of the process. Follow these steps to make confident you are fully covered whilst studying abroad.&lt;br /&gt;
&lt;br /&gt;
Difficulty: Moderate&lt;br /&gt;
Directions&lt;br /&gt;
&lt;br /&gt;
1 Find away what type of and how a lot fitness [http://futanari.org/wiki/insurance_guides_-_luck insurance] you will want. Check with your review abroad program or school's research abroad office. They ought to be able to tell you the specific health insurance duty to your personal land also foreign school . If they are unable to tell you, you will need to work a little digging. Go to your host region's web site and appear for facts on health and visa requirements to get into the country.&lt;br /&gt;
&lt;br /&gt;
2 Once you boast the requirements, contact your well-being insurance provider. Nearly all insurance plans cover people while traveling and/or studying abroad, but there are a lot more steps to file a claim. Too, every foreign physicians will as well be considered away of network.  Produce sure to let the insurance company know what countries you will be visiting and the approximate dates. Inquire about every special requirements they might have need to you need to look for medical attention while away.&lt;br /&gt;
&lt;br /&gt;
3 Once you know what your plan does plus does not insure, purchase extra insurance to fill in the gaps. Check by means of the research abroad office as they routinely have supplemental plans obtainable at lower costs. Observe that is most colleges will require students to get any International Student Identification Card (ISIC) which furnishs some medical coverage for American scholars traveling abroad.&lt;br /&gt;
&lt;br /&gt;
4 Send in proof of health insurance with your study abroad paperwork plus visa application.  Some schools plus countries will accept photocopies of your insurance card. Additionals might demand a letter from your insurance policy supplier.&lt;br /&gt;
&lt;br /&gt;
5 Pack your insurance card, copies of the card, insurance contact info, and additional claim variety in your luggage.&lt;br /&gt;
&lt;br /&gt;
6 If you obtain to seek medical consideration while abroad, retain copies about all bills. Your insurance supplier need to maintain told you how to submit claims whilst out of the region. This remains usually via exclusive Web style, fax, or some style sent via postal mail. If they request a hard copy of the bill, send any photocopy and keep the original as it may be easily lost in route. If the doctor proposes one English translation of the bill, mail this being well. Otherwise the insurance company might hold up expense while lingering to a translation.&lt;br /&gt;
&lt;br /&gt;
7 Regularly times it is easier to submit claims by way of any Power regarding Attorney again residence. This is some appropriate document signed and notarized that gives specified powers to some designated person under certain conditions. (This will need to be organized Prior to traveling abroad.) The Power about Attorney is then able to speak to the insurance supplier and/or offer with any problems that might arise. You will only need to post copies of each and every bill to the Power of Attorney.&lt;br /&gt;
&lt;br /&gt;
Suggestions &amp;amp; Cautions&lt;br /&gt;
&lt;br /&gt;
You will usually be required to fork out every and all medical bills upfront. The insurance corporation will then reimburse you.&lt;/div&gt;</content>
		<author>
			<name>BoleslawMccray</name>
			<uri>http://www.ironpython.info/index.php/Special:NewPages</uri>
		</author>
	</entry>

	<entry>
		<title type="html">IronPython Cookbook (New Entries): Vote on Top 5 Reasons to Choose an Independent Insurance Agency 22339</title>
		<link href="http://www.ironpython.info/index.php/Vote_on_Top_5_Reasons_to_Choose_an_Independent_Insurance_Agency_22339"/>
		<id>http://www.ironpython.info/index.php/Vote_on_Top_5_Reasons_to_Choose_an_Independent_Insurance_Agency_22339</id>
		<updated>2011-02-09T08:25:14+00:00</updated>
		<content type="html">&lt;p&gt;GladysPhipps3: Created page with 'thumb|  Journey insurance typically covers you to any accident sustained whilst traveling. Insurance companies offer various plans that cover a numer…'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:insurance_5110.jpg|thumb|]]&lt;br /&gt;
&lt;br /&gt;
Journey insurance typically covers you to any accident sustained whilst traveling. Insurance companies offer various plans that cover a numerous about events you might encounter while traveling. Depending on your policy, you can file travel insurance policy states for journey cancellation, travel delay, baggage loss, bag delay, baggage injury, medical expenses plus accident to a rented car . Here's how you may file some travel insurance claim.&lt;br /&gt;
&lt;br /&gt;
From Essentials: Lost Luggage 411&lt;br /&gt;
&lt;br /&gt;
The way to Recover Lost Luggage&lt;br /&gt;
&lt;br /&gt;
It's a traveler's worst nightmare. You arrive on your destination after a long flight and are…&lt;br /&gt;
A lot more&lt;br /&gt;
&lt;br /&gt;
More: Observe All Articles in this Essentials&lt;br /&gt;
&lt;br /&gt;
How to Reduce the Chances regarding Lost Luggage While Traveling&lt;br /&gt;
&lt;br /&gt;
Dealing with lost bags can damage any journey or vacation. Even although airlines only really lose…&lt;br /&gt;
More&lt;br /&gt;
&lt;br /&gt;
More: See All Articles in this Essentials&lt;br /&gt;
&lt;br /&gt;
How to Decrease the Possibility of Lost or Damaged Luggage&lt;br /&gt;
&lt;br /&gt;
Arriving at your destination only to get that your baggage isn’t there is a fantastic way to…&lt;br /&gt;
Added&lt;br /&gt;
&lt;br /&gt;
More: View All Documents in this Essentials&lt;br /&gt;
&lt;br /&gt;
How to Never Lose One's Bags&lt;br /&gt;
&lt;br /&gt;
If you fly much, you may have had to cross your fingers plus hope that your luggage makes it to…&lt;br /&gt;
Added&lt;br /&gt;
&lt;br /&gt;
The way to Lose Airplane Baggage&lt;br /&gt;
&lt;br /&gt;
Airlines expend hundreds regarding thousands about dollars each year to ensure that is you and your luggage…&lt;br /&gt;
Further&lt;br /&gt;
&lt;br /&gt;
How to Get Luggage Lost on a Shuttle&lt;br /&gt;
&lt;br /&gt;
So you're at the end of a tiring journey plus you realize that any fellow airport shuttle passenger…&lt;br /&gt;
Further&lt;br /&gt;
&lt;br /&gt;
More: Understand All Articles in this Essentials&lt;br /&gt;
&lt;br /&gt;
How to Get Lost Baggage Insurance&lt;br /&gt;
&lt;br /&gt;
Lost baggage insurance policy is with both domestic and international flights. The cost also replacement…&lt;br /&gt;
More&lt;br /&gt;
&lt;br /&gt;
Further: Find out All Articles in this Essentials&lt;br /&gt;
&lt;br /&gt;
How to File a Lost Baggage Insurance Claim&lt;br /&gt;
&lt;br /&gt;
Nothing ruins a holiday prefer an airline carrier losing your baggage. If you're growing on some journey,…&lt;br /&gt;
More&lt;br /&gt;
&lt;br /&gt;
Additional: Observe All Documents inside this Essentials&lt;br /&gt;
&lt;br /&gt;
Journey insurance generally covers you with any mishap sustained whilst traveling. Insurance…&lt;br /&gt;
Further&lt;br /&gt;
&lt;br /&gt;
Further: Understand All Articles in this Essentials&lt;br /&gt;
&lt;br /&gt;
How to Secure International Travel Insurance&lt;br /&gt;
&lt;br /&gt;
Many travelers believe trepidation about international journeys because of uncertain conditions from…&lt;br /&gt;
More&lt;br /&gt;
&lt;br /&gt;
More: See All Articles in this Essentials&lt;br /&gt;
&lt;br /&gt;
How to Indicate Luggage so that It is Uncomplicated To Spot&lt;br /&gt;
&lt;br /&gt;
Have you ever been by the airport, ready for your baggage at the baggage claim … only…&lt;br /&gt;
Much more&lt;br /&gt;
&lt;br /&gt;
More: See All Articles in this Essentials&lt;br /&gt;
&lt;br /&gt;
How to Make Luggage Tags&lt;br /&gt;
&lt;br /&gt;
Making your suitcase remain out in a sea regarding nearly matching checked bags is easy whenever you make…&lt;br /&gt;
More&lt;br /&gt;
&lt;br /&gt;
More: See All Articles in this Essentials&lt;br /&gt;
&lt;br /&gt;
How to File any Complaint About an Airline&lt;br /&gt;
&lt;br /&gt;
Few travelers have never at least proficient once or twice the fury of traveling on an airline…&lt;br /&gt;
Extra&lt;br /&gt;
&lt;br /&gt;
Even though many regarding us own become accustomed to traveling through baggage, you can travel with no…&lt;br /&gt;
A lot more&lt;br /&gt;
&lt;br /&gt;
More: View All Articles on this Essentials&lt;br /&gt;
&lt;br /&gt;
How to Acquire Lost Luggage&lt;br /&gt;
&lt;br /&gt;
Extra: See All Articles within this Essentials&lt;br /&gt;
&lt;br /&gt;
Difficulty: Moderately Uncomplicated&lt;br /&gt;
Directions&lt;br /&gt;
&lt;br /&gt;
1 Test the coverage provided by way of the travel insurance policy policy.&lt;br /&gt;
&lt;br /&gt;
2 Decide the series of activity based on the kind of loss or misfortune sustained. &lt;br /&gt;
&lt;br /&gt;
4 Call the insurance policy factor to make sure you employ the correct claim form. Claim forms differ according to the kind of coverage inside your policy.&lt;br /&gt;
&lt;br /&gt;
5 Inquire the insurance agent in relation to the facts and documents required for processing your claim. Usually several documents being nicely as pertinent info roughly your journey need to be submitted with your claim kind. These typically include travel date(s), manner of transport, name of travel agency also reservation receipts. &lt;br /&gt;
&lt;br /&gt;
6 Collect and keep all the documents you believe are related to your declare for the kind of coverage in the policy. Your insurance agent can guide plus aid you in this effort.&lt;br /&gt;
&lt;br /&gt;
7 Cooperate along with the adjuster from the [http://howtomakeaclaim54.deviantart.com/journal/37089251 insurance] firm to verify your declare.&lt;br /&gt;
&lt;br /&gt;
8 Assess the depreciation value, if possible.&lt;br /&gt;
&lt;br /&gt;
10 Stay on touch by way of your agent to ensure prompt processing of state.  &lt;br /&gt;
&lt;br /&gt;
Documents Needed for Distinct States:&lt;br /&gt;
&lt;br /&gt;
1 Rental auto claim: Provide the make of car, journey date, proof of journey, law enforcement agency complaint copy and the estimate of loss or damage.&lt;br /&gt;
&lt;br /&gt;
2 Air travel: Supply a copy regarding the airline tickets, evidence regarding travel plus estimated loss or harm.&lt;br /&gt;
&lt;br /&gt;
3 Baggage theft: Offer a list of items that is are lost or stolen, some copy of the grumble to police and travel agency plus estimated cost. &lt;br /&gt;
&lt;br /&gt;
4 Baggage delay: Furnish a list along with receipts of urgent purchases until your baggage was returned.&lt;br /&gt;
&lt;br /&gt;
5 Medical expenses: Monitor the treatment offered also retain a list of prescriptions and receipts for reimbursement.&lt;br /&gt;
&lt;br /&gt;
A large quantity of claims are rejected in insurance companies for belongings that were left unattended in airport lounges, hotels, restaurants, train stations plus bus stops. The firm rejects these claims with proverb the person had never taken &quot;reasonable treatment.&quot;&lt;/div&gt;</content>
		<author>
			<name>GladysPhipps3</name>
			<uri>http://www.ironpython.info/index.php/Special:NewPages</uri>
		</author>
	</entry>

	<entry>
		<title type="html">IronPython Cookbook (New Entries): Incar insurance 8567</title>
		<link href="http://www.ironpython.info/index.php/Incar_insurance_8567"/>
		<id>http://www.ironpython.info/index.php/Incar_insurance_8567</id>
		<updated>2011-02-09T07:57:45+00:00</updated>
		<content type="html">&lt;p&gt;MarquisFeliciano: Created page with 'thumb|  Difficulty: Challenging Directions  1 Find the approximate value regarding the automobile you want to insure. Insurers need their own pr…'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:auto_insurance_4595.jpg|thumb|]]&lt;br /&gt;
&lt;br /&gt;
Difficulty: Challenging&lt;br /&gt;
Directions&lt;br /&gt;
&lt;br /&gt;
1 Find the approximate value regarding the automobile you want to insure. Insurers need their own proprietary tables they use to determine any baseline value for a vehicle. You may get an approximate value by way of looking in the Kelley Blue Book, using online tools or checking what the express values the automobile on for possession tax objectives. The more valuable a vehicle, the more it will charge to insure.&lt;br /&gt;
&lt;br /&gt;
2 Add any additional premiums or discounts to where you stay. If you live inside a large metropolis or high crime location, your vehicle insurance will rise. However, if you live in a crime-free or rural region, you can anticipate to pay less.&lt;br /&gt;
&lt;br /&gt;
3 Add up the way many driving tickets you need received or every other negative driving incidents, like driving under the influence. A bad driving record leads to higher insurance premiums. Numerous insurers deal discounts to good records.&lt;br /&gt;
&lt;br /&gt;
4 Add in the stuff of your credit rating. If you get a beneficial credit rating, you might spend less for car insurance. However, a bad credit rating will count against you also cause your premiums to rise.&lt;br /&gt;
&lt;br /&gt;
5 Add upward the way many accidents you possess been involved in. Even if the accidents were not your fault, you will pay more for automobile insurance for every accident.&lt;br /&gt;
&lt;br /&gt;
6 Check to spot if you have had any gaps in insurance policy coverage. If you obtain let your [http://www.hangar.org/wikis/lab/doku.php?id=car_insurance_online_-_how_to_compare_car_insurance_prices_online auto insurance] policy lapse prior to, insurers will charge you further to coverage.&lt;br /&gt;
&lt;br /&gt;
7 Add in each other additional costs that is might affect your insurance policy. Men pay more other than girls. If you are below 25 long time aged, you will obtain to pay more. Single persons are charged higher rates than married persons.&lt;br /&gt;
&lt;br /&gt;
Suggestions &amp;amp; Warnings&lt;br /&gt;
&lt;br /&gt;
Quite a few insurers have extra discounts for a variety of things. Ask if you qualify for any one.&lt;br /&gt;
&lt;br /&gt;
Some automobile insurance companies propose online premium guess. You can enter your basic facts on their websites to find a rate quote.&lt;/div&gt;</content>
		<author>
			<name>MarquisFeliciano</name>
			<uri>http://www.ironpython.info/index.php/Special:NewPages</uri>
		</author>
	</entry>

	<entry>
		<title type="html">IronPython Cookbook (New Entries): YOU WOULD COOK FOR HER THEN SLIT HER THROAT AND COLLECT THE INSURANCE MONEY 42070</title>
		<link href="http://www.ironpython.info/index.php/YOU_WOULD_COOK_FOR_HER_THEN_SLIT_HER_THROAT_AND_COLLECT_THE_INSURANCE_MONEY_42070"/>
		<id>http://www.ironpython.info/index.php/YOU_WOULD_COOK_FOR_HER_THEN_SLIT_HER_THROAT_AND_COLLECT_THE_INSURANCE_MONEY_42070</id>
		<updated>2011-02-09T07:29:38+00:00</updated>
		<content type="html">&lt;p&gt;WitaWomack8: Created page with 'thumb|  Learn the Illinois Laws regarding [http://wiki.od.k12.in.us/groups/21stcenturylearning/weblog/24909/Auto_Insurance__How_To_Choose_An_Aut…'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:auto_insurance_5086.jpg|thumb|]]&lt;br /&gt;
&lt;br /&gt;
Learn the Illinois Laws regarding [http://wiki.od.k12.in.us/groups/21stcenturylearning/weblog/24909/Auto_Insurance__How_To_Choose_An_Auto_Insurance_Deductible.html auto insurance].&lt;br /&gt;
&lt;br /&gt;
Drivers purchase auto insurance for cars , trucks, trailers and other moving vehicles . The insurance policy protects you away from any losses that is could result away from a collision, and covers you for liability in a crash. Having auto insurance policy is a official demand, nonetheless certain insurance laws differ state by express. If you reside in Illinois, familiarize yourself in the express's auto insurance policy laws.&lt;br /&gt;
&lt;br /&gt;
Minimums&lt;br /&gt;
&lt;br /&gt;
Uninsured Protection&lt;br /&gt;
&lt;br /&gt;
Under Illinois law, uninsured motorist coverage and underinsured motorist coverage are mandatory. Uninsured coverage pays the expenses of bodily injuries you attract in the event about one accident with a hit and run driver, or someone driving with no car insurance who causes some crash. The minimum limits with this insurance are $20,000 each person, and $40,000 per accident. Underinsured Motorist Coverage spends for any one difference between some policyholder's limits and the liability boundaries of the individual who caused the accident. This only occurs if the limits are decrease besides the underinsured motorist coverage.&lt;br /&gt;
&lt;br /&gt;
Proof regarding Insurance&lt;br /&gt;
&lt;br /&gt;
You must produce proof regarding insurance to register or drive your automobile. Failure to do very may result in a very good of up to $1,000 depending on the predicament. Your insurance policy card represents proof about insurance, which you need to manufacture upon request.&lt;/div&gt;</content>
		<author>
			<name>WitaWomack8</name>
			<uri>http://www.ironpython.info/index.php/Special:NewPages</uri>
		</author>
	</entry>

	<entry>
		<title type="html">IronPython Cookbook (New Entries): Health insurance 4731</title>
		<link href="http://www.ironpython.info/index.php/Health_insurance_4731"/>
		<id>http://www.ironpython.info/index.php/Health_insurance_4731</id>
		<updated>2011-02-09T07:00:13+00:00</updated>
		<content type="html">&lt;p&gt;FerrerDoty3: Created page with 'thumb|  If you are interested in exclusive accident, you will want to present evidence of insurance.  All 50 states have laws requiring mo…'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Automobile_insurance_4038.jpg|thumb|]]&lt;br /&gt;
&lt;br /&gt;
If you are interested in exclusive accident, you will want to present evidence of insurance.&lt;br /&gt;
&lt;br /&gt;
All 50 states have laws requiring motorists to carry insurance on their passenger vehicles . Insurance policy is necessary to spend with special bodily injury and possession harm incurred in exclusive automobile accident. Because numerous folks fail to bring proper insurance on their vehicle, the states additionally now require motorists to purchase uninsured motorist coverage so costs you attract being a effect of exclusive accident will be enveloped.&lt;br /&gt;
&lt;br /&gt;
Liability Insurance policy&lt;br /&gt;
&lt;br /&gt;
The essential insurance requirement for operating any passenger car on the streets and highways about the U.S. yous liability insurance policy. Liability insurance policy protects you if you are by fault for an accident, as you can be held financially responsible for any damages or each injury you or another person sustained.  Automobile proprietors must provide proof of responsibility insurance for automobile registration plus registration renewal. Simple liability coverage in many express is $25,000 each person for bodily injury, $50,000 each accident for bodily injury plus $10,000 each accident for property damage. Check along with your state's department of engine vehicles for required coverage sums. [http://vietmee.com/blogs/entry/Online-Automobile-Insurance-How-To-Search-For-Insurance Automobile insurance].&lt;br /&gt;
&lt;br /&gt;
Current Coverage&lt;br /&gt;
&lt;br /&gt;
Evidence of Insurance&lt;br /&gt;
&lt;br /&gt;
Proof regarding existing insurance need to be carried in the automobile at all times, in any case of the kind of insurance. Depending on your express of residence, there may be several options for providing insurance policy coverage for your passenger vehicles. Besides purchasing liability coverage from exclusive insurance company, you may be able to post a surety bond or some other variety of safe monetary instrument in an amount establish by your state's insurance law. Different express get detailed necessity, but this amount remains usually at least $60,000. Large businesses with some fleet of vehicles can file self insurance documents that prove the capacity to spend with damage caused by a vehicle owned by the corporation. This option can include posting documents with the express displaying the self insurance amount has been collection aside in an account that is cannot be used for other normal business needs. In all cases, present evidence regarding insurance should be carried with every vehicle driven on our country's streets and roads.&lt;/div&gt;</content>
		<author>
			<name>FerrerDoty3</name>
			<uri>http://www.ironpython.info/index.php/Special:NewPages</uri>
		</author>
	</entry>

	<entry>
		<title type="html">IronPython Cookbook (New Entries): Legal difference is that auto insurance mandated by states under police power 90856</title>
		<link href="http://www.ironpython.info/index.php/Legal_difference_is_that_auto_insurance_mandated_by_states_under_police_power_90856"/>
		<id>http://www.ironpython.info/index.php/Legal_difference_is_that_auto_insurance_mandated_by_states_under_police_power_90856</id>
		<updated>2011-02-09T03:20:30+00:00</updated>
		<content type="html">&lt;p&gt;PraksedaSherman: Created page with 'thumb|  New Jersey provide you with an affordable basic policy.  Each express has its own laws governing car insurance requirements, like …'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:automobile_insurance_2476.jpg|thumb|]]&lt;br /&gt;
&lt;br /&gt;
New Jersey provide you with an affordable basic policy.&lt;br /&gt;
&lt;br /&gt;
Each express has its own laws governing car insurance requirements, like as required amounts regarding coverage and what types regarding insurance a driver must have to legally operate some automobile . Inside order to produce car insurance further affordable, New Jersey enacted the [http://exim-jp.sourceforge.jp/cgi-bin/moin.cgi/AutoInsurance Automobile Insurance] policy Cost Reduction Act that established a essential scheme that resembles the typical minimum limits policy on many methods.  Still, there are certain critical exceptions that could demonstrate expensive in the occasion of exclusive accident. The Department about Banking and Insurance recommends that only folks with restrained assets and family responsibilities opt with the simple policy.&lt;br /&gt;
&lt;br /&gt;
Liability Insurance policy&lt;br /&gt;
&lt;br /&gt;
Personal Injury Guard&lt;br /&gt;
&lt;br /&gt;
New Jersey law takes drivers to carry personal injury shield insurance. This insurance deal with medical expenses regardless about fault.  Both the normal plus basic policies offer at lowest $15,000 of coverage. Certain sorts of injuries such being brain also spinal cord injuries qualify for upward to $250,000 of coverage, regardless of the chosen policy amount.&lt;br /&gt;
&lt;br /&gt;
Underinsured/Uninsured Motorist Coverage&lt;br /&gt;
&lt;br /&gt;
Drivers must also carry insurance to cover damages ensuing out of an accident in which the at-fault driver has no insurance or not enough insurance to cover responsibility. The regulation takes carriers to offer consumers amounts equal to their picked liability periods. The basic scheme does not provide this coverage.&lt;br /&gt;
&lt;br /&gt;
Lawsuits&lt;br /&gt;
&lt;br /&gt;
Basic scheme coverage does not pay for appropriate representation if someone sues the policyholder. This insurance policy policy also limits the consumer's right to sue for damages resulting away from an accident. Whether a driver elects for limited right to sue (she might only sue in certain instances such as loss of a body part or permanent injury) or indefinite appropriate to sue (she has the correct to sue for each and every injury) will affect the cost of the premium.&lt;/div&gt;</content>
		<author>
			<name>PraksedaSherman</name>
			<uri>http://www.ironpython.info/index.php/Special:NewPages</uri>
		</author>
	</entry>

	<entry>
		<title type="html">IronPython Cookbook (New Entries): Hey iwonder if there really is a gekco for tha gieco auto insurance 31979</title>
		<link href="http://www.ironpython.info/index.php/Hey_iwonder_if_there_really_is_a_gekco_for_tha_gieco_auto_insurance_31979"/>
		<id>http://www.ironpython.info/index.php/Hey_iwonder_if_there_really_is_a_gekco_for_tha_gieco_auto_insurance_31979</id>
		<updated>2011-02-09T03:02:15+00:00</updated>
		<content type="html">&lt;p&gt;SorrowsCook8: Created page with 'thumb|  Insuring any auto that is you conduct not own, that is never registered in your name may be any difficult topic. This is since insurance…'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:auto_insurance_2131.jpg|thumb|]]&lt;br /&gt;
&lt;br /&gt;
Insuring any auto that is you conduct not own, that is never registered in your name may be any difficult topic. This is since insurance law prohibits insurers from selling policies to individuals to cars they do not own insurable attention on. This regulation restricts the opportunity for fraud that arises when an people buys any [http://wiki.guillaume.lelarge.info/doku.php?id=paccident_awareness_-_be_safe car insurance] policy for someone else, only with the purpose about making a earnings when the insured party is included on an accident. Although most insurers may sell you auto insurance for one automobile that belongs to someone else, most insurers will not even take into account marketing such a policy. With the small percentage of companies that will allow you to buy auto insurance to any car you manage not own, you will have to satisfy diverse necessities and display insurable attention.&lt;br /&gt;
&lt;br /&gt;
Difficulty: Reasonable&lt;br /&gt;
Directions&lt;br /&gt;
&lt;br /&gt;
1 Conduct an online price comparison. The initial step with purchasing auto insurance for any vehicle you work not own is the identical as for some vehicle registered in your name. Visit various vehicle insurance policy websites, fill in the particulars plus compare prices quoted by different insurance providers. Notable car insurance websites contain website&quot; plus website.&quot;  Once you have narrowed your list of insurance policy providers, you will have to speak to every one individually.&lt;br /&gt;
&lt;br /&gt;
3 Determine the way in which to demonstrate insurable attention. If a supplier is willing to sell you a policy, you would have to confirm that is your reasons for insuring someone else's automobile is legitimized, and not geared toward profit. Talk to the insurer and find out what documents to furnish to display insurable curiosity. If the owner about the vehicle remains family member, similar as your father or teenage child, you may well provide documents to verify that both regarding you live in the similar address or have the same final name. If you want to insure a vehicle you recently purchased, and the title about the car remains all the same within the authentic owner's name, you may need to make available evidence of purchase, such as a sale contract.&lt;br /&gt;
&lt;br /&gt;
4 Afford the required documents to demonstrate insurable interest. In addition to the documents, you would as well obtain to obtain express penned consent from the car's proprietor, permitting you to buy a policy on the automobile. Collect the documents and provide them to the company. The agent you are dealing with might help you in gathering and preparing the obligatory paperwork.&lt;br /&gt;
&lt;br /&gt;
5 Determine whether to include the owner in the policy. The company will require you to either include the registered owner as the driver, or solely exclude from coverage. If you determine to exclude the driver, you will have to sign a formal contract stating that the insurance policy business will not deal with the driver unless you personally add the driver.&lt;br /&gt;
&lt;br /&gt;
Tips &amp;amp; Warnings&lt;br /&gt;
&lt;br /&gt;
Inside some events it may possibly be impossible to reflect insurable attention that is will satisfy the insurance provider's requirements. Inside conditions wish this, consider talking to the car owner and becoming one of the owners. If this is never an option, the proprietor may buy the insurance policy scheme except you would pay out the premiums to the owner, who would after that pay it to the company.&lt;/div&gt;</content>
		<author>
			<name>SorrowsCook8</name>
			<uri>http://www.ironpython.info/index.php/Special:NewPages</uri>
		</author>
	</entry>

	<entry>
		<title type="html">IronPython Cookbook (New Entries): Insurance approved auto glass repair and replacement In shop or we come to you 28085</title>
		<link href="http://www.ironpython.info/index.php/Insurance_approved_auto_glass_repair_and_replacement_In_shop_or_we_come_to_you_28085"/>
		<id>http://www.ironpython.info/index.php/Insurance_approved_auto_glass_repair_and_replacement_In_shop_or_we_come_to_you_28085</id>
		<updated>2011-02-09T01:57:01+00:00</updated>
		<content type="html">&lt;p&gt;MinnieJacobsen: Created page with 'thumb|  Buyer-Submitted Article  [http://podcast.kent.k12.md.us/groups/galenamiddle/weblog/a9271/Insurer_Programs_-_How_to_Find_a_Cheap_He…'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:automobile_insurance_2061.jpg|thumb|]]&lt;br /&gt;
&lt;br /&gt;
Buyer-Submitted Article&lt;br /&gt;
&lt;br /&gt;
[http://podcast.kent.k12.md.us/groups/galenamiddle/weblog/a9271/Insurer_Programs_-_How_to_Find_a_Cheap_Health_Insurance_Plan__-_Save_Big.html Automobile insurance] with your truck, auto or SUV is a want in most express.  Numerous purchasers need no idea what they are purchasing, but it is significant to understand the basics of any car insurance policy scheme. You can figure this away, in the breakdown below.&lt;br /&gt;
&lt;br /&gt;
Difficulty: Reasonable&lt;br /&gt;
Instructions&lt;br /&gt;
&lt;br /&gt;
Things You'll Need:&lt;br /&gt;
&lt;br /&gt;
reading skills&lt;br /&gt;
&lt;br /&gt;
1 Realize the terms.  Liability insurance yous coverage in case you cause an accident.  It does never cover you.  It deal with the additional driver and his vehicle .  This is the insurance that is yous generally required by state law.  New Hampshire plus Wisconsin create not require auto insurance at this duration.  Liability coverage remains split into Possession Injury and Physical Injury.  Possession Damage Liability covers anything your car harms.  Bodily INJURY Liability covers wounds to some individual caused by your car.  Here may also be Personal INJURY Immunity and extra Bodily INJURY COVERAGE that will defend you. Complete and COLLISION coverage are insurance on YOUR automobile.  Comprehensive remains coverage to incidents to your automobile--fire, burglary, trees dropping, glass breakage.  Collision coverage remains in circumstance you are in an accident, and it deal with your car. UNINSURED MOTORIST coverage covers YOUR medical bills in situation of hit-and-run or somebody with no insurance policy injures you.  Various states call for that is this also contain under-insured motorists, or those whose insurance policy yous not sufficient to protect your injuries.&lt;br /&gt;
&lt;br /&gt;
2 Know what you need.  Each express usually has some minimum with liability coverage (except for New Hampshire also Wisconsin once again) plus of program you want to boast the minimum.  You need to have more than the minimum if you have assets.  Another advantage to having high responsibility limits yous to be able to increase your uninsured motorist coverage (guard for yourself).  Most policies will never allow coverage for uninsured motorists to exceed liability limits.&lt;br /&gt;
&lt;br /&gt;
3 Save cash on auto insurance policy.  Ask to discounts and ask the agent to calculate several deductibles also different coverages.  You may get a discount with additional cars, good driving record, age deductions, home and auto discounts for having either with the identical agent, plus driver's education courses.  Anti-theft devices on the automobile, also even your location can affect the expense of an car insurance policy policy. Utilize a comparison web site to compare prices on several insurance companies. You may well furthermore want to contact your State Insurance Commissioner or similar workplace to witness if there are ratings for the companies you are interested in.  Many states have websites fixed up with ratings for insurers, and you may check to realize the way in which beneficial they are to pay, how promptly they pay a claim, and the way they rank with consumer satisfaction.&lt;br /&gt;
&lt;br /&gt;
By means of the knowledge of terms for vehicle insurance and a tiny information, you can make an advised decision for your automobile insurance policy.&lt;br /&gt;
&lt;br /&gt;
copyright 2009 Linda Richard&lt;br /&gt;
&lt;br /&gt;
Please feel free to link to this article or send it to a friend.&lt;/div&gt;</content>
		<author>
			<name>MinnieJacobsen</name>
			<uri>http://www.ironpython.info/index.php/Special:NewPages</uri>
		</author>
	</entry>

	<entry>
		<title type="html">IronPython Cookbook (New Entries): Meh Certification 38442</title>
		<link href="http://www.ironpython.info/index.php/Meh_Certification_38442"/>
		<id>http://www.ironpython.info/index.php/Meh_Certification_38442</id>
		<updated>2011-02-08T08:55:20+00:00</updated>
		<content type="html">&lt;p&gt;NonnatusSong3: Created page with 'thumb|  User-Submitted Article  Obtaining Internet teacher certification remains becoming main stream being more plus more people look for degrees…'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:certification_703.jpg|thumb|]]&lt;br /&gt;
&lt;br /&gt;
User-Submitted Article&lt;br /&gt;
&lt;br /&gt;
Obtaining Internet teacher certification remains becoming main stream being more plus more people look for degrees on the web . If you want to go this route, you need to choose the institution out of which you obtain your online teaching certification meticulously.&lt;br /&gt;
&lt;br /&gt;
1 The first step with getting Internet teacher documentation is to research colleges that is offer degrees in the type about teaching that you want to accomplish.&lt;br /&gt;
&lt;br /&gt;
2 Once you have found several schools offering the online teacher certification that you are looking for, examine to see that they are accredited. Solely because the website asserts they are does not mean it is true. Look to discover that they are accredited by the National Council to the Accreditation of Teacher Education . It should additionally satisfy the minimums for the No Child Left Behind Act.&lt;br /&gt;
&lt;br /&gt;
3 After checking their accreditation, check to see that is the online teaching [http://www.hvacinstaller.com/training-schools-certification/ authorization] courses offered match your state's requirements.&lt;br /&gt;
&lt;br /&gt;
4 Once you obtain narrowed your choices of colleges offering Internet teacher authorization speak to an enrollment counselor. They are there to aid you and answer questions.&lt;br /&gt;
&lt;br /&gt;
5 Once you boast enrolled plus are nearing the end of your Web teaching authentication classes secure on feel with the school district that is you wish to instruct in. Find out what their specific requirements are in regards to practice teaching, etc.&lt;br /&gt;
&lt;br /&gt;
6 After you have successfully finished your online teacher documentation you are ready to apply for your express license.&lt;/div&gt;</content>
		<author>
			<name>NonnatusSong3</name>
			<uri>http://www.ironpython.info/index.php/Special:NewPages</uri>
		</author>
	</entry>

	<entry>
		<title type="html">IronPython Cookbook (New Entries): Mail to VMware certification is sent 99106</title>
		<link href="http://www.ironpython.info/index.php/Mail_to_VMware_certification_is_sent_99106"/>
		<id>http://www.ironpython.info/index.php/Mail_to_VMware_certification_is_sent_99106</id>
		<updated>2011-02-08T08:19:33+00:00</updated>
		<content type="html">&lt;p&gt;AutherSanford: Created page with 'thumb|  If you are a competent swimmer also you like to teach, then a YMCA swim instructor authorization may be the qualification that is will se…'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:certification_3154.jpg|thumb|]]&lt;br /&gt;
&lt;br /&gt;
If you are a competent swimmer also you like to teach, then a YMCA swim instructor authorization may be the qualification that is will set your skills and enthusiasm to very good use to great pay.&lt;br /&gt;
&lt;br /&gt;
Prerequisites&lt;br /&gt;
&lt;br /&gt;
Candidates must be 16 years of era, be competent with a variety about swim strokes and have a basic first aid qualification. Some YMCAs also demand lifeguard authentication prior to taking their swim instructor course, which is some good idea in any case mainly because many swim instructor piece of work also require it.&lt;br /&gt;
&lt;br /&gt;
Program Details&lt;br /&gt;
&lt;br /&gt;
Advantages&lt;br /&gt;
&lt;br /&gt;
Swim instructors are in high demand. Essential group lessons shell out around $15/hour, yet good instructors can charge three to six times that is volume for exclusive lessons. Part-free time work remains additionally obtainable, and a YMCA swim instructor [http://www.hvacinstaller.com/training-schools-certification/ authentication] can also be an engaging addition to any summer camp counselor or aquatics instructor.&lt;/div&gt;</content>
		<author>
			<name>AutherSanford</name>
			<uri>http://www.ironpython.info/index.php/Special:NewPages</uri>
		</author>
	</entry>

	<entry>
		<title type="html">John Lam on IronRuby: My First Day in Windows</title>
		<link href="http://iunknown.com/my-first-day-in-windows"/>
		<id>http://iunknown.com/my-first-day-in-windows</id>
		<updated>2011-02-08T07:22:00+00:00</updated>
		<content type="html">&lt;p&gt;
	
&lt;/p&gt;&lt;p&gt;Every now and then an opportunity opens up that so lines up with my interests that I can't pass it up. Today, I just completed my first day as a member of the Windows team. My career so far has been a series of these interesting changes, all of which has led me to my new team.At each step I've learned something new, be it launching my own start-up to sell software to OEMs to working on a start-up team at Microsoft building some fantastic tooling for Technical Computing. The next step of my journey will involve learning how to ship software at scale. I'm looking forward to the challenge, and being able to share with you (at the appropriate time) all of the hard work that we're doing in Windows!&lt;/p&gt;
	


&lt;p&gt;&lt;a href=&quot;http://iunknown.com/my-first-day-in-windows&quot;&gt;Permalink&lt;/a&gt; 

	| &lt;a href=&quot;http://iunknown.com/my-first-day-in-windows#comment&quot;&gt;Leave a comment  »&lt;/a&gt;

&lt;/p&gt;</content>
		<author>
			<name>John Lam on IronRuby</name>
			<uri>http://iunknown.com</uri>
		</author>
	</entry>

	<entry>
		<title type="html">Jeff Hardy's Blog (NWSGI): IronPython 2.7 Beta 2 Now Available</title>
		<link href="http://feedproxy.google.com/~r/JeffHardysBlog/~3/Pud1gc3lbsg/ironpython-27-beta-2-now-available.html"/>
		<id>tag:blogger.com,1999:blog-597261753977781.post-939803781306291713</id>
		<updated>2011-02-07T08:40:01+00:00</updated>
		<content type="html">&lt;p&gt;At long (long) last, the first community release of IronPython is now available – &lt;a href=&quot;http://ironpython.codeplex.com/releases/view/60193&quot;&gt;IronPython 2.7 Beta 2&lt;/a&gt;. The highlights of this release are the new zlib (which also enables gzip) and subprocess modules. There have also been a number of bug fixes.&lt;/p&gt; &lt;p&gt;Since Beta 1, we've moved all development to the Github &lt;a href=&quot;https://github.com/IronLanguages/main&quot;&gt;IronLanguages project&lt;/a&gt;, although the &lt;a href=&quot;http://ironpython.codeplex.com/workitem/list/basic&quot;&gt;issue tracker&lt;/a&gt; is still on CodePlex. This meant learning the build system, learning how to package a release (something that needs some work), and various other odds 'n ends. There are definitely some stumbling blocks that new people might trip over, so those should be taken care of as soon as possible.&lt;/p&gt; &lt;p&gt;The next release is &lt;a href=&quot;http://www.google.com/calendar/embed?src=i72rkrajdpshnj17rvmqatmp88%40group.calendar.google.com&amp;amp;ctz=America/Edmonton&quot;&gt;scheduled for&lt;/a&gt; February 20th. The first IronPython Bug Weekend is scheduled for February 12-13th; more on that coming soon.&lt;/p&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img alt=&quot;&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/597261753977781-939803781306291713?l=blog.jdhardy.ca&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href=&quot;http://feedads.g.doubleclick.net/~a/rm6x-4uOd3uHn_Elx_LOBWvYDy8/0/da&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;true&quot; src=&quot;http://feedads.g.doubleclick.net/~a/rm6x-4uOd3uHn_Elx_LOBWvYDy8/0/di&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://feedads.g.doubleclick.net/~a/rm6x-4uOd3uHn_Elx_LOBWvYDy8/1/da&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;true&quot; src=&quot;http://feedads.g.doubleclick.net/~a/rm6x-4uOd3uHn_Elx_LOBWvYDy8/1/di&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img height=&quot;1&quot; src=&quot;http://feeds.feedburner.com/~r/JeffHardysBlog/~4/Pud1gc3lbsg&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>jdhardy (noreply@blogger.com)</name>
			<uri>http://blog.jdhardy.ca/</uri>
		</author>
	</entry>

	<entry>
		<title type="html">IronPython Cookbook (New Entries): Building A Chain Link Dog Kennel 12162</title>
		<link href="http://www.ironpython.info/index.php/Building_A_Chain_Link_Dog_Kennel_12162"/>
		<id>http://www.ironpython.info/index.php/Building_A_Chain_Link_Dog_Kennel_12162</id>
		<updated>2011-02-04T23:56:53+00:00</updated>
		<content type="html">&lt;p&gt;WilhelminaBenavides: Created page with 'thumb|  Research engine optimization is often viewed as the distinction maker between success and failure on the world of online business . The g…'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:link_building_4189.jpg|thumb|]]&lt;br /&gt;
&lt;br /&gt;
Research engine optimization is often viewed as the distinction maker between success and failure on the world of online business . The growing field is increasingly gaining seriousness and prevalence, also new job opportunities have been made obtainable at either Internet marketing firms and individual corporations. One SEO manager will take on a variety about diverse roles and will need any wide array of skills and know-how.&lt;br /&gt;
&lt;br /&gt;
Organic Search Engine Optimization&lt;br /&gt;
&lt;br /&gt;
A single of the main priorities regarding an SEO manager will be organic seek out engine optimization. This includes all aspects of SEO exterior of pay-per-click advertising, which is not included in the organic realm. Areas about importance include keyword investigation, on-page optimization, link building, domain name selection, overall marketing and promotion and further. Digging up important keywords plus crucial phrases plus utilizing them in the correct fashion remains some priority.&lt;br /&gt;
&lt;br /&gt;
[http://lease-a-seo.com/ Link] Making&lt;br /&gt;
&lt;br /&gt;
Link making has risen to the premier job of any SEO chief. In the 2009 Search Engine Ranking Factors study compiled by Seomoz.org, factors related to link building held the top 3 most crucial places for how websites secure ranked within the search engines. An SEO manager will need to obtain partnerships also support within the niche or industry, get high-ranking websites ready to link back to the business site, provide you with services and collaboration with other webmasters plus participate in various other strategies to help construct links to the site.&lt;br /&gt;
&lt;br /&gt;
Pay Per Click&lt;br /&gt;
&lt;br /&gt;
Social Media&lt;br /&gt;
&lt;br /&gt;
Social media is gaining more prominence with the realm about Web selling also research engine optimization. Nearly any task description for one SEO manager today will place some premium on some craft set that includes any proved track report navigating the ever-evolving globe of sociable media. As able to utilize tools also services such as Facebook, You Tube, Twitter, MySpace, LinkedIn and others is of the utmost importance.&lt;br /&gt;
&lt;br /&gt;
Business vs. Unique Corporations&lt;br /&gt;
&lt;br /&gt;
The job description for exclusive SEO manager working in a business, as opposed to particular working for an individual company, will be very different. The SEO executive at a firm will be handling multiple clients and accounts, and will be any part about any larger crew that's all dedicated to online marketing and seek out engine optimization. The SEO executive working for just a company will about course be focused on their wants alone, and will probably experience reduced help with terms of additional personnel members to buy the profession done.&lt;/div&gt;</content>
		<author>
			<name>WilhelminaBenavides</name>
			<uri>http://www.ironpython.info/index.php/Special:NewPages</uri>
		</author>
	</entry>

	<entry>
		<title type="html">Miguel de Icaza: On Reflector</title>
		<link href="http://tirania.org/blog/archive/2011/Feb-04.html"/>
		<id>http://tirania.org/blog/archive/2011/Feb-04.html</id>
		<updated>2011-02-04T20:44:00+00:00</updated>
		<content type="html">&lt;p&gt;Red
	Gate &lt;a href=&quot;http://www.red-gate.com/products/dotnet-development/reflector/&quot;&gt;announced&lt;/a&gt;
	that their Reflector tool would soon become a paid-for app.
	A few years ago they bought the rights to Reflector from Lutz
	Roeder and started maintaining two editions of the product:
	a free version and a commercial version with extra features.
	Many people in the .NET community feel unhappy about that
	decision.

	&lt;/p&gt;&lt;p&gt;Whether Red Gate's decision is good or not for them is up
	to other blogs to discuss.   I am grateful that over the years
	Reflector ran with Mono's Windows.Forms implementation and
	that the maintainers were careful to keep the code running
	with Mono.

	&lt;/p&gt;&lt;p&gt;Of course, I would always like more an open source
	equivalent to a proprietary tool, and while Reflector was a
	free download, it was never open source.

	&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://twitter.com/#!/bradwilson/status/33246848080678912&quot;&gt;Some
	believe&lt;/a&gt; that in response to the announcement we created a
	competitor to Reflector.   We did not.

	&lt;/p&gt;&lt;p&gt;We have had a decompiler in Mono for a few years now.
	First, we had a decompiler contributed to MonoDevelop by
	Andrea and we later replace it with the one that was
	developed by JB Evain:

	&lt;/p&gt;&lt;center&gt;
	&lt;img src=&quot;http://tirania.org/shots/1102040115FHDwvo6C.png&quot; /&gt;
	&lt;/center&gt;
	
	&lt;p&gt;The current decompiler in MonoDevelop actually originated
	not as a decompiler, but as
	a &lt;a href=&quot;http://evain.net/blog/articles/2005/11/19/flow-analysis-using-cecil&quot;&gt;flow-analysis
	tool&lt;/a&gt; in 2005.  It was part of
	db4Object's &lt;a href=&quot;http://developer.db4o.com/Documentation/Reference/db4o-8.0/java/tutorial/docs/Query.html#NativeQueries&quot;&gt;Native
	Queries&lt;/a&gt;.  Native Queries were a way of getting some of the
	benefits of LINQ without any compiler support.  It worked by
	reassembling the AST at runtime from a stream of IL
	instructions.  For example, you could use the following C#
	code to query a database:

	&lt;/p&gt;&lt;pre class=&quot;code-csharp&quot;&gt;
IList  pilots = db.Query  (delegate(Pilot pilot) {
	return pilot.Points == 100;
});
	&lt;/pre&gt;

	&lt;p&gt;The Query method would decompile the code in the delegate
	and reconstruct the abstract syntax tree and determine that
	the expression to query was pilot.Points == 100.

	&lt;/p&gt;&lt;p&gt;JB Eventually expanded hi IL Manipulation
	library &lt;a href=&quot;http://www.mono-project.com/Cecil&quot;&gt;Cecil&lt;/a&gt;
	to contain a decompiler built based on the ideas of flow
	analysis.  JB described
	this &lt;a href=&quot;http://evain.net/blog/articles/2008/12/15/cecil-decompiler&quot;&gt;back
	in December of 2008&lt;/a&gt; as part of a Hack Week followed by a
	hack-a-thon:

	&lt;/p&gt;&lt;blockquote&gt;
	During the last Hack-Week, I started refactoring
	Cecil.FlowAnalysis, and since then, I’ve been working pretty
	seldom on it. It was last month that I decided to give it a
	kick, and even took a week of vacations to organize a CodeCamp
	with friends to give it a boost and have fun altogether
	&lt;/blockquote&gt;

	&lt;p&gt;The decompiler is just one of
	the &lt;a href=&quot;https://github.com/mono/cecil&quot;&gt;various tools&lt;/a&gt;
	built with Cecil and has been a standard component of
	MonoDevelop for a long time (it is part of MonoDevelop 2.4).

	&lt;/p&gt;&lt;p&gt;Although yesterday in response to the announcement,
	a &lt;a href=&quot;https://github.com/jcdickinson/Monoflector&quot;&gt;WPF
	UI&lt;/a&gt; was created for the Cecil.Decompiler.dll, this is not
	the only effort.   There is also an
	older &lt;a href=&quot;http://code.google.com/p/cecilstudio/&quot;&gt;Cecil
	Studio&lt;/a&gt; that uses Windows.Forms that was created a few
	years ago and of course, our own MonoDevelop assembly browser.

	&lt;/p&gt;&lt;p&gt;We welcome contributions to the decompiler for people
	interested in improving the core, regardless of their
	preference for a UI built on top of it:

	&lt;/p&gt;&lt;center&gt;
	&lt;img src=&quot;http://tirania.org/shots/1102040116trkDMlUN.png&quot; /&gt;
	&lt;/center&gt;

	&lt;p&gt;That being said, JB has been working on a new system that
	goes beyond decompilation and will be demoed at QCon next
	month.   Stay tuned for his demo.&lt;/p&gt;</content>
		<author>
			<name>Miguel de Icaza (miguel@gnome.org)</name>
			<uri>http://tirania.org/blog//index.html</uri>
		</author>
	</entry>

	<entry>
		<title type="html">Hex Dump: I finally own a smartphone, and it's not an iPhone</title>
		<link href="http://hex-dump.blogspot.com/2011/01/i-finally-own-smartphone-and-its-not.html"/>
		<id>tag:blogger.com,1999:blog-10338754.post-8921877388610835835</id>
		<updated>2011-01-22T07:58:00+00:00</updated>
		<content type="html">After years of being an outcast amongst my colleagues, happy with a simple mobile phone that just made phone calls, I made the decision to upgrade to a smartphone. Why would I, since I was actually happy with my &quot;no frills&quot; Nokia and it's excellent battery life which makes a smartphone look retarded. At work we are working on making our web applications more mobile friendly, so we needed a range</content>
		<author>
			<name>Mark Rees (noreply@blogger.com)</name>
			<uri>http://hex-dump.blogspot.com/</uri>
		</author>
	</entry>

	<entry>
		<title type="html">Miguel de Icaza: Adult Principles, from JPBarlow</title>
		<link href="http://tirania.org/blog/archive/2011/Jan-21.html"/>
		<id>http://tirania.org/blog/archive/2011/Jan-21.html</id>
		<updated>2011-01-22T03:49:00+00:00</updated>
		<content type="html">&lt;p&gt;A few days
	ago, &lt;a href=&quot;http://twitter.com/#!/jpbarlow&quot;&gt;John Perry
	Barlow&lt;/a&gt; twetted a series of Adult Principles, and I enjoyed
	reading them.  When he was asked where they came
	from, &lt;a href=&quot;http://twitter.com/#!/JPBarlow/status/25728111450529793&quot;&gt;he
	said&lt;/a&gt;:

	&lt;/p&gt;&lt;blockquote&gt;
	They're from a list I assembled for myself on the eve of my
	30th birthday. Many years ago.
	&lt;/blockquote&gt;
	
	&lt;p&gt;This is the collected set from his twitter
	feed:

	&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://twitter.com/#!/JPBarlow/status/25352034320388097&quot;&gt;Adult
	Principle #1&lt;/a&gt;: Be patient. No matter what.

	&lt;/p&gt;&lt;p&gt;Adult Principle #2: Don’t badmouth: Assign responsibility, not
	blame. Say nothing of another you wouldn't say to him.

	&lt;/p&gt;&lt;p&gt;Adult Principle #3: Never assume the motives of others are,
	to them, less noble than yours are to you.

	&lt;/p&gt;&lt;p&gt;Adult Principle #4 Expand your sense of the possible.

	&lt;/p&gt;&lt;p&gt;Adult Principle #5 Don’t trouble yourself with matters you
	truly cannot change.

	&lt;/p&gt;&lt;p&gt;Adult Principle #6 Don't ask more of others than you can
	deliver yourself.

	&lt;/p&gt;&lt;p&gt;Adult Principle #7 Tolerate ambiguity.

	&lt;/p&gt;&lt;p&gt;Adult Principle #8 Laugh at yourself frequently.

	&lt;/p&gt;&lt;p&gt;Adult Principle #9 Concern yourself with what is right rather
	than who is right.

	&lt;/p&gt;&lt;p&gt;Adult Principle #10 Try not to forget that, no matter how
	certain, you might be wrong.

	&lt;/p&gt;&lt;p&gt;Adult Principle #11 Give up blood sports.

	&lt;/p&gt;&lt;p&gt;Adult Principle #12	Remember that your life belongs to
	others as well. Don't risk it frivolously.

	&lt;/p&gt;&lt;p&gt;Adult Principles #13 Never lie to anyone for any reason. (Lies
	of omission are sometimes exempt.)

	&lt;/p&gt;&lt;p&gt;Adult Principle #14 Learn the needs of those around you and
	respect them.

	&lt;/p&gt;&lt;p&gt;Adult Principle #15	Avoid the pursuit of happiness. Seek
	to define your mission and pursue that.

	&lt;/p&gt;&lt;p&gt;Adult Principle #16	Reduce your use of the first personal
	pronoun.

	&lt;/p&gt;&lt;p&gt;Adult Principle #17	Praise at least as often as you
	disparage.

	&lt;/p&gt;&lt;p&gt;Adult Principle #18 Admit your errors freely and quickly.

	&lt;/p&gt;&lt;p&gt;Adult Principle #19	Become less suspicious of joy.

	&lt;/p&gt;&lt;p&gt;Adult Principle #20 Understand humility.

	&lt;/p&gt;&lt;p&gt;Adult Principle #21 Remember that love forgives everything.

	&lt;/p&gt;&lt;p&gt;Adult Principle #22.	Foster dignity.

	&lt;/p&gt;&lt;p&gt;Adult Principle #23.	Live memorably.

	&lt;/p&gt;&lt;p&gt;Adult Principle #24. Love yourself.

	&lt;/p&gt;&lt;p&gt;Adult Principle #25.	Endure.

	&lt;/p&gt;&lt;p&gt;A small detour, he &lt;a href=&quot;http://twitter.com/#!/JPBarlow/status/25980071256784896&quot;&gt;also tweeted&lt;/a&gt;

	&lt;/p&gt;&lt;blockquote&gt;
	If you want a new, improved mate, try treating the one you have better.
	&lt;/blockquote&gt;</content>
		<author>
			<name>Miguel de Icaza (miguel@gnome.org)</name>
			<uri>http://tirania.org/blog//index.html</uri>
		</author>
	</entry>

	<entry>
		<title type="html">Miguel de Icaza: Help us test Mono 2.10</title>
		<link href="http://tirania.org/blog/archive/2011/Jan-19.html"/>
		<id>http://tirania.org/blog/archive/2011/Jan-19.html</id>
		<updated>2011-01-20T09:23:00+00:00</updated>
		<content type="html">&lt;p&gt;Andrew has just released the packages for our &lt;b&gt;first
	preview of Mono 2.10&lt;/b&gt;, we published sources and packages
	for SLES, OpenSUSE, RHEL, Windows and MacOS X here:

	&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://mono.ximian.com/monobuild/preview/download-preview&quot;&gt;http://mono.ximian.com/monobuild/preview/download-preview&lt;/a&gt;

	&lt;/p&gt;&lt;p&gt;From
	our &lt;a href=&quot;http://mono-project.com/Release_Notes_Mono_2.10&quot;&gt;draft
	release notes&lt;/a&gt;, here are some of the highlights in this
	release:

	&lt;/p&gt;&lt;ul&gt;
	&lt;li&gt; &lt;a href=&quot;http://mono-project.com/Release_Notes_Mono_2.10#SGen_Garbage_Collector&quot; title=&quot;&quot;&gt;SGen Precise Stack Scanning and many performance improvements&lt;/a&gt;.
	&lt;/li&gt;&lt;li&gt; &lt;a href=&quot;http://mono-project.com/Release_Notes_Mono_2.10#New_Mono_Profiler&quot; title=&quot;&quot;&gt;New Profiler engine&lt;/a&gt; 
	&lt;/li&gt;&lt;li&gt; &lt;a href=&quot;http://mono-project.com/Release_Notes_Mono_2.10#Google_Native_Client_Support&quot; title=&quot;&quot;&gt;Google Native Client Support&lt;/a&gt; 
	&lt;/li&gt;&lt;li&gt; &lt;a href=&quot;http://mono-project.com/Release_Notes_Mono_2.10#Improved_Socket_and_Async_Stack&quot; title=&quot;&quot;&gt;Faster socket stack&lt;/a&gt; 
	&lt;/li&gt;&lt;li&gt; &lt;a href=&quot;http://mono-project.com/Release_Notes_Mono_2.10#Parallel_Framework_Updates&quot; title=&quot;&quot;&gt;Improved Parallel Framework&lt;/a&gt; 
	&lt;/li&gt;&lt;li&gt; &lt;a href=&quot;http://mono-project.com/Release_Notes_Mono_2.10#Cecil.2FLight&quot; title=&quot;&quot;&gt;Cecil/Light&lt;/a&gt; 
	&lt;/li&gt;&lt;li&gt; &lt;a href=&quot;http://mono-project.com/Release_Notes_Mono_2.10#New_C.23_Compiler_Backend&quot; title=&quot;&quot;&gt;New C# Compiler backend&lt;/a&gt; (can now use any custom mscorlib)
	&lt;/li&gt;&lt;li&gt; &lt;a href=&quot;http://mono-project.com/Release_Notes_Mono_2.10#VB_Compiler&quot; title=&quot;&quot;&gt;VB Compiler&lt;/a&gt; can now compile to both 2.0 and 4.0 profiles.
	&lt;/li&gt;&lt;/ul&gt; 

	&lt;p&gt;As well as containing a pile of
	&lt;a href=&quot;http://mono-project.com/Release_Notes_Mono_2.10#Bug_Fixes&quot;&gt;bug
	fixes&lt;/a&gt;.

	&lt;/p&gt;&lt;p&gt;As I mentioned last year, we are moving to a faster release
	schedule to get important features out for our users faster.
	For instance, our SGen garbage collector has been vastly
	improved and should perform better under load, and our
	ParallelFX got some real-life testing which helped us improve
	it significantly.

&lt;/p&gt;&lt;h3&gt;SGen Technical Discussion&lt;/h3&gt;

	&lt;p&gt;Mark has been blogging the technical details about the
	architecture of the SGen garbage collector, you can read the
	documents here:

	&lt;/p&gt;&lt;ul&gt;
	&lt;li&gt; &lt;a href=&quot;http://schani.wordpress.com/2010/12/20/sgen/&quot; rel=&quot;nofollow&quot; title=&quot;http://schani.wordpress.com/2010/12/20/sgen/&quot;&gt;Introduction to SGen&lt;/a&gt;
	&lt;/li&gt;&lt;li&gt; &lt;a href=&quot;http://schani.wordpress.com/2010/12/29/sgen-the-nursery/&quot; rel=&quot;nofollow&quot; title=&quot;http://schani.wordpress.com/2010/12/29/sgen-the-nursery/&quot;&gt;SGen's Nursery&lt;/a&gt;
	&lt;/li&gt;&lt;li&gt; &lt;a href=&quot;http://schani.wordpress.com/2011/01/10/sgen-the-major-collectors/&quot; rel=&quot;nofollow&quot; title=&quot;http://schani.wordpress.com/2011/01/10/sgen-the-major-collectors/&quot;&gt;SGen's Major Collectors&lt;/a&gt;
	&lt;/li&gt;&lt;/ul&gt;</content>
		<author>
			<name>Miguel de Icaza (miguel@gnome.org)</name>
			<uri>http://tirania.org/blog//index.html</uri>
		</author>
	</entry>

	<entry>
		<title type="html">John Lam on IronRuby: How Lexar/Micron Electronics Makes Memory Chips</title>
		<link href="http://iunknown.com/how-lexarmicron-electronics-makes-memory-chip"/>
		<id>http://iunknown.com/how-lexarmicron-electronics-makes-memory-chip</id>
		<updated>2011-01-18T07:44:00+00:00</updated>
		<content type="html">&lt;p&gt;
	&lt;/p&gt;&lt;div class=&quot;posterous_bookmarklet_entry&quot;&gt;
      

&lt;div class=&quot;posterous_quote_citation&quot;&gt;via &lt;a href=&quot;http://www.youtube.com/watch?v=kvf29R7nXlM&quot;&gt;youtube.com&lt;/a&gt;&lt;/div&gt;
    &lt;p&gt;Love this video. LOTS of robots in action. A few people too.&lt;/p&gt;&lt;/div&gt;
	


&lt;p&gt;&lt;a href=&quot;http://iunknown.com/how-lexarmicron-electronics-makes-memory-chip&quot;&gt;Permalink&lt;/a&gt; 

	| &lt;a href=&quot;http://iunknown.com/how-lexarmicron-electronics-makes-memory-chip#comment&quot;&gt;Leave a comment  »&lt;/a&gt;

&lt;/p&gt;</content>
		<author>
			<name>John Lam on IronRuby</name>
			<uri>http://iunknown.com</uri>
		</author>
	</entry>

	<entry>
		<title type="html">Miguel de Icaza: Your Own Sandbox</title>
		<link href="http://tirania.org/blog/archive/2011/Jan-13.html"/>
		<id>http://tirania.org/blog/archive/2011/Jan-13.html</id>
		<updated>2011-01-14T07:21:00+00:00</updated>
		<content type="html">&lt;p&gt;&lt;img align=&quot;right&quot; src=&quot;http://tirania.org/shots/1101132118KP2qU4Rp.png&quot; /&gt;Since the beginning of time, men have sought to
	find a way of creating a sandbox for untrusted code running on
	their Mono virtual machine.

	&lt;/p&gt;&lt;p&gt;Those of you familiar with Silverlight's security system,
	commonly referred as CoreCLR Security, have wondered &quot;how can
	I get me some of dat&quot;.
	Today &lt;a href=&quot;http://twitter.com/#!/spouliot&quot;&gt;Sebastien&lt;/a&gt;
	wrote
	a &lt;a href=&quot;http://www.mono-project.com/CoreClrHowTo&quot;&gt;How-to&lt;/a&gt;
	guide for those of you interested in creating your own secure
	sandboxes
	like &lt;a href=&quot;http://www.mono-project.com/Moonlight&quot;&gt;Moonlight&lt;/a&gt;
	or &lt;a href=&quot;http://unity3d.com&quot;&gt;Unity3D&lt;/a&gt; have done.

	&lt;/p&gt;&lt;p&gt;From &lt;a href=&quot;http://pages.infinit.net/ctech/20110113-0841.html&quot;&gt;his
	blog&lt;/a&gt;:

	&lt;/p&gt;&lt;blockquote&gt;
	So what was missing was not facts but orientation. It kind of
	make sense, most people are not doing an open source
	implementation of Silverlight, we are. However we're providing
	a lot of cool (yes it is ;-) stuff within - stuff, like
	coreclr, xaml, the cecil-based linker... that can be reused in
	other projects. 

	So the missing piece is an how to for people wishing to enable
	CoreCLR when embeding mono in their own application. It does
	not bring a lot of new facts but, hopefully, it will order
	them in a more useful way.
	&lt;/blockquote&gt;</content>
		<author>
			<name>Miguel de Icaza (miguel@gnome.org)</name>
			<uri>http://tirania.org/blog//index.html</uri>
		</author>
	</entry>

	<entry>
		<title type="html">The Voidspace Techie Blog: Sad that Python doesn't moo? A reason to be happy</title>
		<link href="http://feedproxy.google.com/~r/voidspace/~3/fVLmoo31lLo/arch_d7_2011_01_08.shtml"/>
		<id>http://feedproxy.google.com/~r/voidspace/~3/fVLmoo31lLo/arch_d7_2011_01_08.shtml</id>
		<updated>2011-01-10T20:02:58+00:00</updated>
		<content type="html">Further inspired by python -me I've finally solved one of the big problems that hinders adoption of Python in the corporate world. Python can now moo: pip install oo python -moo This requires pygame 1.8 (or more recent) and Python 2.6 (or more recent). ... [75 words]&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=fVLmoo31lLo:Jakuk5fCLl4:F7zBnMyn0Lo&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=fVLmoo31lLo:Jakuk5fCLl4:F7zBnMyn0Lo&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=fVLmoo31lLo:Jakuk5fCLl4:V_sGLiPBpWU&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=fVLmoo31lLo:Jakuk5fCLl4:V_sGLiPBpWU&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=fVLmoo31lLo:Jakuk5fCLl4:gIN9vFwOqvQ&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?i=fVLmoo31lLo:Jakuk5fCLl4:gIN9vFwOqvQ&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/voidspace?a=fVLmoo31lLo:Jakuk5fCLl4:dnMXMwOfBR0&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/voidspace?d=dnMXMwOfBR0&quot; /&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img height=&quot;1&quot; src=&quot;http://feeds.feedburner.com/~r/voidspace/~4/fVLmoo31lLo&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>The Voidspace Techie Blog</name>
			<uri>http://www.voidspace.org.uk/python/weblog/index.shtml</uri>
		</author>
	</entry>

	<entry>
		<title type="html">Miguel de Icaza: Mono at CES: More Games</title>
		<link href="http://tirania.org/blog/archive/2011/Jan-06.html"/>
		<id>http://tirania.org/blog/archive/2011/Jan-06.html</id>
		<updated>2011-01-07T06:33:00+00:00</updated>
		<content type="html">&lt;p&gt;&lt;img align=&quot;left&quot; src=&quot;http://tirania.org/images/mono-android-small.png&quot; /&gt;During
	today's &lt;a href=&quot;http://blogs.nvidia.com/2011/01/nvidia-press-conference-ces-2011/&quot;&gt;Nvidia
	press conference at CES&lt;/a&gt;, a the
	Monodroid-powered &lt;a href=&quot;http://deltaengine.net/&quot;&gt;DeltaEngine&lt;/a&gt;
	was shown running
	the &lt;a href=&quot;http://mobilebits.de/Blog/post/2011/01/05/SoulCraft-Tech-Demo-was-shown-at-CES-by-NVidia.aspx&quot;&gt;SoulCraft
	Tech Demo&lt;/a&gt;:

	&lt;a href=&quot;http://www.youtube.com/watch?v=KFoVGHjPKr4&quot;&gt;
	&lt;img src=&quot;http://tirania.org/shots/1101060740uenTiTh1.png&quot; /&gt;
	&lt;br /&gt;
	CES Video.
	&lt;/a&gt;

	&lt;/p&gt;&lt;p&gt;Although today's demo was powered
	by &lt;a href=&quot;http://monodroid.net&quot;&gt;MonoDroid&lt;/a&gt; the engine is
	a &lt;a href=&quot;http://deltaengine.net/Faq.html&quot;&gt;cross-platform
	.NET&lt;/a&gt; game engine, it runs on on Mono-powered systems like
	Linux, MacOS X, MonoTouch and MonoDroid as well as Microsoft
	.NET powered systems like the XBox360, Windows Phone 7 and
	Windows:

	&lt;/p&gt;&lt;center&gt;
	&lt;img src=&quot;http://tirania.org/shots/1101060736e9uNWDi1.png&quot; /&gt;
	&lt;/center&gt;

	&lt;br /&gt;
	
	&lt;p&gt;If you have an iPad, you can try the Zombie Party game on
	the AppStore, it is the first game powered by DeltaEngine.
	&lt;a href=&quot;http://www.exdream.com/&quot;&gt;ExDream&lt;/a&gt; is the group
	behind DeltaEngine.

	&lt;/p&gt;&lt;p&gt;For information on how the demo was built check
	out &lt;a href=&quot;http://mobilebits.de/Blog/post/2011/01/05/Delayed-blogging-of-building-the-first-SoulCraft-Tech-Demo-version.aspx&quot;&gt;this
	blog post&lt;/a&gt;.  The engine will be open sourced this year.&lt;/p&gt;</content>
		<author>
			<name>Miguel de Icaza (miguel@gnome.org)</name>
			<uri>http://tirania.org/blog//index.html</uri>
		</author>
	</entry>

	<entry>
		<title type="html">Miguel de Icaza: Mono for Android</title>
		<link href="http://tirania.org/blog/archive/2011/Jan-04.html"/>
		<id>http://tirania.org/blog/archive/2011/Jan-04.html</id>
		<updated>2011-01-04T18:59:00+00:00</updated>
		<content type="html">&lt;p&gt;&lt;img align=&quot;right&quot; src=&quot;http://tirania.org/images/mono-android.png&quot; /&gt;Now that we feel that we have fixed all the
	embarrassing bugs in &lt;a href=&quot;http://monodroid.net/&quot;&gt;Mono for
	Android&lt;/a&gt;, so we have opened up our Mono for Android preview
	program to anyone that wants to take it out for a spin.

	&lt;/p&gt;&lt;p&gt;Mono for Android brings the full Mono VM to Android.  We
	use a library profile that is better suited for mobile
	devices, so we removed features that are not necessary (like
	the entire System.Configuration stack, just like Silverlight
	does).   

	&lt;/p&gt;&lt;p&gt;In addition to bringing the core ECMA VM to Android, we
	bound the entire set of Android Dalvik APIs to C# and in the
	process C#-ified them.  This includes using C# properties for
	metadata (less XML config file messing around), exposing C#
	events, C# properties, strongly typed generic types where
	necessary, implicit conversions where needed, using the C# API
	style, IEnumerable where appropriate (to let you LINQ over
	your Dalvik, and we turn IIterable into IEnumerables for you).

	&lt;/p&gt;&lt;p&gt;On the OpenGL front, we brought the same OpenTK library
	that is popular among .NET developers on both Windows, Linux
	and iPhone, so you can share the same OpenGL logic across all
	platforms.

	&lt;/p&gt;&lt;p&gt;Unlike iOS where the JIT is not supported, Mono on Android
	supports the full JIT, so you can use Reflection.Emit and
	dynamic code compilation as much as you want.

	&lt;/p&gt;&lt;p&gt;This initial release only comes with templates for C#, but
	other .NET compilers should work, as long as they reference
	Mono for Android's libraries (as we removed a few methods that
	make no sense on mobile devices).

&lt;/p&gt;&lt;h2&gt;Support for OSX&lt;/h2&gt;

	&lt;p&gt;Through the lifetime of our preview program, Mono for
	Android only supported Windows development using Visual
	Studio.   Today we are also releasing support for developing
	Android applications
	on &lt;a href=&quot;http://monodroid.net/Installation_for_Mac&quot;&gt;MacOS X
	using MonoDevelop&lt;/a&gt;.

&lt;/p&gt;&lt;h2&gt;Getting Started&lt;/h2&gt;

	&lt;p&gt;Please check
	our &lt;a href=&quot;http://monodroid.net/Welcome&quot;&gt;Welcome page&lt;/a&gt;,
	it contains installation instructions, links to tutorials,
	mailing lists, chat rooms and more.
	
	&lt;/p&gt;&lt;p&gt;I strongly advise our users to join
	our &lt;a href=&quot;http://lists.ximian.com/mailman/listinfo/monodroid&quot;&gt;mailing
	list&lt;/a&gt; and to check
	the &lt;a href=&quot;http://lists.ximian.com/mailman/private/monodroid/&quot;&gt;previous
	discussions&lt;/a&gt; on the mailing list for some tasty insights. 

	&lt;/p&gt;&lt;p&gt;You can also &lt;a href=&quot;http://docs.monodroid.net/&quot;&gt;browse
	the API&lt;/a&gt; that we expose to C# developers.   

&lt;/p&gt;&lt;h2&gt;Upcoming Features&lt;/h2&gt;

	&lt;p&gt;We are working as fast and as hard as we can to complete
	Mono for Android.  This includes Linux support and bringing
	MonoDevelop to Windows, for users that can not run Visual
	Studio 2010 Professional.

&lt;/p&gt;&lt;h2&gt;Giving us Feedback&lt;/h2&gt;

	&lt;p&gt;Please provide your feedback on the product directly on our
	mailing list, as this is what the MonoDroid developers
	monitor.    Bug reports should be filed
	on &lt;a href=&quot;http://bugzilla.novell.com&quot;&gt;Novell's Bugzilla&lt;/a&gt;.&lt;/p&gt;</content>
		<author>
			<name>Miguel de Icaza (miguel@gnome.org)</name>
			<uri>http://tirania.org/blog//index.html</uri>
		</author>
	</entry>

	<entry>
		<title type="html">John Lam on IronRuby: Photos From China: Bicycles Everywhere!</title>
		<link href="http://iunknown.com/photos-from-china-bicycles-everywhere"/>
		<id>http://iunknown.com/photos-from-china-bicycles-everywhere</id>
		<updated>2011-01-02T23:34:18+00:00</updated>
		<content type="html">&lt;p&gt;
	&lt;/p&gt;&lt;p&gt;This fall, I spent a couple of weeks traveling through China with my Dad, who's now 75. Amazingly enough, was the first time that either my Dad or I had been to China.&lt;/p&gt;
&lt;p&gt;I shot a lot of photos there, and here's a collection of photos of bicycles. Bicycles were once ubiquitous throughout China, but they're an endangered species in urban areas. Here's a collection of photos of people using bicycles in interesting ways. Almost nobody wore helmets, and often you could see entire families commuting on a single bicycle.&lt;/p&gt;
&lt;p&gt;   &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
	


&lt;p&gt;&lt;a href=&quot;http://iunknown.com/photos-from-china-bicycles-everywhere&quot;&gt;Permalink&lt;/a&gt; 

	| &lt;a href=&quot;http://iunknown.com/photos-from-china-bicycles-everywhere#comment&quot;&gt;Leave a comment  »&lt;/a&gt;

&lt;/p&gt;</content>
		<author>
			<name>John Lam on IronRuby</name>
			<uri>http://iunknown.com</uri>
		</author>
	</entry>

	<entry>
		<title type="html">John Lam on IronRuby: Looking Back On A Year Of Cycling</title>
		<link href="http://iunknown.com/looking-back-on-a-year-of-cycling"/>
		<id>http://iunknown.com/looking-back-on-a-year-of-cycling</id>
		<updated>2011-01-01T15:00:00+00:00</updated>
		<content type="html">&lt;p&gt;
	&lt;/p&gt;&lt;p&gt;2010 was my first year back on the bike after a long time off. It felt good to be a bit more &quot;selfish&quot; now that the boys were 6 and 4, and take some time to do some riding just for me.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;p_embed p_image_embed&quot;&gt;
&lt;img alt=&quot;Edge_500&quot; height=&quot;150&quot; src=&quot;http://getfile6.posterous.com/getfile/files.posterous.com/temp-2010-12-30/EvuvsHuFAqopJhFEjoCakzFFblrtndDschrbJCEvHjnHyBxcFhHrcHkFcyEG/edge_500.jpg.scaled500.jpg&quot; width=&quot;150&quot; /&gt;
&lt;/div&gt;

&lt;p&gt;Without a doubt, the best purchase I made this year was my little blue friend: a Garmin Edge 500 bike computer. It's an ANT+ compatible device that records data from a number of different channels:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Heart rate&lt;/li&gt;
&lt;li&gt;Cadence&lt;/li&gt;
&lt;li&gt;Speed&lt;/li&gt;
&lt;li&gt;Temperature&lt;/li&gt;
&lt;li&gt;Location&lt;/li&gt;
&lt;li&gt;Power&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For a fantastic review, check out &lt;a href=&quot;http://www.dcrainmaker.com/2009/11/garmin-edge-500-in-depth-review.html&quot;&gt;Ray Maker's write-up on the Edge 500&lt;/a&gt;. The Garmin software is pretty good (I've re-implemented a good chunk of it on my own as well - look for details in the new year). It makes it really easy to analyze your rides after you're done.&lt;/p&gt;
&lt;p&gt;My goals this year were pretty simple: 1) get out and have fun, and 2) ride up as many hills as I could find to force myself to get into some kind of shape. I didn't have any well-defined goals this year, since that would have defeated the get out and have fun goal. Looking back on my training logs on Garmin Connect, I can see that I:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Rode over 2000 miles&lt;/li&gt;
&lt;li&gt;Climbed over 115K vertical feet&lt;/li&gt;
&lt;li&gt;Completed the Seattle LIVESTRONG century in abysmal conditions&lt;/li&gt;
&lt;li&gt;Rode up my first mountain pass (I spent most of my life in Toronto) when I rode up to Johnston Ridge. &lt;/li&gt;
&lt;li&gt;Recorded an FTP of 207W on one of my loops around Lake Sammamish.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Next year I'll follow a much more structured training plan to see what I can pull off. Looking forward to it!&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
	


&lt;p&gt;&lt;a href=&quot;http://iunknown.com/looking-back-on-a-year-of-cycling&quot;&gt;Permalink&lt;/a&gt; 

	| &lt;a href=&quot;http://iunknown.com/looking-back-on-a-year-of-cycling#comment&quot;&gt;Leave a comment  »&lt;/a&gt;

&lt;/p&gt;</content>
		<author>
			<name>John Lam on IronRuby</name>
			<uri>http://iunknown.com</uri>
		</author>
	</entry>

	<entry>
		<title type="html">John Lam on IronRuby: Predictions for 2011</title>
		<link href="http://iunknown.com/predictions-for-2011"/>
		<id>http://iunknown.com/predictions-for-2011</id>
		<updated>2011-01-01T05:03:22+00:00</updated>
		<content type="html">&lt;p&gt;
	&lt;/p&gt;&lt;p&gt;Mostly, I'm writing this post so I'll have something to make fun of in a December 31, 2011 blog post. So here goes ...&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;We're going to see a lot of interest in business models that sell new &lt;em&gt;customer&lt;/em&gt; &lt;em&gt;relationships&lt;/em&gt; to existing businesses. The current poster child for this business model is Groupon. If they can successfully validate this business model (and this is by no means a slam dunk) look for Facebook to pull a fast-follow and enter the market in 2011. &lt;/li&gt;
&lt;li&gt;Kinect is going to have a big impact on Microsoft's image in the consumer market. Last Wednesday, I saw a crowd of nearly 50 people watch a kid play Dance Central at the Microsoft Store in Bellevue. The kid was good - and got a big round of applause from the crowd when he was done. The crowd spontaneously formed around him as he played, with some people literally stopping dead in their tracks walking by the store. Kinect's open relationship with the hacker community is also going to play a huge role in establishing it as a mainstream technology, particularly for PCs; the guy in the picture is &lt;a href=&quot;http://www.fastcompany.com/1712771/kinect-hacked-to-play-world-of-warcraft-the-future-of-gaming-is-here&quot;&gt;playing WoW via Kinect&lt;/a&gt;. I predict that we'll see a Kinect &quot;halo effect&quot; that extends into consumer PCs, which will be driven by ISV's who take advantage of some of the &lt;a href=&quot;http://www.shiffman.net/2010/12/18/updated-kinect-library-for-processing/&quot;&gt;libraries &lt;/a&gt;being created by the hacker community.  &lt;br /&gt;&lt;div class=&quot;p_embed p_image_embed&quot;&gt;
&lt;a href=&quot;http://getfile4.posterous.com/getfile/files.posterous.com/temp-2010-12-31/cxxJpaGixxhJucisIcpEafuHCscIxaaFDrzarvatzDAcGbgrEEjmxJmdJuaz/kinect.jpg.scaled1000.jpg&quot;&gt;&lt;img alt=&quot;Kinect&quot; height=&quot;274&quot; src=&quot;http://getfile3.posterous.com/getfile/files.posterous.com/temp-2010-12-31/cxxJpaGixxhJucisIcpEafuHCscIxaaFDrzarvatzDAcGbgrEEjmxJmdJuaz/kinect.jpg.scaled500.jpg&quot; width=&quot;500&quot; /&gt;&lt;/a&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;We're going to see a lot more evidence that HTML 5 is a legitimate application platform. The major platform vendors  The &lt;a href=&quot;http://windowsteamblog.com/ie/b/ie/archive/2010/12/17/announcing-pirates-love-daisies-an-html5-tower-defense-game-by-grant-skinner.aspx&quot;&gt;Pirates and Daisies tower defense game&lt;/a&gt; is just the first of many more apps to come. I predict that a major game publisher will announce and/or deliver a web-based game using nothing but HTML 5 in 2011.&lt;br /&gt;&lt;div class=&quot;p_embed p_image_embed&quot;&gt;
&lt;a href=&quot;http://getfile5.posterous.com/getfile/files.posterous.com/temp-2010-12-31/CABtxvzqiIeiEzrfFmcsIEhnxfvyCpwmheGskjAJlBoDytJHCzbFcJymonqc/html5.png.scaled1000.png&quot;&gt;&lt;img alt=&quot;Html5&quot; height=&quot;373&quot; src=&quot;http://getfile4.posterous.com/getfile/files.posterous.com/temp-2010-12-31/CABtxvzqiIeiEzrfFmcsIEhnxfvyCpwmheGskjAJlBoDytJHCzbFcJymonqc/html5.png.scaled500.png&quot; width=&quot;500&quot; /&gt;&lt;/a&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Happy New Year everyone!&lt;/p&gt;
&lt;ol&gt; &lt;/ol&gt;
	


&lt;p&gt;&lt;a href=&quot;http://iunknown.com/predictions-for-2011&quot;&gt;Permalink&lt;/a&gt; 

	| &lt;a href=&quot;http://iunknown.com/predictions-for-2011#comment&quot;&gt;Leave a comment  »&lt;/a&gt;

&lt;/p&gt;</content>
		<author>
			<name>John Lam on IronRuby</name>
			<uri>http://iunknown.com</uri>
		</author>
	</entry>

	<entry>
		<title type="html">Miguel de Icaza: Open Source Contribution Etiquette</title>
		<link href="http://tirania.org/blog/archive/2010/Dec-31.html"/>
		<id>http://tirania.org/blog/archive/2010/Dec-31.html</id>
		<updated>2011-01-01T03:14:00+00:00</updated>
		<content type="html">&lt;p&gt;Some developers, when faced with fixing, or adding a
	feature to an open source project are under the mistaken
	impression that the first step before any fixing takes place,
	or before adding a new feature takes place is to make the code
	&quot;easier for them&quot; to work on.

	&lt;/p&gt;&lt;p&gt;&quot;Easier for them&quot; usually is a combination of renaming
	methods, fields, properties, locals;   Refactoring of methods,
	classes;   Gratuitous split of code in different files, or
	merging of code into a single file;   Reorganization by
	alphabetical order, or functional order, or grouping functions
	closer to each other, or having helper methods first, or
	helper methods last.   Changing indentation, aligning
	variables, or parameters or dozen other smaller changes. 
	
	&lt;/p&gt;&lt;p&gt;This is &lt;b&gt;not how you contribute to an open source project&lt;/b&gt;.

	&lt;/p&gt;&lt;p&gt;When you contribute fixes or new features to an open source
	project you should use the existing coding style, the existing
	coding patterns and stick by the active maintainer's choice
	for his code organization.

	&lt;/p&gt;&lt;p&gt;The maintainer is in for the long-haul, and has been
	working on this code for longer than you have.  Chances are,
	he will keep doing this even after you have long moved into
	your next project.

	&lt;/p&gt;&lt;p&gt;Sending a maintainer a patch, or a pull request that
	consists of your &quot;fix&quot; mixed with a dozen renames, refactoring
	changes, variable renames, method renames, file splitting,
	layout changing code is not really a contribution, it is home
	work.   
	
	&lt;/p&gt;&lt;p&gt;The maintainer now has to look at your mess of a patch and
	extract the actual improvement, wasting precious time that
	could have gone to something else.  This sometimes negates the
	effort of your &quot;contribution&quot;.

	&lt;/p&gt;&lt;p&gt;If you really have an urge to refactor the code, first of
	all, discuss the changes with the maintainer with the
	rationale for the changes.    If the maintainer agrees with
	the changes, make sure that you keep your refactoring and
	changes independent from code fixes, it makes reviewing the
	code a lot simpler.

	&lt;/p&gt;&lt;p&gt;The alternative, to keep your fork, is usually a guarantee
	that your effort will be wasted, and wont help other users.
	People have tried to do this.  It is attempted every year, by
	hunders of developers who in tbe back of their minds are
	thinking &quot;I can do better&quot; and &quot;I wont make the same
	mistakes&quot;.  After 18 years doing open source I can probably
	think of a handful of project forks that have survived and
	flourished.  Out of hundreds of such failures.  So the odds
	are not good.

	&lt;/p&gt;&lt;p&gt;So respect the original coding style, and if you want to
	make refactoring changes, discuss this with the maintainer.&lt;/p&gt;</content>
		<author>
			<name>Miguel de Icaza (miguel@gnome.org)</name>
			<uri>http://tirania.org/blog//index.html</uri>
		</author>
	</entry>

	<entry>
		<title type="html">John Lam on IronRuby: Got Lower Back Pain?</title>
		<link href="http://iunknown.com/got-lower-back-pain"/>
		<id>http://iunknown.com/got-lower-back-pain</id>
		<updated>2010-12-30T15:00:00+00:00</updated>
		<content type="html">&lt;p&gt;
	&lt;/p&gt;&lt;div class=&quot;posterous_bookmarklet_entry&quot;&gt;&lt;div class=&quot;p_embed p_image_embed&quot;&gt;
&lt;img alt=&quot;Media_httpwwwtri247co_sgocj&quot; height=&quot;225&quot; src=&quot;http://getfile5.posterous.com/getfile/files.posterous.com/idispatch/HatydvJehpdHxghtkmrgpxgIwjBzchxByACbGqFutnArzGsrqunmkInjzqbk/media_httpwwwtri247co_sGoCJ.jpg.scaled500.jpg&quot; width=&quot;300&quot; /&gt;
&lt;/div&gt;

&lt;div class=&quot;posterous_quote_citation&quot;&gt;via &lt;a href=&quot;http://www.tri247.com/article_3319.html&quot;&gt;tri247.com&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;I've got a spotty track record of working on strengthening my core. During the winter, I'm usually on a 16 week weight program, and I make really solid gains in strength then. But during the riding season, I neglect my core and ultimately wind up paying a price for it with lower back pain on my rides. &lt;a href=&quot;http://www.tri247.com/article_3319.html&quot;&gt;This article&lt;/a&gt; does a great job at explaining why you might get lower back pain during rides. It does, however, assume that you've been competently fitted to your bike. This winter is the first that I'm doing a mixed riding / weight program. Early signs point to it helping me keep my spine in a neutral position during my rides (losing some weight around my midsection will also help this too!).&lt;/p&gt;
&lt;/div&gt;
	


&lt;p&gt;&lt;a href=&quot;http://iunknown.com/got-lower-back-pain&quot;&gt;Permalink&lt;/a&gt; 

	| &lt;a href=&quot;http://iunknown.com/got-lower-back-pain#comment&quot;&gt;Leave a comment  »&lt;/a&gt;

&lt;/p&gt;</content>
		<author>
			<name>John Lam on IronRuby</name>
			<uri>http://iunknown.com</uri>
		</author>
	</entry>

</feed>

