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

	<title>Planet OTI</title>
	<link rel="self" href="http://planet-oti.muellerware.org/atom.xml"/>
	<link href="http://planet-oti.muellerware.org/"/>
	<id>http://planet-oti.muellerware.org/atom.xml</id>
	<updated>2012-02-05T14:42:31+00:00</updated>
	<generator uri="http://www.planetplanet.org/">http://intertwingly.net/code/venus/</generator>

	<entry>
		<title type="html" xml:lang="en">8GB Memory Upgrade / PAE Mode</title>
		<link href="http://lowtek.ca/roo/2012/8gb-memory-upgrade-pae-mode/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=8gb-memory-upgrade-pae-mode"/>
		<id>http://lowtek.ca/roo/?p=1070</id>
		<updated>2012-02-02T02:33:29+00:00</updated>
		<content type="html" xml:lang="en">&lt;p&gt;&lt;a href=&quot;http://lowtek.ca/roo/wp-content/uploads/2012/01/IMG_2591.jpg&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;aligncenter size-full wp-image-1072&quot; height=&quot;197&quot; src=&quot;http://lowtek.ca/roo/wp-content/uploads/2012/01/IMG_2591.jpg&quot; title=&quot;IMG_2591&quot; width=&quot;500&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I’ve been doing more video processing lately, some of it HDTV quality, this was really demonstrating that 2GB was not nearly enough RAM for my system. Memory prices have dropped a lot since I did my &lt;a href=&quot;http://lowtek.ca/roo/2010/core-i3-frugal-upgrade/&quot;&gt;frugal upgrade&lt;/a&gt;, at the time (early 2010) I spent $54 on a single 2GB stick. The other day I picked up 2x4GB for a mere &lt;a href=&quot;http://canadacomputers.com/product_info.php?cPath=24_311_312_611&amp;amp;item_id=042395&quot;&gt;$35 from CanadaComputers&lt;/a&gt;. Sure we’re now 2 years later, but to get four times the RAM for less?&lt;/p&gt;
&lt;p&gt;In general I’ve had good luck with Patriot products&lt;a href=&quot;http://lowtek.ca/roo/wp-content/uploads/2012/01/IMG_2584.jpg&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;alignright size-full wp-image-1071&quot; height=&quot;300&quot; src=&quot;http://lowtek.ca/roo/wp-content/uploads/2012/01/IMG_2584.jpg&quot; title=&quot;IMG_2584&quot; width=&quot;239&quot; /&gt;&lt;/a&gt;, and looking at their &lt;a href=&quot;http://patriotmemory.com/support/producttermsp.jsp?nav=terms&quot;&gt;warranty&lt;/a&gt; it looks like the have the standard limited lifetime warranty you’d expect.&lt;/p&gt;
&lt;p&gt;My &lt;a href=&quot;http://www.gigabyte.com/products/product-page.aspx?pid=3444#ov&quot;&gt;motherboard&lt;/a&gt; has 4 slots for RAM, so I could have left the 2GB stick in and added the two additional – but I decided against mixing things up. I figured 8GB was plenty for now, I can easily change my mind later. Installation was a snap, literally under 10mins including juggling all those cables.&lt;/p&gt;
&lt;p&gt;Amazingly I got it right the first time, the BIOS showed me 8GB. Now as I’m running a 32bit version of Linux, I wasn’t surprised that the operating system couldn’t see all of my new RAM.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;$ cat /proc/meminfo&lt;br /&gt;
MemTotal: 3482728 kB&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;So Linux can only see 3.3GB, I suspect why the value isn’t 4GB is due to the onboard video stealing some away from the OS.&lt;/p&gt;
&lt;p&gt;The obvious upgrade path is to install the 64bit version of Ubuntu. It seems the &lt;a href=&quot;http://askubuntu.com/questions/5018/is-it-possible-to-upgrade-from-a-32bit-to-a-64bit-installation&quot;&gt;smart path forward&lt;/a&gt; is to wipe and start again, however given that I’ve got a 1TB drive and it’s 60% full that’s going to be a long copy / install process. I mentioned this to a friend at work and he suggested that instead I use the PAE kernel, I’m glad he suggested it.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Physical_Address_Extension&quot;&gt;Physical Address Extension&lt;/a&gt; (PAE) is very &lt;a href=&quot;https://help.ubuntu.com/community/EnablingPAE&quot;&gt;easy to add to an existing 32bit Ubuntu installation&lt;/a&gt;. Assuming you’ve got a CPU that supports the feature (and with any current hardware you will), it’s a simple one line install.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;$ sudo aptitude install linux-generic-pae linux-headers-generic-pae&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;After the install, a quick reboot and we’re running the new kernel. If you’re doing a clean install, recent versions of Ubuntu automatically add the PAE kernel if you’ve got enough RAM.&lt;/p&gt;
&lt;p&gt;Now we can see all of the RAM&lt;/p&gt;
&lt;p&gt;&lt;code&gt;$ cat /proc/meminfo&lt;br /&gt;
MemTotal: 8072420 kB&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
This works out to 7.7GB, again some I believe is donated to the onboard video.&lt;/p&gt;
&lt;p&gt;Why might you want to use PAE instead of running a 64bit version? If you elect to use 64bit mode, then all of your memory pointers need to be 64bits wide (aka double the 32bit size). This can cause some serious memory bloat depending on the type of application.&lt;/p&gt;
&lt;p&gt;It should be no great surprise, but there is some work involved in getting applications to work in 64bit environments. For some applications, recompiling is all that is needed – however many have hidden dependencies on certain data structures being 32bit in size. It is for this reason that lots of software is still stuck back in 32bit – the mitigation is to run &lt;a href=&quot;https://help.ubuntu.com/community/32bit_and_64bit#How_to_Make_32-bit_Applications_Work_on_a_64-bit_Operating_System&quot;&gt;32bit compatibility libraries&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;With PAE, while the kernel can see all of the memory (up to 64GB) – each process is still limited to 32bit addressing (4GB max). You also miss out on some of the 64bit extensions to the instruction set, so you are leaving a little bit of performance on the table.&lt;/p&gt;
&lt;p&gt;When I get around to doing a full wipe and re-install, I’ll likely move to a 64bit version of Ubuntu as it seems to be the recommended approach. I’m certainly glad I can put that off for a while longer and use PAE to get access to the increased memory with almost no effort.&lt;/p&gt;</content>
		<author>
			<name>Roo</name>
			<uri>http://lowtek.ca/roo</uri>
		</author>
		<source>
			<title type="html">Roo's View</title>
			<subtitle type="html">A clever tagline should go here</subtitle>
			<link rel="self" href="http://lowtek.ca/roo/feed/"/>
			<id>http://lowtek.ca/roo</id>
		</source>
	</entry>

	<entry>
		<title type="html" xml:lang="en">Creating a build you can trust</title>
		<link href="http://feedproxy.google.com/~r/IanSkerrett/~3/VxKzbjtvRy8/"/>
		<id>http://ianskerrett.wordpress.com/?p=2258</id>
		<updated>2012-01-31T04:29:58+00:00</updated>
		<content type="html" xml:lang="en">&lt;p&gt;‘The build is broken’ is something I’ve heard too many times in my software development career.  Concepts like continuous delivery and devops make it all that more important to have a build that you can trust.   In the Agile ALM Connect session, &lt;a href=&quot;http://www.eclipsecon.org/2012/sessions/build-trust-your-build-deployment-flow&quot;&gt;Build Trust in Your Build to Deployment Flow&lt;/a&gt; ,Yoav Landman, founder of Artifactory, is going to demonstrate some of the techniques for using tools like Maven, Gradle and Artifactory to automate builds that release applications which are fully traceable, managed and trusted!&lt;/p&gt;
&lt;p&gt;Yoav has also participated in my &lt;a href=&quot;http://www.eclipsecon.org/2012/&quot;&gt;Agile ALM Connect&lt;/a&gt; speaker Q&amp;amp;A series.  He answers my questions about Artifactory and his company JFrog.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1. You are the founder of the &lt;a href=&quot;http://www.jfrog.com/products.php&quot;&gt;Artifactory&lt;/a&gt; open source project.   Why did you decide to create Artifactory?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I started Artifactory in 2006. I was working as a consultant at the time and migrated a couple of large client projects from Ant to Maven 2. I was frustrated by the absence of good options to manage dependencies and hosting artifacts in house. There were a couple of tools out there, but they all lacked basic features such as searching and artifact uploading and were basically very immature, since the whole domain of Binary Repository Managers, didn’t exist yet.&lt;br /&gt;
In an effort to fill this gap I decided to go and write my own tool as an open source project and created Artifactory. The quick adoption of Artifactory lead me to create JFrog around it. Actually, the final straw that pushed me to start the project was a complete outage of the Codehaus server for a couple of days, which left some of my clients in the dark as they depended on artifacts from the Codehaus repository which they removed from their local caches.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2. We hear a lot about continuous delivery and devops.   How is this effecting the build process and what issues do you think need to be considered?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;We are dealing a lot with continuous delivery in JFrog as part of our Artifactory on the cloud service, Artifactory Online. For us, the main effect on the build process is that artifacts are deployed much more frequently, which makes good binary management critical.&lt;/p&gt;
&lt;p&gt;Artifactory, as a repository manager is not just the target to which build results are deployed for usage by dependent builds, but also the source from which applications are deployed to production, and even where RPMs are installed from to newly provisioned machines. We are using the properties feature of Artifactory to tag artifacts that were moved to production so that they can be easily identified. Another important aspect is that snapshots can often be treated as releases, and so traditional staging/release workflows no longer fit the requirements of continuous deployment.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3. If someone wanted to get started with Artifactory where would you suggest they start?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I think the best starting point would be downloading Artifactory from &lt;a href=&quot;http://jfrog.com/&quot;&gt;jfrog.com&lt;/a&gt; and watching this &lt;a href=&quot;http://www.youtube.com/watch?v=2FGHwZSAqog&quot;&gt;one-minute setup screencast&lt;/a&gt;. For someone who has never used a binary repository and wants to understand the benefits of using a tool like Artifactory, I’d suggest looking at this &lt;a href=&quot;http://www.youtube.com/watch?v=aa4YBDUDWy0&quot;&gt;short intro&lt;/a&gt;. Other than that, Artifactory is real easy to set up and get up to speed with, and the online help in the UI makes it really useful to understand how to get around. Finally, there is of course the &lt;a href=&quot;http://wiki.jfrog.org/confluence/display/RTF/Welcome+to+Artifactory%21&quot;&gt;user guide&lt;/a&gt; and the &lt;a href=&quot;http://forums.jfrog.org/Artifactory-Users-f2377369.html&quot;&gt;users forum&lt;/a&gt; for getting more help.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.eclipsecon.org/2012/&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;aligncenter&quot; height=&quot;100&quot; src=&quot;http://www.eclipsecon.org/2012/sites/eclipsecon.org.2012/files/econ-agile130x100_speaking.gif?1315863548&quot; width=&quot;130&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;br /&gt;  &lt;a href=&quot;http://feeds.wordpress.com/1.0/gocomments/ianskerrett.wordpress.com/2258/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/ianskerrett.wordpress.com/2258/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godelicious/ianskerrett.wordpress.com/2258/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/ianskerrett.wordpress.com/2258/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gofacebook/ianskerrett.wordpress.com/2258/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/facebook/ianskerrett.wordpress.com/2258/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gotwitter/ianskerrett.wordpress.com/2258/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/twitter/ianskerrett.wordpress.com/2258/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gostumble/ianskerrett.wordpress.com/2258/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/ianskerrett.wordpress.com/2258/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godigg/ianskerrett.wordpress.com/2258/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/ianskerrett.wordpress.com/2258/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/goreddit/ianskerrett.wordpress.com/2258/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/ianskerrett.wordpress.com/2258/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; height=&quot;1&quot; src=&quot;http://stats.wordpress.com/b.gif?host=ianskerrett.wordpress.com&amp;amp;blog=405862&amp;amp;post=2258&amp;amp;subd=ianskerrett&amp;amp;ref=&amp;amp;feed=1&quot; width=&quot;1&quot; /&gt;&lt;img height=&quot;1&quot; src=&quot;http://feeds.feedburner.com/~r/IanSkerrett/~4/VxKzbjtvRy8&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>Ian Skerrett</name>
			<uri>http://ianskerrett.wordpress.com</uri>
		</author>
		<source>
			<title type="html">Ian Skerrett</title>
			<subtitle type="html">Marketing at Eclipse</subtitle>
			<link rel="self" href="http://feeds.feedburner.com/IanSkerrett"/>
			<id>http://ianskerrett.wordpress.com</id>
		</source>
	</entry>

	<entry>
		<title type="html" xml:lang="en">Goodbye WordPress</title>
		<link href="http://feedproxy.google.com/~r/dubroy/~3/iI-orapE-z8/goodbye-wordpress"/>
		<id>http://dubroy.com/blog/goodbye-wordpress</id>
		<updated>2012-01-29T00:00:00+00:00</updated>
		<content type="html">&lt;p&gt;For the last couple of weeks, I’ve been working on converting this blog from
WordPress to a static site generated by some custom Python scripts. Yesterday,
I finally made the switch.&lt;/p&gt;
&lt;p&gt;Everything looks pretty much the same as it did before, but things should feel
a bit faster. Most importantly, it’s a lot more pleasant to write
posts in the new system, so hopefully I’ll get back to blogging a bit more
regularly.&lt;/p&gt;
&lt;p&gt;If you see anything that’s broken, send me an email or let me know on Twitter.&lt;/p&gt;&lt;img height=&quot;1&quot; src=&quot;http://feeds.feedburner.com/~r/dubroy/~4/iI-orapE-z8&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>Patrick Dubroy</name>
			<uri>http://dubroy.com/blog</uri>
		</author>
		<source>
			<title type="html">Patrick Dubroy's blog</title>
			<subtitle type="html">programming, usability &amp;amp; interaction design</subtitle>
			<link rel="self" href="http://feeds.feedburner.com/dubroy"/>
			<id>http://dubroy.com/blog</id>
		</source>
	</entry>

	<entry>
		<title type="html" xml:lang="en">Dev + Ops = Getting Software Deployed Faster (DevOps)</title>
		<link href="http://feedproxy.google.com/~r/IanSkerrett/~3/GGOdAXEMJX0/"/>
		<id>http://ianskerrett.wordpress.com/?p=2250</id>
		<updated>2012-01-27T04:22:36+00:00</updated>
		<content type="html" xml:lang="en">&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/DevOps&quot;&gt;DevOps&lt;/a&gt; is one of those terms you hear a LOT about lately but I am not sure it is really well understood.  However, if you are going to be successful at Agile ALM it would seem natural you would want to bring the operations side of IT closer into the development process.   &lt;a href=&quot;http://puppetlabs.com/&quot;&gt;Puppet&lt;/a&gt; is one example of an open source project that is implementing some of the DevOps concepts.&lt;/p&gt;
&lt;p&gt;When we put together the program committee for &lt;a href=&quot;http://www.eclipsecon.org/2012/agilealm&quot;&gt;Agile ALM Connect&lt;/a&gt; we specifically wanted an expert from the DevOps community to make sure the program had a healthy devops slant.   Therefore, I was thrilled to have Lukes Kanies, the founder of Puppet and CEO of &lt;a href=&quot;http://puppetlabs.com/&quot;&gt;PuppetLab&lt;/a&gt;s, agree to be on the program committee and also speak at Agile ALM Connect on &lt;a href=&quot;http://www.eclipsecon.org/2012/sessions/devops-what-it-and-what-it-means-you&quot;&gt;‘what is devops’&lt;/a&gt; and &lt;a href=&quot;http://www.eclipsecon.org/2012/sessions/frictionless-operations-puppet&quot;&gt;introduce Puppet&lt;/a&gt;.    We will also have Kenn Hussey &lt;a href=&quot;http://www.eclipsecon.org/2012/sessions/geppetto-integrated-development-environment-puppet&quot;&gt;talk about Geppetto&lt;/a&gt;, an Eclipse-based Puppet IDE.&lt;/p&gt;
&lt;p&gt;In my Q&amp;amp;A series with Agile ALM Connect speakers, Luke answered three questions about DevOps.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1. ‘DevOps’ is a term that is used quite a bit lately.  How do you describe the term DevOps and why should developers care?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;DevOps is in to operations what Agile is to development.  Operations needs to be a competitive advantage, adopting new technology quickly and with minimal business interruption, but in many cases the business goals have been lost and the new focus on policy and compliance has allowed IT to become a cost center.  DevOps is about operations teams working closely with everyone involved in product delivery to make sure that business needs come first.  This often involves a lot of automation, but the main thing is about making sure the customer comes first, just like in agile development.&lt;/p&gt;
&lt;p&gt;Developers should care because organizations following devops practices will do a better job of supporting them, getting their software deployed faster and more easily.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2. You are the founder of the Puppet open source project.   Why did you start Puppet?&lt;/strong&gt;&lt;br /&gt;
When I started Puppet, the tools and practices in IT had barely changed in ten years.  I was afraid that it would still not have changed in ten more years, and I saw an opportunity to build a better tool and help make the lives of sysadmins better.   Based on how passionate our user base, we seem to have struck a chord.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3. What advice do you have for people that want to learn how to use Puppet? &lt;/strong&gt;&lt;br /&gt;
First, start small, and fix the most painful things first.  Trying to boil the ocean by automating your whole infrastructure will just frustrate you and have little reward, but if you start by automating the small, menial work in your infrastructure you’ll have quick rewards and, even better, more time available in your day to work on the hard and important stuff.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.eclipsecon.org/2012/agilealm&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;aligncenter&quot; height=&quot;100&quot; src=&quot;http://www.eclipsecon.org/2012/sites/eclipsecon.org.2012/files/econ-agile130x100_speaking.gif?1315863548&quot; width=&quot;130&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;br /&gt;  &lt;a href=&quot;http://feeds.wordpress.com/1.0/gocomments/ianskerrett.wordpress.com/2250/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/ianskerrett.wordpress.com/2250/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godelicious/ianskerrett.wordpress.com/2250/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/ianskerrett.wordpress.com/2250/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gofacebook/ianskerrett.wordpress.com/2250/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/facebook/ianskerrett.wordpress.com/2250/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gotwitter/ianskerrett.wordpress.com/2250/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/twitter/ianskerrett.wordpress.com/2250/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gostumble/ianskerrett.wordpress.com/2250/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/ianskerrett.wordpress.com/2250/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godigg/ianskerrett.wordpress.com/2250/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/ianskerrett.wordpress.com/2250/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/goreddit/ianskerrett.wordpress.com/2250/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/ianskerrett.wordpress.com/2250/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; height=&quot;1&quot; src=&quot;http://stats.wordpress.com/b.gif?host=ianskerrett.wordpress.com&amp;amp;blog=405862&amp;amp;post=2250&amp;amp;subd=ianskerrett&amp;amp;ref=&amp;amp;feed=1&quot; width=&quot;1&quot; /&gt;&lt;img height=&quot;1&quot; src=&quot;http://feeds.feedburner.com/~r/IanSkerrett/~4/GGOdAXEMJX0&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>Ian Skerrett</name>
			<uri>http://ianskerrett.wordpress.com</uri>
		</author>
		<source>
			<title type="html">Ian Skerrett</title>
			<subtitle type="html">Marketing at Eclipse</subtitle>
			<link rel="self" href="http://feeds.feedburner.com/IanSkerrett"/>
			<id>http://ianskerrett.wordpress.com</id>
		</source>
	</entry>

	<entry>
		<title type="html" xml:lang="en">Review: Harmony Link</title>
		<link href="http://lowtek.ca/roo/2012/review-harmony-link/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=review-harmony-link"/>
		<id>http://lowtek.ca/roo/?p=1078</id>
		<updated>2012-01-27T01:50:51+00:00</updated>
		<content type="html" xml:lang="en">&lt;p&gt;&lt;a href=&quot;http://lowtek.ca/roo/wp-content/uploads/2012/01/harmonylink.png&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;aligncenter size-full wp-image-1079&quot; height=&quot;171&quot; src=&quot;http://lowtek.ca/roo/wp-content/uploads/2012/01/harmonylink.png&quot; title=&quot;harmonylink&quot; width=&quot;512&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;When it was &lt;a href=&quot;http://blog.logitech.com/2011/09/20/harmonylink/&quot;&gt;announced back in September 2011&lt;/a&gt; I was quite excited about the &lt;a href=&quot;http://www.logitech.com/en-us/1225/8439&quot;&gt;HarmonyLink&lt;/a&gt;. I got one as a gift this Christmas and after some initial efforts with it, my enthusiasm is a little dampened, but I still think the device has a lot of promise. There are some serious flaws that need to be addressed by &lt;a href=&quot;http://en.wikipedia.org/wiki/Logitech&quot;&gt;Logitech&lt;/a&gt; before it can replace my &lt;a href=&quot;http://www.remotecentral.com/tsu2000/index.html&quot;&gt;Pronto TSU 2000&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I was surprised that it didn’t use the same &lt;a href=&quot;http://www.logitech.com/en-ca/440/3742?section=downloads&quot;&gt;Harmony Desktop software&lt;/a&gt; that worked with the 659, then I got excited because it appeared to be web based. The model is log into website, configure your Devices and Activities on the web and sync to your device – nice. Sadly if you try to log into your account on &lt;a href=&quot;http://myharmony.com/&quot;&gt;myharmony.com&lt;/a&gt; from a non supported platform you get this message:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;The following platforms are supported:&lt;/p&gt;
&lt;p&gt;Microsoft® Windows XP or Vista with Internet Explorer 7+, or Firefox 3+&lt;/p&gt;
&lt;p&gt;Microsoft® Windows 7 with Internet Explorer 8+ or Firefox 3+&lt;/p&gt;
&lt;p&gt;Intel Mac OS® 10.4.8+ with Firefox 3+ or Safari 4+&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;The reason for this is they use a custom browser plug-in to do the initial setup of the device. This sort of makes sense, as the HarmonyLink is a wifi device that needs to be told how to connect to your wireless network. The initial setup seems to be the only time you’ll need the USB cable provided. I also found it a bit uncomfortable being asked by a website to enter my &lt;a href=&quot;http://en.wikipedia.org/wiki/Wpa2#WPA2&quot;&gt;WPA2&lt;/a&gt; password.&lt;/p&gt;
&lt;p&gt;Logitech could have made things much simpler. Provided a very simple utility on Windows and Mac OSX to do the device initialization. Of course you need to program the device to enable it for your wireless network, they have all the code they need to do this in a reasonable manner so it seems like just a dumb design decision to include it as part of the browser plugin.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Security fail:&lt;/strong&gt; The website myharmony.com also wasn’t able to accept a &amp;lt; character in my password. It gets better, the &lt;a href=&quot;http://en.wikipedia.org/wiki/Android_(operating_system)&quot;&gt;Android&lt;/a&gt; app (and apparently the &lt;a href=&quot;http://en.wikipedia.org/wiki/IOS&quot;&gt;iOS&lt;/a&gt; app too) doesn’t remember your password. So you need to type it in from time to time. Strike two for password security. They do require at least 4 characters, I can think of some great four letter words that might fit. So the user is torn between using a strong password or a convenient one. Everyone who might want to use the remote may need to know the password, that’d be strike three on their security story.&lt;/p&gt;
&lt;p&gt;Setting up the devices was pretty reasonable, it does require that you know the model numbers of your equipment but will provide suggestions if you’re close to the right name. I had trouble locating the IR4PS3 device (for control of the PS3) in the device database, I ended up succeeding by entering Sony as the manufacturer and IR4PS3 as the model – then the correction offered by the website (IR4PS3/IR4PS3) worked.&lt;/p&gt;
&lt;p&gt;The remote is setup around the idea of Activities, such as “Watch TV”. This is a bit different than the flow I have setup with my Pronto so it’ll take some getting used to. They have three basic activities: Watch TV, Watch Movie, Listen to Music. You can have multiples of one type of activity and give them unique names, but they provide only 4 icons – which is very silly given how easy it should be to have many different icons.&lt;/p&gt;
&lt;p&gt;They very first time you connect to the HarmonyLink using your Android or iOS device running the remote control app, you’ll likely have a firmware update and a sync of your data from the web. The Android app hung on me during the firmware update leaving me waiting and waiting. It required a reboot of my Android tablet and I was back in business.&lt;/p&gt;
&lt;p&gt;I haven’t warmed up to the Android version of the app yet. The power off path wasn’t immediately obvious to me, I’ll have to see how others that get a chance to use the remote once I shake out all the major issues react to it. Responsiveness to button presses is pretty good, there doesn’t feel like there is any appreciable lag. You can edit the button layout, with the exception of the 4 way navigation pad which seems fixed (this is unfortunate as the IR4PS3 mapping for ‘ok’ doesn’t map to X).&lt;/p&gt;
&lt;p&gt;I was disappointed to discover that there wasn’t a web UI on the HarmonyLink itself. You must use a supported device (Android, iOS) and run the app. I’ll need to break out Wireshark and take a look at what needs to be done to fix that.&lt;/p&gt;
&lt;p&gt;As I started with, I’m still optimistic this is going to be a nice addition to my home theatre – but only once they address some of the shortcomings. Engadget gathered a &lt;a href=&quot;http://www.engadget.com/2011/12/25/how-would-you-change-logitechs-harmony-link/&quot;&gt;long list of great comments&lt;/a&gt; which felt pretty much on target. There is also a &lt;a href=&quot;http://forums.logitech.com/t5/Harmony-Link/Official-Suggestion-Thread-and-Some-Quick-Fixes/td-p/712842&quot;&gt;suggestion thread&lt;/a&gt; in the Logitech forums. I hope Logitech is listening.&lt;/p&gt;</content>
		<author>
			<name>Roo</name>
			<uri>http://lowtek.ca/roo</uri>
		</author>
		<source>
			<title type="html">Roo's View</title>
			<subtitle type="html">A clever tagline should go here</subtitle>
			<link rel="self" href="http://lowtek.ca/roo/feed/"/>
			<id>http://lowtek.ca/roo</id>
		</source>
	</entry>

	<entry>
		<title type="html">AMD - the good parts</title>
		<link href="http://feedproxy.google.com/~r/pmuellr/~3/WlpJWAYgEck/amd-good-parts.html"/>
		<id>tag:blogger.com,1999:blog-22367266.post-2897338559158240774</id>
		<updated>2012-01-19T18:58:03+00:00</updated>
		<content type="html">&lt;p&gt;Based my blog post yesterday
&quot;&lt;a href=&quot;http://pmuellr.blogspot.com/2012/01/more-on-why-amd-is-not-answer.html&quot;&gt;More on why AMD is Not the Answer&lt;/a&gt;&quot;, 
you might guess I'm an AMD-hater. I strive to
&lt;a href=&quot;http://jsconf.eu/2011/an_end_to_negativity.html&quot;&gt;not be negative&lt;/a&gt;,
but sometimes I fail.  Mea culpa.&lt;/p&gt;

&lt;p&gt;I &lt;em&gt;do&lt;/em&gt; have a number of issues with AMD.  But I think it's also fair to 
point out &quot;the good parts&quot;.  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;my background&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I've only really played with a few AMD 
libraries/runtimes. I've been more fiddling around with ways of 
taking node/CommonJS-style modules, and making them 
consumable by AMD runtimes.  The AMD runtimes I've played with 
the most are 
&lt;a href=&quot;https://github.com/jrburke/almond&quot;&gt;almond&lt;/a&gt; 
and (my own) 
&lt;a href=&quot;https://github.com/pmuellr/modjewel&quot;&gt;modjewel&lt;/a&gt;.
My focus has been on just the raw &lt;code&gt;require()&lt;/code&gt; and &lt;code&gt;define()&lt;/code&gt; 
functions.&lt;/p&gt;

&lt;p&gt;But I follow a lot of the AMD chatter around the web, 
and have done at least reading and perusing through other 
AMD implementations.  To find implementations of AMD, look at
&lt;a href=&quot;http://www.commonjs.org/impl/&quot;&gt;this list&lt;/a&gt;
and search for &quot;async&quot;.  The ones I hear the most about are
&lt;a href=&quot;http://requirejs.org/&quot;&gt;require.js&lt;/a&gt;,
&lt;a href=&quot;http://dojotoolkit.org/features/&quot;&gt;Dojo&lt;/a&gt;,
&lt;a href=&quot;https://github.com/pinf/loader-js#readme&quot;&gt;PINF&lt;/a&gt;,
and
&lt;a href=&quot;https://github.com/cujojs/curl#readme&quot;&gt;curl&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;And now, &quot;the good parts&quot;.&lt;/p&gt;

&lt;h2&gt;the code&lt;/h2&gt;

&lt;p&gt;Browsing the source repositories and web sites, 
you'll note that folks have spent a 
lot of time on the libraries - the code itself, documentation, 
test suites, support, etc.  Great jobs, all.  I know a lot 
of these libraries have been battle-tested by folks in 
positions to do pretty good battle-testing with them.&lt;/p&gt;

&lt;h2&gt;the evangelism&lt;/h2&gt;

&lt;p&gt;Special mention here to 
&lt;a href=&quot;http://tagneto.blogspot.com/&quot;&gt;James Burke&lt;/a&gt;
(not 
&lt;a href=&quot;http://en.wikipedia.org/wiki/James_Burke_(gangster)&quot;&gt;this one&lt;/a&gt;),
who has done a spectacular job leading and evangelizing 
the AMD cause, both within the &quot;JavaScript Module&quot; 
community, and outside.  In particular, he's been 
trying to get AMD support into popular libraries like 
&lt;a href=&quot;http://bugs.jquery.com/ticket/7102&quot;&gt;jQuery&lt;/a&gt;,
&lt;a href=&quot;https://github.com/documentcloud/backbone/issues/search?q=AMD&quot;&gt;backbone&lt;/a&gt;,
&lt;a href=&quot;https://github.com/documentcloud/underscore/issues/search?q=AMD&quot;&gt;underscore&lt;/a&gt; and
&lt;a href=&quot;https://github.com/joyent/node/issues/search?q=AMD&quot;&gt;node.js&lt;/a&gt;.
Sometimes with success, sometimes not. James has been 
cool and collected when dealing with jerks like me, 
pestering him with complaints, questions, requests and bug reports. 
Some open source communities can be cold and bitter 
places, but the AMD community is not one of those, and I'm sure
that's in part due to James.&lt;/p&gt;

&lt;p&gt;Thanks for all your hard work James!&lt;/p&gt;

&lt;h2&gt;the async support&lt;/h2&gt;

&lt;p&gt;AMD is an acronym for 
&lt;a href=&quot;https://github.com/amdjs/amdjs-api/wiki/AMD&quot;&gt;Asynchronous Module Definition&lt;/a&gt;.
That first word, &lt;em&gt;Asynchronous&lt;/em&gt;, is key.
For the most part, if you're using JavaScript, you're living in a world of 
single-threaded processing, where long-running functions are implemented as 
asynchronous calls that take 
callback functions as arguments.  It makes sense, at least in some cases,
to extend this to the function of loading JavaScript code.&lt;/p&gt;

&lt;p&gt;If you need to load JavaScript in an async fashion, AMD is designed for you, 
and uses existing async function patterns that
JavaScript programmers should already be familiar with.&lt;/p&gt;

&lt;h2&gt;support for CommonJS&lt;/h2&gt;

&lt;p&gt;This is a touchy subject, because when you ask 10 people what &quot;CommonJS&quot; is,
you'll get 15 different answers.  For the purposes here, and really whenever
I use the phrase &quot;CommonJS&quot;, I'm technically referring to 
&lt;a href=&quot;http://www.commonjs.org/specs/&quot;&gt;one of the Modules/1.x specifications&lt;/a&gt;,
and more specifically, the general definitions of the &lt;code&gt;require()&lt;/code&gt; function
and the &lt;code&gt;exports&lt;/code&gt; and &lt;code&gt;module&lt;/code&gt; variables used in the body of a module.
These general definitions are also applicable, with some differences, in 
&lt;a href=&quot;http://nodejs.org/docs/latest/api/modules.html&quot;&gt;node.js&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;When I use the phrase &quot;CommonJS&quot;, I am &lt;strong&gt;NEVER&lt;/strong&gt; referring to 
the other specifications in the CommonJS specs stable (linked to above).&lt;/p&gt;

&lt;p&gt;AMD supports this general definition of &quot;CommonJS&quot;, in my book.
Super double plus one good!&lt;/p&gt;

&lt;p&gt;Aside: I'm looking for another 'name' to call my simplistic notion
of CommonJS.  So far, things like &lt;em&gt;simple &lt;code&gt;require()&lt;/code&gt;y support&lt;/em&gt;,
seem to capture my intent.  But you know how 
&lt;a href=&quot;http://callback.github.com/callback-weinre/&quot;&gt;bad I am with naming&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;the design for quick edit-debug cycles&lt;/h2&gt;

&lt;p&gt;One of the goals of AMD is to facilitate a quick
edit-debug cycle while you are working on your JavaScript.  To
do this, AMD specifies that you wrap the body of your module in
a specific type of function wrapper when you author it.
Because of the way it's designed, these JavaScript files can
be loaded directly with a &lt;code&gt;&amp;lt;script src=&amp;gt;&lt;/code&gt; element in your HTML
file, or via &lt;code&gt;&amp;lt;script src=&amp;gt;&lt;/code&gt; elements injected into your live web page
dynamically, by a library.  This means that as soon as you save the JavaScript you're
editing in your text editor/IDE, you can refresh the page in
your browser without an intervening &quot;build step&quot; or special
server processing - the same files you are editing are loaded
directly in the browser.&lt;/p&gt;

&lt;h2&gt;the resources&lt;/h2&gt;

&lt;p&gt;Beyond just loading JavaScript code, AMD supports the notion
of loading other &lt;em&gt;things&lt;/em&gt;.  The &lt;em&gt;things&lt;/em&gt; you can load
are determined by what 
&lt;a href=&quot;https://github.com/amdjs/amdjs-api/wiki/Loader-Plugins&quot;&gt;Loader Plugins&lt;/a&gt;
you have available.  Examples include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/jrburke/requirejs/blob/master/text.js&quot;&gt;the text of a file/resource&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/jrburke/requirejs/blob/master/i18n.js&quot;&gt;i18n bundles&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/ZeeAgency/requirejs-tpl&quot;&gt;templates&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;etc&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Coming from the Java world, this is familiar territory; see:
&lt;a href=&quot;http://docs.oracle.com/javase/6/docs/api/java/lang/Class.html#getResourceAsStream(java.lang.String)&quot;&gt;Class.getResource*() methods&lt;/a&gt;.
For the most part, I consider this to be amongst the core bits of 
functionality that a programming library should provide.  It's a common
pattern to ship data with your code, and you need some way to access it.
And, of course, this resource loading is available in an async manner
with AMD.&lt;/p&gt;

&lt;p&gt;Aside: I'm not sure what the analog of this is in the node.js world. 
You can certainly do it by hand, making use of the 
&lt;a href=&quot;http://nodejs.org/docs/latest/api/globals.html#__dirname&quot;&gt;&lt;tt&gt;__dirname&lt;/tt&gt;&lt;/a&gt;
global, and then performing i/o yourself.  I'm just not sure if 
someone has wrapped this up nicely in a library yet.&lt;/p&gt;

&lt;h2&gt;the build&lt;/h2&gt;

&lt;p&gt;At the end of the day, hopefully, your web application is going to be available
to some audience, who will be using it for realz.  It's unlikely that you will want to 
continue to load your JavaScript code (and resources) as individual pieces as you do 
in development; instead, you'll want to concatenate and minimize your wads of goo
to keep load time to a minimum for your customers.&lt;/p&gt;

&lt;p&gt;And it seems like most AMD implementations provide a mechanism to do this.&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/22367266-2897338559158240774?l=pmuellr.blogspot.com&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;&lt;img height=&quot;1&quot; src=&quot;http://feeds.feedburner.com/~r/pmuellr/~4/WlpJWAYgEck&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>Patrick Mueller</name>
			<email>noreply@blogger.com</email>
			<uri>http://pmuellr.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">pmuellr</title>
			<subtitle type="html">Patrick Mueller</subtitle>
			<link rel="self" href="http://feeds.feedburner.com/pmuellr"/>
			<id>tag:blogger.com,1999:blog-22367266</id>
		</source>
	</entry>

	<entry>
		<title type="html">More on why AMD is Not the Answer</title>
		<link href="http://feedproxy.google.com/~r/pmuellr/~3/9xV5RCxHpto/more-on-why-amd-is-not-answer.html"/>
		<id>tag:blogger.com,1999:blog-22367266.post-64780419174178852</id>
		<updated>2012-01-18T15:40:59+00:00</updated>
		<content type="html">&lt;p&gt;Follow-on to Tom Dale's blog post &quot;&lt;a href=&quot;http://tomdale.net/2012/01/amd-is-not-the-answer/&quot;&gt;AMD is Not the Answer&lt;/a&gt;&quot; and James Burke's response &quot;&lt;a href=&quot;http://tagneto.blogspot.com/2012/01/reply-to-tom-on-amd.html&quot;&gt;Reply to Tom on AMD&lt;/a&gt;&quot;.  I pretty much concur with everything Tom said.  Here are some points brought up by James:&lt;/p&gt;

&lt;h2&gt;need an alternative&lt;/h2&gt;

&lt;p&gt;James says:&lt;/p&gt;

&lt;blockquote&gt;&lt;i&gt;
  &lt;p&gt;what is missing is a solid alternative to AMD. In particular, &quot;use build tools to wrap up CommonJS modules&quot; is not a generic solution. It does not allow for generic dynamic loading of resources, particularly from CDNs. Dynamic loading is needed for big sites that still do builds but want to stage loading of the site as the user uses it.&lt;/p&gt;
&lt;/i&gt;&lt;/blockquote&gt;

&lt;p&gt;I don't think using build tools precludes you from building wads of modules that can be loaded dynamically.  Generic solutions bother me.  See: J2EE.&lt;/p&gt;

&lt;h2&gt;ceremony&lt;/h2&gt;

&lt;p&gt;James says:&lt;/p&gt;

&lt;blockquote&gt;&lt;i&gt;
  &lt;p&gt;On his concern about too much ceremony -- this is the minimum amount of ceremony:&lt;/p&gt;
&lt;/i&gt;&lt;/blockquote&gt;

&lt;pre&gt;&lt;code&gt;    define(function(require) {
        //Module code in here
    });
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;On the other hand, here's some code pulled from &lt;a href=&quot;http://svn.dojotoolkit.org/src/dijit/trunk/Calendar.js&quot;&gt;&lt;code&gt;dijit.Calendar.js&lt;/code&gt;&lt;/a&gt;:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;    define([
        &quot;dojo/_base/array&quot;, // array.map
        &quot;dojo/date&quot;,
        &quot;dojo/date/locale&quot;,
        &quot;dojo/_base/declare&quot;, // declare
        &quot;dojo/dom-attr&quot;, // domAttr.get
        &quot;dojo/dom-class&quot;, // domClass.add domClass.contains domClass.remove domClass.toggle
        &quot;dojo/_base/event&quot;, // event.stop
        &quot;dojo/_base/kernel&quot;, // kernel.deprecated
        &quot;dojo/keys&quot;, // keys
        &quot;dojo/_base/lang&quot;, // lang.hitch
        &quot;dojo/sniff&quot;, // has(&quot;ie&quot;)
        &quot;./CalendarLite&quot;,
        &quot;./_Widget&quot;,
        &quot;./_CssStateMixin&quot;,
        &quot;./_TemplatedMixin&quot;,
        &quot;./form/DropDownButton&quot;
    ], function(array, date, local, declare, domAttr, domClass, event, kernel, keys, lang, has,
                CalendarLite, _Widget, _CssStateMixin, _TemplatedMixin, DropDownButton){
        //Module code in here
    });
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;This isn't just ceremony.  It's ugly ceremony of the sort that's difficult to debug when you screw up.&lt;/p&gt;

&lt;h2&gt;module consumption&lt;/h2&gt;

&lt;p&gt;James says:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;the alternative he mentions does not handle the breadth of JS module consumption&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The simple &lt;code&gt;require()&lt;/code&gt;y story of &lt;a href=&quot;http://npmjs.org&quot;&gt;npm&lt;/a&gt; modules seems to handle the JS module consumption pretty well, for node.js.  For the browser, you can use npm modules with &lt;a href=&quot;https://github.com/substack/node-browserify&quot;&gt;Browserify&lt;/a&gt; or other &quot;build tools&quot;.  Where is the equivalent of npm for AMD?  Or maybe npm already contains AMD modules?  Or let's say I want to just use a single module out of Dojo in my app.  How do I do that?&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/22367266-64780419174178852?l=pmuellr.blogspot.com&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;&lt;img height=&quot;1&quot; src=&quot;http://feeds.feedburner.com/~r/pmuellr/~4/9xV5RCxHpto&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>Patrick Mueller</name>
			<email>noreply@blogger.com</email>
			<uri>http://pmuellr.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">pmuellr</title>
			<subtitle type="html">Patrick Mueller</subtitle>
			<link rel="self" href="http://feeds.feedburner.com/pmuellr"/>
			<id>tag:blogger.com,1999:blog-22367266</id>
		</source>
	</entry>

	<entry>
		<title type="html" xml:lang="en">Snowmageddon Day in Ottawa</title>
		<link href="http://www.bikeview.ca/2012/01/14/snowmageddon-day-in-ottawa/"/>
		<id>http://www.bikeview.ca/?p=67</id>
		<updated>2012-01-14T14:12:54+00:00</updated>
		<content type="html" xml:lang="en">&lt;p&gt;Today started off with ice rain in the morning followed by something like 10-15 cm (4-6″) of snowfall. It wasn’t very cold though, around -2˚C. Riding in these conditions is a real workout and tests your balance, power stroke evenness and ability to unclip in an instant! Yes it’s a bit nerve wracking but usually on a street like Carling, that 3rd lane is abandoned anyway and you can just ride the rut left by OCTranspo buses. The bad incident was the driver of a Leon’s truck who clearly had no idea how to actually drive a truck. It first passed me too close then just started to merge over into me. I’m not a stationary object, I’m moving between 20 and 30 km/h. You can’t just pass with a big truck and then merge over. The bus drivers get this because they’re trained to manoeuvre large vehicles.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;</content>
		<author>
			<name>Ken Walker</name>
			<uri>http://www.bikeview.ca</uri>
		</author>
		<source>
			<title type="html">Bike View in Ottawa</title>
			<subtitle type="html">A Video Perspective To Biking In Ottawa</subtitle>
			<link rel="self" href="http://www.bikeview.ca/feed/"/>
			<id>http://www.bikeview.ca</id>
		</source>
	</entry>

	<entry>
		<title type="html" xml:lang="en">It’s Going to be an Exciting Year</title>
		<link href="http://mmilinkov.wordpress.com/2012/01/06/its-going-to-be-an-exciting-year/"/>
		<id>http://mmilinkov.wordpress.com/?p=782</id>
		<updated>2012-01-06T11:00:47+00:00</updated>
		<content type="html" xml:lang="en">&lt;p&gt;Welcome to 2012 folks, its going to be a busy and exciting year. There will be a number of important new projects, programs and initiatives across the Eclipse community. When we’re done Eclipse and the Eclipse Foundation is going to be quite a different – and even more interesting – place. So in no particular order, here is a sampling of some of the big things I see coming.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;As of the Juno release, &lt;strong&gt;Eclipse 4&lt;/strong&gt; is going to be the &lt;a href=&quot;http://www.eclipse.org/projects/project-plan.php?projectid=eclipse&quot; target=&quot;_blank&quot;&gt;base platform&lt;/a&gt; for the Eclipse ecosystem. This means that our download page will only have Eclipse 4.2-based packages. Eclipse 3.8 will also ship as part of the Juno release, but currently there are no 3.x releases planned after that. Although an enormous investment has gone into the backwards compatibility layer for Eclipse 4, it is obviously going to take testing and effort by the Eclipse projects and the many Eclipse adopters to migrate to Eclipse 4.2. So if you haven’t started testing with the Juno builds, now’s the time to start planning for it. Eclipse 4 is a complete re-write of the platform user interface, and brings a lot of value to the ecosystem, including a lot of improved APIs, more flexibility and a refreshed user interface. And its API is 100% binary compatible with the 3.x platform.&lt;/li&gt;
&lt;li&gt;The migration of the Eclipse community to &lt;strong&gt;git&lt;/strong&gt; is going to be a significant event during 2012. &lt;a href=&quot;http://jaxenter.com/goodbye-cvs-the-countdown-to-git-on-eclipse-is-underway-39492.html&quot;&gt;Shutting off CVS&lt;/a&gt; in December will be a major milestone. And we are almost done getting the &lt;a href=&quot;http://git.eclipse.org/r/&quot;&gt;Gerritt&lt;/a&gt; code review tool up and running for all Eclipse projects. To make all of this happen has been a ton of work by the webmaster team, the IP team, and you, the community. We’re hoping that using git will make it easier for our community to experiment with, and contribute back to Eclipse projects.&lt;/li&gt;
&lt;li&gt;A &lt;strong&gt;Common Build Infrastructure&lt;/strong&gt; for Eclipse projects is a new service we plan to provide for projects at Eclipse. It has long been a complaint that getting builds working and running reliably is one of the biggest PITAs in running a project. The goal of the &lt;a href=&quot;http://wiki.eclipse.org/CBI&quot;&gt;CBI&lt;/a&gt; is to reduce that effort, and to provide a core hosted service on eclipse.org infrastructure that all of our projects can use. As part of the initial proof of concept, we’re tackling the toughest build of all: &lt;a href=&quot;http://wiki.eclipse.org/CBI/Eclipse_Platform_Build&quot;&gt;the Eclipse platform&lt;/a&gt;. Admittedly, CBI is going to take a lot of work, but we are actively recruiting for a full-time staff member to manage this, and to act as a resource for our project community. This is definitely one of the biggest and most exciting new services we’ve worked on for our committer community. So please get involved, and provide your feedback and your requirements. &lt;/li&gt;
&lt;li&gt;We will also be launching a &lt;a href=&quot;http://wiki.eclipse.org/EclipseLTS&quot;&gt;new service&lt;/a&gt; for members – providing &lt;strong&gt;Long Term Support&lt;/strong&gt; for Eclipse releases. There is a fundamental mismatch between the maintenance window for Eclipse releases and the enterprise products that are built and ship on top. Eclipse release trains at least offer SR1 (September) and SR2 (February) maintenance releases on a regular basis. But an SR2 eight months after a major release is small solace to anyone with a requirement to offer support or maintenance on a product or application for five or more years (as many organizations do).
&lt;p&gt;As we are rolling this out, it is important to note that the Foundation is not going to be providing support or maintenance directly. Rather, we will work to connect organizations seeking support for Eclipse software with those offering it in order to cultivate a vibrant ecosystem. To help service providers be more efficient and effective, the Eclipse Foundation will provide the infrastructure for the code repositories, bug trackers, build farms, test farms, software signing, intellectual property management, and governance for managing the projects. We will be the trusted organization doing the drudge-work so that others do not have to. In other words, in classic Eclipse style, the Foundation will be acting as an enabler for the ecosystem.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Orion&lt;/strong&gt; is going to ship its 1.0 release later in 2012. There is a ton of work still to do, but there is no doubt in my mind that Orion is an important new technology for the Eclipse community – a whole new tooling platform for the web, in the web. &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;EclipseCon&lt;/strong&gt; is &lt;a href=&quot;http://mmilinkov.wordpress.com/2011/07/01/eclipsecon-north-america-2012/&quot;&gt;moving&lt;/a&gt; to Reston, Virginia, just outside Washington, DC. We hope to attract a lot of new attendees from the East Coast. In addition to the new location, we’re also adding an entirely new co-conference: &lt;a href=&quot;http://www.eclipsecon.org/2012/agilealm&quot; target=&quot;_blank&quot;&gt;Agile ALM Connect&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;And last but not least, we will be creating a number of new &lt;strong&gt;Industry Working Groups&lt;/strong&gt;. &lt;a href=&quot;http://www.eclipse.org/org/industry-workgroups/&quot;&gt;IWGs&lt;/a&gt; such as &lt;a href=&quot;http://polarsys.org/&quot;&gt;Polarsys&lt;/a&gt; and &lt;a href=&quot;http://wiki.eclipse.org/Machine-to-Machine&quot;&gt;M2M&lt;/a&gt; are going to be a large focus area for the Eclipse Foundation. But what is an IWG? Basically, they complement Eclipse open source projects with more support from the member companies that are interested in working on them and adopting them. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I see 2012 as a year of significant, and positive, change for the Eclipse community and the Eclipse Foundation. We are certainly not resting on our laurels! I encourage everyone to get involved and contribute to these new initiatives. &lt;/p&gt;
&lt;br /&gt;Filed under: &lt;a href=&quot;http://mmilinkov.wordpress.com/category/foundation/&quot;&gt;Foundation&lt;/a&gt;, &lt;a href=&quot;http://mmilinkov.wordpress.com/category/open-source/&quot;&gt;Open Source&lt;/a&gt;  &lt;a href=&quot;http://feeds.wordpress.com/1.0/gocomments/mmilinkov.wordpress.com/782/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/mmilinkov.wordpress.com/782/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godelicious/mmilinkov.wordpress.com/782/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/mmilinkov.wordpress.com/782/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gofacebook/mmilinkov.wordpress.com/782/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/facebook/mmilinkov.wordpress.com/782/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gotwitter/mmilinkov.wordpress.com/782/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/twitter/mmilinkov.wordpress.com/782/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gostumble/mmilinkov.wordpress.com/782/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/mmilinkov.wordpress.com/782/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godigg/mmilinkov.wordpress.com/782/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/mmilinkov.wordpress.com/782/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/goreddit/mmilinkov.wordpress.com/782/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/mmilinkov.wordpress.com/782/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; height=&quot;1&quot; src=&quot;http://stats.wordpress.com/b.gif?host=mmilinkov.wordpress.com&amp;amp;blog=19461799&amp;amp;post=782&amp;amp;subd=mmilinkov&amp;amp;ref=&amp;amp;feed=1&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>Mike Milinkovich</name>
			<uri>http://mmilinkov.wordpress.com</uri>
		</author>
		<source>
			<title type="html">Life at Eclipse</title>
			<subtitle type="html">Musings on the Eclipse Foundation, the community and the ecosystem</subtitle>
			<link rel="self" href="http://mmilinkov.wordpress.com/feed/"/>
			<id>http://mmilinkov.wordpress.com</id>
		</source>
	</entry>

	<entry>
		<title type="html">Anatomy of an Orion Page</title>
		<link href="http://adventuresinthoughtlessness.blogspot.com/2012/01/anatomy-of-orion-page.html"/>
		<id>tag:blogger.com,1999:blog-846317186323356929.post-4481950946267271250</id>
		<updated>2012-01-05T21:19:02+00:00</updated>
		<content type="html">&lt;p&gt;When we first started building Orion, the site had two pages, a navigator and an editor.  Over the course of our release 0.2 development, we grew quite a few pages as we added function.  As part of this effort, we worked on the visual design for the pages, with most of that focus being on the overall visual style of Orion and the &lt;a href=&quot;http://wiki.eclipse.org/Orion/Page_Layout/Page_Layout_0.2&quot;&gt;layout of the header&lt;/a&gt;.&lt;/p&gt;&lt;h2&gt;Are we anatomically correct?&lt;/h2&gt;&lt;p&gt;For our current release, we want to put a &quot;fresh coat of paint&quot; on the pages, but as I've looked at some of our most problematic pages, I've come to realize that we first need to stop talking about things like &quot;headers&quot; and &quot;footers&quot; and start talking about the common, semantic elements that appear on all Orion pages.  I'm not talking about HTML elements per se.  If we can define and agree on the list of building blocks, then we can talk about how to represent them in the DOM and arrange them visually.  The work in progress is documented on the &lt;a href=&quot;http://wiki.eclipse.org/Orion/Page_Layout&quot;&gt;Orion wiki&lt;/a&gt;.  In this article, I'll describe some insights I've had while working on this anatomy.&lt;/p&gt;&lt;p&gt;In an extensible system like Orion, it's important to think about anatomy vs. layout because we want to allow plug-ins to contribute functionality to existing Orion pages, as well as provide links to pages from another site.  When I get a bug report that says, &quot;how can I put a link in the Orion header&quot; or &quot;how can I put a command on the navigator toolbar,&quot; I like to ask what the link is for and what is the user workflow, because perhaps that link belongs somewhere else on the page.  Hence the focus on anatomy vs. visual layout boxes.&lt;/p&gt;&lt;p&gt;The current list of body parts (no pun intended) is something like this.  (The &lt;a href=&quot;http://wiki.eclipse.org/Orion/Page_Layout&quot;&gt;wiki page&lt;/a&gt; will be kept up to date with our thinking and explanations of each.)&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Branding&lt;/li&gt;&lt;li&gt;Legalese (the fine print) &lt;/li&gt;&lt;li&gt;Discovery links&lt;/li&gt;&lt;li&gt;Expected links&lt;/li&gt;&lt;li&gt;User Info&lt;/li&gt;&lt;li&gt;Notifications&lt;/li&gt;&lt;li&gt;Search&lt;/li&gt;&lt;li&gt;Task (static page title)&lt;/li&gt;&lt;li&gt;Resource&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Dimensions&lt;/li&gt;&lt;li&gt;Hierarchical Location&lt;/li&gt;&lt;li&gt;Name&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Related Task Links&lt;/li&gt;&lt;li&gt;Task+Resource (Page) Level Commands&lt;/li&gt;&lt;li&gt;Resource View Controls&lt;/li&gt;&lt;li&gt;Resource Content&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Here's a picture of how these elements &lt;b&gt;might&lt;/b&gt; be organized on a page.  (Note this is an anatomical picture, I'm not proposing that the Orion header adopt ice cream colors.)  Most (all?) sites put the branding on the top left corner and legalese at the bottom, but of course if we stick with semantic definitions when structuring a page, this doesn't have to be true.&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://3.bp.blogspot.com/-BqZ3St1Lfuo/TwX-9kqhGMI/AAAAAAAAACs/iUBIAdg8QSE/s1600/headerwireframe.png&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;240&quot; src=&quot;http://3.bp.blogspot.com/-BqZ3St1Lfuo/TwX-9kqhGMI/AAAAAAAAACs/iUBIAdg8QSE/s320/headerwireframe.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;h2&gt;Some insights&lt;/h2&gt;&lt;p&gt;The body parts that might need some explaining are the ones where I've learned something about our page anatomy and have attempted to use terminology to further qualify an element.  &lt;/p&gt;&lt;h3&gt;A link is a link is a link?&lt;/h3&gt;&lt;p&gt;With links, I find it helpful to differentiate links by thinking about their scope and purpose.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Discovery links&lt;/b&gt; are there so the user discovers pages that are helpful in the overall site workflows.  If you are coding js in Orion, perhaps you'd like to know about &quot;site xyz.&quot;  (Hmmm....as I type this explanation I realize I haven't mentioned &quot;advertisement&quot; in the anatomy.)  &lt;/li&gt;&lt;li&gt;&lt;b&gt;Expected links&lt;/b&gt; are links you might need to find someday, but you'll expect them and be willing to go looking for it.  For example, how do I get support?  How do I open a bug?  &lt;/li&gt;&lt;li&gt;&lt;b&gt;Related task links&lt;/b&gt; are links that are directly related to what you are doing.  For example, if you are looking at the git log for some repository/branch, it's highly likely you might want to see the git status for that branch.&lt;/li&gt;&lt;/ul&gt;We also have links that represent commands.  These are buttons or links that let you act on a specific thing on the page.  But the scopes, placement, and visual representation for these commands will be a future topic, so let's ignore  them for now.&lt;p&gt;&lt;/p&gt;&lt;h3&gt;A resource by any other name?&lt;/h3&gt;&lt;p&gt;Another discovery for me is that it's not enough to talk about &quot;the resource&quot; that a user is operating on.  I'm not talking about the page resource/URL, I'm talking about the way the user thinks about the resource they are working with.  At a minimum, a resource has a fully qualified (hierarchical) location and a name.  But if you add version control to the mix, then you might also want to talk about a particular version of that resource, or perhaps a particular repository.  I'm still looking for a better word, but for now I call these &lt;b&gt;dimensions&lt;/b&gt;.  &lt;/p&gt;&lt;p&gt;Allowing the user to consistently find (and change) dimensions can help the usability of our workflows.  Let's take a specific example involving git.  Today, in the Orion editor, I can be happily editing my js file.  I can even use the breadcrumb to open a navigator within this hierarchy and find related files.  But why can't I switch to another branch from the editor?  We could hard-code a &quot;switch branch&quot; command into the editor page in the toolbar, but if we instead generalize this idea and have a way to show, and switch, dimensions in a common place on the page, then it will be easier for plug-ins to contribute dimensions and for users to have a common place to go to switch the resource content on the page.  &lt;/p&gt;&lt;h3&gt;Drilling down&lt;/h3&gt;&lt;p&gt;The high level anatomy mentions &quot;Resource Content&quot; but we know there all kinds of ways to represent something, depending on how complex it is.  The following terminology helps me talk about the different styles of pages we have:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;A &lt;b&gt;single content area&lt;/b&gt; is appropriate when a resource is best viewed as a unit.  The Orion code editor is a good example of a resource that is best viewed with a single content area.  Sometimes I think of it as &quot;the &lt;b&gt;real&lt;/b&gt; body of the page.&quot;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Sections&lt;/b&gt; organize the view of the resource into separate pieces, so that you can work with different aspects of a resource at a time.  &lt;/li&gt;&lt;li&gt;&lt;b&gt;Outliners&lt;/b&gt; help to navigate a content area.  For a single content area, they may simply move the content in a structured way (like the editor outliner).  For a resource organized in sections, they may navigate the sections (or help you to swap sections in and out on a page).&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;By formalizing the sectional nature of pages, we can make it easy in the future for plug-ins to contribute additional sections to a page, provide common places for the user to find commands that apply to a particular section, and common controls for expanding/collapsing or organizing sections.  &lt;/p&gt;&lt;h3&gt;HTML5: to section or not to section?&lt;/h3&gt;&lt;p&gt;When I use the word &quot;section&quot; above I am really talking about a way to organize the viewing and manipulating of a resource.  But I didn't want to use that word if it didn't jive with the notion of an HTML5 section.  So I checked the HTML5 spec for guidance regarding &lt;a href=&quot;http://dev.w3.org/html5/spec-author-view/the-section-element.html&quot;&gt;HTML section elements&lt;/a&gt;, and I think this is the right word to use, and that we will end up with HTML5 sections as the tags for these elements on the page.  In particular, the spec says, &quot;A general rule is that the section element is appropriate only if the element's contents would be listed explicitly in the document's outline.&quot;  That seems to hold up to the way we are using them.&lt;/p&gt;&lt;h2&gt;What does this mean to our technical page architecture?&lt;/h2&gt;&lt;p&gt;I'm not sure yet, but of course I'll guess.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;For plug-in developers, we'll formalize our markup surrounding sections and how to describe them in a plug-in.  I don't think we'll have plug-ins contributing sections per se in Orion 0.4, but I think we'll start down an implementation path that will make that possible.  And we'll probably see a plugin's preferences rendered in a section on the preference page.&lt;/li&gt;&lt;li&gt;Inside the Orion implementation, I'd like to see the javascript code talking about the page in terms of tasks and task types, path, name, dimensions, etc.  Some common code can map this information to a header (or footer) template, the breadcrumb, etc.  If we decide we like combo boxes for changing dimensions one day, and later decide to use drop down menus, it shouldn't be the page's concern at all.&lt;/li&gt;&lt;li&gt;Having isolated our javascript code from the common templates, the page implementation code shouldn't even care how the DOM is structured in particular.  But long run, it'd be nice to see the Orion page template get simpler, using HTML5 body header, footer, and sections within.  Then &quot;something outside the page&quot; (CSS?  JS?  both?) can apply that to a layout that makes sense for the particular Orion installation, without mandating a particular JS library or approach for making that happen.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;What I do know is that in Orion 0.4, it will be easier for you to move between pages in your workflow.  And in part, that will because of this anatomy and its corresponding implementation.  But while you are using Orion, I don't want you to think about that.  Hopefully, you'll just instinctively know how to find what you are trying to do, and think, &quot;wow, these guys always get those links and buttons in just the place I expect them to be!&quot;&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/846317186323356929-4481950946267271250?l=adventuresinthoughtlessness.blogspot.com&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Susan McCourt</name>
			<email>noreply@blogger.com</email>
			<uri>http://adventuresinthoughtlessness.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">Adventures in Thoughtlessness</title>
			<link rel="self" href="http://www.blogger.com/feeds/846317186323356929/posts/default"/>
			<id>tag:blogger.com,1999:blog-846317186323356929</id>
		</source>
	</entry>

	<entry>
		<title type="html" xml:lang="en">OPPO DVD Tray Repair</title>
		<link href="http://feedproxy.google.com/~r/aeonscope/posts/~3/V8Gb10zG_xw/"/>
		<id>http://www.aeonscope.net/?p=4270</id>
		<updated>2011-12-27T14:00:16+00:00</updated>
		<content type="html" xml:lang="en">&lt;p&gt;Recently, I ran into a bit of trouble where my &lt;a href=&quot;http://www.oppodigital.com&quot;&gt;OPPO&lt;/a&gt; DVD player would not open/close the DVD tray. When listening to the player while pushing the open/eject button I could, sometimes, hear a bit of rubber making a stressed sound - like rubber on rubber. That said, I could never recreate the situation consistently as I would sometimes hear a noise but mostly no sound would be made at all. After that, I searched the OPPO support pages but didn’t find any information related to this issue so fired off a quick email explaining the issue to OPPO support and this is what I got back:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Disconnect the DVD player’s power cord from the power source for no less than 15 minutes.&lt;/li&gt;
&lt;li&gt;Ensure that the tray is not sticking to the front of the tray opening by running a small flat object along the entire edge of the tray.&lt;/li&gt;
&lt;li&gt;Gently shake your DVD unit.&lt;/li&gt;
&lt;li&gt;Reconnect the power cord.&lt;/li&gt;
&lt;li&gt;Press Eject. If the tray does not Eject, make any note of any mechanical noises.&lt;/li&gt;
&lt;li&gt;Press Eject and press in the tray.&lt;/li&gt;
&lt;li&gt;Press Eject again.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;I had disconnected the power before but had never thought of shaking the unit (which, yes, I was surprised to see as an instruction). When shaking the unit, I grabbed the left and right side shook it in both a vertical and horizontal pattern. Upon reconnecting the unit, the DVD tray would open and close again. BTW, I do want to mention that I had upgraded the unit to the latest firmware.&lt;/p&gt;
&lt;p&gt;Anyway, I thought I’d pass this along in case anyone was experiencing this issue because I’m not accustomed to shaking my HiFi equipment for solving issues.&lt;/p&gt;
&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~ff/aeonscope/posts?a=V8Gb10zG_xw:wmZpfOmEkq4:yIl2AUoC8zA&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/aeonscope/posts?d=yIl2AUoC8zA&quot; /&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img height=&quot;1&quot; src=&quot;http://feeds.feedburner.com/~r/aeonscope/posts/~4/V8Gb10zG_xw&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>Brooke Kuhlmann</name>
			<uri>http://www.aeonscope.net</uri>
		</author>
		<source>
			<title type="html">Aeonscope</title>
			<subtitle type="html">A view of time.</subtitle>
			<link rel="self" href="http://feeds.feedburner.com/aeonscope/posts"/>
			<id>http://www.aeonscope.net</id>
		</source>
	</entry>

	<entry>
		<title type="html">scam</title>
		<link href="http://vanmeekeren.blogspot.com/2011/12/scam.html"/>
		<id>tag:blogger.com,1999:blog-19462871.post-8394755612151404284</id>
		<updated>2011-12-20T01:34:18+00:00</updated>
		<content type="html">begin:vcard&lt;br /&gt;fn:Michael Van Meekeren&lt;br /&gt;n:Van Meekeren;Michael&lt;br /&gt;org:Van Meekeren Farms Ltd.&lt;br /&gt;&lt;a href=&quot;mailto:email%3Binternet%3Amichael@givethemawink.com&quot;&gt;email;internet:michael@givethemawink.com&lt;/a&gt;&lt;br /&gt;tel;work:+1.902.678.2366&lt;br /&gt;tel;cell:+1.902.691.1178&lt;br /&gt;x-mozilla-html:FALSE&lt;br /&gt;url:&lt;a href=&quot;http://www.givethemawink.com&quot;&gt;www.givethemawink.com&lt;/a&gt;&lt;br /&gt;version:2.1&lt;br /&gt;end:vcard&lt;p&gt;Hi you may have received an email from my &lt;a href=&quot;http://yahoo.ca&quot;&gt;yahoo.ca&lt;/a&gt; account indicating I &lt;br /&gt;am stuck in the UK with no money.  This is a scam please ignore it.&lt;br /&gt;Sorry for the bother.&lt;/p&gt;&lt;p&gt;Michael&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/19462871-8394755612151404284?l=vanmeekeren.blogspot.com&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Michael Van Meekeren</name>
			<email>noreply@blogger.com</email>
			<uri>http://vanmeekeren.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">Eclipzed (Michael Van Meekeren's Blog)</title>
			<subtitle type="html">I'm happily married with a wonderful wife and fantastic crew of 5 children.  We've travelled around a lot and always like to meet new people while staying in touch with friends.  We love to add new and interesting people to our family, and even if they resist they're often assimilated before they know it.  

In making yet another move I realized it was time to track our life on line in a blog.  Enjoy becoming one of us.</subtitle>
			<link rel="self" href="http://www.blogger.com/feeds/19462871/posts/default"/>
			<id>tag:blogger.com,1999:blog-19462871</id>
		</source>
	</entry>

	<entry>
		<title type="html" xml:lang="en">User Registration Disabled</title>
		<link href="http://feedproxy.google.com/~r/aeonscope/posts/~3/qVxv9irhfcs/"/>
		<id>http://www.aeonscope.net/?p=4245</id>
		<updated>2011-12-11T14:28:55+00:00</updated>
		<content type="html" xml:lang="en">&lt;p&gt;Due to the increasing amount of spam related to auto-generated user registrations on this site, I have decided to disable further registrations. This also means that only legitimately registered users can leave comments on this site. Should you have a burning desire to leave a comment AND register as a new user, contact me directly.&lt;/p&gt;
&lt;p&gt;In the future, I will be releasing new software that will make all of this easier (including commenting) but I’m still a little ways away from achieving this goal (which is also why I haven’t been posting much on this site).&lt;/p&gt;
&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~ff/aeonscope/posts?a=qVxv9irhfcs:fpOozD6mw1U:yIl2AUoC8zA&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/aeonscope/posts?d=yIl2AUoC8zA&quot; /&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img height=&quot;1&quot; src=&quot;http://feeds.feedburner.com/~r/aeonscope/posts/~4/qVxv9irhfcs&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>Brooke Kuhlmann</name>
			<uri>http://www.aeonscope.net</uri>
		</author>
		<source>
			<title type="html">Aeonscope</title>
			<subtitle type="html">A view of time.</subtitle>
			<link rel="self" href="http://feeds.feedburner.com/aeonscope/posts"/>
			<id>http://www.aeonscope.net</id>
		</source>
	</entry>

	<entry>
		<title type="html" xml:lang="en">First Snowy Ride for Fall 2011</title>
		<link href="http://www.bikeview.ca/2011/12/03/first-snowy-ride-fall-2011/"/>
		<id>http://www.bikeview.ca/?p=65</id>
		<updated>2011-12-03T21:27:31+00:00</updated>
		<content type="html" xml:lang="en">&lt;p&gt;First, well second actually, snowy ride of Fall 2011. Just put the studded tires on the night before.  Seems every fall I have to figure out the layers I used to wear the year before.  Like, oh it’s -5˚C plus a bit of wind so I need a T-Shirt plus an IceBreaker Merino wool long sleeved shirt and just the stretchy pants.  Nope, don’t need the T-shirt if I can put up with cold for 10 minutes.  Also, if I wear my winter bike shoes and it’s above zero my feet sweat like crazy.  Was thinking I should write a web app that just tells me what to wear based on the temperature, weather.  Anyway, a slightly longer video.  I do try to keep them short.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;</content>
		<author>
			<name>Ken Walker</name>
			<uri>http://www.bikeview.ca</uri>
		</author>
		<source>
			<title type="html">Bike View in Ottawa</title>
			<subtitle type="html">A Video Perspective To Biking In Ottawa</subtitle>
			<link rel="self" href="http://www.bikeview.ca/feed/"/>
			<id>http://www.bikeview.ca</id>
		</source>
	</entry>

	<entry>
		<title type="html" xml:lang="en">Waterproof Samsung Windows Phone?</title>
		<link href="http://mcaffer.com/2011/11/waterproof-samsung-windows-phone/"/>
		<id>http://mcaffer.com/?p=54</id>
		<updated>2011-11-30T07:10:38+00:00</updated>
		<content type="html" xml:lang="en">&lt;p&gt;No, this is not an inside scoop on some new technology, rather an experience report on full submersion of a powered on cell phone.&lt;/p&gt;
&lt;p&gt;The other day my 8 year old son and I were down at the beach skipping stones and chasing ducks. Said son, being the adventurous type, was wading out in the water about 5 feet off-shore when he spotted something shiny.  I suggested he pick it up. Lo and behold he came up with a sparkly AT&amp;amp;T Samsung Focus Window Phone.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://mcaffer.com/wp-content/uploads/2011/11/samsung-focus.jpg&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;aligncenter size-full wp-image-56&quot; height=&quot;337&quot; src=&quot;http://mcaffer.com/wp-content/uploads/2011/11/samsung-focus.jpg&quot; title=&quot;samsung-focus&quot; width=&quot;500&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;We had no idea how long it had been there. We looked around at the people on the beach to see if anyone was frantically searching for something. No one. The screen was blank and I didn’t want to try and turn if on so, we took it home to figure out what to do.&lt;/p&gt;
&lt;p&gt;On the way home we speculated about how the phone could have gotten there.  The water is pretty shallow and boats don’t get that close.  It’s too far away to have just fallen out of a stroller’s pocket.  There’s no tide and the water level is consistent so the distance to the shore is constant. It could have been throw (but why)? Perhaps it had been there a long time and some summer tourists dropped it while swimming?&lt;/p&gt;
&lt;p&gt;At home we decided to open it up and see about drying it out with a view to turning it on and finding the owner.  Amazing how much water that little block seemed to have in it.  After getting the easy parts out (battery, sim, …) it became apparent that there was more water underneath the circuit boards. I found a great &lt;a href=&quot;http://www.techrepublic.com/photos/samsung-focus-windows-phone-7-teardown/492287?tag=siu-container;thumbnail-view-selector&quot;&gt;step by step disassembly series on TechRepublic&lt;/a&gt;. Within about 10 minutes my son and I had the phone in pieces on the kitchen table. We stopped short of separating adhesive bonded parts as we wanted to re-assemble and operate the phone.&lt;/p&gt;
&lt;p&gt;After soaking up the obvious water we looked for someplace warm but not too hot for it to dry. Our new oven has a “Proof” setting that is used for rising bread (about 100F).  Hmmm, not 100% sure on that one.  Heat register?  That could work but small parts, kids, cracks, … Not a good combination.  In the end we opted for putting on a small piece of paper on top of the cable TV box.&lt;/p&gt;
&lt;p&gt;I checked it the next day and it seemed dry but I figured a bit more time would not hurt. After about 24 hours of drying we reassembled the phone, put in the battery and turned it on.&lt;/p&gt;
&lt;p&gt;Well, whaddya know?! It booted up just fine.  About 1/5th of the battery power left — it could not have been in the water that long. Unfortunately the phone was locked with a pin code so we could not immediately find the owner. Also, we could not test that it still worked as a phone.  Bummer.&lt;/p&gt;
&lt;p&gt;I decided to call AT&amp;amp;T and see if they could locate the owner.  You’d think that this sort of thing happens all the time but the person I talked to said that they can’t do anything and that I’d have to take the phone to a AT&amp;amp;T store. Luckily there is one on the Microsoft campus where I work so I figured I’d take it in the next day at lunch.&lt;/p&gt;
&lt;p&gt;Just before lunch the next day I plugged in (and turned on) the phone to ensure it had some charge when I went to the store (not really sure why but it made sense at the time).  Shortly there-after it buzzed with a text message. “Call me at 425 436-2″. The rest of the phone number was cut off and the phone locked so I could not see it. Sigh.  Then a little while later the phone rang. I answered but could not hear anyone. This time however I could see the number so I called it back. It was the owner, looking for the phone.&lt;/p&gt;
&lt;p&gt;Working at Microsoft I see a lot of these phones around and figured the chances where high that it was a fellow ‘softie. Indeed it was. In fact, he worked for a former roommate of mine from 15+ years ago!  Small world.&lt;/p&gt;
&lt;p&gt;Apparently he and his family had been at the beach a couple hours before us and, like us, were hanging at the water skipping stones with their kids.  Now, you just gotta imagine that a cell phone would skip real well…  Our best guess is that their 3 year old somehow got the phone, had that very thought, and flung it into the water unnoticed. Needless to say they were pleased to have reconnected with the phone.&lt;/p&gt;
&lt;p&gt;We made arrangements to meet. When we did we tried out the calling and to our mutual surprise, it worked flawlessly. It would be interesting to see how long that will last or if some parts will start to corrode. Either way, I think its pretty impressive.&lt;/p&gt;
&lt;p&gt;In any event, we had some fun dissecting the phone, they got their phone back, my son learned about “doing the right thing” and I learned that Samsung phones can take a licking. Not bad for a Saturday at the beach.&lt;/p&gt;
&lt;p&gt;p.s., Later that week I bought a Samsung Focus S and a Focus Flash for me and my wife. While this was more because we wanted Windows phones, I have to say I was very comfortable with the purchase decision having seen what the phones can withstand.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;</content>
		<author>
			<name>jeff</name>
			<uri>http://mcaffer.com</uri>
		</author>
		<source>
			<title type="html">McAffer.com</title>
			<subtitle type="html">Thinking without boxes</subtitle>
			<link rel="self" href="http://mcaffer.com/feed/"/>
			<id>http://mcaffer.com</id>
		</source>
	</entry>

	<entry>
		<title type="html" xml:lang="en">Foundations Considered Useful</title>
		<link href="http://mmilinkov.wordpress.com/2011/11/25/foundations-considered-useful/"/>
		<id>http://mmilinkov.wordpress.com/?p=751</id>
		<updated>2011-11-25T10:00:32+00:00</updated>
		<content type="html" xml:lang="en">&lt;p&gt;Blogosphere and twittersphere are both abuzz this week as a result of Mikeal Rogers’ “&lt;a href=&quot;http://www.mikealrogers.com/posts/apache-considered-harmful.html&quot; target=&quot;_blank&quot;&gt;Apache Considered Harmful&lt;/a&gt;” post. I thought the article made a number of important points about how the software world is changing, and changing very rapidly. However, I think that follow-on articles such as “&lt;a href=&quot;http://m.itworld.com/it-managementstrategy/227477/has-open-source-outgrown-apache-way&quot; target=&quot;_blank&quot;&gt;Has open source outgrown the Apache Way&lt;/a&gt;” are pushing the hypothesis a little too far. It’s one thing to point out the dynamism of &lt;a href=&quot;https://github.com/&quot; target=&quot;_blank&quot;&gt;GitHub&lt;/a&gt;, and the rise of social coding. But stretching that to the assertion that open source foundations no longer have a role is just wrong. &lt;/p&gt;
&lt;p&gt;Disclaimer: I run an open source foundation, so obviously I have a vested interest in this debate.&lt;/p&gt;
&lt;p&gt;First, I would like to point out that Eclipse is &lt;a href=&quot;http://eclipse.org/projects/scmcountdown.php&quot; target=&quot;_blank&quot;&gt;absolutely committed&lt;/a&gt; to moving to git as fast as we can get there. We’ve even &lt;a href=&quot;http://jaxenter.com/goodbye-cvs-the-countdown-to-git-on-eclipse-is-underway-39492.html&quot; target=&quot;_blank&quot;&gt;announced a date&lt;/a&gt; by which we intend to shut down our previous standard SCM, CVS. At some point we also intend to discontinue Subversion support for Eclipse projects as well.&lt;/p&gt;
&lt;p&gt;Many in the Eclipse community know that I was personally a skeptic about the value of adding git. I was worried that having three SCM systems at Eclipse was too many. In addition to the resources required to support three SCMs, this kind of variety can act as a barrier to entry for both contributors and adopters. If folks have to learn multiple SCMs to interact with Eclipse projects, that is a PITA for them. In short, I was resisting change.&lt;/p&gt;
&lt;p&gt;Fortunately, there were many &lt;a href=&quot;http://aniszczyk.org/2011/11/23/apache-and-politics-over-code/&quot; target=&quot;_blank&quot;&gt;good folks&lt;/a&gt; within the Eclipse community that convinced me I was wrong. You know who you are. Thank you. &lt;/p&gt;
&lt;p&gt;The argument that ultimately swayed me was that git brings a social dynamic to contribution that the other SCMs we used lack. Adopting git is a strategic attempt by the Eclipse Foundation at social engineering. If we can lower the barrier to contribution at Eclipse, then we will make our community stronger and more innovative. That is ultimately the reason why we’re doing this. This has required investments by our IT team, and as we adopt Gerrit we are modifying our processes for IP management as well. We know that you can both use git and do excellent IP management, because we are already doing exactly that. &lt;/p&gt;
&lt;p&gt;Next up is to do more work with GitHub to make it even easier for the broader community to fork Eclipse projects and contribute code back. We are consciously embracing the whirlwind. &lt;/p&gt;
&lt;p&gt;I would point out that the model we have at Eclipse where we have a professional staff and some resources at the Foundation makes this kind of change easier to do. Once we’ve made up our mind as a community to push in a new direction, we have the people and the resources to make it happen. We’re not always fast enough to please everyone, but we get there.&lt;/p&gt;
&lt;p&gt;But is git and GitHub so powerful a force that the Eclipse Foundation should just roll over and die? I honestly don’t think so. There are some unique values that an open source foundation like Eclipse adds to the equation that are absolutely necessary. &lt;/p&gt;
&lt;p&gt;The first thing to understand is that what we are trying to build at Eclipse are not simply open source projects, frameworks or code libraries. Our mission is to ship product-ready software platforms that major corporations and enterprises can safely use and distribute in their products. This involves a level of co-ordination and process that goes far beyond what you can do at GitHub. &lt;/p&gt;
&lt;p&gt;A small sampling of the core value-add that happens within the Eclipse Foundation and its community would include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;IP management. Although we often get &lt;a href=&quot;https://twitter.com/#!/agentdero/status/130050871001235457&quot; target=&quot;_blank&quot;&gt;criticized&lt;/a&gt; for being overly focused on the topic, nobody does IP management better than Eclipse. Which is a huge part of fulfilling our mission of delivering product-ready software platforms. Yes, it’s a lot of work, but it is absolutely a core value, and one not easily replicated.&lt;/li&gt;
&lt;li&gt;Predictability. The Eclipse community has shipped its major platform release on time to the day for eight years. Last year’s release was 46 MLOC, so we are talking about a non-trivial amount of code. The processes that we have in place to co-ordinate the activities and release engineering for 60+ projects absolutely require some amount of centralized support.&lt;/li&gt;
&lt;li&gt;Branding and community. The Eclipse brand means something to people. Millions of developers around the world use Eclipse or Eclipse-based products every day. They have confidence in the software and the community that delivers it. Looking inside the community, there is definitely a pride and a sense of community that comes with being part of Eclipse. Anyone who has ever been to an &lt;a href=&quot;http://www.eclipsecon.org/2012/&quot; target=&quot;_blank&quot;&gt;EclipseCon&lt;/a&gt; has seen this firsthand.&lt;/li&gt;
&lt;li&gt;Industry collaboration. Obviously GitHub has been wildly successful in fostering community-led open source. However, there are lots of instances where large and conservative corporations are looking at how to get involved in open source. In many cases, their business motivation is to collaborate with other industry players to create shared industry platforms. The kind of work that goes into facilitating these ventures goes far beyond picking a license and starting to hack some code. The processes that organizations like Eclipse and Apache bring to the table for project incubation, development processes, license management and IP contribution management are critical success factors.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;At Eclipse we are trying to simultaneously embrace change, while delivering the core values and processes to fulfill our mission of delivering product-ready software platforms. I feel that overall we are doing a pretty good job, and offer more than enough unique value to sustain us for the very long term.&lt;/p&gt;
&lt;br /&gt;Filed under: &lt;a href=&quot;http://mmilinkov.wordpress.com/category/foundation/&quot;&gt;Foundation&lt;/a&gt;, &lt;a href=&quot;http://mmilinkov.wordpress.com/category/open-source/&quot;&gt;Open Source&lt;/a&gt;  &lt;a href=&quot;http://feeds.wordpress.com/1.0/gocomments/mmilinkov.wordpress.com/751/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/mmilinkov.wordpress.com/751/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godelicious/mmilinkov.wordpress.com/751/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/mmilinkov.wordpress.com/751/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gofacebook/mmilinkov.wordpress.com/751/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/facebook/mmilinkov.wordpress.com/751/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gotwitter/mmilinkov.wordpress.com/751/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/twitter/mmilinkov.wordpress.com/751/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gostumble/mmilinkov.wordpress.com/751/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/mmilinkov.wordpress.com/751/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godigg/mmilinkov.wordpress.com/751/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/mmilinkov.wordpress.com/751/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/goreddit/mmilinkov.wordpress.com/751/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/mmilinkov.wordpress.com/751/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; height=&quot;1&quot; src=&quot;http://stats.wordpress.com/b.gif?host=mmilinkov.wordpress.com&amp;amp;blog=19461799&amp;amp;post=751&amp;amp;subd=mmilinkov&amp;amp;ref=&amp;amp;feed=1&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>Mike Milinkovich</name>
			<uri>http://mmilinkov.wordpress.com</uri>
		</author>
		<source>
			<title type="html">Life at Eclipse</title>
			<subtitle type="html">Musings on the Eclipse Foundation, the community and the ecosystem</subtitle>
			<link rel="self" href="http://mmilinkov.wordpress.com/feed/"/>
			<id>http://mmilinkov.wordpress.com</id>
		</source>
	</entry>

	<entry>
		<title type="html">Linking to the power of Orion</title>
		<link href="http://adventuresinthoughtlessness.blogspot.com/2011/11/linking-to-power-of-orion.html"/>
		<id>tag:blogger.com,1999:blog-846317186323356929.post-4359323722079928253</id>
		<updated>2011-11-20T23:58:02+00:00</updated>
		<content type="html">In my &lt;a href=&quot;http://adventuresinthoughtlessness.blogspot.com/2011/11/collecting-bits-of-input.html&quot;&gt;last post&lt;/a&gt;, I mentioned our Orion &lt;b&gt;command framework&lt;/b&gt;, which allows our pages to define the commands that a user can run on a particular page.  We were evolving the command definition to include the specification of what parameters it requires.  While I focused more on the UI in the last discussion, now I'd like to talk about how this concept will allow you to link to Orion in interesting ways.&lt;br /&gt;&lt;p&gt;Let's follow a simple example.  One of the things a user can do from the Orion &lt;b&gt;Git Repositories&lt;/b&gt; page is clone a git repository into an Orion folder. In the first iteration of the command framework, any work done after the user clicked the &quot;Clone Repository&quot; link was done in the command's callback.&lt;/p&gt;&lt;pre&gt;cloneGitRepositoryCommand = new mCommands.Command({&lt;br /&gt; name : &quot;Clone Repository&quot;,&lt;br /&gt; tooltip : &quot;Clone an existing Git repository to a folder&quot;,&lt;br /&gt; id : &quot;eclipse.cloneGitRepository&quot;,&lt;br /&gt; callback : function(item, commandId, domId, userData) {&lt;br /&gt;  var dialog = new orion.git.widgets.CloneGitRepositoryDialog({&lt;br /&gt;   serviceRegistry: serviceRegistry,&lt;br /&gt;   fileClient: fileClient,&lt;br /&gt;   func: function(gitUrl, path, name) {&lt;br /&gt;     // do the real work&lt;br /&gt;   }});   &lt;br /&gt;  dialog.startup();&lt;br /&gt;  dialog.show();&lt;br /&gt; }&lt;br /&gt;});&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;But now we allow the command to specify that it requires a URL parameter.  We also indicate that there are additional parameters that can be collected if the user wants to specify additional options.   (These snippets are intended to show you how things work, but this interface &lt;a href=&quot;https://bugs.eclipse.org/bugs/show_bug.cgi?id=363763&quot;&gt;will certainly change&lt;/a&gt; before the next release milestone.)  &lt;br /&gt;&lt;/p&gt;&lt;pre&gt;var cloneParameters = {};&lt;br /&gt;&lt;b&gt;cloneParameters.url = {label: 'Repository URL:', type: 'url'}; &lt;/b&gt;&lt;br /&gt;&lt;b&gt;cloneParameters.options = true;&lt;/b&gt;  // indicate that we could collect additional options &lt;br /&gt;&lt;br /&gt;cloneGitRepositoryCommand = new mCommands.Command({&lt;br /&gt; name : &quot;Clone Repository&quot;,&lt;br /&gt; tooltip : &quot;Clone an existing Git repository to a folder&quot;,&lt;br /&gt; id : &quot;eclipse.cloneGitRepository&quot;,&lt;br /&gt; &lt;b&gt;parameters: cloneParameters,&lt;/b&gt;&lt;br /&gt; callback : function(item, commandId, domId, userData, &lt;b&gt;parameters&lt;/b&gt;) {&lt;br /&gt;  if (parameters &amp;amp;&amp;amp; &lt;b&gt;parameters.url.value&lt;/b&gt;) {&lt;br /&gt;   // do the real work&lt;br /&gt;  } else {&lt;br /&gt;   // we could trigger a dialog to get the parameters, or report an error, etc...&lt;br /&gt; }&lt;br /&gt;});&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;So far, we've just defined a command.  Nothing is going to show up in the UI until we register a &lt;b&gt;command contribution&lt;/b&gt; on a page.  In the contribution, we can specify the DOM node where the command should be shown, such as a toolbar, and a key binding that can be used to trigger the same command via the keyboard.  But the fun really starts now that we allow a &lt;b&gt;URLBinding&lt;/b&gt; to be associated with a command.  With a URL binding, a page can define a URL (fragment) query parameter that can be used to trigger command, and the parameter name of any value provided in the URL.  For the clone command, the URL binding looks like this.&lt;/p&gt;&lt;pre&gt;var urlBinding = new mCommands.URLBinding(&quot;cloneGitRepository&quot;, &quot;url&quot;));&lt;br /&gt;commandService.registerCommandContribution(&quot;eclipse.cloneGitRepository&quot;, ..., urlBinding);&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;This means that the query parameter &lt;b&gt;cloneGitRepository&lt;/b&gt; should trigger the command, and the value in the URL should be bound to the &lt;b&gt;url&lt;/b&gt; parameter in the command.  From Orion's point of view, opening the &lt;b&gt;Git Repositories&lt;/b&gt; page with the following link calls the same code as if the user had clicked on the command in the UI and typed in the URL:&lt;/p&gt;&lt;pre&gt;http://orion.eclipse.org/git/git-clone.html#/workspace/H?&lt;b&gt;cloneGitRepository=ssh://myId@github.com/path/myId.github.com.git&lt;/b&gt;&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;One important note.  A command invoked by a URL binding is not called by this URL.  Rather the page is opened in a state for collecting the parameters.  We just prefill the parameter information, and the user can hit the &lt;b&gt;Enter&lt;/b&gt; key to start the clone, or click the &lt;b&gt;More&lt;/b&gt; button to provide additional information. Our URL needs to be a stable GET.  Reloading the URL multiple times should never alter the state of the resource on the page.  So user intervention is always required in order to actually invoke the command.  The URL binding, much like a key binding, simply gives the user a shortcut for starting the process.&lt;/p&gt;&lt;p&gt;We think the URL binding is a powerful concept.  It allows us to start exposing linkable bits of function in a way that is completely separate from the code that defines the function.  Being able to specify parameters in the URL syntax means that some other site can use its own logic to figure out what the user wants, and then link to an Orion page, providing contextual information.&lt;/p&gt;&lt;p&gt;Our favorite simple example is a bugzilla page that could use the product and component information in the bug definition to figure out which git repository the user might want to clone to look at the code.  Another idea is the ability to author &quot;cue card&quot; style help systems that could guide the user through some set of tasks in Orion, simply by linking to the various commands involved in the steps.&lt;/p&gt;&lt;p&gt;We can't wait to see what you might do with this idea.&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/846317186323356929-4359323722079928253?l=adventuresinthoughtlessness.blogspot.com&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Susan McCourt</name>
			<email>noreply@blogger.com</email>
			<uri>http://adventuresinthoughtlessness.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">Adventures in Thoughtlessness</title>
			<link rel="self" href="http://www.blogger.com/feeds/846317186323356929/posts/default"/>
			<id>tag:blogger.com,1999:blog-846317186323356929</id>
		</source>
	</entry>

	<entry>
		<title type="html">OTA Antenna Build</title>
		<link href="http://marismo.blogspot.com/2011/10/ota-antenna-build.html"/>
		<id>tag:blogger.com,1999:blog-7330457489496770582.post-5456077353169286142</id>
		<updated>2011-10-16T15:54:26+00:00</updated>
		<content type="html">&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: arial, sans-serif; font-size: 13px; line-height: 18px; background-color: rgb(255, 255, 255);&quot;&gt;Since I got rid of my cable a couple of years ago, I've been enjoying free over-the-air (OTA) television. Definitely one of the benefits to living in a city versus the small rural area I grew up in! Slowly more and more OTA channels have been showing up but with the &lt;a href=&quot;http://digitaltv.gc.ca/&quot;&gt;digital transition&lt;/a&gt; that happened on August 31, now all the channels that I get are digital. &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: arial, sans-serif; font-size: 13px; line-height: 18px; background-color: rgb(255, 255, 255);&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: arial, sans-serif; font-size: 13px; line-height: 18px; background-color: rgb(255, 255, 255);&quot;&gt;Because my television is older and doesn't have a built-in digital tuner, I've been using a set of old-school rabbit ears to grab the analog channels and then &lt;a href=&quot;http://www.monoprice.com/products/product.asp?p_id=4730&quot;&gt;an antenna&lt;/a&gt; I bought from &lt;a href=&quot;http://monoprice.com/&quot;&gt;Monoprice&lt;/a&gt; to grab the digital channels. Once everything went to digital, I wanted to go to a single antenna and connect it to my external tuner. &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: arial, sans-serif; font-size: 13px; line-height: 18px; background-color: rgb(255, 255, 255);&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: arial, sans-serif; font-size: 13px; line-height: 18px; background-color: rgb(255, 255, 255);&quot;&gt;After reading information on-line and talking to James and Roo, I decided to take a bit of time and built a simple antenna of my own. Being located in Barrhaven (south Ottawa) I was already pretty lucky in that my location allowed me to receive all the local channels already available, so the antenna build was more for fun than hoping to get more channels out of it.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: arial, sans-serif; font-size: 13px; line-height: 18px; background-color: rgb(255, 255, 255);&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: arial, sans-serif; font-size: 13px; line-height: 18px; background-color: rgb(255, 255, 255);&quot;&gt;For resources I read through &lt;a href=&quot;http://www.lowtek.ca/roo/2011/diy-hdtv-antenn/&quot;&gt;Roo's blog&lt;/a&gt;, got some building tips from &lt;a href=&quot;http://www.azega.com/diy-hdtv-tv-antenna-bowtie/&quot;&gt;here&lt;/a&gt; (although he did a bowtie), and got the specs from &lt;a href=&quot;http://www.jedsoft.org/fun/antennas/dtv/gh.html&quot;&gt;here&lt;/a&gt;. &lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: arial, sans-serif; font-size: 13px; line-height: 18px; background-color: rgb(255, 255, 255);&quot;&gt;I built the GH one, no reflectors, and the specs from the GH4 table.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: arial, sans-serif; font-size: 13px; line-height: 18px; background-color: rgb(255, 255, 255);&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: arial, sans-serif; font-size: 13px; line-height: 18px; background-color: rgb(255, 255, 255);&quot;&gt;My material list:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: arial, sans-serif; font-size: 13px; line-height: 18px; background-color: rgb(255, 255, 255);&quot;&gt;- I went Home Depot and grabbed a 1x6 board from their pile of scrap wood ($0.79). &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: arial, sans-serif; font-size: 13px; line-height: 18px; background-color: rgb(255, 255, 255);&quot;&gt;- got a length of household electrical wire from a friend who happened to be doing some electrical work. I stripped the wire and then used the method of attaching it to a drill to straighten it out.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: arial, sans-serif; font-size: 13px; line-height: 18px; background-color: rgb(255, 255, 255);&quot;&gt;- bought an &lt;a href=&quot;http://www.thesource.ca/estore/product.aspx?product=1501140&quot;&gt;matching transformer&lt;/a&gt; from The Source. &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: arial, sans-serif; font-size: 13px; line-height: 18px; background-color: rgb(255, 255, 255);&quot;&gt;- used some screws I had around the garage&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: arial, sans-serif; font-size: 13px; line-height: 18px; background-color: rgb(255, 255, 255);&quot;&gt;- bought some washers from Home Depot&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: arial, sans-serif; font-size: 13px; line-height: 18px; background-color: rgb(255, 255, 255);&quot;&gt;- got 2 electrical conduit brackets from a friend (also available at Home Depot)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: arial, sans-serif; font-size: 13px; line-height: 18px; background-color: rgb(255, 255, 255);&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: arial, sans-serif; font-size: 13px; line-height: 18px; background-color: rgb(255, 255, 255);&quot;&gt;Basic build ideas:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 18px;&quot;&gt;- &lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: arial, sans-serif; line-height: 18px; font-size: small;&quot;&gt;I measured out the exact locations for the bends and hammered nails into my workbench. Then I used those to help form the wire into the right shape.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: arial, sans-serif; line-height: 18px; font-size: small;&quot;&gt;- Attached the copper wire to the 1x6 using the screws and washers.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: arial, sans-serif; line-height: 18px; font-size: small;&quot;&gt;- Attached the matching transformer to the copper wire.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: arial, sans-serif; line-height: 18px; font-size: small;&quot;&gt;- Attached a &lt;/span&gt;&lt;a href=&quot;http://www.channelmasterstore.com/TV_Antenna_Preamplifier_p/cm-7777.htm&quot; style=&quot;font-family: arial, sans-serif; line-height: 18px; font-size: small;&quot;&gt;Channel Master 7777 Pre-Amp&lt;/a&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: arial, sans-serif; line-height: 18px; font-size: small;&quot;&gt; to the bottom of the board.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: arial, sans-serif; line-height: 18px; font-size: small;&quot;&gt;- Used the conduit bracket as a holder for the rabbit ears.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: arial, sans-serif; line-height: 18px; font-size: small;&quot;&gt;- Wired the new antenna and the rabbit ears to the CM7777.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: arial, sans-serif; line-height: 18px; font-size: small;&quot;&gt;- Nailed a spare 2x4 block to the bottom. This would help with mounting it in the attic.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: arial, sans-serif; line-height: 18px; font-size: small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: arial, sans-serif; line-height: 18px; font-size: small;&quot;&gt;I placed the antenna in the attic and put it flush against a joist, and clamped it there using a cheap C-clamp from Home Depot. The 2x4 block keeps it from slipping left/right. I am lucky in my location in that I am located almost directly between the 2 main towers and the joists in my attic run perpendicular, so I didn't have to do anything fancy as far as building a rotating mechanism.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: arial, sans-serif; line-height: 18px; font-size: small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: arial, sans-serif; line-height: 18px; font-size: small;&quot;&gt;Here are some photos of the antenna. Note that this was before I used the drill method to straighten the wires so the final product looks a lot better.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: arial, sans-serif; line-height: 18px; font-size: small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href=&quot;http://4.bp.blogspot.com/-VEgEgbx-NtY/Tpr4QMdbK-I/AAAAAAAABZ4/JOk9_pzExTo/s1600/IMG_1027.JPG&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5664112438478056418&quot; src=&quot;http://4.bp.blogspot.com/-VEgEgbx-NtY/Tpr4QMdbK-I/AAAAAAAABZ4/JOk9_pzExTo/s200/IMG_1027.JPG&quot; style=&quot;display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; cursor: hand; width: 150px; height: 200px;&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://1.bp.blogspot.com/-i5Bk-jNR2ts/Tpr4aYhjO6I/AAAAAAAABaE/ICkBcEhNxO4/s1600/IMG_1030.JPG&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5664112613515279266&quot; src=&quot;http://1.bp.blogspot.com/-i5Bk-jNR2ts/Tpr4aYhjO6I/AAAAAAAABaE/ICkBcEhNxO4/s200/IMG_1030.JPG&quot; style=&quot;display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; cursor: hand; width: 150px; height: 200px;&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://1.bp.blogspot.com/-2VWLDw0YlAM/Tpr4aWQvetI/AAAAAAAABaQ/uNL18sZtbuY/s1600/IMG_1033.JPG&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5664112612907907794&quot; src=&quot;http://1.bp.blogspot.com/-2VWLDw0YlAM/Tpr4aWQvetI/AAAAAAAABaQ/uNL18sZtbuY/s200/IMG_1033.JPG&quot; style=&quot;display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; cursor: hand; width: 200px; height: 150px;&quot; /&gt;&lt;/a&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: arial, sans-serif; line-height: 18px; font-size: small;&quot;&gt;Unfortunately when I had my house built, at the time I didn't think it was worth the $200 that the builder wanted to charge to run a conduit from the basement to the attic so I had to come up with another way to run the wire. Luckily I was able to scan a lot of house construction photos and find a cold-air return duct which was accessible and didn't have too many turns in it, before it hit the basement. So from the attic I ran a coax cable to the basement where all my home wires are. Although they say you should plug the power to the CM7777 as close to the tv as possible, I put it here in the basement because I wanted to get as strong as a signal as possible to multiple tvs. (I have one in the basement by the treadmill, was thinking about running a line to my home computer to experiment with recording shows, etc)&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: arial, sans-serif; line-height: 18px; font-size: small;&quot;&gt;Honestly I wasn't expecting much for new channels, etc but I was pleasantly surprised when I did a new channel scan and 3 PBS channels from the US showed up! Here is a list of all the channels I get: CBC English, CBC French, GlobalTV, CTV, CTV2 (formally AChannel), Omni 1, Omni 2, CityTV, CHCH, TVO (TV Ontario), CTS (Crossroads Television), 2 French stations, and the 3 PBS stations.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: arial, sans-serif; line-height: 18px; font-size: small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: arial, sans-serif; line-height: 18px; font-size: small;&quot;&gt;So overall I'm pretty happy with the results. The antenna build was quick and cheap. The added extra pre-amp wasn't cheap, but it definitely improves the results over the long wire run. Running the wires from the attic to the basement was a pain in the butt, but not horrible. And now I get all the channels perfectly along with some new US ones. &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&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/7330457489496770582-5456077353169286142?l=marismo.blogspot.com&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>DJ Houghton</name>
			<email>noreply@blogger.com</email>
			<uri>http://marismo.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">Transcript of the Voices in my Head</title>
			<subtitle type="html">Random stories from work, travel, and life in general.</subtitle>
			<link rel="self" href="http://www.blogger.com/feeds/7330457489496770582/posts/default"/>
			<id>tag:blogger.com,1999:blog-7330457489496770582</id>
		</source>
	</entry>

	<entry>
		<title type="html">Flogging my FrankenMac</title>
		<link href="http://inside-swt.blogspot.com/2011/10/flogging-my-frankenmac.html"/>
		<id>tag:blogger.com,1999:blog-29517835.post-9156556810727435096</id>
		<updated>2011-10-04T23:55:02+00:00</updated>
		<content type="html">I'm running a FrankenMac. It's a MacBook Pro with Windows 7 and Linux as guest operating systems.&lt;br /&gt;&lt;br /&gt;For my talk yesterday, I was showing Fx running as an Eclipse plugin on Windows and Mac. I grabbed a few standard Fx examples, modified them slightly and dropped them in. Here is the ColorfulCircle example running in Eclipse:&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://1.bp.blogspot.com/-BpqjxnazLKY/Touaf6BseAI/AAAAAAAAAGQ/Y4rQPW26Toc/s1600/fx-embed.jpg&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5659787229664147458&quot; src=&quot;http://1.bp.blogspot.com/-BpqjxnazLKY/Touaf6BseAI/AAAAAAAAAGQ/Y4rQPW26Toc/s400/fx-embed.jpg&quot; style=&quot;WIDTH: 200px; HEIGHT: 200px; CURSOR: hand;&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;For the demo, I had a total 4 Eclipses (two Windows, two Mac) and 6 Fx embeddings, each doing some sort of animation on my machine. The source Eclipses were full development environments with the source of Fx loaded into them. For extra fear, the Mac Eclipses were running JDK7. There were a few browsers running too on both operating systems and the slide software.&lt;br /&gt;&lt;br /&gt;You might think that it would lurch, but it didn't. Incredible.&lt;br /&gt;&lt;br /&gt;Steve&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/29517835-9156556810727435096?l=inside-swt.blogspot.com&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Steve</name>
			<email>noreply@blogger.com</email>
			<uri>http://inside-swt.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">Inside SWT</title>
			<subtitle type="html">I am the father of The Standard Widget Toolkit (SWT), a portable, native widget toolkit for Java. I have a bunch of other interests, but you don't care.

All opinions expressed here are my own unless stolen from other people.</subtitle>
			<link rel="self" href="http://www.blogger.com/feeds/29517835/posts/default"/>
			<id>tag:blogger.com,1999:blog-29517835</id>
		</source>
	</entry>

	<entry>
		<title type="html">JavaOne</title>
		<link href="http://inside-swt.blogspot.com/2011/10/javaone.html"/>
		<id>tag:blogger.com,1999:blog-29517835.post-793916310932216817</id>
		<updated>2011-10-02T00:12:36+00:00</updated>
		<content type="html">I'm speaking at JavaOne this year with Artem Ananiev.  The title of the talk is &quot;Using JavaFX 2.0 UIs with Swing and SWT&quot;.  I've worked with Artem in the past but never actually met him.  That's always cool.&lt;br /&gt;&lt;br /&gt;Most of the hassles around interop with Swing and SWT were around threading.  It was possible to embed one toolkit in the other, but programmers needed to be very careful to avoid deadlock.  The rule of thumb was, &quot;never wait&quot; and use asyncExec() and invokeLater() to communicate between the two.&lt;br /&gt;&lt;br /&gt;I'm happy to say that FX and SWT have no such hassles.  Both are apartment threaded and share the same apartment.&lt;br /&gt;&lt;br /&gt;Steve&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/29517835-793916310932216817?l=inside-swt.blogspot.com&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Steve</name>
			<email>noreply@blogger.com</email>
			<uri>http://inside-swt.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">Inside SWT</title>
			<subtitle type="html">I am the father of The Standard Widget Toolkit (SWT), a portable, native widget toolkit for Java. I have a bunch of other interests, but you don't care.

All opinions expressed here are my own unless stolen from other people.</subtitle>
			<link rel="self" href="http://www.blogger.com/feeds/29517835/posts/default"/>
			<id>tag:blogger.com,1999:blog-29517835</id>
		</source>
	</entry>

	<entry>
		<title type="html">IBM Java 7 is now available</title>
		<link href="http://thevirtualmachinist.blogspot.com/2011/09/ibm-java-7-is-now-available.html"/>
		<id>tag:blogger.com,1999:blog-1468479222802516939.post-5478901521890062288</id>
		<updated>2011-09-20T15:43:53+00:00</updated>
		<content type="html">IBM Java 7 was officially released yesterday, September 19. You can download it from &lt;a href=&quot;https://www.ibm.com/developerworks/java/jdk/&quot;&gt;IBM DeveloperWorks&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;There are a lot of exciting new features including a number of GC improvements.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The balanced GC policy, which I've mentioned before, is included in all 64-bit Java 7 JDKs. You can enable it with &lt;span&gt;-Xgcpolicy:balanced&lt;/span&gt;.&lt;/li&gt;&lt;li&gt;The soft-realtime garbage collector is included for evaluation on Linux and AIX. It can be enabled with &lt;span&gt;-Xgcpolicy:metronome&lt;/span&gt;. &lt;/li&gt;&lt;li&gt;The verbose GC format has been completely overhauled. It now provides more information and the XML format has been redesigned to make machine interpretation of the data simpler, allowing both IBM and customers to write tools to process and analyse the data.&lt;/li&gt;&lt;/ul&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/1468479222802516939-5478901521890062288?l=thevirtualmachinist.blogspot.com&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Peter Burka</name>
			<email>noreply@blogger.com</email>
			<uri>http://thevirtualmachinist.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">The Virtual Machinist</title>
			<link rel="self" href="http://www.blogger.com/feeds/1468479222802516939/posts/default"/>
			<id>tag:blogger.com,1999:blog-1468479222802516939</id>
		</source>
	</entry>

	<entry>
		<title type="html" xml:lang="en">Maker wannabee</title>
		<link href="http://mikew.ca/wp/?p=1166"/>
		<id>http://mikew.ca/wp/?p=1166</id>
		<updated>2011-09-07T18:40:09+00:00</updated>
		<content type="html" xml:lang="en">&lt;p&gt;I did do a couple of actual, for reals, hardware things while I was on vacation, which for anyone who knows me has got to be pretty surprising &lt;img alt=&quot;:-)&quot; class=&quot;wp-smiley&quot; src=&quot;http://mikew.ca/wp/wp-includes/images/smilies/icon_smile.gif&quot; /&gt; . The first was to put together a little Arduino (actually Freeduino) board:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://mikew.ca/wp/wp-content/uploads/2011/09/arduino-e1315420417596.jpg&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;aligncenter size-medium wp-image-1167&quot; height=&quot;225&quot; src=&quot;http://mikew.ca/wp/wp-content/uploads/2011/09/arduino-e1315420417596-300x225.jpg&quot; title=&quot;arduino&quot; width=&quot;300&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I have vague plans to take this plus a DAC and produce a midi to CV converter, something like &lt;a href=&quot;http://blog.makezine.com/archive/2009/01/arduino-based-16bit-midicv-converte.html&quot;&gt;this&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The other project was more prosaic, but probably more useful: I replaced the lawn light outside GCW. Really, this was just removing the old bits, repainting the post, then putting in a new light sensor and headpiece. The result actually looks pretty good:&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;center&gt;&lt;a href=&quot;http://mikew.ca/wp/wp-content/uploads/2011/09/lamp-closeup-e1315420265700.jpg&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;aligncenter size-medium wp-image-1168&quot; height=&quot;300&quot; src=&quot;http://mikew.ca/wp/wp-content/uploads/2011/09/lamp-e1315420199874-225x300.jpg&quot; title=&quot;lamp&quot; width=&quot;225&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;em&gt;&lt;small&gt;(click the link to see a closeup)&lt;/small&gt;&lt;/em&gt;&lt;/center&gt;&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Anyway, nothing earthshaking there, but there’s nothing like a couple of successes to refuel your interest in making things again. Anybody want to help build an analog synthesizer?&lt;/p&gt;</content>
		<author>
			<name>McQ</name>
			<uri>http://mikew.ca/wp</uri>
		</author>
		<source>
			<title type="html">News from Great Castle Wilson</title>
			<link rel="self" href="http://mikew.ca/wp/?feed=atom"/>
			<id>http://mikew.ca/wp/?feed=atom</id>
		</source>
	</entry>

	<entry>
		<title type="html">&quot;Don't do what Donny Don't does&quot;</title>
		<link href="http://thevirtualmachinist.blogspot.com/2011/09/dont-do-what-donny-dont-does.html"/>
		<id>tag:blogger.com,1999:blog-1468479222802516939.post-112062118897922580</id>
		<updated>2011-09-02T21:12:56+00:00</updated>
		<content type="html">Thank to &lt;a href=&quot;http://twitter.com/#%21/evan_c_hughes&quot;&gt;Evan Hughes&lt;/a&gt; for pointing out this paper: &lt;span id=&quot;goog_107718949&quot;&gt;&lt;/span&gt;&lt;span id=&quot;goog_107718950&quot;&gt;&lt;/span&gt;&lt;a href=&quot;http://www.sciencedirect.com/science/article/pii/S002073738880052X&quot;&gt;Conditional statements, looping constructs, and program comprehension: an experimental study.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Not surprisingly, negative conditions are more difficult to understand than positive conditions.&lt;br /&gt;&lt;br /&gt;I always try to write conditions to be positive. Sometimes, I'll even include an empty 'if' block so that I can put code in the 'else' block instead of using a negative condition:&lt;br /&gt;&lt;br /&gt;&lt;div&gt;   if (isInRange(value)) {&lt;/div&gt;&lt;div&gt;      // expected case; do nothing&lt;/div&gt;&lt;div&gt;   } else {&lt;/div&gt;&lt;div&gt;      throw new OutOfRangeException(value);&lt;/div&gt;&lt;div&gt;   }&lt;/div&gt;&lt;br /&gt;I haven't read the full paper, so maybe the researchers answered my next question: is the problem exacerbated by the syntax for negative conditions used in C-like languages? I find that the '!' operator uses very little horizontal space, making it less noticeable than other unary operators such as '~' or '*'.&lt;br /&gt;&lt;br /&gt;e.g. would this statement:&lt;br /&gt;&lt;br /&gt;&lt;div&gt;   if (!isInRange(value)) { ...&lt;/div&gt;&lt;br /&gt;be more obvious if it were written like this?&lt;br /&gt;&lt;br /&gt;&lt;div&gt;   if (not isInRange(value)) { ...&lt;/div&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/1468479222802516939-112062118897922580?l=thevirtualmachinist.blogspot.com&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Peter Burka</name>
			<email>noreply@blogger.com</email>
			<uri>http://thevirtualmachinist.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">The Virtual Machinist</title>
			<link rel="self" href="http://www.blogger.com/feeds/1468479222802516939/posts/default"/>
			<id>tag:blogger.com,1999:blog-1468479222802516939</id>
		</source>
	</entry>

	<entry>
		<title type="html" xml:lang="en">A week into my vacation and I’m still not relaxed.</title>
		<link href="http://mikew.ca/wp/?p=1161"/>
		<id>http://mikew.ca/wp/?p=1161</id>
		<updated>2011-08-27T16:06:13+00:00</updated>
		<content type="html" xml:lang="en">&lt;p&gt;If anyone has been watching this site for updates, I have to apologize. It’s been (even more) hectic at work lately and by the time I get home, I haven’t had the energy to blog. In fact, the list of things I’ve been avoiding is much longer than just blogging:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;getting exercise / biking — nope.&lt;/li&gt;
&lt;li&gt;spending time with Deb — not enough, except for when we go out for dinner (but that’s mostly to avoid cooking).&lt;/li&gt;
&lt;li&gt;electronic music — not even a new synth was enough to make that happen.&lt;/li&gt;
&lt;li&gt;cello practice — holy mackerel the music for the fall is &lt;em&gt;hard&lt;/em&gt;; an hour a day wouldn’t be enough to play it properly and I’m doing less than half that.&lt;/li&gt;
&lt;li&gt;helping Dennis learn controllerism — bought him the hardware and a copy of Ableton; nothing since then.&lt;/li&gt;
&lt;li&gt;web skills development — Deb deserves more than what I built her at &lt;a href=&quot;https://sheepsahoy.com/&quot;&gt;Sheeps Ahoy&lt;/a&gt;, but it would take months of learning to get there.&lt;/li&gt;
&lt;li&gt;walking the dogs — a total of &lt;em&gt;twice&lt;/em&gt; this summer. ugh!&lt;/li&gt;
&lt;li&gt;work around the house — well, I’ve done some of that this week, at least.&lt;/li&gt;
&lt;li&gt;cooking — only when Deb makes me BBQ.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Whew! Even if I had the &lt;em&gt;time&lt;/em&gt; to do all these things (i.e. I was retired) I still wouldn’t have the energy for all of them.&lt;/p&gt;
&lt;p&gt;Anyway, I’m a week into my vacation, and I’m still not relaxed. However, I am starting to surface (as witnessed by the soul searching above). Hopefully, that’s a good sign. Last week the list looked like:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;re-arranged the bedroom&lt;/li&gt;
&lt;li&gt;got in a car accident — no one hurt; not my fault&lt;/li&gt;
&lt;li&gt;started cleaning out the garage, but there’s more to do this week&lt;/li&gt;
&lt;li&gt;helped Deb through a bad bout of stomach “flu”&lt;/li&gt;
&lt;li&gt;spent a really fun day with her on our anniversary, including seeing the Caravaggio exhibit at the gallery&lt;/li&gt;
&lt;li&gt;put her on a plane for California&lt;/li&gt;
&lt;li&gt;played *way* too much of the new Deus Ex game  &lt;em&gt;[note: Yesterday they rolled out a patch to fix the long load times: down to 10 seconds from almost a minute before]&lt;/em&gt;&lt;em&gt;&lt;br /&gt;
&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We’ll see how it goes this week. I’ll post if I get some new music made. Otherwise (for those I work with), see you next week.&lt;/p&gt;</content>
		<author>
			<name>McQ</name>
			<uri>http://mikew.ca/wp</uri>
		</author>
		<source>
			<title type="html">News from Great Castle Wilson</title>
			<link rel="self" href="http://mikew.ca/wp/?feed=atom"/>
			<id>http://mikew.ca/wp/?feed=atom</id>
		</source>
	</entry>

	<entry>
		<title type="html" xml:lang="en-US">The Roar of the Lion, and of &quot;Open&quot; Source Developers</title>
		<link href="http://talklikeaduck.denhaven2.com/2011/07/24/the-roar-of-the-lion-and-of-open-source"/>
		<id>tag:talklikeaduck.denhaven2.com,2005:Article/618</id>
		<updated>2011-07-25T00:55:00+00:00</updated>
		<content type="html" xml:lang="en-US">&lt;p&gt;I took the plunge this weekend, and installed Lion on my personal MacBook Pro.&lt;/p&gt;
&lt;p&gt;First I made sure I had a bootable backup of my Snow Leopard install.  Then I jumped in and pressed the continue button in the Lion installer.&lt;/p&gt;
&lt;p&gt;All in all it went rather smoothly. Only one real problem, which I managed to fix, see below.&lt;/p&gt;
&lt;h2&gt;Lion for the Ruby/Rails developer&lt;/h2&gt;
&lt;p&gt;When I installed Snow Leopard my development environment was broken.  Partly because the install wiped out packages I'd installed with macports, but mostly because of the transition from 32-bit to 64 bit.  So far Lion has been much kinder.  My brew installed stuff seems to have survived the transition, although  I needed to install the XCode 4 update, which is once again free for folks with Lion via the OS X App Store.&lt;/p&gt;
&lt;p&gt;Admittedly I haven't pressed very hard on the old development tool chain, but, knock on wood, things look decidedly better the day after the Lion install than they did the last time.&lt;/p&gt;
&lt;h2&gt;More Flashbacks&lt;/h2&gt;
&lt;p&gt;A few days ago, I wrote about my &lt;a href=&quot;http://talklikeaduck.denhaven2.com/2011/07/21/initial-thoughts-on-lion&quot;&gt;pre installation thoughts on Lion.&lt;/a&gt; Not that I've been using it for a bit over a day, the new scrolling is a blessing and a curse.  Although it does work the same was as my iPad and iPhone, there's a fundamental difference between dragging your finger on the 'page' itself and controlling that 'page' remotely using the trackpad.  Some of that is no doubt the result of using a mouse for the past 35 years or so.  I'll stick with the Lion way and see what happens, no doubt I'm going to have to learn to adjust back and forth as I use different machines, just like I still have to make an adjustment going from my MBP, to my wife's old MacBook due to the latter having a trackpad button while the newer machine does not.&lt;/p&gt;
&lt;p&gt;This dredges up another old memory.  Back in the 1980s when the PCs got mouse envy, the initial mice for PCs simply generated cursor keystrokes, and many users thought of mice as just being that, devices to quickly generate up, down, left, and right arrow keystrokes.  Nowadays I'd guess that most computer users would think this was a silly idea.  In reality, the way the user interacts with a computer is affected in ways both drastic and subtle by the device or devices used.  Trackpads are neither mice nor are they touchscreens.  Interacting directly with a touchscreen, where your finger is the pointer, and there is no separation between pointing at something and clicking on it, is inherently different than interacting indirectly through a trackpad or mouse.  And a multi-touch trackpad is different than a mouse no matter how many buttons the mouse has.&lt;/p&gt;
&lt;p&gt;While we're on the subject of scrolling, some apps in Lion. Safari for example, don't show scrollbars until you start to scroll, then when you're done they disappear.  I haven't seen this kind of scrollbar behavior since Smalltalk-80.  By the way scrollbars work this way in Lion in Textmate!&lt;/p&gt;
&lt;h2&gt;Oh Yeah, I Did Mention A Problem Didn't I&lt;/h2&gt;
&lt;p&gt;Just about a year ago I wrote about my &lt;a href=&quot;http://talklikeaduck.denhaven2.com/2010/07/19/ubuntu-timemachine-server-for-snow-leopard&quot;&gt;my spit and baling wire linux Time Machine server.&lt;/a&gt;  Well, after the Lion install, my Time  Machine backups stopped working.&lt;/p&gt;
&lt;p&gt;It took me a while to find the answer, but eventually I found the 'cheat' in &lt;a href=&quot;http://ubuntuforums.org/showthread.php?p=11068966&quot;&gt;this post to the Ubuntu forums.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I also saw reports about problems with Time Machine under Lion and &lt;a href=&quot;http://www.cultofmac.com/third-party-nas-time-machine-backups-killed-in-lion/105831&quot;&gt;third party commercial NAS products&lt;/a&gt; including &lt;a href=&quot;http://support.drobo.com/app/answers/detail/a_id/597/~/mac-10.7-(lion),-drobo-fs-and-time-machine&quot;&gt;Drobos&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;It turns out that Time Machine in Lion is using some new features which Apple put into AFP, the &lt;a href=&quot;http://en.wikipedia.org/wiki/Apple_Filing_Protocol&quot;&gt;Apple Filing Protocol.&lt;/a&gt;  &lt;a href=&quot;http://en.wikipedia.org/wiki/Netatalk&quot;&gt;Netatalk&lt;/a&gt; the open-source implementation of AFP, doesn't support the latest AFP 3.3 protocol, except in a beta version.&lt;/p&gt;
&lt;p&gt;The Ubuntu forum article, followed carefully, got me back to having my MBP backing up with Time Machine to my Ubuntu box.&lt;/p&gt;
&lt;p&gt;It also pointed to &lt;a href=&quot;http://www.netafp.com/open-letter-to-the-netatalk-community-501/&quot;&gt;this blog post by the maintainers of Netatalk&lt;/a&gt;, dated 2 July, which explained their plan to hold back the source of the final version of Netatalk because &quot;...many corporations are using and making money from Netatalk, but in the past none of these cared that the cow they’re milking gets fed, Netgear Inc. being the one exception, thanks for that.&quot;  As an open-source contributor who has reaped little in the way of pecuniary reward from open-source, I can understand the sentiment.  It does come across as a bit of a ransom note, but they are free to do as they want.&lt;/p&gt;
&lt;p&gt;But I suspect Lion turned the tide here as the Netatalk article ends with an update dated 23 July (3 days after the release of Lion) saying &quot;Thanks to the new commitment of Data Robotics, Western Digital Corporation and QNAP, there’s hope! Also, we’re reopening development, pushing all sources to the official Netatalk git VCS at Sourceforge. We expect Netatalk 2.2.0 sourcecode tarballs to be available at the Sourceforge download site soon.&quot;&lt;/p&gt;

&lt;hr /&gt;&lt;p&gt;&lt;small&gt;Original article writen by Rick DeNatale and published on &lt;a href=&quot;http://talklikeaduck.denhaven2.com&quot;&gt;Talk Like A Duck&lt;/a&gt; | &lt;a href=&quot;http://talklikeaduck.denhaven2.com/2011/07/24/the-roar-of-the-lion-and-of-open-source&quot;&gt;direct link to this article&lt;/a&gt; | If you are reading this article elsewhere than &lt;a href=&quot;http://talklikeaduck.denhaven2.com&quot;&gt;Talk Like A Duck&lt;/a&gt;, it has been illegally reproduced and without proper authorization.&lt;/small&gt;&lt;/p&gt;</content>
		<author>
			<name>Rick DeNatale</name>
			<uri>http://talklikeaduck.denhaven2.com</uri>
		</author>
		<source>
			<title type="html">Talk Like A Duck</title>
			<subtitle type="html">In Ruby, it's not the dog, it's the tricks!</subtitle>
			<link rel="self" href="http://talklikeaduck.denhaven2.com/articles.atom"/>
			<id>tag:talklikeaduck.denhaven2.com,2005:/articles</id>
		</source>
	</entry>

	<entry>
		<title type="html" xml:lang="en-US">Initial Thoughts on Lion</title>
		<link href="http://talklikeaduck.denhaven2.com/2011/07/21/initial-thoughts-on-lion"/>
		<id>tag:talklikeaduck.denhaven2.com,2005:Article/617</id>
		<updated>2011-07-21T23:00:09+00:00</updated>
		<content type="html" xml:lang="en-US">&lt;p&gt;So Lion has been downloaded from the App Store and waits to be installed on my personal MacBook Pro.  I'm waiting a few days to see how much smoke appears on the horizon as early adopters run into issues.&lt;/p&gt;
&lt;p&gt;There are some interesting aspects of Lion, some of which bring back old memories.  This should be a quick top of the head article. But I may well follow up with one or more which go down some of these paths in more detail.&lt;/p&gt;
&lt;p&gt;I don't want to come across as one of those old codgers, even though I probably am one, who think everything now has been done before.  On the other hand, as they say &quot;past is prologue.&quot;&lt;/p&gt;
&lt;p&gt;I've been reading John Siracusa's excellent, as usual &lt;a href=&quot;http://arstechnica.com/apple/reviews/2011/07/mac-os-x-10-7.ars/1&quot;&gt;Ars Technica review of Lion.&lt;/a&gt; as I get into the technical details I can't help but think about some of my prior experiences&lt;/p&gt;
&lt;h2&gt;Lion's new Document and Versioning Model&lt;/h2&gt;
&lt;p&gt;Lion has a &lt;a href=&quot;http://arstechnica.com/apple/reviews/2011/07/mac-os-x-10-7.ars/7#document-model&quot;&gt;new take on saving documents and the lifecycle of applications.&lt;/a&gt; OS X 10.7 now keeps a trail of revisions to documents, provides a Time Machine like UI to view the history, and decouples saving documents from quitting the application.  It also saves enough application state to make applications appear as if they never had stopped when they are restarted.  All the same documents are re-opened in the state where the user left them, etc. Now where have I seen that before?&lt;/p&gt;
&lt;p&gt;I've had the pleasure, well usually a pleasure, of working with a couple of programming language environments which worked like this to a large extent.  The first of this was APL, another was Smalltalk.  The usual implementation of these languages provides a workspace or image which holds not just the source code of programs, but the actual running state.  In both you &lt;strong&gt;did&lt;/strong&gt; need to save the image or workspace before quitting, but both would start up again just where you left things.  This was more obvious in Smalltalk since it is a graphical environment so there's more visible state.&lt;/p&gt;
&lt;p&gt;Another aspect of Smalltalk was that the source code was managed by having meta-information in the class and method objects in the image which simply pointed to the source code which actually 'lived' in a single file.  Whenever a method was saved, or class definition was saved, the changes were simply appended to this 'change log' in chunks, which were just code fragments which could be compiled or evaluated.  The browsers just used an index saved in say a method object to determine the offset of the methods source code in the change log.&lt;/p&gt;
&lt;p&gt;Of course it wasn't long before people started to build tools to go back and look at, old versions of methods and class definitions.  At IBM in the early days, we used a change log browser written by either Jerry Archbald or David N. Smith, actually probably by the pair.&lt;/p&gt;
&lt;p&gt;Later things got more sophisticated, &lt;a href=&quot;http://talklikeaduck.denhaven2.com/2008/12/03/the-oti-brotherhood&quot;&gt;OTIs&lt;/a&gt; Envy developer provided concurrent access to what was effectively a shared change log and provided both version and configuration control to teams of Smalltalkers.  Today Smalltalkers use tools like &lt;a href=&quot;http://wiresong.ca/monticello/&quot;&gt;Monticello&lt;/a&gt; which looks to me to be the logical successor to Envy.&lt;/p&gt;
&lt;p&gt;Today, many developers, including your humble author, use &lt;a href=&quot;http://git-scm.com/&quot;&gt;git&lt;/a&gt; as the weapon of choice for version control.  A common thread is the use of a write only repository.  A little bit more sophisticated than a single linear change log, but ...&lt;/p&gt;
&lt;p&gt;Lion's document model appears at first blush to be related.  I saw someone speculating on Google+ about whether Lion might be using git.  Somehow I doubt it, but I'm sure it was an influence.&lt;/p&gt;
&lt;p&gt;The UI in Lion for browsing the history of a document looks pretty cool. I wonder if something like that would work for git?&lt;/p&gt;
&lt;h2&gt;Garbage Collection&lt;/h2&gt;
&lt;p&gt;One of the exciting things I had heard about Lion was that it would be improving the recently added garbage collection in Objective-C. &lt;a href=&quot;http://arstechnica.com/apple/reviews/2011/07/mac-os-x-10-7.ars/10&quot;&gt;As I read the garbage collection section&lt;/a&gt; of the Ars Technica report, which comes right after the &lt;a href=&quot;http://arstechnica.com/apple/reviews/2011/07/mac-os-x-10-7.ars/9#security&quot;&gt;section on security&lt;/a&gt; which got me all excited, my excitement started to fade a bit.&lt;/p&gt;
&lt;p&gt;As Siracusa explains it, the Objective-C &quot;garbage collector&quot;, which is really called &quot;Automatic Reference Counting&quot; or ARC, looks more like automatic generation of the formerly manual retain and release pragmas used in Objective-C programs before ARC.&lt;/p&gt;
&lt;p&gt;The problem with hybrid languages like Objective-C, or C++, which have both managed and non-managed memory objects, is that the garbage collector can't tell whether a 'pointer' in a non-managed memory block which happens to hold the address inside a managed object space, really references a managed object or not, it might just be an integer, or a consecutive run of bytes in a string.&lt;/p&gt;
&lt;p&gt;The real memory kicker for me was when in this section Siracusa pointed to a &lt;a href=&quot;http://arstechnica.com/apple/news/2010/06/copland-2010-revisited.ars&quot;&gt;a series of articles&lt;/a&gt; he has written for Ars over the years, calling for Apple to move from Objective-C to a language or languages with truly automatic memory management.&lt;/p&gt;
&lt;p&gt;Siracusa uses Apple's &lt;a href=&quot;http://en.wikipedia.org/wiki/Copland_(operating_system)&quot;&gt;Copland&lt;/a&gt; operating system project, as an example of failure partially caused by not having automatic memory management when it is called for.&lt;/p&gt;
&lt;p&gt;The predecessor of Copland was Pink, which was to be the new Mac operating system written in C++, and providing an application API in the form of a framework.  There were lots of such plans floating around the industry back then, Microsoft had a similar project, and IBM was looking at all of these, along with Steve Jobs &lt;a href=&quot;http://en.wikipedia.org/wiki/Nextstep&quot;&gt;NeXTStep&lt;/a&gt;.  Because of what I was doing at the time, I found myself on a series of IBM corporate task forces, and I got to visit the &lt;a href=&quot;http://talklikeaduck.denhaven2.com/2009/10/10/oh-the-irony&quot;&gt;Pink&lt;/a&gt; developer team, which was cool since they were living in the &lt;a href=&quot;http://www.folklore.org/StoryView.py?project=Macintosh&amp;amp;story=Spoiled?.txt&quot;&gt;Bandley 3&lt;/a&gt; building which had been occupied by the band of &lt;a href=&quot;http://www.folklore.org/StoryView.py?story=Pirate_Flag.txt&quot;&gt;pirates&lt;/a&gt; put together by Steve Jobs to develop the original Macintosh.  A lot of those goodies were still there, including the Bösendorfer grand piano.&lt;/p&gt;
&lt;p&gt;I had some interesting meetings with lots of interesting people at that time, including Steve Jobs, and &lt;a href=&quot;http://talklikeaduck.denhaven2.com/2007/06/15/a-meeting-with-gill-bates&quot;&gt;Bill Gates.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;In talking with the Pink developers, it was obvious that they were suffering from a lack of GC, they talked about all the rules they had for using C++ constructors and destructors at method interfaces, which led to a lot of code bulk, and sub-optimal performance. That's a whole story in itself, but I totally agree with Siracusa here.&lt;/p&gt;
&lt;p&gt;For what it's worth, Apple pushed Pink off onto a new joint venture with IBM called Taligent, with IBM investment and management.  Taligent eventually failed. In the meantime, what was left of Pink at Apple morphed into Copland, only to be killed when Ellen Hancock, who I used to work under at IBM before she was lured away to National Semiconductor by Gil Amelio who then left his CEO job at National Semi to become CEO at Apple and lured her away again.&lt;/p&gt;
&lt;p&gt;Hancock was hired to save Copland but decided it was hopeless, and started a search for a replacement.  Eventually NeXTStep was chosen for the replacement bringing Jobs back to Apple.&lt;/p&gt;
&lt;p&gt;NeXTStep, which was written in Objective-C is the main gene pool for today's  OS X Cocoa.&lt;/p&gt;


&lt;hr /&gt;&lt;p&gt;&lt;small&gt;Original article writen by Rick DeNatale and published on &lt;a href=&quot;http://talklikeaduck.denhaven2.com&quot;&gt;Talk Like A Duck&lt;/a&gt; | &lt;a href=&quot;http://talklikeaduck.denhaven2.com/2011/07/21/initial-thoughts-on-lion&quot;&gt;direct link to this article&lt;/a&gt; | If you are reading this article elsewhere than &lt;a href=&quot;http://talklikeaduck.denhaven2.com&quot;&gt;Talk Like A Duck&lt;/a&gt;, it has been illegally reproduced and without proper authorization.&lt;/small&gt;&lt;/p&gt;</content>
		<author>
			<name>Rick DeNatale</name>
			<uri>http://talklikeaduck.denhaven2.com</uri>
		</author>
		<source>
			<title type="html">Talk Like A Duck</title>
			<subtitle type="html">In Ruby, it's not the dog, it's the tricks!</subtitle>
			<link rel="self" href="http://talklikeaduck.denhaven2.com/articles.atom"/>
			<id>tag:talklikeaduck.denhaven2.com,2005:/articles</id>
		</source>
	</entry>

	<entry>
		<title type="html" xml:lang="en">Moving to Microsoft</title>
		<link href="http://mcaffer.com/2011/07/moving-to-microsoft/"/>
		<id>http://mcaffer.com/?p=53</id>
		<updated>2011-07-17T02:53:58+00:00</updated>
		<content type="html" xml:lang="en">&lt;p&gt;I’m very pleased to announce that I am joining Microsoft to help drive the architecture and forward vision for Visual Studio Pro. This is a very challenging role that underpins a product line spanning development for mobile, Xbox, Windows, server and cloud deployment. I’ll be building on my Eclipse experience, learning a whole raft of new technologies, and helping drive Visual Studio towards the next generation of development environments and platforms. Very cool!&lt;/p&gt;
&lt;p&gt;Of course, this move means my focus will shift away from Eclipse. It’s been over 11 years of fun, learning, and great people. In that time the community and the technology have grown from a fledgeling open source Java IDE focus into a world-leading Java technology conglomerate spanning from runtimes to modelling to tools and beyond. I continue to believe in the power and potential of Eclipse.&lt;/p&gt;
&lt;p&gt;Looking back, I have hacked tons of code, led teams, started projects, evangelized new directions, written books, explored business models, and generally had a great time. The software we created is used on space missions, bank servers, autonomous salt harvesters, a vast number of developer desktops, and countless applications about which we know nothing. I never would have dared dream all that when we started. It has been my honour and privilege to work with such a distinguished group of people and have such an impact on the world of computing. Thank you all for your contributions and camaraderie.&lt;/p&gt;
&lt;p&gt;Of course, I reserve the right to show up at various Eclipse events and share a frosty beverage or two, find out what’s happening at Eclipse and talk about the things happening at Microsoft. Who knows, maybe there will even be some collaboration?! See you around…&lt;/p&gt;</content>
		<author>
			<name>jeff</name>
			<uri>http://mcaffer.com</uri>
		</author>
		<source>
			<title type="html">McAffer.com</title>
			<subtitle type="html">Thinking without boxes</subtitle>
			<link rel="self" href="http://mcaffer.com/feed/"/>
			<id>http://mcaffer.com</id>
		</source>
	</entry>

	<entry>
		<title type="html">Moving to Germany</title>
		<link href="http://borisoneclipse.blogspot.com/2011/07/moving-to-germany.html"/>
		<id>tag:blogger.com,1999:blog-17547394.post-1428431165099583980</id>
		<updated>2011-07-07T22:27:28+00:00</updated>
		<content type="html">After six years in Ottawa, working for IBM, I have decided to move back to Germany with my family. Today was my last day in the office, and on Saturday we will be embarking on a longer vacation, driving from Ottawa all the way to Vancouver, before we board our one-way flight to Germany.&lt;br /&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://2.bp.blogspot.com/-cR6mEN7-AYE/ThYxHHHW8lI/AAAAAAACLQ4/-6p55GxN1Z0/s1600/IMG_0365.PNG&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;266&quot; src=&quot;http://2.bp.blogspot.com/-cR6mEN7-AYE/ThYxHHHW8lI/AAAAAAACLQ4/-6p55GxN1Z0/s400/IMG_0365.PNG&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;We'll try to pass by Orion, AB :-)&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;I may be able to remain an Eclipse committer, but it will definitely no longer be my main job. I decided to join Google at their Munich office at the end of the summer, and expect to be working on web-based tools there.&lt;br /&gt;
&lt;br /&gt;
Over the last year or so, I spent most of my time getting the Orion project off the ground, which is about web-based tools and how tools from various servers can work together. We are code complete for our first tech preview release, which will be announced in a few days. The goal for this first release was to get to the point where we can self-host, and the team will from now on use Orion itself to develop Orion. I've been doing this for the last few weeks already, and it's a lot of fun to never leave the browser, from filing a bug, fixing and testing it, committing and pushing the fix, and closing the bug. There is a lot of potential for Orion, and I will be closely watching its progress.&lt;br /&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://2.bp.blogspot.com/-CYPIuR6C_Zs/ThYxpg2WYDI/AAAAAAACLRY/5HEYZ_ZwxCg/s1600/IMG_0405.jpg&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;298&quot; src=&quot;http://2.bp.blogspot.com/-CYPIuR6C_Zs/ThYxpg2WYDI/AAAAAAACLRY/5HEYZ_ZwxCg/s400/IMG_0405.jpg&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;I will also try this chocolate (thank you, Steve!)&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;It's been a blast. I've been very fortunate to work with some of the smartest people in the industry, both here at IBM as well as in the Eclipse community.  I have learned so much. Thank you!&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/17547394-1428431165099583980?l=borisoneclipse.blogspot.com&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;&lt;img height=&quot;1&quot; src=&quot;http://feeds.feedburner.com/~r/BorisBokowski/~4/RH2YCcVYv4Q&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>Boris Bokowski</name>
			<email>noreply@blogger.com</email>
			<uri>http://borisoneclipse.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">Boris Bokowski</title>
			<subtitle type="html">Travelling across Canada</subtitle>
			<link rel="self" href="http://feeds.feedburner.com/BorisBokowski"/>
			<id>tag:blogger.com,1999:blog-17547394</id>
		</source>
	</entry>

	<entry>
		<title type="html">Anaphylaxis</title>
		<link href="http://tellison.blogspot.com/2011/06/anaphylaxis.html"/>
		<id>tag:blogger.com,1999:blog-7766304.post-1513213224700871054</id>
		<updated>2011-06-03T14:23:54+00:00</updated>
		<content type="html">&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://1.bp.blogspot.com/-bzzpmGdpSAY/TejuRKI284I/AAAAAAAACoU/ueXEoWybsSQ/s1600/finger_bee.jpg&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://1.bp.blogspot.com/-bzzpmGdpSAY/TejuRKI284I/AAAAAAAACoU/ueXEoWybsSQ/s1600/finger_bee.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;Not sure if I mentioned it already, but I don't really like the taste of honey.  I keep bees because they are fascinating creatures with highly complex behavior, both individually and as a colony.  The mixture of practical and theoretical skills required to keep honeybees well appeals to me.&lt;br /&gt;&lt;br /&gt;Of course, when you say &quot;bees&quot; people immediately think &quot;stings&quot;, probably before they even think of &quot;honey&quot;.  I have all the protective gear, but inevitably as a beekeeper you will get stung now and again.  I find that autumn is the worst time of year; understandably perhaps as the bees are protecting their stores built up over summer with little prospect of replacing them before going into winter.&lt;br /&gt;&lt;br /&gt;Most stings are harmless enough.  Full coverage clothing means that the bee's stinger does go in far, and if it is far enough for me to notice I can take it out easily.  However, recently I had two different episodes where the reaction was a bit more dramatic.&lt;br /&gt;&lt;br /&gt;In one case I was carrying a hive full of bees to move it to another apiary.  The entrance was sealed-up, but a couple of bees were hanging underneath looking for the way in, and took exception to my hand being there nearly squashing them.  I got a full dose of venom in my finger, which was un-gloved as the bees were sealed in, right?  Rather than drop the hive with 50,000 more bees inside I just had to grin and bear it.&lt;br /&gt;&lt;br /&gt;The normal response to a bee sting is short intense pain followed by localized swelling, redness and swelling, and a wheal around the sting site lasting about a week.  The reaction is localized to within ~10cm of the sting site.&lt;br /&gt;&lt;br /&gt;My reaction was a bit different.  Within ten minutes I had a severe pounding sensation in my head, dizzyness, itchy rash (ironically called &quot;hives&quot;) over my whole body, swelling in my armpits and groin, and a feeling of pressure on my chest.  Bugger!  I had to lie down, took a triple dose of anti-histamines, and waited about six uncomfortable hours for it to pass.&lt;br /&gt;&lt;br /&gt;The second time I was mowing the lawn quite close to the hives, and I guess one bee took exception, and without warning stung me on my temple.  Bees usually will give you a warning by &quot;head-butting&quot; you a few times, and irately buzzing round you -- this one just went for it!  The result was a similar whole-body reaction.&lt;br /&gt;&lt;br /&gt;I'm not big on medications, but the thought has crossed my mind about what would happen if I was careless enough to get multiple stings simultaneously.  So I've now got an &lt;a href=&quot;http://www.anapen.co.uk/index.php?option=com_content&amp;amp;view=category&amp;amp;layout=blog&amp;amp;id=2&amp;amp;Itemid=11&amp;amp;lang=en&quot;&gt;epinephrine autoinjector&lt;/a&gt; next to the other bits and pieces in my bee kit.&lt;br /&gt;&lt;br /&gt;The best description of &lt;a href=&quot;http://www.resus.org.uk/pages/reaction.pdf&quot;&gt;the recognition and treatment of anaphylaxis&lt;/a&gt; I have found is published by the Resuscitation Council (UK).&lt;br /&gt;&lt;br /&gt;Provided you watch and listen to what the bees are telling you, then with proper handling and the right protective equipment, getting stung should be a rare occurrence for a beekeeper.  I'm still learning.&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/7766304-1513213224700871054?l=tellison.blogspot.com&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>tim</name>
			<email>noreply@blogger.com</email>
			<uri>http://tellison.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">counterpoint</title>
			<link rel="self" href="http://www.blogger.com/feeds/7766304/posts/default"/>
			<id>tag:blogger.com,1999:blog-7766304</id>
		</source>
	</entry>

	<entry>
		<title type="html">Good news! Bye-bye old house</title>
		<link href="http://neeroc.livejournal.com/316552.html"/>
		<id>urn:lj:livejournal.com:atom1:neeroc:316552</id>
		<updated>2011-05-28T03:56:56+00:00</updated>
		<content type="html">In case you missed me cartwheeling around &lt;a href=&quot;http://twitter.com/#!/therealneeroc/status/74201739888295936&quot;&gt;Twitter &lt;/a&gt;and Facebook earlier today, we've finally sold our house. Lest I lose my status as a supreme procrastinator, we close on the new house on Tuesday, so yes, we managed to sell our house with 2 days to spare. I know technically our close is way off, but it's just different buying the next house and having no pending sale on this one. They tried to shave some off the price after inspection (um hello that's why we dropped the price) so it was by no means a done deal&lt;br /&gt;&lt;br /&gt;Just to recap:&lt;br /&gt;&lt;br /&gt;At the end of March our 1.5 year search for a new home came to an end here:&lt;br /&gt;&lt;a href=&quot;http://www.flickr.com/photos/neeroc/5573159708/&quot; title=&quot;house1 by neeroc1, on Flickr&quot;&gt;&lt;img alt=&quot;house1&quot; height=&quot;458&quot; src=&quot;http://farm6.static.flickr.com/5093/5573159708_c21ac44714.jpg&quot; width=&quot;373&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;At which point we realized we were in no way ready to sell our current home:&lt;br /&gt;&lt;a href=&quot;http://www.flickr.com/photos/neeroc/5686995185/&quot; title=&quot;DSC01430 by neeroc1, on Flickr&quot;&gt;&lt;img alt=&quot;DSC01430&quot; height=&quot;500&quot; src=&quot;http://farm6.static.flickr.com/5248/5686995185_eb94fc1aff.jpg&quot; width=&quot;334&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;So we did the logical thing and bought 100 rubbermaid containers:&lt;br /&gt;&lt;a href=&quot;http://www.flickr.com/photos/neeroc/5593571031/&quot; title=&quot;tidyup1 by neeroc1, on Flickr&quot;&gt;&lt;img alt=&quot;tidyup1&quot; height=&quot;500&quot; src=&quot;http://farm6.static.flickr.com/5172/5593571031_c54ba000da.jpg&quot; width=&quot;304&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Then rented a big-ass storage container to stash them in:&lt;br /&gt;&lt;a href=&quot;http://www.flickr.com/photos/neeroc/5597207664/&quot; title=&quot;DSC00381 by neeroc1, on Flickr&quot;&gt;&lt;img alt=&quot;DSC00381&quot; height=&quot;500&quot; src=&quot;http://farm6.static.flickr.com/5263/5597207664_e3fe60cbe7.jpg&quot; width=&quot;334&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;We proceeded to cram it full of our really, really important junk:&lt;br /&gt;&lt;a href=&quot;http://www.flickr.com/photos/neeroc/5639128907/&quot; title=&quot;bin by neeroc1, on Flickr&quot;&gt;&lt;img alt=&quot;bin&quot; height=&quot;500&quot; src=&quot;http://farm6.static.flickr.com/5261/5639128907_8fd0f85516.jpg&quot; width=&quot;335&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Once we had the room we forced V into child labour:&lt;br /&gt;&lt;a href=&quot;http://www.flickr.com/photos/neeroc/5684421345/&quot; title=&quot;DSC01366 by neeroc1, on Flickr&quot;&gt;&lt;img alt=&quot;DSC01366&quot; height=&quot;500&quot; src=&quot;http://farm6.static.flickr.com/5104/5684421345_d8714024cf.jpg&quot; width=&quot;334&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.flickr.com/photos/neeroc/5641668161/&quot; title=&quot;DSC00515 by neeroc1, on Flickr&quot;&gt;&lt;img alt=&quot;DSC00515&quot; height=&quot;500&quot; src=&quot;http://farm6.static.flickr.com/5145/5641668161_942201d2fc.jpg&quot; width=&quot;334&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;And used a bit of improvisation to get the house ready for market in two weeks:&lt;br /&gt;&lt;a href=&quot;http://www.flickr.com/photos/neeroc/5639134363/&quot; title=&quot;DSC00567 by neeroc1, on Flickr&quot;&gt;&lt;img alt=&quot;DSC00567&quot; height=&quot;500&quot; src=&quot;http://farm6.static.flickr.com/5188/5639134363_ab687a6a21.jpg&quot; width=&quot;334&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Just over a month of viewings sent us on adventures:&lt;br /&gt;&lt;a href=&quot;http://www.flickr.com/photos/neeroc/5672258524/&quot; title=&quot;Untitled by neeroc1, on Flickr&quot;&gt;&lt;img alt=&quot;&quot; height=&quot;500&quot; src=&quot;http://farm6.static.flickr.com/5103/5672258524_9f8cb5c839.jpg&quot; width=&quot;500&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Did I mention this was the wettest May EVER?:&lt;br /&gt;&lt;a href=&quot;http://www.flickr.com/photos/neeroc/5670937987/&quot; title=&quot;DSC01109 by neeroc1, on Flickr&quot;&gt;&lt;img alt=&quot;DSC01109&quot; height=&quot;500&quot; src=&quot;http://farm6.static.flickr.com/5224/5670937987_b44118e966.jpg&quot; width=&quot;334&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;So a lot of our time was spent in or near water:&lt;br /&gt;&lt;a href=&quot;http://www.flickr.com/photos/neeroc/5660194956/&quot; title=&quot;DSC01034-1 by neeroc1, on Flickr&quot;&gt;&lt;img alt=&quot;DSC01034-1&quot; height=&quot;500&quot; src=&quot;http://farm6.static.flickr.com/5306/5660194956_f948bb1911.jpg&quot; width=&quot;334&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Also?&lt;br /&gt;&lt;a href=&quot;http://www.flickr.com/photos/neeroc/5710933854/&quot; title=&quot;DSC01759 by neeroc1, on Flickr&quot;&gt;&lt;img alt=&quot;DSC01759&quot; height=&quot;500&quot; src=&quot;http://farm4.static.flickr.com/3368/5710933854_1fcf88b1b6.jpg&quot; width=&quot;380&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;But I'm fairly our van will smell like wet dog forever (good thing he's cute):&lt;br /&gt;&lt;a href=&quot;http://www.flickr.com/photos/neeroc/5767064426/&quot; title=&quot;Wet dog by neeroc1, on Flickr&quot;&gt;&lt;img alt=&quot;Wet dog&quot; height=&quot;500&quot; src=&quot;http://farm3.static.flickr.com/2727/5767064426_2e14780c32.jpg&quot; width=&quot;500&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Luckily we avoided this when some pretty big winds blew though:&lt;br /&gt;&lt;a href=&quot;http://www.flickr.com/photos/neeroc/5665395035/&quot; title=&quot;Sucks. Not my house by neeroc1, on Flickr&quot;&gt;&lt;img alt=&quot;Sucks. Not my house&quot; height=&quot;500&quot; src=&quot;http://farm6.static.flickr.com/5268/5665395035_a8ae6cf819.jpg&quot; width=&quot;500&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Some unlucky relatives may have gotten their fill of us (and our wet, smelly dog):&lt;br /&gt;&lt;a href=&quot;http://www.flickr.com/photos/neeroc/5766523887/&quot; title=&quot;Can we go now? by neeroc1, on Flickr&quot;&gt;&lt;img alt=&quot;Can we go now?&quot; height=&quot;500&quot; src=&quot;http://farm6.static.flickr.com/5062/5766523887_f8db24f8e1.jpg&quot; width=&quot;500&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;After hours and hours with bankers and lawyers (I have no pics, because really who wants to see that?) we've finally done it!:&lt;br /&gt;&lt;a href=&quot;http://www.flickr.com/photos/neeroc/5767027968/&quot; title=&quot;4ts2tw75 by neeroc1, on Flickr&quot;&gt;&lt;img alt=&quot;4ts2tw75&quot; height=&quot;368&quot; src=&quot;http://farm4.static.flickr.com/3458/5767027968_f2caaf689c.jpg&quot; width=&quot;500&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Now if you'll excuse me, I've got some boxes to pack and movers to call.</content>
		<author>
			<name>neeroc</name>
			<uri>http://neeroc.livejournal.com/</uri>
		</author>
		<source>
			<title type="html">Chasing my tail</title>
			<subtitle type="html">Screw the space program; find me a smoke that won't kill me!</subtitle>
			<link rel="self" href="http://neeroc.livejournal.com/data/atom"/>
			<id>urn:lj:livejournal.com:atom1:neeroc</id>
		</source>
	</entry>

	<entry>
		<title type="html" xml:lang="en">Google I/O: Memory Management for Android Apps</title>
		<link href="http://feedproxy.google.com/~r/dubroy/~3/cB0aKpeauHE/"/>
		<id>http://dubroy.com/blog/?p=529</id>
		<updated>2011-05-16T16:52:41+00:00</updated>
		<content type="html" xml:lang="en">&lt;p&gt;Though I never made a formal announcement here, some of you may know that I joined the Android team at Google just over a year ago. Last week I had the privilege of speaking at &lt;a href=&quot;http://www.google.com/events/io/2011/&quot;&gt;Google I/O&lt;/a&gt; in a talk called “Memory Management for Android Applications”:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Android apps have more memory available to them than ever before, but are you sure you’re using it wisely? This talk will cover the memory management changes in Gingerbread and Honeycomb (concurrent GC, heap-allocated bitmaps, “largeHeap” option) and explore tools and techniques for profiling the memory usage of Android apps.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;You can watch a full video of the talk (including the Q&amp;amp;A) &lt;a href=&quot;http://www.youtube.com/watch?v=_CruQY55HOk&quot;&gt;on YouTube&lt;/a&gt;:&lt;/p&gt;



&lt;p&gt;You can also &lt;a href=&quot;http://dubroy.com/memory_management_for_android_apps.pdf&quot;&gt;download the slides (PDF)&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ERRATUM:&lt;/strong&gt; I’d like to correct one mistake I made in the Q&amp;amp;A, answering a question at 49:33 in the video. I said that “garbage collection is fundamentally kind of asynchronous; if you’re really close to the limit there can be times that you’re trying to allocate so fast that the garbage collector can’t keep up.” That isn’t really true. Dalvik will always perform a full, synchronous GC before thowing an OutOfMemoryError. What I was referring to here was finalization. Finalization &lt;em&gt;is&lt;/em&gt; asynchronous, so if you are close to your heap limit and allocating a lot of objects, you may run out of memory before finalizable objects can be freed.&lt;/p&gt;

&lt;p&gt;Anyways, I had a great time at Google I/O, and met all kinds of developers building cool stuff on Android. Hope to see you all again next year!&lt;/p&gt;
&lt;img height=&quot;1&quot; src=&quot;http://feeds.feedburner.com/~r/dubroy/~4/cB0aKpeauHE&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>Patrick</name>
			<uri>http://dubroy.com/blog</uri>
		</author>
		<source>
			<title type="html">Patrick Dubroy</title>
			<subtitle type="html">programming, usability, and interaction design</subtitle>
			<link rel="self" href="http://feeds.feedburner.com/dubroy"/>
			<id>http://dubroy.com/blog</id>
		</source>
	</entry>

	<entry>
		<title type="html">Well then.</title>
		<link href="http://neeroc.livejournal.com/316209.html"/>
		<id>urn:lj:livejournal.com:atom1:neeroc:316209</id>
		<updated>2011-03-30T03:08:32+00:00</updated>
		<content type="html">It appears I've been neglecting LJ. Turns out I have a pretty good reason. (No not *that* reason - that would be FAN-FREAKING-TASTIC and the post would include sparklers and cartwheels)&lt;br /&gt;&lt;br /&gt;But. After searching since &lt;a href=&quot;http://neeroc.livejournal.com/2009/10/16/&quot;&gt;October'09&lt;/a&gt; we have finally bought a house! Well, I guess technically we have a completed agreement to purchase, the sale will be final May 31st. But that's a hell of a boring way to say it, so I'll go back to 'we've bought a house!'&lt;br /&gt;&lt;br /&gt;Much to my husband's dismay it does not have a pool, but he's already plotting, (I can tell). The seller's pictures don't do it justice, but I think it would be a bit creepy to head over there and start snapping pics from the road so they'll have to do:&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.flickr.com/photos/neeroc/5573159708/&quot; title=&quot;house1 by neeroc1, on Flickr&quot;&gt;&lt;img alt=&quot;house1&quot; height=&quot;458&quot; src=&quot;http://farm6.static.flickr.com/5093/5573159708_c21ac44714.jpg&quot; width=&quot;373&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;My next heart attack is getting this house ready to sell. Do you have any idea how much crap will accumulate in a house when you stay in it for 14 years? And have a kid? And hope to have another? I need a house to store my stuff before I can move it into my new house. I cannot wait to see the agent's reaction on Sunday. &lt;br /&gt;&lt;br /&gt;Interesting fact: Half of my wool/fabric stash has filled 30 rubbermaid bins.&lt;br /&gt;&lt;br /&gt;Possibly related: I am so sick of decluttering that I'm working on a time machine.</content>
		<author>
			<name>neeroc</name>
			<uri>http://neeroc.livejournal.com/</uri>
		</author>
		<source>
			<title type="html">Chasing my tail</title>
			<subtitle type="html">Screw the space program; find me a smoke that won't kill me!</subtitle>
			<link rel="self" href="http://neeroc.livejournal.com/data/atom"/>
			<id>urn:lj:livejournal.com:atom1:neeroc</id>
		</source>
	</entry>

	<entry>
		<title type="html">Don't forget to vote!</title>
		<link href="http://borisoneclipse.blogspot.com/2011/03/dont-forget-to-vote.html"/>
		<id>tag:blogger.com,1999:blog-17547394.post-4944610440737046695</id>
		<updated>2011-03-08T21:09:17+00:00</updated>
		<content type="html">&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot;&gt;If you are an Eclipse committer, please take a few minutes of your scarce time to vote in the &lt;a href=&quot;http://www.eclipse.org/org/elections/nominees.php&quot;&gt;Eclipse Board elections&lt;/a&gt;. There are only three days left, voting ends on Friday March 11th at 3pm Eastern time! &lt;br /&gt;
&lt;br /&gt;
If you are an individual (not employed by a member company) committer: Please click &lt;a href=&quot;http://www.eclipse.org/membership/become_a_member/membershipProcess.php&quot;&gt;here&lt;/a&gt;, and sign and send the membership agreement to the Eclipse Foundation. This will enable you to vote in the upcoming board member elections. There is no cost, and as an added bonus, the Eclipse Foundation is now sending really nice thank-you e-mails to those individual committers who become members.&lt;br /&gt;
&lt;br /&gt;
Why should you do that? Let me try to explain with a diagram:&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;http://www.diagrammr.com/png?key=dbNyxCvIHtt&quot; /&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: arial; font-size: 78%;&quot;&gt;(thanks, &lt;a href=&quot;http://www.diagrammr.com/&quot;&gt;diagrammr&lt;/a&gt;!)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
Here is the same information in text form, copied from the &lt;a href=&quot;http://www.eclipse.org/org/elections/election_process.php&quot;&gt;election process&lt;/a&gt; web page:&lt;br /&gt;
&lt;ul style=&quot;font-style: italic;&quot;&gt;&lt;li&gt;Each Committer Member gets one vote. Note that committers who are employees of Member companies have   all the rights and privileges (including voting) of a Committer Member.    &lt;/li&gt;
&lt;/ul&gt;&lt;ul style=&quot;font-style: italic;&quot;&gt;&lt;li&gt;Individual committers must join the Eclipse Foundation as Committer Members by signing the    &lt;a href=&quot;http://www.eclipse.org/org/documents/Eclipse%20MEMBERSHIP%20AGMT%202008_04_16%20Final.pdf&quot;&gt;Membership Agreement&lt;/a&gt; in order to be allowed to vote.   &lt;/li&gt;
&lt;/ul&gt;&lt;ul style=&quot;font-style: italic;&quot;&gt;&lt;li&gt;All committers who are employees of a single company have their votes collapsed into a single vote    in the committer elections.&lt;/li&gt;
&lt;/ul&gt;That's right: every vote from an individual committer member (someone who signed the individual membership agreement) is worth exactly the same as the votes from all EclipseSource committers combined, or all Oracle committers combined, or all itemis committers combined, ... you get the idea.&lt;br /&gt;
&lt;br /&gt;
That seems &lt;a href=&quot;http://ed-merks.blogspot.com/2008/02/one-committer-one-vote.html&quot;&gt;a little bit weird&lt;/a&gt;, but it sort of makes sense considering the situation back when the rules were made: IBM had way more Eclipse committers than everybody else, and there was a risk that they would determine the committer representatives, who then could be seen as voting in favour of IBM - leading to an imbalance at the board of directors. So when you think about it, the rules ensure that the committer representatives election is truly independent of any potential company interests.&lt;br /&gt;
&lt;br /&gt;
So, to repeat, if you are an individual (not employed by a member company) committer: Please click &lt;a href=&quot;http://www.eclipse.org/membership/become_a_member/membershipProcess.php&quot;&gt;here&lt;/a&gt;, and sign and send the membership agreement to the Eclipse Foundation. It's free (of charge), it will enable you to vote in the upcoming board member elections, and as an added bonus, the Eclipse Foundation is now sending really nice thank-you e-mails to those individual committers who become members.&lt;br /&gt;
&lt;br /&gt;
More votes mean more weight for the committer representatives on the Eclipse Board of Directors. And if you are an individual committer, your vote weighs a lot.&lt;br /&gt;
&lt;br /&gt;
Thank you! &lt;/div&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/17547394-4944610440737046695?l=borisoneclipse.blogspot.com&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;&lt;img height=&quot;1&quot; src=&quot;http://feeds.feedburner.com/~r/BorisBokowski/~4/Jy_yBhMaXic&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>Boris Bokowski</name>
			<email>noreply@blogger.com</email>
			<uri>http://borisoneclipse.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">Boris Bokowski</title>
			<subtitle type="html">Travelling across Canada</subtitle>
			<link rel="self" href="http://feeds.feedburner.com/BorisBokowski"/>
			<id>tag:blogger.com,1999:blog-17547394</id>
		</source>
	</entry>

	<entry>
		<title type="html">OpenJDK</title>
		<link href="http://duimovich.blogspot.com/2011/01/openjdk.html"/>
		<id>tag:blogger.com,1999:blog-24934006.post-5859689853841065129</id>
		<updated>2011-01-29T01:00:01+00:00</updated>
		<content type="html">&lt;p&gt;&lt;br /&gt;Yes,  &lt;a href=&quot;http://www-03.ibm.com/press/us/en/pressrelease/32708.wss&quot;&gt; IBM joined OpenJDK &lt;/a&gt; and it was big news ...&lt;em&gt;last fall... &lt;/em&gt;.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Why then no blog entry from yours truly ? Umm, I've been busy! You know, working on a seamless transition, ensuring IBM  continues to deliver the best performing, highest quality, Java runtimes on the planet :) &lt;/p&gt;&lt;p&gt;As &lt;a href=&quot;http://blogs.sun.com/mr/entry/openjdk_gov_reboot&quot;&gt; Mark just announced&lt;/a&gt;&lt;a href=&quot;http://blogs.sun.com/mr/&quot;&gt; &lt;/a&gt; we are working on the OpenJDK community bylaws - a draft soon to be posted. The goal is to create an environment that enables an open vibrant OpenJDK community. It's a project IBM is &lt;em&gt;joining&lt;/em&gt; so we spent time understanding how the project works today and tried to build on the existing model. Any changes were evaluated in the spirit of ensuring an open, transparent, and meritocratic project that can be run in a lightweight and efficient manner. We want to be inclusive and hope contributors feel comfortable joining the project.&lt;/p&gt;&lt;p&gt;In terms of OpenJDK, IBM will be bringing much to the table. Years of deep experience in Java runtimes, and we support a wide range of HW platforms, so we'll be taking our skills and work on earning our commit rights so we can get to it directly in the OpenJDK codebase.  I expect our joint efforts will strengthen the Java community, accelerate innovation in the overall Java ecosystem as well as give a boost to the floundering blogging community currently suffering from a lack of things to write about :)&lt;br /&gt;&lt;br /&gt;In OpenJDK, if we do it right, we'll see innovation from more than just the big players, and that will make the overall ecosystem richer. In the end, it will be our customers who benefit, from innovation, and a multi-vendor platform they can build their business on.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;That said, while we will cooperate on the platform, we're still going to &lt;i&gt;compete like mad on the implementations (delivering performance leadership :))&lt;/i&gt;, and if you haven't noticed, we're also gonna have some fun trash talking too.&lt;br /&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/24934006-5859689853841065129?l=duimovich.blogspot.com&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>John Duimovich</name>
			<email>noreply@blogger.com</email>
			<uri>http://duimovich.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">send, receive, reply</title>
			<subtitle type="html">Technology, Software, Virtual Machines, Eclipse and if you're lucky, Smalltalk too.</subtitle>
			<link rel="self" href="http://www.blogger.com/feeds/24934006/posts/default"/>
			<id>tag:blogger.com,1999:blog-24934006</id>
		</source>
	</entry>

	<entry>
		<title type="html">Eclipse Foundation at OOP 2011</title>
		<link href="http://ralph-at-eclipse.blog.de/2011/01/20/eclipse-foundation-at-oop-10400541/"/>
		<id>tag:ralph-at-eclipse.blog.de,2011-01-20:/2011/01/20/eclipse-foundation-at-oop-10400541/</id>
		<updated>2011-01-20T22:01:17+00:00</updated>
		<content type="html">&lt;p&gt;Next week, we will be joining the &lt;a href=&quot;http://www.sigs-datacom.de/oop2011/oop2011.html&quot;&gt;OOP 2011&lt;/a&gt; as an exhibitor.&lt;/p&gt;
	&lt;p&gt;Together with our members &lt;a href=&quot;http://bredex.de&quot;&gt;Bredex&lt;/a&gt;, &lt;a href=&quot;http://eclipsesource.com&quot;&gt;EclipseSource&lt;/a&gt;, &lt;a href=&quot;http://tasktop.com&quot;&gt;Tasktop&lt;/a&gt; and &lt;a href=&quot;http://yatta.de&quot;&gt;Yatta&lt;/a&gt; we will have a shared stand on the exhibition floor. &lt;/p&gt;
	&lt;p&gt;If you happen to be at OOP, please stop by for a chat! &lt;/p&gt;
	&lt;p&gt;PS: If you had not planned to go: Visit selected talks and the exhibition floor are free. Just &lt;a href=&quot;http://www.sigs-datacom.de/oop2011/fachmesse/fachmesse.html&quot;&gt;register here&lt;/a&gt;.&lt;/p&gt;
	&lt;p&gt;(Original Post at &lt;a href=&quot;http://eclipse-membership.blogspot.com/)&quot;&gt;http://eclipse-membership.blogspot.com/)&lt;/a&gt;&lt;/p&gt;
	&lt;p&gt;Ralph
&lt;/p&gt;
&lt;p&gt; &lt;small&gt; &lt;a href=&quot;http://ralph-at-eclipse.blog.de/2011/01/20/eclipse-foundation-at-oop-10400541/#comments&quot;&gt;Comments&lt;/a&gt; &lt;/small&gt; &lt;/p&gt;</content>
		<author>
			<name>ralphmueller</name>
			<uri>http://ralph-at-eclipse.blog.de/</uri>
		</author>
		<source>
			<title type="html">ralph@eclipse.org</title>
			<subtitle type="html">From my work life at the Eclipse Foundation</subtitle>
			<link rel="self" href="http://ralph-at-eclipse.blog.de/feed/atom/posts/"/>
			<id>tag:ralph-at-eclipse.blog.de,2012-02-05:/</id>
		</source>
	</entry>

	<entry>
		<title type="html">Getting Crusty?</title>
		<link href="http://www.ken.walker.name/usr/_blog/Entries/2011/1/13_Getting_Crusty.html"/>
		<id>http://www.ken.walker.name/usr/_blog/a7d0ef0b-cc0e-4e45-9bd4-6997e816e24f</id>
		<updated>2011-01-14T03:58:39+00:00</updated>
		<content type="html">&lt;a href=&quot;http://www.ken.walker.name/usr/_blog/Entries/2011/1/13_Getting_Crusty_files/IMG_0792.jpg&quot;&gt;&lt;img src=&quot;http://www.ken.walker.name/usr/_blog/Media/object001_4.jpg&quot; style=&quot;float: left; padding-right: 10px; padding-bottom: 10px; width: 232px; height: 165px;&quot; /&gt;&lt;/a&gt;Wow, this blog is getting crusty.  I must admit that I’ve moved a lot of my updating to Facebook or Twitter.  However, that’s not really an excuse for not blogging.  I’ve been doing a lot of cooking, work related activities and a cool LARP’ing game called Amtgard.  These are among the few things I should be talking about....</content>
		<author>
			<name>Ken Walker</name>
			<uri>http://www.ken.walker.name/usr/_blog/_blog.html</uri>
		</author>
		<source>
			<title type="html">ken.walker.name</title>
			<subtitle type="html">Welcome to the digital bits that represent Ken Walker.  I moved from my previous site so some things might not be here you’re expecting.  However, I hope to keep my music and my life up to date a little bit more here.  Check out my home page or my music podcast to get a bit more info about me...</subtitle>
			<link rel="self" href="http://www.ken.walker.name/usr/_blog/rss.xml"/>
			<id>http://www.ken.walker.name/usr/_blog/_blog.html</id>
		</source>
	</entry>

	<entry>
		<title type="html">Fall Demo Camps</title>
		<link href="http://ralph-at-eclipse.blog.de/2010/12/02/fall-demo-camps-10101664/"/>
		<id>tag:ralph-at-eclipse.blog.de,2010-12-02:/2010/12/02/fall-demo-camps-10101664/</id>
		<updated>2010-12-02T16:14:19+00:00</updated>
		<content type="html">&lt;p&gt;Demo Camps are almost over for me. As every year I tried to attend as many as I can: I meet good people, and I always learn a lot!&lt;/p&gt;
	&lt;p&gt;&lt;a href=&quot;http://wiki.eclipse.org/Eclipse_DemoCamps_November_2010/Bonn&quot;&gt;Demo Camp Bonn&lt;/a&gt; was the first for me in the fall series. Really nice location, good attendance and good talks. Even I start to understand that DSLs, Git and CDO are valuable technologies! Unfortunately I had caught a really bad cold and had to leave early. On my way home the train was terribly late and I was left on Frankfurt main station for quite some time before I could get home. &lt;/p&gt;
	&lt;p&gt;&lt;a href=&quot;http://wiki.eclipse.org/Eclipse_DemoCamps_November_2010/Dresden&quot;&gt;Dresden&lt;/a&gt; was the next stop. The itemis folks could get a room in at the technical university, and in the crowd I could sense a lot of students.  Again more interesting talks - as to be expected some modeling content, but I learned something about Maven and Tycho as well.&lt;/p&gt;
	&lt;p&gt;Then I attended the &lt;a href=&quot;http://wiki.eclipse.org/Eclipse_DemoCamps_November_2010/Kassel&quot;&gt;demo camp in Kassel&lt;/a&gt; again. At the university of Kassel Marcel Bruch talked about the &lt;a href=&quot;http://www.stg.tu-darmstadt.de/research/core/&quot;&gt;Eclipse Code Recommenders&lt;/a&gt; proposal (it was the 3rd time that I heard the talk, but Marcel is getting better every time), Nina Geiger from the Computer Science department did a demo of WindowBuilder Pro and the folks from &lt;a href=&quot;http://www.yatta.de/&quot;&gt;Yatta Solutions&lt;/a&gt; were trying to convince us that that modeling is as much fun as programming &lt;img alt=&quot;:)&quot; border=&quot;0&quot; class=&quot;middle&quot; src=&quot;http://ralph-at-eclipse.blog.de/img/smilies/icon_smile.gif&quot; /&gt;&lt;/p&gt;
	&lt;p&gt;It was a good event, and the fact that Yatta signed the solution membership agreement after the talks were done was very sweet.&lt;/p&gt;
	&lt;p&gt;&lt;a title=&quot;Demo Camp Schedule&quot;&gt;&lt;img alt=&quot;Demo Camp Schedule&quot; src=&quot;http://data6.blog.de/media/381/5174381_a69a58bb04_m.jpeg&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
	&lt;p&gt;So now there's just one demo camp left for me. Since demo camps organized by&lt;a href=&quot;http://http://eclipsesource.com/en/eclipse/&quot;&gt; EclipseSource &lt;/a&gt;are always special for me, I hope that I will meet many of you in &lt;a href=&quot;http://wiki.eclipse.org/Eclipse_DemoCamps_November_2010/Karlsruhe&quot;&gt;Karlsruhe at the FZI&lt;/a&gt;  next week. Together with FZI, Andrena and itemis a good program was put together, and I'll make sure that we go out for a beer afterwards &lt;img alt=&quot;:)&quot; border=&quot;0&quot; class=&quot;middle&quot; src=&quot;http://ralph-at-eclipse.blog.de/img/smilies/icon_smile.gif&quot; /&gt;&lt;/p&gt;
	&lt;p&gt;CU - Ralph&lt;/p&gt;
&lt;p&gt; &lt;small&gt; &lt;a href=&quot;http://ralph-at-eclipse.blog.de/2010/12/02/fall-demo-camps-10101664/#comments&quot;&gt;Comments&lt;/a&gt; &lt;/small&gt; &lt;/p&gt;</content>
		<author>
			<name>ralphmueller</name>
			<uri>http://ralph-at-eclipse.blog.de/</uri>
		</author>
		<source>
			<title type="html">ralph@eclipse.org</title>
			<subtitle type="html">From my work life at the Eclipse Foundation</subtitle>
			<link rel="self" href="http://ralph-at-eclipse.blog.de/feed/atom/posts/"/>
			<id>tag:ralph-at-eclipse.blog.de,2012-02-05:/</id>
		</source>
	</entry>

	<entry>
		<title type="html">IBM and OpenJDK</title>
		<link href="http://tellison.blogspot.com/2010/10/ibm-and-openjdk.html"/>
		<id>tag:blogger.com,1999:blog-7766304.post-3994999629167401230</id>
		<updated>2010-10-11T21:49:26+00:00</updated>
		<content type="html">IBM and Oracle are going to bring their combined resources together to &lt;a href=&quot;http://www.oracle.com/us/corporate/press/176988&quot;&gt;collaborate in OpenJDK&lt;/a&gt;.  The natural question arises about what this means for the &lt;a href=&quot;http://harmony.apache.org&quot;&gt;Apache Harmony project&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Apache Harmony has always been clear about the goal of innovating on a &lt;span style=&quot;font-weight: bold;&quot;&gt;compliant&lt;/span&gt; and &lt;span style=&quot;font-weight: bold;&quot;&gt;compatible&lt;/span&gt; implementation of Java SE.  It's also common knowledge that Apache have been &lt;a href=&quot;http://www.apache.org/jcp/sunopenletter.html&quot;&gt;requesting a compatibility test kit license&lt;/a&gt; for a number of years, and that a suitable license has not been forthcoming.  There's little prospect of that situation changing.&lt;br /&gt;&lt;br /&gt;So what's best for the Java ecosystem?  I believe that compatibility is vital, and rather than risk divergence the right thing is to bring the key platform development groups together on a common codebase.  Lessons learned on Project Harmony will be of value to OpenJDK, and I know there is immense mutual respect between the IBM and Oracle engineers.&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/7766304-3994999629167401230?l=tellison.blogspot.com&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>tim</name>
			<email>noreply@blogger.com</email>
			<uri>http://tellison.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">counterpoint</title>
			<link rel="self" href="http://www.blogger.com/feeds/7766304/posts/default"/>
			<id>tag:blogger.com,1999:blog-7766304</id>
		</source>
	</entry>

	<entry>
		<title type="html" xml:lang="en">Dream == Right Brain Party</title>
		<link href="https://laffra.wordpress.com/2010/08/09/dream-right-brain-party/"/>
		<id>http://laffra.wordpress.com/?p=17</id>
		<updated>2010-08-09T22:27:37+00:00</updated>
		<content type="html" xml:lang="en">&lt;p&gt;We are all taught in school that we have 2 brains, a left brain and a right brain. Both control opposite sides of our bodies, which is weird by itself:&lt;/p&gt;
&lt;p style=&quot;padding-left: 30px;&quot;&gt;&lt;a href=&quot;http://laffra.files.wordpress.com/2010/08/whatismindmapping_img1.jpg&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;alignnone size-medium wp-image-20&quot; height=&quot;166&quot; src=&quot;http://laffra.files.wordpress.com/2010/08/whatismindmapping_img1.jpg?w=300&amp;amp;h=166&quot; title=&quot;WhatIsMindMapping_img1&quot; width=&quot;300&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;padding-left: 30px;&quot;&gt;
&lt;/p&gt;&lt;p&gt;However, they also are two completely independent CPUs running at the same time. This is even weirder. Imagine your head being a computer with two motherboards, one running Windows, and one running MacOS:&lt;/p&gt;
&lt;p style=&quot;padding-left: 30px;&quot;&gt;&lt;a href=&quot;http://laffra.files.wordpress.com/2010/08/pc-mac-characters.jpg&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;alignnone size-full wp-image-18&quot; src=&quot;http://laffra.files.wordpress.com/2010/08/pc-mac-characters.jpg?w=595&quot; title=&quot;mac-pc&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://laffra.files.wordpress.com/2010/08/pc-mac-characters.jpg&quot;&gt;&lt;/a&gt;Observe how smart the Apple ad people are. They place the PC guy on the left, where he belongs. He always thinks in terms of languages, logic, order, sequential processing. He is analytical, precise, and great in emergencies. The guy on the right however thinks in colors and pictures, uses pattern recognition, is intuitive and creative, thinks holistically, and has high emotional and social intelligence.&lt;/p&gt;
&lt;p style=&quot;padding-left: 30px;&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;alignnone size-medium wp-image-19&quot; height=&quot;300&quot; src=&quot;http://laffra.files.wordpress.com/2010/08/left-brain-right-brain.jpg?w=283&amp;amp;h=300&quot; title=&quot;left-brain-right-brain&quot; width=&quot;283&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Now, let me get to my theory:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;A Dream is your right brain having a party&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Good. Nice theory. Now, what do you do when you want to support a theory? You carefully construct a google search for supportive pages, while ignoring the unsuppportive ones, of course. Here is a quote I found doing that:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;During sleep, our right brain is fully dominant with a small contribution from our dormant left brain&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Hmmm. That means that our logical, ordered, and linear-minded left brain is asleep while our out-of-the-box, holistic, creative, parallel thinking right brain is having a blast of a party.&lt;/p&gt;
&lt;p&gt;When you are dreaming, your left brain is never completely out of the picture, of course, which is why you sometimes actually &lt;em&gt;know&lt;/em&gt; you are having a so-called &lt;a href=&quot;http://en.wikipedia.org/wiki/Lucid_dream&quot;&gt;lucid dream&lt;/a&gt;. An intriguing concept enough to formulate a dream in a dream in a dream in a dream movie around:&lt;/p&gt;
&lt;p style=&quot;padding-left: 30px;&quot;&gt;&lt;a href=&quot;http://laffra.files.wordpress.com/2010/08/inception.jpg&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;alignnone size-medium wp-image-21&quot; height=&quot;200&quot; src=&quot;http://laffra.files.wordpress.com/2010/08/inception.jpg?w=300&amp;amp;h=200&quot; title=&quot;inception&quot; width=&quot;300&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Dreams are great, but especially when you are young, your right brain can sometimes really get out of control and make a big mess while it is having its parties. We have a medical term for those occasions and we call them &lt;em&gt;nightmares&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Think of it. My theory makes sense. How often do you hear people say:”I get my best ideas in the shower”? Now, analyze that. Showers are soothing and require little intellectual exercize. Your left brain essentially falls asleep. Your right brain takes over and you experience that oh-so welcome “Aha” experience. It is not coincidence that discoveries or inventions are often met with “That’s funny!”. This is really your left brain complimenting your right brain with that creative thought it would never have come up itself. Think of the PC guy being envious of the Mac guy in most Apple commercials.&lt;/p&gt;
&lt;p&gt;Another data point. IBM designates each Friday to be “Think Friday”. There is just one rule for those days, and that is: no meetings. Why no meetings? Because meetings produce endorphins and dopamine neurotransmitters of pleasure for exactly our &lt;em&gt;logical&lt;/em&gt; left brain. By cancelling all those meetings, we lull the normally dominant left brain to sleep, so that the right part can take over and &lt;em&gt;day-dream&lt;/em&gt; a new patent or business proposal.&lt;/p&gt;
&lt;p style=&quot;padding-left: 30px;&quot;&gt;&lt;a href=&quot;http://www.dilbert.com/strips/comic/2010-02-22/&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;alignnone size-medium wp-image-24&quot; height=&quot;93&quot; src=&quot;http://laffra.files.wordpress.com/2010/08/83078-strip.gif?w=300&amp;amp;h=93&quot; title=&quot;83078.strip&quot; width=&quot;300&quot; /&gt;&lt;br /&gt;
&lt;/a&gt;See: &lt;a href=&quot;http://www.dilbert.com/strips/comic/2010-02-22/&quot;&gt;Dilbert Cartoon&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Now, next time you come home and explain to your spouse that you did not do any work all day, but spend all your time in meetings, remember that’s really your right brain complaining it was suppressed all day by that tirant, logical left brain. Your right brain will have its revenge tonight with a couple of nice parties.&lt;/p&gt;
&lt;br /&gt;  &lt;a href=&quot;http://feeds.wordpress.com/1.0/gocomments/laffra.wordpress.com/17/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/laffra.wordpress.com/17/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godelicious/laffra.wordpress.com/17/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/laffra.wordpress.com/17/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gofacebook/laffra.wordpress.com/17/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/facebook/laffra.wordpress.com/17/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gotwitter/laffra.wordpress.com/17/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/twitter/laffra.wordpress.com/17/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gostumble/laffra.wordpress.com/17/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/laffra.wordpress.com/17/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godigg/laffra.wordpress.com/17/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/laffra.wordpress.com/17/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/goreddit/laffra.wordpress.com/17/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/laffra.wordpress.com/17/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; height=&quot;1&quot; src=&quot;http://stats.wordpress.com/b.gif?host=laffra.wordpress.com&amp;amp;blog=14003523&amp;amp;post=17&amp;amp;subd=laffra&amp;amp;ref=&amp;amp;feed=1&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>laffra</name>
			<uri>https://laffra.wordpress.com</uri>
		</author>
		<source>
			<title type="html">Chris Laffra</title>
			<subtitle type="html">Just another WordPress.com site</subtitle>
			<link rel="self" href="https://laffra.wordpress.com/feed/"/>
			<id>https://laffra.wordpress.com</id>
		</source>
	</entry>

	<entry>
		<title type="html" xml:lang="en">Emerging Languages Camp at OSCON 2010</title>
		<link href="https://laffra.wordpress.com/2010/07/24/emerging-languages-camp-at-oscon-2010/"/>
		<id>http://laffra.wordpress.com/?p=3</id>
		<updated>2010-07-24T02:41:59+00:00</updated>
		<content type="html" xml:lang="en">&lt;p&gt;In the week of July 21, 2010, I attended my first OSCON conference.&lt;/p&gt;
&lt;p&gt;The lineup of presentations is normally quite impressive already, but this year it was even more so with the inclusion of the Emerging Languages Camp. Kudos go to Brady Forrest (O’Reilly Media, Inc.) and Alex Payne (BankSimple) for recruiting such excellent speakers.&lt;/p&gt;
&lt;p&gt;As the organizers put it in their own words, “new programming languages are born all the time. Some languages are created to tackle new problems. Some languages are evidence proofs towards a better way of programming. Some are created just for fun or to scratch an itch. The Emerging Languages Camp is a gathering of the creators of recent programming languages, their peers, colleagues, interested programmers, technologists, and journalists.”&lt;/p&gt;
&lt;p&gt;The event was spread out over two days at OSCON 2010, with a dedicated room filled to maximum capacity of 120. The event was inspiring due to the enthusiasm with which each and every of the two dozen speakers presented their language, how they made a historical comparison with other languages, how they explained the motivation behind why the world needs yet another language, and the way they gave compelling demos of sample code written using their programming language.&lt;/p&gt;
&lt;p&gt;The only problem with events like this is that I now feel inspired to design another language of my own, just because it would be cool and just because I can &lt;img alt=&quot;:-)&quot; class=&quot;wp-smiley&quot; src=&quot;https://s-ssl.wordpress.com/wp-includes/images/smilies/icon_smile.gif&quot; /&gt; &lt;/p&gt;
&lt;p&gt;A running inside joke of the 2 day session was how to write an accumulator in the speaker’s proposed language. Next time you develop a language, forget “hello world”, and show an accumulator function, if you want to get recognition from your peers!&lt;/p&gt;
&lt;p&gt;Some random twitter quotes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;“Q: What kind of programs do you imagine writing with this language? A: I have no idea.”&lt;/li&gt;
&lt;li&gt;“There goes Lisp’s Last Great Hope”, as Rich Hickey dashed across the road in front of traffic.”&lt;/li&gt;
&lt;li&gt;“When facing a new problem, you may look for the best language to solve it, or create your own”&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Below follow the presentations I attended, as short description of each, and some personal highlights. Some I attended but could not make notes for due to brain overload.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Go&lt;br /&gt;
&lt;/strong&gt; Rob Pike (Google, Inc.)&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;“Go’s approach to concurrency differs from that of many languages, even those (such as Erlang) that make concurrency central, yet it has deep roots. The path from Hoare’s 1978 paper to Go provides insight into how and why Go works as it does.”&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Rob gave three presentations at OSCON 2010, and in the first one he specifically focussed on concurrency. The real breakthrough in parallel programming came in 1978 when Tony Hoare published his seminal paper on Communication Sequential Processes (CSP). Communication is fundamental. Parallel composition is multiprocessing. CSP has guarded commands, which allow you to express the willingness to execute a command based on a given expression. Furthermore, the composition language is very similar to the “pipe” construct in UNIX, but not used in any language up to 1978.&lt;/p&gt;
&lt;p&gt;From the theoretical basics of CSP, we forked off into many different more practical applications, such as Occam, Erlang, Squeak (SIGGRAPH ’85), Newsqueak, Alef, Limbo, and Go. The important discovery along this evolution was to make communication channels be first class citizens. That means you can send channels over a channel. Process composition works by naming channels to allow goroutines to communicate with each other.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;loke/Seph&lt;br /&gt;
&lt;/strong&gt; Ola Bini&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;“Ioke is a dynamically typed language – a language experiment with a focus on expressivity. It’s prototype based, object oriented, homoiconic and have powerful macro facilities – and runs both on the JVM and the CLR. Seph is a language currently being developed, based on Ioke. It’s a functional object oriented hybrid with explicit concrrency features inspired by Erlang and Clojure.”&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Perhaps the most distinguishing contribution of Ioke (pronounce: eye-oh-kee) is the notion of a formalized “decision system”. It is similar to continuable exceptions from Smalltalk, and much unlike exception handling in Java, where developers have to constantly unroll stacks.&lt;/p&gt;
&lt;p&gt;Ioke cares less about concurrency, as that was not the topic of study that led to Ioke. Interestingly, Ola reported on that fact almost apologetically, and I kind of agree he should feel a bit embarrassed. Modern languages should be *based* on concurrency as that is the main problem to solve in the near future, with the increasing emergence of multi-core chipsets. My current desktop at work is a 12-core CPU, and at best I can exercise maybe 3 or 4 cores, while most stay dormant&lt;br /&gt;
because the programming languages we use to develop contemporary programs have a hard time expression concurrency across processes.&lt;/p&gt;
&lt;p&gt;Ioke has a nice mechanism for DSLs. If you are into developing your own language, Ioke may be a language to investigate. Ioke allows you to change the underlying AST while the program is running, which greatly improves expressiveness, at a grand cost of performance, of course.&lt;/p&gt;
&lt;p&gt;Ioke has no floats, just BigDecimals. Kudo!&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Thyrd&lt;/strong&gt;&lt;br /&gt;
Phil Mercurio (Thyrd Informatics)&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;“Thyrd is an experimental visual programming language built as a proof of concept. Thyrd is reflective (a Thyrd program can inspect and modify itself) and concurrent. Visually, it resembles a spreadsheet. Underneath is a stack-based functional language in the same family as Forth, Joy, and Befunge. This talk will present the key concepts in Thyrd and some of the directions it might take.”&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Thyrd is heavily based on spreadsheets to combine the same representation for both the user interface and the underlying data model. This allows you to define variables, lists, tables, and tree datastructures, based on simple addressing semantics on the Thyrdspace. From a given cell, you can use relative addressing to get to other nodes.&lt;/p&gt;
&lt;p&gt;Cell nodes are like spreadsheet functions and are constantly evaluated when dependent nodes change value. Expression evaluation uses a stack execution model, very similar to Forth (and Postscript). Using the “Fold” operator, you can easily develop a MapReduce equivalent.&lt;/p&gt;
&lt;p&gt;Debugging is extremely visual by dragging a breakpoint into the code wave viewer. Similar tools have been developed for displaying the internal execution, allowing you to watch the execution stack being animated in a visual display.&lt;/p&gt;
&lt;p&gt;I really enjoyed this presentation. At lunch I spoke with Phil and grilled him on scalability of visual programming techniques and performance, and he eluded to both of those being hard problems to solve. Even something as simple as TicTacToe becomes a wieldy set of colorful boxes. Phil remarked that the hierarchical nesting that the spreadsheet metaphor offers does help with navigation, as it encourage the brain to use its specialized spatial memory abilities. That&lt;br /&gt;
sorting routine is somewhere to the top right, then 3 down, right next to that purple box.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Parrot&lt;/strong&gt;&lt;br /&gt;
Allison Randal (O’Reilly Media, Inc.)&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;“The Parrot virtual machine hit 2.0 in January of this year, and the 2.6 production release will be out the day before this talk. A virtual machine like no other, Parrot targets dynamic languages such as Perl, Ruby, Python and PHP. It incorporates an object-oriented assembly language, is register-based rather than stack-based, and employs continuations as the core means of flow control.”&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;A core component of Parrot is a parsing expression grammar (PEG), plus tree transformations to generate the instructions to run on the virtual machine. The transformations are heavily based on attribute grammars.&lt;/p&gt;
&lt;p&gt;The work being focussed on now is “Lorito” (Spanish for ‘small parrot’), to reconsider and refactor the existing VM and improve startup time, resource consumption, and targetting clouds and mobile architectures. Parrot now has 1,200+ static opcodes. That makes it hard to write a JIT. Lorito limits itself to 20 opcodes. Higher level opcodes are encoded in lower-level opcodes to allow JITs to do a better job. Other improvements focus on improved garbage collection algorithms and reduce cost between the various memory spaces. Lorito has only one object system, and hence no cost for going between C and the VM.&lt;/p&gt;
&lt;p&gt;Allison gave a passionate and enjoyable overview of Parrot and it inspired me to read up some more on it. Although Parrot is not a language per se, I think the topic was quite appropriate for the audience, as environments like Parrot solve many challenges language designers face and don’t want to necessarily focus on, such as parsing, garbage collection, and JIT compilation.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ur&lt;br /&gt;
&lt;/strong&gt; Adam Chlipala (Impredicative LLC)&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;“Ur/Web is a new domain-specific language for programming Web applications, based on a new general-purpose language called Ur. Ur features new abstraction and modularity features that make serious code reuse and metaprogramming possible within a strong static type system.”&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;The main goal of Ur/Web is to enforce entitlements on subsets of datastructures, in particular related to web applications, such as controlling accress to a subtree of a given web document. It is one of the various approaches to solve the “browser problem”. A great side-effect of Ur is its highly optimized packaging technology that automatically compresses code before sending it to the browser.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Frink&lt;br /&gt;
&lt;/strong&gt; Alan Eliasen (Frink)&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;“Frink is a practical programming language and calculating tool designed to make physical calculations simple. It tracks units of measure through all calculations, ensuring that answers are correct. Back-of-the-envelope calculations become trivial, and more complex physical and engineering calculations become simpler to write and read, and allow transparent use of any units of measure.”&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;This was an awesome presentation. Alan started with explaining how he got to design Frink many years ago. A friend of him claimed that 9,5 years of farting creates the same amount of energy as an atomic bomb explosion. Alan had his doubts and set out to disprove the theory using C++. He quickly got stuck and realized he needed a much better language to reason about the numerous units of measure and conversions between them. The end result is a system where you can simply request the output of a nuclear explosion in kilotons, convert that to joules, convert to calories, and simply divide that by “9 years and 6 months”.&lt;/p&gt;
&lt;p&gt;Frink empowers such computations by including a smart parser, lots of trivia, and a vast library of conversions between countless physical metrics, such as kilograms, meters, miles, etc, etc. The transformation rules in Frink remind me of peephole optimization tools for IR optimization and use an elegant DSL that is very similar to regular expressions as I used myself to optimize IR opcodes in the Amsterdam Compiler Kit, some 20 years ago.&lt;/p&gt;
&lt;p&gt;Another innovative contribution offered by Frink is the adoption of interval arithmetic. Try this: load your favorite compiler or interpreter and add 0.1 to itself 1,000 times. In systems that store 0.1 as a float, you are guaranteed to end up with a number that is unequal to 100, as 0.1 cannot be stored reliably as a binary number. Alan contributes to the IEEE  standard that suggests a different type of math that allows you to compare numbers in ranges. Rather than saying x=0.1, you can say x=[2,4], which means that x can be any number in between 2 and 4. In other words, x is all those possible values at the same time. This is almost as cool as quantum computing!&lt;/p&gt;
&lt;p&gt;With interval math, Alan convincingly showed how much more reliable complex computations can be, as error margins can be controlled and reflected upon. In this way, we can explicitly compute not only the result, but also the risk behind a certain computation.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Thoughts on the F# Productization&lt;/strong&gt;&lt;br /&gt;
Joe Pamer&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;“F# was already a fairly mature language with roots in Microsoft Research, Cambridge, and a steadily growing user base when the decision was made to officially support it in Visual Studio 2010. Having just shipped F# 2.0, the goal of this talk is to outline the experiences, both positive and negative, we had in transitioning the F# language and its implementation.”&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;This presentation was a bit different from all the others, as it did not talk at all about F#, showed no sample code, and did not relate it to any other languages at all. Instead, it was a great meta-topic discussion on the perils of success. Joe elaborated on his personal experience what things the F# team needed to worry about to allow adoption to a larger (and more commercial) audience of the original research project:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;books/forums/evangelising&lt;/li&gt;
&lt;li&gt;much better error/warning messages&lt;/li&gt;
&lt;li&gt;a well-written and well-maintained spec&lt;/li&gt;
&lt;li&gt;dog-fooding (use your own language to implement your compiler)&lt;/li&gt;
&lt;li&gt;be a first-class CLR language, no shortcuts&lt;/li&gt;
&lt;li&gt;clean up the crud collected over the years in the runtime DLL (camelcase vs underscores)&lt;/li&gt;
&lt;li&gt;binary compatibility between different versions of runtimes&lt;/li&gt;
&lt;li&gt;modern tooling support (debugging, etc)&lt;/li&gt;
&lt;li&gt;writing documentation, automatic generation&lt;/li&gt;
&lt;li&gt;high quality, localizable diagnostics (changes how you print errors)&lt;/li&gt;
&lt;li&gt;figure out runtime deployment&lt;/li&gt;
&lt;li&gt;improved experience on alternative platforms (i.e., test on Mono)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;It’s amazing how generic this list is. Substitute F# for your own language, platform, or product and the list of lessons learned apply directly to your own project to make it prime for successful adoption. I have been involved in quite a few large projects that went through this very same transition, and it was interesting to see how many deja-vus I had during the presentation. In return for his great talk, I showed Joe the direction to the beer at the local Python User group &lt;img alt=&quot;:-)&quot; class=&quot;wp-smiley&quot; src=&quot;https://s-ssl.wordpress.com/wp-includes/images/smilies/icon_smile.gif&quot; /&gt; &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;CoffeeScript&lt;/strong&gt;&lt;br /&gt;
Jeremy Ashkenas (DocumentCloud)&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;“CoffeeScript is a little language that compiles into JavaScript. It’s a thought experiment that aims to test how far we can stretch JavaScript semantics without adding any runtime libraries or outputting reams of generated code. Recommended for folks who are interested in languages that run in the browser as well as the server.”&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Coffeescript has been self-hosted since version 0.5 and solves some of the biggest problems with JavaScript.&lt;/p&gt;
&lt;p&gt;As far as the syntax goes, CoffeeScript looks a lot like python &lt;img alt=&quot;:-)&quot; class=&quot;wp-smiley&quot; src=&quot;https://s-ssl.wordpress.com/wp-includes/images/smilies/icon_smile.gif&quot; /&gt;  It is an awesome language and implementation. Not only is Jeremy a natural presenter, his materials were nicely presented, and various explanations and demos looked very nice. I bet many languages would be envious and hope to have such a great evangelist.&lt;/p&gt;
&lt;p&gt;As CoffeeScript translates into Javascript, debugging has to happen on the generated code. I had a discussion with Jeremy afterwards, and explained how we solved that problem in EGL, where we generated two forms of JavaScript code, one with line number information and breakpoints, and one without that. Our tooling used the meta information to support debugging in the original source language. I also suggested Jeremy talk to John Barton of IBM who is working on&lt;br /&gt;
improved debugger integration with Firebug. This may help in debugging CoffeeScript.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mirah&lt;br /&gt;
&lt;/strong&gt; Charles Nutter (Engine Yard, Inc)&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;“Mirah (formerly Duby), is a Ruby-inspired, statically-typed, lightweight, platform-agnostic language with backends for JVM bytecode, Java source, and more platforms planned. It borrows features from several static and dynamic languages, but with a twist: no runtime dependency on any additional library; everything is done at compile time.”&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;The goal is to have the best of Ruby, but be as fast as Java, and see where the ship sinks. Very small code base. Only 10K lines of Ruby code.&lt;/p&gt;
&lt;p&gt;For almost all samples, the generated JVM bytecodes are much more condensed for Mirah than they are for JRuby. Requires function arguments to be typed. Uses type inferencing to propagate type information to declare locals and fields of more specific types that a dynamically typed JVM implementation could ever get.&lt;/p&gt;
&lt;p&gt;It reminded me of the research work on “typed Smalltalk”. I myself have implemented a Smalltalk to Java byte code translator in the late nineties, and the opportunities for optimization are huge when generating to the JVM when type signatures are available. Lookup through reflection API is horribly expensive both in code size and in CPU consumption.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Kodu&lt;/strong&gt;&lt;br /&gt;
Matt MacLaurin (Microsoft FUSE Labs)&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;“Kodu is a new, purpose-built programming language designed as a first programming experience for kids or folks who want a very accessible intro to programming. Kodu is a visual language embedded in a 3D world, with language features specifically aimed at game design and interactivity programming. While deceptively simple, Kodu also introduces advanced concepts such as concurrency and arbitration.”&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Kodu was designed to make it very easy to develop XBox games, assuming an underlying rendering engine.&lt;/p&gt;
&lt;p&gt;Motivation is to reduce the impedance mismatch when going from gameplay to editing. Using simple metaphors that are close to the kids’ vocabulary, such as “score” instead of “int”. Furthermore, Kudo provides instant gratification by giving immediate feedback on scripts you just wrote. A debugger is not really needed as recoding is really easy.&lt;/p&gt;
&lt;p&gt;OK. I cannot wait to get home, and download Kodu from XBox Live and sit down with my 13 year old and buy our own game. In the past, I have played with systems like Alice from Carnegie Mellon, but it is amazing to see what the latest generation of game engines allow you to do.&lt;/p&gt;
&lt;p&gt;I also think the commercial/business software industry has been categorically ignoring lessons from gaming. I have yet to see an XBox 360, PS3, or Wii game that really needs a manual. All UIs are extremely intuitive or simplified to not overwhelm the user and sit in the way of the real aim: shoot monsters. Most commercial software thinks the business function is subordinate to the application framework and applications are over-engineered in the wrong areas. How&lt;br /&gt;
many games do you think get 5 stars when they take 4 hours to install, or when it takes 5 minutes to start up?&lt;/p&gt;
&lt;p&gt;Update: I told my son about Kodu this afternoon. Half an hour later, he had downloaded by himself from the Indie game category at XBox Live, and had his first game implemented already. Amazing.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Clojure&lt;br /&gt;
&lt;/strong&gt; Rich Hickey (Clojure)&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;“This talk will provide a brief experience report on Clojure, a dynamic, functional language targeting the JVM. It will detail the challenges faced in providing a practical and approachable programming language featuring pervasive immutability on top of the commodity infrastructure of the JVM.”&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Rich talked about a topic he is working on right now that may make it into Closure, and yet again, may not. I think it should as the concept is very similar to the project I am now working on at Bank of America/Merrill Lynch, and we agree on need for such and approach.&lt;/p&gt;
&lt;p&gt;Rich’s goal is to implement persistence as a stored graph, where each node is immutable. As soon as you write to a node in the graph, a new path is created to provide you a new view of the world with the updated value. Only you will see your changes. Others use their own access paths, which takes them to the old values, not your new values. This persistence model strongly encourages concurrent modifications to the graph, facilitating caching, and replication and redundancy.&lt;/p&gt;
&lt;p&gt;Clojure remains an extremely elegant system. I just cannot get used to the syntax, as my mind has  been too polluted by C, Java, and more recently Python.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;E, Caja&lt;br /&gt;
&lt;/strong&gt; Mark Miller (Google, Inc.)&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;“E is a clean slate no compromise language, built for object-capability security and distributed computing. JavaScript is one of the leakiest languages ever, created almost by accident, whose massive success imposes severe legacy compatibility constraints on its evolution. Caja is the surprising discovery of E-like security in a simple compatible subset of JavaScript.”&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;The main goal behind Caja (aka, Dr.SES) is to make JavaScript more secure by making the reference graph be identical to the access graph, and allowing for ‘safe mashups’.&lt;/p&gt;
&lt;p&gt;The second goal is to improve concurrency. Tradeoffs are shared state vs. message passing in one dimension and blocking vs. non-blocking in the second dimension.&lt;/p&gt;
&lt;p&gt;Mark explained the various meanings of the word Caja, and reinforced another lesson. If you are designing your own programming language, platform, or framework, spend at least as much time at choosing the right name as you do in implementing it.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;AmbientTalk&lt;br /&gt;
&lt;/strong&gt; Tom Van Cutsem (Vrije Universiteit Brussel)&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;“AmbientTalk can best be summarized as “a scripting language for mobile phones”. It’s a dynamic, object-oriented, JVM-compatible, distributed programming language. AmbientTalk’s focus is on applications to be deployed in so-called “mobile ad hoc networks” – networks of mobile devices that communicate peer-to-peer using wireless communication technology, such as WiFi or Bluetooth.”&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;I thought the coolest takeaway from AmbientTalk is the notion of message queues and the fact that network failures are not exceptions, but are to be expected and anticipated. A lot of the plumbing in AmbientTalk concerns itself with talking to partners that we have no physical connection with yet, and dealing with messages that time out after a certain time.&lt;/p&gt;
&lt;p&gt;OK, that wraps up my brain dump of a subset of the languages being presented at the Emerging Languages Camp 2010. I am hoping we will see many more of them in the future…&lt;/p&gt;
&lt;br /&gt;  &lt;a href=&quot;http://feeds.wordpress.com/1.0/gocomments/laffra.wordpress.com/3/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/laffra.wordpress.com/3/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godelicious/laffra.wordpress.com/3/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/laffra.wordpress.com/3/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gofacebook/laffra.wordpress.com/3/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/facebook/laffra.wordpress.com/3/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gotwitter/laffra.wordpress.com/3/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/twitter/laffra.wordpress.com/3/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gostumble/laffra.wordpress.com/3/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/laffra.wordpress.com/3/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godigg/laffra.wordpress.com/3/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/laffra.wordpress.com/3/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/goreddit/laffra.wordpress.com/3/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/laffra.wordpress.com/3/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; height=&quot;1&quot; src=&quot;http://stats.wordpress.com/b.gif?host=laffra.wordpress.com&amp;amp;blog=14003523&amp;amp;post=3&amp;amp;subd=laffra&amp;amp;ref=&amp;amp;feed=1&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>laffra</name>
			<uri>https://laffra.wordpress.com</uri>
		</author>
		<source>
			<title type="html">Chris Laffra</title>
			<subtitle type="html">Just another WordPress.com site</subtitle>
			<link rel="self" href="https://laffra.wordpress.com/feed/"/>
			<id>https://laffra.wordpress.com</id>
		</source>
	</entry>

	<entry>
		<title type="html">EclipseCon talk accepted</title>
		<link href="http://flipperyrollups.blogspot.com/2008/12/eclipsecon-talk-accepted.html"/>
		<id>tag:blogger.com,1999:blog-27603777.post-5832462760324662206</id>
		<updated>2010-07-23T01:44:22+00:00</updated>
		<content type="html">Looks like our &lt;a href=&quot;http://www.eclipsecon.org/2009/sessions?id=636&quot;&gt;talk on the Eclipse e4 programming model&lt;/a&gt;, which includes a demo of our work on embedding web UIs into Eclipse, has been accepted for EclipseCon (March 23-26 in Santa Clara).  Woot!&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/27603777-5832462760324662206?l=flipperyrollups.blogspot.com&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Nick Edgar</name>
			<email>noreply@blogger.com</email>
			<uri>http://flipperyrollups.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">Flippery Rollups</title>
			<subtitle type="html">Random musings by Nick Edgar</subtitle>
			<link rel="self" href="http://www.blogger.com/feeds/27603777/posts/default"/>
			<id>tag:blogger.com,1999:blog-27603777</id>
		</source>
	</entry>

	<entry>
		<title type="html">Archived</title>
		<link href="http://eclipse-projects.blogspot.com/2010/07/its-been-archived.html"/>
		<id>tag:blogger.com,1999:blog-12783252.post-3473365378788116471</id>
		<updated>2010-07-18T19:01:40+00:00</updated>
		<content type="html">I've archived the 431 posts from this blog. If you're interested in a specific post, don't hesitate to contact me and I'll pull a copy out of storage for you.</content>
		<author>
			<name>Bjorn Freeman-Benson</name>
			<email>noreply@blogger.com</email>
			<uri>http://eclipse-projects.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">Open Source at Eclipse</title>
			<subtitle type="html">It's About More Than Just Code, But How Much More?</subtitle>
			<link rel="self" href="http://www.blogger.com/feeds/12783252/posts/default"/>
			<id>tag:blogger.com,1999:blog-12783252</id>
		</source>
	</entry>

	<entry>
		<title type="html">42</title>
		<link href="http://duimovich.blogspot.com/2010/06/42.html"/>
		<id>tag:blogger.com,1999:blog-24934006.post-749750697535542003</id>
		<updated>2010-06-15T04:15:01+00:00</updated>
		<content type="html">&lt;div style=&quot;TEXT-ALIGN: center; MARGIN: 0px auto 10px;&quot;&gt;&lt;a href=&quot;http://4.bp.blogspot.com/_hZW9ZAfu9Yg/TBbjY6J0zbI/AAAAAAAAXSo/ej2lwf9nh0g/s1600/DSC_3585.jpg&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://4.bp.blogspot.com/_hZW9ZAfu9Yg/TBbjY6J0zbI/AAAAAAAAXSo/ej2lwf9nh0g/s400/DSC_3585.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;TEXT-ALIGN: center; MARGIN: 0px auto 10px;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto;&quot;&gt;Arrived at work today and noticed the &quot;the Answer to the Ultimate Question of Life, the Universe, and Everything.&quot; on my odometer. &lt;/div&gt;&lt;div style=&quot;text-align: left; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto;&quot;&gt;Then,  &lt;a href=&quot;http://thedailywtf.com/&quot;&gt;The Daily WTF&lt;/a&gt; had an awesome &lt;a href=&quot;http://thedailywtf.com/Articles/1s-and-0s.aspx&quot;&gt;post&lt;/a&gt; on a &lt;a href=&quot;http://thedailywtf.com/Articles/1s-and-0s.aspx&quot;&gt;spectacular use of binary&lt;/a&gt;.  &lt;/div&gt;&lt;div style=&quot;text-align: left; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto;&quot;&gt;Nice. Twice&lt;/div&gt;&lt;div style=&quot;text-align: left; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto;&quot;&gt;&lt;br /&gt;&lt;/div&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/24934006-749750697535542003?l=duimovich.blogspot.com&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>John Duimovich</name>
			<email>noreply@blogger.com</email>
			<uri>http://duimovich.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">send, receive, reply</title>
			<subtitle type="html">Technology, Software, Virtual Machines, Eclipse and if you're lucky, Smalltalk too.</subtitle>
			<link rel="self" href="http://www.blogger.com/feeds/24934006/posts/default"/>
			<id>tag:blogger.com,1999:blog-24934006</id>
		</source>
	</entry>

	<entry>
		<title type="html">Back on the road bike!</title>
		<link href="http://www.ken.walker.name/usr/_blog/Entries/2010/3/31_Back_on_the_road_bike%21.html"/>
		<id>http://www.ken.walker.name/usr/_blog/319849f7-950e-4af7-94cc-b9dc934600d6</id>
		<updated>2010-04-01T00:29:01+00:00</updated>
		<content type="html">&lt;a href=&quot;http://www.ken.walker.name/usr/_blog/Entries/2010/3/31_Back_on_the_road_bike%21_files/DSC_0144.jpg&quot;&gt;&lt;img src=&quot;http://www.ken.walker.name/usr/_blog/Media/object001_3.jpg&quot; style=&quot;float: left; padding-right: 10px; padding-bottom: 10px; width: 220px; height: 165px;&quot; /&gt;&lt;/a&gt;Yay, I must say getting back on the road bike (well apart from my Hawaiian road biking) is great!  I did get my first flat on it precisely 1Km from home.  But, whatever, it was nice to have a light bike under me again. Also, the weather is turning very warm as you can see.&lt;br /&gt;&lt;br /&gt;So my winter biking turned into a success I think.  From near the end of October to yesterday I biked around 55 times and covered around 1500Km on my winter bike.  I must say I think I was lucky with the weather, we didn’t get a lot of snow and the roads were pretty dry overall.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;</content>
		<author>
			<name>Ken Walker</name>
			<uri>http://www.ken.walker.name/usr/_blog/_blog.html</uri>
		</author>
		<source>
			<title type="html">ken.walker.name</title>
			<subtitle type="html">Welcome to the digital bits that represent Ken Walker.  I moved from my previous site so some things might not be here you’re expecting.  However, I hope to keep my music and my life up to date a little bit more here.  Check out my home page or my music podcast to get a bit more info about me...</subtitle>
			<link rel="self" href="http://www.ken.walker.name/usr/_blog/rss.xml"/>
			<id>http://www.ken.walker.name/usr/_blog/_blog.html</id>
		</source>
	</entry>

	<entry>
		<title type="html">Talks at EclipseCon 2010</title>
		<link href="http://fromtheslate.blogspot.com/2010/02/talks-at-eclipsecon-2010.html"/>
		<id>tag:blogger.com,1999:blog-5261958206572094598.post-8497665274741088570</id>
		<updated>2010-02-02T18:50:32+00:00</updated>
		<content type="html">I'm involved in two talks at &lt;a href=&quot;http://eclipsecon.org&quot;&gt;EclipseCon&lt;/a&gt; this year.&lt;br /&gt;&lt;br /&gt;The first one is a 3-hour tutorial on Monday morning called &lt;a href=&quot;http://www.eclipsecon.org/2010/sessions/?page=sessions&amp;amp;id=1140&quot;&gt;Working with OSGi: The stuff you need to know&lt;/a&gt;. It's based on my upcoming book entitled &lt;a href=&quot;http://equinoxosgi.org/&quot;&gt;OSGi and Equinox: Creating Highly Modular Java Systems&lt;/a&gt;. I'll be presenting with my co-authors Jeff McAffer (EclipseSource) and Simon Archer (IBM) as well as Chris Aniszczyk (EclipseSource). Should be loads of work. And loads of fun.&lt;br /&gt;&lt;br /&gt;I'm also doing a talk on Tuesday afternoon called &lt;a href=&quot;http://www.eclipsecon.org/2010/sessions/?page=sessions&amp;amp;id=1095&quot;&gt;OSGi Best and Worst Practices&lt;/a&gt;. Again, I'll be presenting with Jeff McAffer and Chris Aniszczyk, plus Martin Lippert from it-agile in Germany. Martin really knows how to put the proverbial umlaut in OSGi! Personally, I'm hoping to focus more on the worst practices, since that's more fun. Got any ideas or pet peeves? I've already got one up my sleeve that will involve a shameless rip-off of my favorite &lt;a href=&quot;http://www.toothpastefordinner.com&quot;&gt;Toothpaste for Dinner&lt;/a&gt; comic. Well, second favorite, behind &lt;a href=&quot;http://www.toothpastefordinner.com/031208/how-many-digits-of-pi-do-you-know.gif&quot;&gt;this one&lt;/a&gt;. And, yes, I can recite the first 50.&lt;br /&gt;&lt;br /&gt;Addison-Wesley will also be selling our book at the conference, and Jeff, Simon and I will have copies available to peruse. We'll probably give away a copy or two to some lucky winners.&lt;br /&gt;&lt;br /&gt;The conference runs from &lt;a href=&quot;http://www.eclipsecon.org/2010/table/?http://www.eclipsecon.org/2010/table/?page=table&quot;&gt;March 22 - 25&lt;/a&gt;. See you there!&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/5261958206572094598-8497665274741088570?l=fromtheslate.blogspot.com&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Paul VanderLei</name>
			<email>noreply@blogger.com</email>
			<uri>http://fromtheslate.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">From the Slate</title>
			<link rel="self" href="http://www.blogger.com/feeds/5261958206572094598/posts/default"/>
			<id>tag:blogger.com,1999:blog-5261958206572094598</id>
		</source>
	</entry>

	<entry>
		<title type="html" xml:lang="en">Kuku</title>
		<link href="http://www.ken.walker.name/usr/_music/Entries/2010/1/24_Kuku.html"/>
		<id>http://www.ken.walker.name/usr/_music/14f5bbf3-2439-415a-be54-34afd0748226</id>
		<updated>2010-01-25T01:38:19+00:00</updated>
		<content type="html" xml:lang="en">Kuku is from the Guinea and Ivory Coast area.  Typically it is a women’s dance performed in a circle. It is a popular rhythm played at all kinds of festivals, including full moon celebrations.  I recorded this today because someone I know said they were taking some Kuku dance lessons.

6 drum parts plus some solos</content>
		<author>
			<name>Ken Walker</name>
			<uri>http://www.ken.walker.name/usr/_music/_music.html</uri>
		</author>
		<source>
			<title type="html">Aural Pleasure</title>
			<subtitle type="html">Here’s the spot I’ll share some of the music me or my family make.  I’m an avid African Drummer and perform with Kunundrum and also with Butterflies &amp;amp; Zebras.
    - Ken Walker</subtitle>
			<link rel="self" href="http://www.ken.walker.name/usr/_music/rss.xml"/>
			<id>http://www.ken.walker.name/usr/_music/_music.html</id>
		</source>
	</entry>

	<entry>
		<title type="html">Reason to Run 2010</title>
		<link href="http://runnerwhocodes.blogspot.com/2010/01/reason-to-run-2010.html"/>
		<id>tag:blogger.com,1999:blog-237205426838095904.post-8549863394124282794</id>
		<updated>2010-01-04T05:44:56+00:00</updated>
		<content type="html">&lt;a href=&quot;http://4.bp.blogspot.com/_w_n3E-D0snA/S0F_Si8Om8I/AAAAAAAACpc/-InbzbzuTz8/s1600-h/logoSmall.png&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5422755382924581826&quot; src=&quot;http://4.bp.blogspot.com/_w_n3E-D0snA/S0F_Si8Om8I/AAAAAAAACpc/-InbzbzuTz8/s200/logoSmall.png&quot; style=&quot;margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px; height: 136px;&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;span style=&quot;font-family: Georgia;&quot;&gt;&lt;em&gt;Reason to Run #187: Having a targeted goal is a  great way to succeed with a New Years fitness resolution.&lt;br /&gt;&lt;br /&gt;&lt;/em&gt;&lt;/span&gt;&lt;/div&gt; &lt;div&gt;&lt;span style=&quot;font-family: Georgia;&quot;&gt;&lt;/span&gt; &lt;/div&gt; &lt;div&gt;&lt;span style=&quot;font-family: Georgia;&quot;&gt;&lt;strong&gt;Reason to Run&lt;/strong&gt; had an amazing year in  2009. It was our first year organizing races and we met so many great people.   With the partnership of our wonderful sponsors, we were able to raise over  &lt;strong&gt;$17,000&lt;/strong&gt; for the charities associated with our events: the &lt;a href=&quot;http://reasontorun.com/springCharity&quot;&gt;Micah  Project&lt;/a&gt;, &lt;a href=&quot;http://www.caringbridge.org/visit/alexandermartinez&quot;&gt;Alex Martinez Memorial Fund&lt;/a&gt;, &lt;a href=&quot;http://www.cern-foundation.org/&quot;&gt;CERN&lt;/a&gt;, &lt;a href=&quot;http://www.caringbridge.org/&quot;&gt;Caring Bridge&lt;/a&gt; and the &lt;a href=&quot;http://www.catalyst-project.typepad.com/partnerships/&quot;&gt;Catalyst  Partnerships&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt; &lt;div&gt;&lt;span style=&quot;font-family: Georgia;&quot;&gt;&lt;/span&gt; &lt;/div&gt; &lt;div&gt;&lt;span style=&quot;font-family: Georgia;&quot;&gt;In April 2009, we had the &lt;strong&gt;Spring Burst 5k and  10k&lt;/strong&gt;, with &lt;strong&gt;Pace of Courage 5k and 10k&lt;/strong&gt; in August and  then we finished the season with the &lt;strong&gt;Catalyst Challenge&lt;/strong&gt; in  October.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt; &lt;div&gt;&lt;span style=&quot;font-family: Georgia;&quot;&gt;&lt;/span&gt; &lt;/div&gt; &lt;div&gt;&lt;span style=&quot;font-family: Georgia;&quot;&gt;These three events are back for 2010, so add them to  your race calendar and come out for more fun with &lt;strong&gt;Reason to  Run:&lt;/strong&gt; &lt;a href=&quot;http://reasontorun.com/races.html&quot;&gt;http://reasontorun.com/races.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt; &lt;div&gt;&lt;span style=&quot;font-family: Georgia;&quot;&gt;&lt;/span&gt; &lt;/div&gt; &lt;div&gt;&lt;span style=&quot;font-family: Georgia;&quot;&gt;The first event of the year is the Spring Burst 5k and  10k: &lt;/span&gt;&lt;a href=&quot;http://reasontorun.com/springRaces.html&quot;&gt;&lt;span style=&quot;font-family: Georgia;&quot;&gt;http://reasontorun.com/springRaces.html&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: Georgia;&quot;&gt; and registration will open in early January.&lt;/span&gt;&lt;/div&gt; &lt;div&gt;&lt;span style=&quot;font-family: Georgia;&quot;&gt;Join us on our Facebook event for the Spring Burst and  invite your friends to share in the excitement leading up to April 10th: &lt;a href=&quot;http://www.facebook.com/event.php?eid=214848049130&quot;&gt;http://www.facebook.com/event.php?eid=214848049130&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt; &lt;div&gt;&lt;span style=&quot;font-family: Georgia;&quot;&gt;&lt;/span&gt; &lt;/div&gt; &lt;div&gt; &lt;div&gt;&lt;span style=&quot;font-family: Georgia;&quot;&gt;Happy New Year!!&lt;/span&gt;&lt;/div&gt; &lt;div&gt;&lt;span style=&quot;font-family: Georgia;&quot;&gt;&lt;/span&gt; &lt;/div&gt;&lt;/div&gt; &lt;div&gt;&lt;span style=&quot;font-family: Georgia;&quot;&gt;Darin and Trisha&lt;/span&gt;&lt;/div&gt; &lt;div&gt;&lt;a href=&quot;http://www.reasontorun.com/&quot;&gt;&lt;span style=&quot;font-family: Georgia;&quot;&gt;www.ReasonToRun.com&lt;/span&gt;&lt;/a&gt;&lt;/div&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/237205426838095904-8549863394124282794?l=runnerwhocodes.blogspot.com&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Darin Swanson</name>
			<email>noreply@blogger.com</email>
			<uri>http://runnerwhocodes.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">Reason To Run</title>
			<subtitle type="html">My adventures in road and trail running with Eclipse and Jazz development thrown in.
&lt;br /&gt;
For Running stuff click &lt;a href=&quot;http://runnerwhocodes.blogspot.com/search/label/running&quot;&gt; here&lt;/a&gt;. For Eclipse stuff click &lt;a href=&quot;http://runnerwhocodes.blogspot.com/search/label/eclipse&quot;&gt; here&lt;/a&gt;.</subtitle>
			<link rel="self" href="http://www.blogger.com/feeds/237205426838095904/posts/default"/>
			<id>tag:blogger.com,1999:blog-237205426838095904</id>
		</source>
	</entry>

	<entry>
		<title type="html" xml:lang="en">Sorsonet</title>
		<link href="http://www.ken.walker.name/usr/_music/Entries/2009/12/25_Sorsonet.html"/>
		<id>http://www.ken.walker.name/usr/_music/e5897c3b-90a6-4ed0-808e-02e7856a3456</id>
		<updated>2009-12-25T18:11:41+00:00</updated>
		<content type="html" xml:lang="en">Sorsonet is a mask dance from the Baga ethnic group from West Guinea, Boké region.  There’s one mistake on the call in that I missed an open tone (well at least that mistake ;-).  It has two balafon parts as well.  Enjoy!</content>
		<author>
			<name>Ken Walker</name>
			<uri>http://www.ken.walker.name/usr/_music/_music.html</uri>
		</author>
		<source>
			<title type="html">Aural Pleasure</title>
			<subtitle type="html">Here’s the spot I’ll share some of the music me or my family make.  I’m an avid African Drummer and perform with Kunundrum and also with Butterflies &amp;amp; Zebras.
    - Ken Walker</subtitle>
			<link rel="self" href="http://www.ken.walker.name/usr/_music/rss.xml"/>
			<id>http://www.ken.walker.name/usr/_music/_music.html</id>
		</source>
	</entry>

	<entry>
		<title type="html" xml:lang="en">Tolerance and Respect</title>
		<link href="http://dev.eclipse.org/blogs/kevinmcguire/2009/12/02/tolerance-and-respect/"/>
		<id>http://dev.eclipse.org/blogs/kevinmcguire/?p=123</id>
		<updated>2009-12-02T05:18:27+00:00</updated>
		<content type="html" xml:lang="en">&lt;p&gt;While I no longer work on Eclipse nor for a member company, I regard many many people in the community as my friends, so felt compelled to write.&lt;/p&gt;
&lt;p&gt;I think one measure of the strength of a community, or of a society for that matter, is the degree to which it tolerates viewpoints and discussions which challenge, irritate, or upset it. At best it may learn from them, at the least it can disregard them while it celebrates the fact that those voices exist. That voice could be yours.&lt;/p&gt;
&lt;p&gt;There’s been much discussion about the need for openness.  But that openness starts with a willingness to listen to, or at least accept, the words of others regardless of whether they align with our own.  It begins with tolerance and respect.  When as a community we engage in disrespectful acts such as personal attacks and name calling, and entertain the banning of those whom we no longer have the desire to listen to, we are no longer open.  We lessen ourselves, and are not much of a community.&lt;/p&gt;
&lt;p&gt;Is this who you want to be?&lt;/p&gt;</content>
		<author>
			<name>Kevin McGuire</name>
			<uri>http://dev.eclipse.org/blogs/kevinmcguire</uri>
		</author>
		<source>
			<title type="html">Kevin McGuire</title>
			<subtitle type="html">(Former) Eclipse UI Guy</subtitle>
			<link rel="self" href="http://dev.eclipse.org/blogs/kevinmcguire/feed"/>
			<id>http://dev.eclipse.org/blogs/kevinmcguire</id>
		</source>
	</entry>

	<entry>
		<title type="html">New Standing Desk</title>
		<link href="http://fromtheslate.blogspot.com/2009/11/new-standing-desk.html"/>
		<id>tag:blogger.com,1999:blog-5261958206572094598.post-1790410634777429960</id>
		<updated>2009-11-30T01:51:20+00:00</updated>
		<content type="html">&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://1.bp.blogspot.com/_SkR2BZXKKbQ/SxMk-YL-6xI/AAAAAAAArL0/sH0rQITdKTg/s1600/CIMG1715.JPG&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://1.bp.blogspot.com/_SkR2BZXKKbQ/SxMk-YL-6xI/AAAAAAAArL0/sH0rQITdKTg/s320/CIMG1715.JPG&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;I've stopped using a chair in my office for over three months now. I've been standing to work instead. The first week was hell, but after that I got used to it. I started the experiment by placing a piece of old countertop on top of a cardboard box on top of my desk. Once I found a height I was comfortable with, I decided to invest in new furniture. Last weekend we drove to Ikea near Detroit and I bought the &lt;a href=&quot;http://www.ikea.com/us/en/catalog/categories/departments/secondary_storage/10896/&quot;&gt;pieces&lt;/a&gt; to put together my new setup.&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/5261958206572094598-1790410634777429960?l=fromtheslate.blogspot.com&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Paul VanderLei</name>
			<email>noreply@blogger.com</email>
			<uri>http://fromtheslate.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">From the Slate</title>
			<link rel="self" href="http://www.blogger.com/feeds/5261958206572094598/posts/default"/>
			<id>tag:blogger.com,1999:blog-5261958206572094598</id>
		</source>
	</entry>

	<entry>
		<title type="html">Diva Premeire: King Arthur's Quest</title>
		<link href="http://runnerwhocodes.blogspot.com/2009/11/diva-premeire-king-arthurs-quest.html"/>
		<id>tag:blogger.com,1999:blog-237205426838095904.post-7331710264988522337</id>
		<updated>2009-11-08T20:14:47+00:00</updated>
		<content type="html">&lt;a href=&quot;http://4.bp.blogspot.com/_w_n3E-D0snA/SvclUvzIe_I/AAAAAAAACow/08glCKXSSRE/s1600-h/IMG_7551.JPG&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5401827316412742642&quot; src=&quot;http://4.bp.blogspot.com/_w_n3E-D0snA/SvclUvzIe_I/AAAAAAAACow/08glCKXSSRE/s200/IMG_7551.JPG&quot; style=&quot;margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px; height: 150px;&quot; /&gt;&lt;/a&gt;&lt;br /&gt;Yesterday was Leah's premiere in the world of theatre in a presentation of &lt;span style=&quot;font-weight: bold;&quot;&gt;King Arthur's Quest&lt;/span&gt; at Mary Woodward elementary school.&lt;br /&gt;&lt;br /&gt;The play was well produced with cool costumes and it was amazing how well prepared the kids were with only a week of practice. &lt;a href=&quot;http://2.bp.blogspot.com/_w_n3E-D0snA/SvcmfpdeaBI/AAAAAAAACo4/PvEPJkxR0rY/s1600-h/IMG_7547.JPG&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5401828603201480722&quot; src=&quot;http://2.bp.blogspot.com/_w_n3E-D0snA/SvcmfpdeaBI/AAAAAAAACo4/PvEPJkxR0rY/s200/IMG_7547.JPG&quot; style=&quot;margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 200px; height: 150px;&quot; /&gt;&lt;/a&gt;Hosted by the &lt;a href=&quot;http://www.mctinc.org/&quot;&gt;Missoula Children's Theatre&lt;/a&gt;, a traveling non-profit that has a mission: The development of life skills in children through participation in the performing arts.&lt;br /&gt;&lt;br /&gt;Leah was one of the Camelotians (a citizen of Camelot), specifically a hard working baker. She particularily liked the boogie dragon music production. Ask her about it!&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/237205426838095904-7331710264988522337?l=runnerwhocodes.blogspot.com&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Darin Swanson</name>
			<email>noreply@blogger.com</email>
			<uri>http://runnerwhocodes.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">Reason To Run</title>
			<subtitle type="html">My adventures in road and trail running with Eclipse and Jazz development thrown in.
&lt;br /&gt;
For Running stuff click &lt;a href=&quot;http://runnerwhocodes.blogspot.com/search/label/running&quot;&gt; here&lt;/a&gt;. For Eclipse stuff click &lt;a href=&quot;http://runnerwhocodes.blogspot.com/search/label/eclipse&quot;&gt; here&lt;/a&gt;.</subtitle>
			<link rel="self" href="http://www.blogger.com/feeds/237205426838095904/posts/default"/>
			<id>tag:blogger.com,1999:blog-237205426838095904</id>
		</source>
	</entry>

	<entry>
		<title type="html" xml:lang="en">New Horizons</title>
		<link href="http://dev.eclipse.org/blogs/kevinmcguire/2009/09/17/new-horizons/"/>
		<id>http://dev.eclipse.org/blogs/kevinmcguire/?p=121</id>
		<updated>2009-09-17T13:55:41+00:00</updated>
		<content type="html" xml:lang="en">&lt;p&gt;I have taken a new job at a new company and unfortunately will no longer be working on Eclipse. &lt;/p&gt;
&lt;p&gt;I just wanted to say what a great pleasure it’s been working on Eclipse (again).  It’s a really fantastic community around some excellent technology.  As good as the technology is, it’s nothing without fine people such as yourselves to tend to it, advance it, and promote it.  Eclipse is one of the strongest open source communities and it’s been an honour helping to build that in some small way.  I’ve really enjoyed getting to know many of you, professionally and then as friends.&lt;/p&gt;
&lt;p&gt;Best of luck and hope our paths continue to cross,&lt;br /&gt;
Kevin&lt;/p&gt;
&lt;p&gt;PS. For those who would like to keep in touch, I am on linkedIn.&lt;/p&gt;</content>
		<author>
			<name>Kevin McGuire</name>
			<uri>http://dev.eclipse.org/blogs/kevinmcguire</uri>
		</author>
		<source>
			<title type="html">Kevin McGuire</title>
			<subtitle type="html">(Former) Eclipse UI Guy</subtitle>
			<link rel="self" href="http://dev.eclipse.org/blogs/kevinmcguire/feed"/>
			<id>http://dev.eclipse.org/blogs/kevinmcguire</id>
		</source>
	</entry>

	<entry>
		<title type="html" xml:lang="en">Sarah at work</title>
		<link href="http://kevin.mcguireclan.net/sarah-at-work/"/>
		<id>http://kevin.mcguireclan.net/?p=124</id>
		<updated>2009-09-09T20:04:52+00:00</updated>
		<content type="html" xml:lang="en">&lt;p&gt;According to my &lt;a href=&quot;http://en.wikipedia.org/wiki/Myers-Briggs_Type_Indicator&quot;&gt;Myers Briggs&lt;/a&gt; personality test, “Likes perks in the workplace like being able to bring your dog in”.&lt;br /&gt;
&lt;a href=&quot;http://kevin.mcguireclan.net/blog/wp-content/uploads/2009/09/sarah-at-work.jpg&quot;&gt;&lt;img alt=&quot;sarah-at-work&quot; class=&quot;aligncenter size-medium wp-image-125&quot; height=&quot;233&quot; src=&quot;http://kevin.mcguireclan.net/blog/wp-content/uploads/2009/09/sarah-at-work-300x233.jpg&quot; title=&quot;sarah-at-work&quot; width=&quot;300&quot; /&gt;&lt;br /&gt;
&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;She looks like she should be wearing a FedEx uniform.  Actually, already close with the black and tan.&lt;/p&gt;</content>
		<author>
			<name>Kevin</name>
			<uri>http://kevin.mcguireclan.net</uri>
		</author>
		<source>
			<title type="html">Kevin McGuire</title>
			<link rel="self" href="http://kevin.mcguireclan.net/feed/atom/"/>
			<id>http://kevin.mcguireclan.net/feed/atom/</id>
		</source>
	</entry>

	<entry>
		<title type="html">Art in the House</title>
		<link href="http://marismo.blogspot.com/2009/07/art-in-house.html"/>
		<id>tag:blogger.com,1999:blog-7330457489496770582.post-8608724451843867453</id>
		<updated>2009-07-29T19:52:34+00:00</updated>
		<content type="html">Recently I decided that I needed more artwork in my house and was looking for something unique. At the office we have artwork in the halls and one particular piece is fractal art done by &lt;a href=&quot;http://philip.fractalart.googlepages.com/&quot;&gt;Phil Northover&lt;/a&gt; (&lt;a href=&quot;http://inside-swt.blogspot.com/&quot;&gt;Steve&lt;/a&gt;'s brother) and it caught my eye.&lt;br /&gt;&lt;br /&gt;So I contacted Phil and took at look at the different images available on his &lt;a href=&quot;http://philip.fractalart.googlepages.com/&quot;&gt;web site&lt;/a&gt; and decided on a couple of ones that I really liked. Together with the help of Phil and Jeem I got 3 prints done. (2 smaller ones and a large one) I took the prints to &lt;a href=&quot;http://www.displaylaminating.com/&quot;&gt;Display Laminating&lt;/a&gt; here in Ottawa to be laminated and mounted.&lt;br /&gt;&lt;br /&gt;The final results were fantastic! I am extremely happy with how they turned out. Here is a photo of the larger one which is in my living room.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://3.bp.blogspot.com/_u-VJGjOTDnc/SnCnqWQ_ZeI/AAAAAAAABQc/-mW70w2rCeM/s1600-h/P1020181.JPG&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5363971502171448802&quot; src=&quot;http://3.bp.blogspot.com/_u-VJGjOTDnc/SnCnqWQ_ZeI/AAAAAAAABQc/-mW70w2rCeM/s200/P1020181.JPG&quot; style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 200px; height: 150px;&quot; /&gt;&lt;/a&gt;&lt;br /&gt;And what are the odds that 2 out of the 3 images that I selected (out of a gallery of over 50) were the same ones that the guys chose for the front and back covers of the new &lt;a href=&quot;http://www.myspace.com/butterfliesandzebras&quot;&gt;Butterflies and Zebras&lt;/a&gt; CD??&lt;br /&gt;&lt;br /&gt;Thanks to Phil and Jeem for helping me put it all together!&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/7330457489496770582-8608724451843867453?l=marismo.blogspot.com&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>DJ Houghton</name>
			<email>noreply@blogger.com</email>
			<uri>http://marismo.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">Transcript of the Voices in my Head</title>
			<subtitle type="html">Random stories from work, travel, and life in general.</subtitle>
			<link rel="self" href="http://www.blogger.com/feeds/7330457489496770582/posts/default"/>
			<id>tag:blogger.com,1999:blog-7330457489496770582</id>
		</source>
	</entry>

	<entry>
		<title type="html" xml:lang="en">Ich liebe Berlin</title>
		<link href="http://hockeycoach.wordpress.com/2009/06/19/ich-liebe-berlin/"/>
		<id>http://hockeycoach.wordpress.com/?p=91</id>
		<updated>2009-06-20T00:35:43+00:00</updated>
		<content type="html" xml:lang="en">&lt;p&gt;I love Berlin.&lt;/p&gt;
&lt;p&gt;This week was my second visit to the city, and the first time that I really had a chance to play tourist. You can find some of my favourite pictures &lt;a href=&quot;http://www.flickr.com/photos/milinkovich/tags/berlin/show/&quot;&gt;over on Flickr&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;The first time I visited the city I knew I liked it, but I really couldn’t articulate why. I had just recently been in Paris and the way I explained it was “Paris is chic, Berlin is cool”. Which is true. &lt;/p&gt;
&lt;p&gt;But after looking over the pictures from this week, I realized a least part of the reason why I love Berlin is that it goes past the other major European cities in revealing its past. London, Paris, etc. make a point of showing off their history. Berlin puts the &lt;em&gt;burden&lt;/em&gt; of its history front and centre. From the statue of a scowling Soviet soldier, to the unrepaired bullet holes, to the Holocaust Memorial, Berlin gives equal time to its unpleasant past whereas the other cities only reveal their glories. The whole history is there to find on public display, not just the victories.&lt;/p&gt;
&lt;p&gt;That’s not to say that Berlin is sombre. The public art is incredible with a very cool mix of classical and modern. The street scene is hopping with some of the best buskers I’ve seen anywhere.&lt;/p&gt;
&lt;p&gt;If you haven’t thought of Berlin as a travel destination, think again. It is a very walkable and lovely city with great hotels, restaurants and bars. I will definitely be going back. Next time I hope to be able to spend some significant time visiting the museums. From all reports they are incredible.&lt;/p&gt;
&lt;p&gt;Some random thoughts on what to do or see:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;If you go the Holocaust Memorial don’t just look at it. Walk through it. If you haven’t been disoriented in the middle of it, you’re missing the point.&lt;/li&gt;
&lt;li&gt;I can highly recommend both the Westin Grand and the Intercontinental hotels. Especially the latter, as its location close to the Tiergarten, Zoo and Breitscheidplatz are hard to beat. They’re certainly not cheap, but they are both excellent.&lt;/li&gt;
&lt;li&gt;If you have the legs for it, the view from the top of the Victory Column (Siegessäule) is pretty incredible. But your legs will be burning by the time you walk to the top.&lt;/li&gt;
&lt;li&gt;The public transit is outstanding. I used the ICE to get there and the U-Bahn, S-Bahn and buses in the city. Clean, reliable and on-time.&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;  &lt;a href=&quot;http://feeds.wordpress.com/1.0/gocomments/hockeycoach.wordpress.com/91/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/hockeycoach.wordpress.com/91/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godelicious/hockeycoach.wordpress.com/91/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/hockeycoach.wordpress.com/91/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gofacebook/hockeycoach.wordpress.com/91/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/facebook/hockeycoach.wordpress.com/91/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gotwitter/hockeycoach.wordpress.com/91/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/twitter/hockeycoach.wordpress.com/91/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gostumble/hockeycoach.wordpress.com/91/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/hockeycoach.wordpress.com/91/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godigg/hockeycoach.wordpress.com/91/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/hockeycoach.wordpress.com/91/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/goreddit/hockeycoach.wordpress.com/91/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/hockeycoach.wordpress.com/91/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; height=&quot;1&quot; src=&quot;http://stats.wordpress.com/b.gif?host=hockeycoach.wordpress.com&amp;amp;blog=599242&amp;amp;post=91&amp;amp;subd=hockeycoach&amp;amp;ref=&amp;amp;feed=1&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>Mike Milinkovich</name>
			<uri>http://hockeycoach.wordpress.com</uri>
		</author>
		<source>
			<title type="html">Life as Mike</title>
			<subtitle type="html">Hockey, Fishing, Family and Other Random Pastimes</subtitle>
			<link rel="self" href="http://hockeycoach.wordpress.com/feed/"/>
			<id>http://hockeycoach.wordpress.com</id>
		</source>
	</entry>

	<entry>
		<title type="html" xml:lang="en">Gay animals in the news</title>
		<link href="http://kevin.mcguireclan.net/gay-animals-in-the-news/"/>
		<id>http://kevin.mcguireclan.net/?p=117</id>
		<updated>2009-06-09T13:39:47+00:00</updated>
		<content type="html" xml:lang="en">&lt;p&gt;Perhaps it’s old news now since I was reading this in a month old copy of Maclean’s magazine, but apparently Poznan, Poland, have recently acquired a gay elephant.  The controversy appears to be over the fact that after building an expensive enclosure and acquiring this elephant, their hopes of increasing their herd size are rather dashed.  That, and the fact that the elephant’s predilections “devaluates the institution of marriage and is an affront to the almighty”.  I say, live and let live. You can read it all at &lt;a href=&quot;http://www.elephant-news.com/index.php?location=Poznan&quot;&gt;Elephant News&lt;/a&gt; (&lt;em&gt;for elephants, about elephants, by elephants&lt;/em&gt;).&lt;/p&gt;
&lt;p&gt;But that’s not all.  Those liberal minded European’s also proudly provide home to a pair of &lt;a href=&quot;http://www.examiner.com/x-6190-Denver-Gay-Parenting-Examiner~y2009m6d7-Gay-penguin-family-doing-well-in-Germany&quot;&gt;gay penguins &lt;/a&gt;(I mean though, who can tell them apart?  … “Bob?”  “No, I’m Ethel”).  What’s particularly cool is that they’re successfully raising an adopted chick together.  Which just goes to show that caring is more important than anything else in raising a child.&lt;/p&gt;
&lt;p&gt;Addendum:&lt;br /&gt;
I figure we have gay rights, and animal rights, I’m waiting for the highly specialized “gay animal rights” group to form.  I just checked, and “gayanimalrights.org” is open!&lt;/p&gt;</content>
		<author>
			<name>Kevin</name>
			<uri>http://kevin.mcguireclan.net</uri>
		</author>
		<source>
			<title type="html">Kevin McGuire</title>
			<link rel="self" href="http://kevin.mcguireclan.net/feed/atom/"/>
			<id>http://kevin.mcguireclan.net/feed/atom/</id>
		</source>
	</entry>

	<entry>
		<title type="html" xml:lang="en">US-Canada Hi Speed Rail</title>
		<link href="http://hockeycoach.wordpress.com/2009/04/16/us-canada-hi-speed-rail/"/>
		<id>http://hockeycoach.wordpress.com/?p=83</id>
		<updated>2009-04-17T01:41:01+00:00</updated>
		<content type="html" xml:lang="en">&lt;p&gt;I travel a lot in Europe and love the high speed rail system. In fact, I am sure that I am one of the very few Canadians that hold a Deutsche Bahn 50 frequent rail traveler discount card.&lt;/p&gt;
&lt;p&gt;So I thrilled to see that the Obama administration’s &lt;a href=&quot;http://www.whitehouse.gov/blog/09/04/16/A-Vision-for-High-Speed-Rail/&quot;&gt;announcement&lt;/a&gt; today that they’re pushing for a quite complete high speed rail system for the United States. But I got &lt;em&gt;really&lt;/em&gt; excited when I noticed the little northern leg on &lt;a href=&quot;http://thetransportpolitic.files.wordpress.com/2009/04/picture-13.png&quot;&gt;this map&lt;/a&gt;. I poked around &lt;a href=&quot;http://www.google.com/hostednews/ap/article/ALeqM5jpFQTQQYA88wTJ2CxWauePkOibMwD97JKRL80&quot;&gt;a little bit&lt;/a&gt;, and yes it seems that a high-speed rail corridor is on the plan from Boston to Montreal.&lt;/p&gt;
&lt;p&gt;I wonder what this means for a Canadian high-speed plan? If that linked to the often-rumored Toronto-Ottawa-Montreal rail link, that would be very cool.&lt;br /&gt;
&lt;strong&gt;&lt;br /&gt;
Update:&lt;/strong&gt; There is also a link in the Pacific Northwest that goes up to Vancouver. Boy, I bet Bombardier is licking their chops on this opportunity.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://thetransportpolitic.files.wordpress.com/2009/04/picture-13.png&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;alignnone&quot; height=&quot;200&quot; src=&quot;http://thetransportpolitic.files.wordpress.com/2009/04/picture-13.png?w=265&amp;amp;h=200&quot; title=&quot;Rail Map&quot; width=&quot;265&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;br /&gt;  &lt;a href=&quot;http://feeds.wordpress.com/1.0/gocomments/hockeycoach.wordpress.com/83/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/hockeycoach.wordpress.com/83/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godelicious/hockeycoach.wordpress.com/83/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/hockeycoach.wordpress.com/83/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gofacebook/hockeycoach.wordpress.com/83/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/facebook/hockeycoach.wordpress.com/83/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gotwitter/hockeycoach.wordpress.com/83/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/twitter/hockeycoach.wordpress.com/83/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gostumble/hockeycoach.wordpress.com/83/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/hockeycoach.wordpress.com/83/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godigg/hockeycoach.wordpress.com/83/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/hockeycoach.wordpress.com/83/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/goreddit/hockeycoach.wordpress.com/83/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/hockeycoach.wordpress.com/83/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; height=&quot;1&quot; src=&quot;http://stats.wordpress.com/b.gif?host=hockeycoach.wordpress.com&amp;amp;blog=599242&amp;amp;post=83&amp;amp;subd=hockeycoach&amp;amp;ref=&amp;amp;feed=1&quot; width=&quot;1&quot; /&gt;</content>
		<author>
			<name>Mike Milinkovich</name>
			<uri>http://hockeycoach.wordpress.com</uri>
		</author>
		<source>
			<title type="html">Life as Mike</title>
			<subtitle type="html">Hockey, Fishing, Family and Other Random Pastimes</subtitle>
			<link rel="self" href="http://hockeycoach.wordpress.com/feed/"/>
			<id>http://hockeycoach.wordpress.com</id>
		</source>
	</entry>

	<entry>
		<title type="html">Johanne Marie's Candle</title>
		<link href="http://vanmeekeren.blogspot.com/2008/12/johanne-maries-candle.html"/>
		<id>tag:blogger.com,1999:blog-19462871.post-2581591432454686597</id>
		<updated>2008-12-14T13:49:31+00:00</updated>
		<content type="html">&lt;a href=&quot;http://3.bp.blogspot.com/_6ECfkZxFlA4/SUUOC25EW7I/AAAAAAAAAGo/Bgc6xfdyTHE/s1600-h/Image(072).jpg&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5279641580419177394&quot; src=&quot;http://3.bp.blogspot.com/_6ECfkZxFlA4/SUUOC25EW7I/AAAAAAAAAGo/Bgc6xfdyTHE/s320/Image(072).jpg&quot; style=&quot;float: left; margin: 0 10px 10px 0; cursor: pointer; cursor: hand; width: 320px; height: 240px;&quot; /&gt;&lt;/a&gt;Hey,&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Thanks for the candle.   It's a special Christmas candle that you burn every day leading up to Christmas.   We have been faithfully burning it every day.  I don't know about you in Denmark but it takes a long time to burn one day down!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;thanks again,&lt;/div&gt;&lt;div&gt;Michael &lt;/div&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/19462871-2581591432454686597?l=vanmeekeren.blogspot.com&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Michael Van Meekeren</name>
			<email>noreply@blogger.com</email>
			<uri>http://vanmeekeren.blogspot.com/</uri>
		</author>
		<source>
			<title type="html">Eclipzed (Michael Van Meekeren's Blog)</title>
			<subtitle type="html">I'm happily married with a wonderful wife and fantastic crew of 5 children.  We've travelled around a lot and always like to meet new people while staying in touch with friends.  We love to add new and interesting people to our family, and even if they resist they're often assimilated before they know it.  

In making yet another move I realized it was time to track our life on line in a blog.  Enjoy becoming one of us.</subtitle>
			<link rel="self" href="http://www.blogger.com/feeds/19462871/posts/default"/>
			<id>tag:blogger.com,1999:blog-19462871</id>
		</source>
	</entry>

	<entry>
		<title type="html" xml:lang="en-US-WIN">J9 VM patch streams wrathified!</title>
		<link href="https://www.ibm.com/developerworks/mydeveloperworks/blogs/stdt/entry/j9_vm_patch_streams_wrathified?lang=en_us"/>
		<id>urn:lsid:ibm.com:blogs:entry-a5cb6a06-b250-4c0e-a65c-9c31900f4744</id>
		<updated>2008-11-03T16:41:46+00:00</updated>
		<content type="html" xml:lang="en-US-WIN">Its been a crazy week and a half.  Wrath, along with several other infrastructure-related items, has now been backported into all J9 VM patch streams.  I'm surprised at how cleanly the backport went - in most cases the streams were Wrath-compliant in under 45 minutes.  Our mirror story has paid off big time as each stream only need minor updates.  Its nice when you get to see your technology just work.</content>
		<author>
			<name>STDT</name>
			<uri>https://www.ibm.com/developerworks/mydeveloperworks/blogs/stdt?lang=en_us</uri>
		</author>
		<source>
			<title type="html">developerWorks Live from EclipseCon</title>
			<link rel="self" href="https://www.ibm.com/developerworks/mydeveloperworks/blogs/stdt/feed/entries/atom?lang=en_us"/>
			<id>urn:lsid:ibm.com:blogs:entries-e8d6052e-542a-4ac9-b3e8-0a2c94715157</id>
		</source>
	</entry>

	<entry>
		<title type="html" xml:lang="en-US-WIN">&quot;Are you suggestin' coconuts migrate?!&quot;</title>
		<link href="https://www.ibm.com/developerworks/mydeveloperworks/blogs/stdt/entry/are_you_suggestin_coconuts_migrate?lang=en_us"/>
		<id>urn:lsid:ibm.com:blogs:entry-363403a3-daf4-4815-ad82-f09a2dd25435</id>
		<updated>2008-11-03T16:33:11+00:00</updated>
		<content type="html" xml:lang="en-US-WIN">&lt;blockquote&gt;&lt;b&gt;King Arthur&lt;/b&gt;: The swallow may fly south with the sun or the house martin or the plover may seek warmer climes in winter, yet these are not strangers to our land?&lt;br /&gt;&lt;b&gt;1st soldier with a keen interest in birds&lt;/b&gt;: Are you suggesting coconuts migrate?&lt;br /&gt;      -&lt;i&gt;Monty Python and the Quest for the Holy Grail&lt;/i&gt;&lt;/blockquote&gt;&lt;p&gt;Unfortunately, source code, like coconuts, needs help to migrate from on repository to another.  When we started, we only wanted to change where our Smalltalk source was stored.  We had lived with multiple repositories and were tired of ensuring that dependent changes in each of the repositories got into the right build, or was correctly backed out when there were problems.  Our original goal was only to replace the ENVY repository with CVS, or any other version control system, and continue to use all the existing browsers.&lt;/p&gt;&lt;p&gt;To get to that goal, we needed a way to export our Smalltalk code to flat files and a way to load from the files back into the image.  The obvious answer is Smalltalk's existing file-format, the &quot;chunk&quot; format.  Chunk format, while fine for computers, leaves something to be desired when it comes to human consumption.  Various other file-formats for Smalltalk have been development but none of them felt quite right for us.&lt;/p&gt;&lt;p&gt;Our solution is something we call FileBasedSmalltalk (FBS), which has become on of the core components of STDT.  FBS provides a meta-model to map classes and methods back to their files so that the source can be kept on disk, not in memory.  The model maps FbApplications, FbSubApplications, FbClassDefinitions, FbExtensions and FbMethods onto their &quot;normal&quot; ENVY model objects.  The FbLoader is responsible for reading the files in and creating these model objects.   To provide name resolution, the FbResolver was created and it can be thought of as the Smalltalk dictionary for FBS.&lt;/p&gt;&lt;p&gt;I can hear you thinking, &quot;You have a meta-model... you still haven't actually installed any classes in the image&quot; and you're right.  The EmImageBuilder is a fantastically complex piece of code that does a great job of atomically loading classes, applications, etc.  We definitely didn't want to rewrite it, so we did the next best thing - we subclassed it.  FbImageBuilder is the new image builder that can force the FBS model objects into the right shape, allowing them to be loaded and installed as classes.  Getting this correct was a lot of fun as mistakes often meant starting with a new image.  &lt;/p&gt;&lt;p&gt;Now, I've explained how the Smalltalk source gets loaded into the image, but what does this have to do with repository migration?  At the same time we were getting the FBS figured out and working, we had started to mirror all of our code from ENVY into CVS each as part of every build.  Source code without history - no change comments and no ability to see &lt;b&gt;why&lt;/b&gt; things changed - makes it very difficult to determine if that nonsensical code snippet is there for some &lt;b&gt;vastly important reason&lt;/b&gt; or can be safely removed.  Today there is over a full year's worth of history in CVS for all of our Smalltalk source.&lt;/p&gt;&lt;p&gt;As part of each build, our Smalltalk tools were run twice, once from ENVY and once using FBS.  The output from the two were compared to ensure they were identical.  It was now safe to only run the tools using FBS, although ENVY was still the &quot;master&quot; for the source and the mirroring to CVS continued.  And that was the migration, a gradual switch once confidence had been built up in the new tools.&lt;/p&gt;&lt;p&gt;Turned out that trying to keep the ENVY browsers and make them work on files was more work than was practical.  Instead, the STDT tools were born.&lt;/p&gt;</content>
		<author>
			<name>STDT</name>
			<uri>https://www.ibm.com/developerworks/mydeveloperworks/blogs/stdt?lang=en_us</uri>
		</author>
		<source>
			<title type="html">developerWorks Live from EclipseCon</title>
			<link rel="self" href="https://www.ibm.com/developerworks/mydeveloperworks/blogs/stdt/feed/entries/atom?lang=en_us"/>
			<id>urn:lsid:ibm.com:blogs:entries-e8d6052e-542a-4ac9-b3e8-0a2c94715157</id>
		</source>
	</entry>

</feed>

