<?xml version="1.0"?>
<rss version="2.0">

<channel>
	<title>Planet TW - Alumni</title>
	<link>http://blogs.thoughtworks.com/alumni/</link>
	<language>en</language>
	<description>Planet TW - Alumni - http://blogs.thoughtworks.com/alumni/</description>

<item>
	<title>Brian Oxley: How to pick pairs</title>
	<guid isPermaLink="false">tag:blogger.com,1999:blog-5638372.post-688996611126555648</guid>
	<link>http://binkley.blogspot.com/2010/03/how-to-pick-pairs.html</link>
	<description>&lt;p&gt;&lt;a href=&quot;http://docondev.blogspot.com/2010/03/harmonic-mean-is-bitch.html&quot;&gt;A beautiful post&lt;/a&gt; from Michael Norton explaining how to optimize agile pairing, though he does not so in those words.&lt;/p&gt; &lt;p&gt;The answer?  Follow the (simple) math: pair your weaker teammates with the solid middle to strengthen them, and let your high-fliers continue to soar.&lt;/p&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/tracker/5638372-688996611126555648?l=binkley.blogspot.com&quot; alt=&quot;&quot; height=&quot;1&quot; width=&quot;1&quot;&gt;&lt;/img&gt;&lt;/div&gt;</description>
	<pubDate>Tue, 16 Mar 2010 20:44:45 +0000</pubDate>
	<author>binkley@alumni.rice.edu (binkley)</author>
</item>
<item>
	<title>Matthew Ueckerman: Book Review: JavaScript: The Good Parts</title>
	<guid isPermaLink="false">http://ueckerman.net/?p=126</guid>
	<link>http://ueckerman.net/2010/03/16/book-review-javascript-the-good-parts/</link>
	<description>My intention in this blog is to review the book - &lt;a href=&quot;http://oreilly.com/catalog/9780596517748&quot;&gt;Doug Crockford's JavaScript: The Good Parts&lt;/a&gt; - briefly listing Pros and Cons and finally a summary and rating.</description>
	<pubDate>Tue, 16 Mar 2010 10:43:10 +0000</pubDate>
</item>
<item>
	<title>Griffin Caprio: Links for 2010-03-15 [del.icio.us]</title>
	<guid isPermaLink="false">http://del.icio.us/gcaprio#2010-03-15</guid>
	<link>http://feedproxy.google.com/~r/MemoirsOfABystander/~3/3TkYWA9qwgY/gcaprio</link>
	<description>&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.simile-widgets.org/&quot;&gt;SIMILE Widgets&lt;/a&gt;&lt;br&gt;&lt;/br&gt;
Free visualization widgets.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://haineault.com/media/examples/jquery-utils/demo/ui-timepickr.html&quot;&gt;jQuery Timepicks&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://stevesouders.com/hammerhead/&quot;&gt;Hammerhead&lt;/a&gt;&lt;br&gt;&lt;/br&gt;
Performance tab for firebug&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://trif3cta.com/blog/entry/jquery-plugins-under-4k/&quot;&gt;Minimalist jQuery: 11 useful plugins under 4K | jQuery Plugins › TRIF3CTA™&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://github.com/ryanmark/django-project-templates&quot;&gt;ryanmark's django-project-templates at master - GitHub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://github.com/garethr/django-project-templates&quot;&gt;garethr's django-project-templates at master - GitHub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://nicolasgallagher.com/demo/pure-css-speech-bubbles/bubbles.html&quot;&gt;Pure CSS speech bubbles – Nicolas Gallagher&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.zinkwazi.com/unix/notes/tricks.vim.html&quot;&gt;vi tutorial, tips, tricks and useful commands&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.muhuk.com/2010/01/developing-reusable-django-apps-app-settings/&quot;&gt;Developing Reusable Django Apps: App Settings « muhuk.com&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://opensource.washingtontimes.com/blog/post/coordt/2010/01/how-we-create-and-deploy-sites-fast-virtualenv-and/&quot;&gt;How we create and deploy sites fast with virtualenv and Django | Open Source at The Washington Times&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/MemoirsOfABystander/~4/3TkYWA9qwgY&quot; height=&quot;1&quot; width=&quot;1&quot;&gt;&lt;/img&gt;</description>
	<pubDate>Tue, 16 Mar 2010 07:00:00 +0000</pubDate>
</item>
<item>
	<title>Philippe Hanrigou: Selenium Grid Needs a New Maintainer</title>
	<guid isPermaLink="false">http://ph7spot.com/blog/selenium-grid-needs-a-new-maintainer</guid>
	<link>http://feeds.ph7spot.com/~r/ph7/~3/7ubRp76_2Vc/selenium-grid-needs-a-new-maintainer</link>
	<description>&lt;p&gt;Selenium Grid is an adventure that started in 2007. Faced with a challenging rescue mission of a software project in Atlanta, my team decided that – in order to succeed – we needed a quick and reliable feedback loop for tests written at the browser level. The idea was to be able to safely refactor the code &lt;em&gt;as well as the unit and functional tests&lt;/em&gt; we inherited: All were poorly written, the rescue team had lost faith in them, and progress on this project had ground to a halt.&lt;/p&gt;

&lt;p&gt;We really needed these in-browser tests, yet we were also very wary of the maintenance effort and delay in the feedback loop. We had all already been burnt by acceptance tests that were not only expensive to maintain but that had also, over time, evolved into gigantic beasts that took hours to run. So we wanted a tool that would arm us with an efficient feedback loop as well as provide a fertile experimentation ground. At the time there were no tool around we could find that would fit the bill, so we did what good engineers do… we built our own!&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://www.somethingnimble.com/collaborators/z&quot;&gt;Zak Tamsen&lt;/a&gt;, &lt;a href=&quot;http://www.dcmanges.com/blog&quot;&gt;Dan Manges&lt;/a&gt;, and &lt;a href=&quot;http://davidvollbracht.com&quot;&gt;David Vollbracht&lt;/a&gt; went on to write &lt;a href=&quot;http://deep-test.rubyforge.org/&quot;&gt;DeepTest&lt;/a&gt;, a distributed test runner for Ruby, while I created &lt;a href=&quot;http://selenium-grid.openqa.org&quot;&gt;Selenium Grid&lt;/a&gt;, a tool to intelligently distribute Selenium test sessions across multiple machines.&lt;/p&gt;

&lt;p&gt;The rest is history – we rescued the project, open-sourced &lt;a href=&quot;http://deep-test.rubyforge.org/&quot;&gt;DeepTest&lt;/a&gt; and &lt;a href=&quot;http://selenium-grid.openqa.org&quot;&gt;Selenium Grid&lt;/a&gt; , which are now both used in a couple of high-profile companies.&lt;/p&gt;

&lt;p&gt;The reason I am starting this post with a trip down memory lane is to explain that the next two announcements do not come easy. As a matter of fact they are quite charged with emotions on my part.&lt;/p&gt;

&lt;h3 id=&quot;selenium_grid_105_release&quot; class=&quot;header&quot;&gt;Selenium Grid 1.0.5 Release&lt;/h3&gt;

&lt;p&gt;First, I am announcing a &lt;strong&gt;&lt;a href=&quot;http://selenium-grid.openqa.org/download.html&quot;&gt;new Selenium Grid release&lt;/a&gt;, which provides new &lt;a href=&quot;http://selenium-grid.seleniumhq.org/self-healing.html&quot;&gt;self-healing features&lt;/a&gt; to better cope with unresponsive Remote Controls and Hub restarts&lt;/strong&gt;.&lt;/p&gt;

&lt;h3 id=&quot;selenium_grid_needs_a_new_maintainer&quot; class=&quot;header&quot;&gt;Selenium Grid Needs a New Maintainer&lt;/h3&gt;

&lt;p&gt;Second, &lt;strong&gt;I am ceasing development on Selenium Grid&lt;/strong&gt;. This is my last release. I will no longer be managing patches, bug reports, support requests, and feature requests nor actively contributing to the project.&lt;/p&gt;

&lt;p&gt;It has warmed my heart to see Selenium Grid take off and used in so many projects. However I have finally come to terms with the fact that I do not have sufficient cycles to work on this project. Since this has been the state of things for a while, I am simply getting too burnt out on Selenium Grid. It was a hard decision to make, but I am convinced that, in the end, finding new leadership is better for the project and for the community.&lt;/p&gt;

&lt;p&gt;This is not the end of Selenium Grid though. So &lt;strong&gt;if you are interested in becoming the new maintainer of Selenium Grid, please &lt;a href=&quot;http://ph7spot.com/about/contact_me&quot;&gt;send me a quick email&lt;/a&gt;&lt;/strong&gt;. It would be great to swiftly identify new project leadership and start the transition.&lt;/p&gt;

&lt;h3 id=&quot;thank_you&quot; class=&quot;header&quot;&gt;Thank You&lt;/h3&gt;

&lt;p&gt;When I look back at these years spent on Selenium Grid my strongest feeling is gratitude, and this is how I want to end this post.&lt;/p&gt;

&lt;p&gt;I am deeply indebted to &lt;a href=&quot;http://www.somethingnimble.com/collaborators/z&quot;&gt;Zak Tamsen&lt;/a&gt; who motivated all of us to find a solution to transparently distribute tests accross multiple machines and provided the environment and management buy-in necessary to make it happen. Thank you so much also to &lt;a href=&quot;http://www.dcmanges.com/blog&quot;&gt;Dan Manges&lt;/a&gt; and &lt;a href=&quot;http://davidvollbracht.com&quot;&gt;David Vollbracht&lt;/a&gt; for DeepTest: without it Selenium Grid would not have much sense. And obviously thank you to the entire ThoughtWorks’s team in Atlanta for their support, original brainstorming discussions, and insightful ideas. I miss you all.&lt;/p&gt;

&lt;p&gt;I am also incredibly grateful for the warm welcome and support that I immediatly received from the Selenium leadership team, and especially from &lt;a href=&quot;http://lightbody.net/blog/&quot;&gt;Patrick Lightbody&lt;/a&gt;, &lt;a href=&quot;http://twitter.com/hugs&quot;&gt;Jason Huggins&lt;/a&gt;, &lt;a href=&quot;http://darkforge.blogspot.com/&quot;&gt;Dan Fabulich&lt;/a&gt; and &lt;a href=&quot;http://paulhammant.com&quot;&gt;Paul Hammant&lt;/a&gt;. Thank you guys!&lt;/p&gt;

&lt;p&gt;Finally, I cannot express how much I appreciate the support from everyone who has contributed code and patches back to Selenium Grid, shared their success stories, or even simply shared some kind words and encouragement. It means a lot to me. Special shout outs go to &lt;a href=&quot;http://emergentdevelopment.blogspot.com&quot;&gt;Matt Todd&lt;/a&gt;, &lt;a href=&quot;http://github.com/caspian311&quot;&gt;Benjamin Lee&lt;/a&gt;,&lt;a href=&quot;http://github.com/bcotton/&quot;&gt;Bob Cotton&lt;/a&gt;, &lt;a href=&quot;http://nirvdrum.com/&quot;&gt;Kevin Menard&lt;/a&gt;, &lt;a href=&quot;http://www.carlossanchez.eu&quot;&gt;Carlos Sanchez&lt;/a&gt;, &lt;a href=&quot;http://perpenduum.com&quot;&gt;Christian Eager&lt;/a&gt; and &lt;a href=&quot;http://clearspace.openqa.org/people/shannonlal&quot;&gt;Shannon Lal&lt;/a&gt; who contributed significant chunks of code or documentation.&lt;/p&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.ph7spot.com/~ff/ph7?a=7ubRp76_2Vc:1MkUD1r1XXk:yIl2AUoC8zA&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/ph7?d=yIl2AUoC8zA&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/ph7/~4/7ubRp76_2Vc&quot; height=&quot;1&quot; width=&quot;1&quot;&gt;&lt;/img&gt;</description>
	<pubDate>Tue, 16 Mar 2010 05:29:46 +0000</pubDate>
	<author>http://ph7spot.com/about/contact_me (Philippe Hanrigou)</author>
</item>
<item>
	<title>Brian Oxley: Explaining agile to management: a good top 10 list</title>
	<guid isPermaLink="false">tag:blogger.com,1999:blog-5638372.post-3142971189394983313</guid>
	<link>http://binkley.blogspot.com/2010/03/explaining-agile-to-management-good-top.html</link>
	<description>&lt;p&gt;Alberto Gutierrez has &lt;a href=&quot;http://www.makinggoodsoftware.com/2010/03/13/my-ten-development-principles/&quot; title=&quot;My ten development principles&quot;&gt;a great list of development principles&lt;/a&gt; any agilist should take to heart.  I like that the list is organized in such a way I can easily present it to management.&lt;/p&gt; &lt;p&gt;I also enjoy his post formatting and layout — it's like reading a good newspaper with modern typography.  Into my reader feed goes Alberto.&lt;/p&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/tracker/5638372-3142971189394983313?l=binkley.blogspot.com&quot; alt=&quot;&quot; height=&quot;1&quot; width=&quot;1&quot;&gt;&lt;/img&gt;&lt;/div&gt;</description>
	<pubDate>Mon, 15 Mar 2010 21:35:58 +0000</pubDate>
	<author>binkley@alumni.rice.edu (binkley)</author>
</item>
<item>
	<title>Darren Hobbs: Dear Apple</title>
	<guid isPermaLink="true">http://darrenhobbs.com/?p=561</guid>
	<link>http://darrenhobbs.com/?p=561</link>
	<description>&lt;p&gt;Dear Apple,&lt;/p&gt;
&lt;p&gt;Although I love your products, as long as you continue to pursue your lawsuit against HTC, I shall no longer be buying any of them for the forseeable future.&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Darren&lt;/p&gt;</description>
	<pubDate>Mon, 15 Mar 2010 14:41:07 +0000</pubDate>
</item>
<item>
	<title>Narla Keshav Ram: Technorati get me</title>
	<guid isPermaLink="false">tag:blogger.com,1999:blog-4571743322879742972.post-3242115845830106351</guid>
	<link>http://feedproxy.google.com/~r/MeMyselfAndThoughtworks/~3/boEyGWwIt8Y/technorati-get-me.html</link>
	<description>Claim Token - &lt;span class=&quot;Apple-style-span&quot;&gt;TSUMZ23P479U &lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/tracker/4571743322879742972-3242115845830106351?l=www.keshavnarla.com&quot; alt=&quot;&quot; height=&quot;1&quot; width=&quot;1&quot;&gt;&lt;/img&gt;&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/MeMyselfAndThoughtworks/~4/boEyGWwIt8Y&quot; height=&quot;1&quot; width=&quot;1&quot;&gt;&lt;/img&gt;</description>
	<pubDate>Mon, 15 Mar 2010 09:08:47 +0000</pubDate>
	<author>noreply@blogger.com (Keshav Ram Narla)</author>
</item>
<item>
	<title>Naresh Jain: Agile Coach Camp India: Request for Invitation</title>
	<guid isPermaLink="false">http://blogs.agilefaqs.com/?p=1191</guid>
	<link>http://blogs.agilefaqs.com/2010/03/15/agile-coach-camp-india-request-for-invitation/</link>
	<description>&lt;p&gt;&lt;a href=&quot;http://blogs.agilefaqs.com/wp-content/uploads/2010/03/agilecoach2010.png&quot;&gt;&lt;img src=&quot;http://blogs.agilefaqs.com/wp-content/uploads/2010/03/agilecoach2010.png&quot; title=&quot;Agile Coach Camp 2010&quot; height=&quot;132&quot; width=&quot;450&quot; alt=&quot;Agile Coach Camp 2010&quot; class=&quot;aligncenter size-full wp-image-1210&quot;&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;
&lt;table border=&quot;0&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td class=&quot;normal&quot;&gt;&lt;strong&gt;Dates&lt;/strong&gt;:&lt;/td&gt;
&lt;td class=&quot;normal&quot;&gt;April 17th and 18th 2010&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&quot;normal&quot;&gt;&lt;strong&gt;Venue&lt;/strong&gt;:&lt;/td&gt;
&lt;td class=&quot;normal&quot;&gt;&lt;a href=&quot;http://www.internationalcentregoa.com/&quot;&gt;The International Centre&lt;/a&gt;,&lt;br&gt;&lt;/br&gt;
Goa University Road,&lt;br&gt;&lt;/br&gt;
Dona Paula Post office, Goa- 403 004&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;Format&lt;/span&gt;&lt;/strong&gt;: &lt;a href=&quot;http://bit.ly/1aWOFf&quot; target=&quot;_blank&quot;&gt;Open Space&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;Who Should Attend&lt;/span&gt;&lt;/strong&gt;? Today, in India, I believe we have many Agile coaches (internal and external, more internal coaches). If you are helping to bring Agile/Lean/Light-Weight thinking into your company, you are playing the Agile coach role (you like it or not). You could be in the leadership role doing this or you could have taken the ownership and facilitating/influencing your team. While doing so, we all need a lot of help, advice and reassurance of our strategies. This is what you can expect at this conference.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;Agenda&lt;/span&gt;&lt;/strong&gt;: Each day we start at 9:00 AM and end at 5:30 PM.&lt;/p&gt;
&lt;p&gt;Each Day:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Lightning Talks (1 hr)&lt;/li&gt;
&lt;li&gt;Opening the Space (30 mins)&lt;/li&gt;
&lt;li&gt;Creating the agenda (30 mins)&lt;/li&gt;
&lt;li&gt;Break-out sessions (5 hrs)&lt;/li&gt;
&lt;li&gt;Closing the Space / Retrospective (30 mins)&lt;/li&gt;
&lt;li&gt;Social Outing (optional)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;Budget&lt;/span&gt;&lt;/strong&gt;: &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We plan to hire the main hall for 2 days. Each day cost is roughly about 10,000 Rs. For 2 days it would be about 20,000 Rs.&lt;/li&gt;
&lt;li&gt;Lunch + Tea/Cofee Breaks would cost 200 Rs per person. &lt;/li&gt;
&lt;li&gt;Venue has good A/C accommodation. Its Rs 1500 per day for single room and Rs 1800 for double room.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;(Please note that this is a special discount rate for Goa University.)&lt;/p&gt;
&lt;p&gt;I’m expecting about 25 people to show up.&lt;/p&gt;
&lt;p&gt;So basically each individual will be spending about:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;3000 Rs for the room&lt;/li&gt;
&lt;li&gt;400 Rs for food&lt;/li&gt;
&lt;li&gt;max 1000 Rs for the hall &lt;/li&gt;
&lt;li&gt;Evening outing: up to the individual&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;(if we find a sponsor, then the cost of the hall and food will be absorbed by the sponsor.)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;Prep Work&lt;/span&gt;&lt;/strong&gt;: Answers to the following questions will facilitate the following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;help us come more prepared for the Coach Camp&lt;/li&gt;
&lt;li&gt;get a sense of the quality of the participants&lt;/li&gt;
&lt;li&gt;start some knowledge sharing amongst the group&lt;/li&gt;
&lt;li&gt;set certain context and potential topics for further discussion at the Coach Camp&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We’ll confirm your participation on successful completion &amp;amp; submission of this form. The sooner you submit the form, the sooner we can confirm your participation.&lt;/p&gt;
&lt;p&gt;&lt;em&gt; *Dead line to submit the form: 22nd March 2010.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Loading…&lt;/p&gt;</description>
	<pubDate>Mon, 15 Mar 2010 05:10:26 +0000</pubDate>
</item>
<item>
	<title>Adewale Oshineye: 38: The Golden Lock</title>
	<guid isPermaLink="false">http://www.blogger.com/feeds/3804478417938445896/posts/default/7574342682355666426</guid>
	<link>http://www.advogato.org/person/ade/diary.html?start=37</link>
	<description>&lt;a href=&quot;http://www.flickr.com/photos/adewale_oshineye/4412380662/&quot; title=&quot;38: The Golden Lock by adewale_oshineye, on Flickr&quot;&gt;&lt;img src=&quot;http://farm3.static.flickr.com/2689/4412380662_ed48c1190f.jpg&quot; alt=&quot;38: The Golden Lock&quot; height=&quot;500&quot; width=&quot;333&quot;&gt;&lt;/img&gt;&lt;/a&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/tracker/3804478417938445896-7574342682355666426?l=blog.oshineye.com&quot; alt=&quot;&quot; height=&quot;1&quot; width=&quot;1&quot;&gt;&lt;/img&gt;&lt;/div&gt;</description>
	<pubDate>Mon, 15 Mar 2010 01:10:48 +0000</pubDate>
</item>
<item>
	<title>Adewale Oshineye: 39: The other Picadilly</title>
	<guid isPermaLink="false">http://www.blogger.com/feeds/3804478417938445896/posts/default/5562952910259770358</guid>
	<link>http://www.advogato.org/person/ade/diary.html?start=38</link>
	<description>&lt;a href=&quot;http://www.flickr.com/photos/adewale_oshineye/4434038608/&quot; title=&quot;39: The other Picadilly by adewale_oshineye, on Flickr&quot;&gt;&lt;img src=&quot;http://farm5.static.flickr.com/4031/4434038608_838787381d.jpg&quot; alt=&quot;39: The other Picadilly&quot; height=&quot;500&quot; width=&quot;333&quot;&gt;&lt;/img&gt;&lt;/a&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/tracker/3804478417938445896-5562952910259770358?l=blog.oshineye.com&quot; alt=&quot;&quot; height=&quot;1&quot; width=&quot;1&quot;&gt;&lt;/img&gt;&lt;/div&gt;</description>
	<pubDate>Mon, 15 Mar 2010 01:10:48 +0000</pubDate>
</item>
<item>
	<title>Jonathan Rasmusson: helloworld-book</title>
	<guid isPermaLink="false">http://agilewarrior.wordpress.com/?p=358</guid>
	<link>http://feedproxy.google.com/~r/AgileWarriorBlog/~3/XoaSRlqyvd0/</link>
	<description>&lt;p&gt;I just listened to a great Scott Hanselman &lt;a href=&quot;http://www.hanselminutes.com/&quot;&gt;podcast&lt;/a&gt; (Jan-8-2010) talking about a book I have always read (or write) called:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.amazon.com/gp/product/1933988495?ie=UTF8&amp;amp;tag=rasmusoftwcon-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=1933988495&quot;&gt;&lt;img src=&quot;http://agilewarrior.files.wordpress.com/2010/03/helloworld-book.jpg?w=300&amp;amp;h=300&quot; title=&quot;helloworld-book&quot; height=&quot;300&quot; width=&quot;300&quot; alt=&quot;&quot; class=&quot;alignnone size-full wp-image-362&quot;&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.amazon.com/gp/product/1933988495?ie=UTF8&amp;amp;tag=rasmusoftwcon-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=1933988495&quot;&gt;Hello World! Computer Programming for Kids (and Other Beginners): Computer Programming for Kids and Other Beginners&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Written by the father son combo Warren and Carter Sande, this book seems perfect for kids (and even adults) who are looking for a fun easy way to get into programming.&lt;/p&gt;
&lt;p&gt;I haven’t read the book, but the amazon reviews are excellent. All I know is the code samples are written in Python.&lt;/p&gt;
&lt;p&gt;So if you are looking for a fun way to get your kids into software, this may be the book you are looking for.&lt;/p&gt;
&lt;br&gt;&lt;/br&gt;Filed under: &lt;a href=&quot;http://agilewarrior.wordpress.com/category/books/&quot;&gt;books&lt;/a&gt; Tagged: &lt;a href=&quot;http://agilewarrior.wordpress.com/tag/beginners-programming/&quot;&gt;beginners programming&lt;/a&gt;, &lt;a href=&quot;http://agilewarrior.wordpress.com/tag/carter-sande/&quot;&gt;Carter Sande&lt;/a&gt;, &lt;a href=&quot;http://agilewarrior.wordpress.com/tag/hello-world/&quot;&gt;hello world&lt;/a&gt;, &lt;a href=&quot;http://agilewarrior.wordpress.com/tag/kids/&quot;&gt;kids&lt;/a&gt;, &lt;a href=&quot;http://agilewarrior.wordpress.com/tag/programming/&quot;&gt;programming&lt;/a&gt;, &lt;a href=&quot;http://agilewarrior.wordpress.com/tag/python/&quot;&gt;Python&lt;/a&gt;, &lt;a href=&quot;http://agilewarrior.wordpress.com/tag/warren-sande/&quot;&gt;Warren Sande&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gocomments/agilewarrior.wordpress.com/358/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/comments/agilewarrior.wordpress.com/358/&quot; alt=&quot;&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godelicious/agilewarrior.wordpress.com/358/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/delicious/agilewarrior.wordpress.com/358/&quot; alt=&quot;&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gostumble/agilewarrior.wordpress.com/358/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/stumble/agilewarrior.wordpress.com/358/&quot; alt=&quot;&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godigg/agilewarrior.wordpress.com/358/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/digg/agilewarrior.wordpress.com/358/&quot; alt=&quot;&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/goreddit/agilewarrior.wordpress.com/358/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/reddit/agilewarrior.wordpress.com/358/&quot; alt=&quot;&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;img src=&quot;http://stats.wordpress.com/b.gif?host=agilewarrior.wordpress.com&amp;amp;blog=6931535&amp;amp;post=358&amp;amp;subd=agilewarrior&amp;amp;ref=&amp;amp;feed=1&quot; alt=&quot;&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/AgileWarriorBlog/~4/XoaSRlqyvd0&quot; height=&quot;1&quot; width=&quot;1&quot;&gt;&lt;/img&gt;</description>
	<pubDate>Sun, 14 Mar 2010 15:15:04 +0000</pubDate>
</item>
<item>
	<title>Naresh Jain: Agile India 2010 Conference: Quick Recap</title>
	<guid isPermaLink="false">http://blogs.agilefaqs.com/?p=1188</guid>
	<link>http://blogs.agilefaqs.com/2010/03/14/agile-india-2010-conference-quick-recap/</link>
	<description>&lt;p&gt;The &lt;a href=&quot;http://agileindia.org&quot; target=&quot;_blank&quot;&gt;Agile Software Community of India&lt;/a&gt; (ASCI), (a registered society founded by a group of Agile enthusiasts and practitioners from companies all around India) has successfully organized yet another agile conference in India called ‘Agile India 2010’. For the first time in India, we had 4 &lt;a href=&quot;http://www.agilealliance.org/show/1656&quot; target=&quot;_blank&quot;&gt;Gordon Pask Award&lt;/a&gt; Winners at a single conference: &lt;a href=&quot;http://www.nofluffjuststuff.com/conference/speaker/david_hussman&quot; target=&quot;_blank&quot;&gt;David Hussman&lt;/a&gt;, &lt;a href=&quot;http://www.agileproductdesign.com/&quot; target=&quot;_blank&quot;&gt;Jeff Patton&lt;/a&gt;, &lt;a href=&quot;http://www.jbrains.ca/services&quot; target=&quot;_blank&quot;&gt;J. B. Rainsberger&lt;/a&gt; and &lt;a href=&quot;http://nareshjain.com&quot; target=&quot;_blank&quot;&gt;Naresh Jain&lt;/a&gt;. Also for the first time, ASCI organized a unique twin-city conference, where this 2-day event was held in &lt;a href=&quot;http://www.agileindia.org/agilemumbai2010&quot; target=&quot;_blank&quot;&gt;Mumbai (Jan 16th and 17th)&lt;/a&gt; and in &lt;a href=&quot;http://www.agileindia.org/agilebengaluru2010&quot; target=&quot;_blank&quot;&gt;Bangalore (Jan 22nd and 23rd, 2010)&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The Goal of the conference was to challenge the process dogma, provide food for thought for creative problem solving and help us take the art-of-software-development to the next level. This year, the focus of Agile India 2010 was on real Agile practitioners who’ve “been there, done that and wanted to explore the future of Agile.” Targeted at Agile enthusiasts, researchers and educators, Agile India 2010 offered an ideal platform for attendees to network and learn about the latest research and cutting-edge Agile industry practices directly from the experts through talks, hands-on technical sessions, workshops, competitions and tutorials.&lt;/p&gt;
&lt;p&gt;The conference featured 26 recognized National and International speakers, over 250 enthusiastic participants from over 75 companies, 7 Keynote talks, 10 Workshops/Tutorials, 5 Product Demos, 7 Experience Report, 25+ Lightning talks and a thrilling Programming with the Stars competition.&lt;/p&gt;
&lt;p&gt;Like every year the conference participants were gifted with a Conference T-Shirt and a carefully selected book as a souvenir. This year the participants had a choice between 3 books:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Apprenticeship Patterns&lt;/li&gt;
&lt;li&gt;The Art of Lean Software Development&lt;/li&gt;
&lt;li&gt;The Productive Programmer&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ASCI is proud to partner with our sponsors, &lt;a href=&quot;http://www.bnppispl.com/&quot; target=&quot;_blank&quot;&gt;BNP Paribas&lt;/a&gt;, &lt;a href=&quot;http://thoughtworks.com&quot; target=&quot;_blank&quot;&gt;ThoughtWorks&lt;/a&gt; and &lt;a href=&quot;http://www.xebia.in/&quot; target=&quot;_blank&quot;&gt;Xebia&lt;/a&gt; and our Mumbai host &lt;a href=&quot;http://www.mpstme-nmims.org/&quot; target=&quot;_blank&quot;&gt;Mukesh Patel School of Technology Management &amp;amp; Engineering&lt;/a&gt; to bring this conference to you. Our sponsors, also corporate members of ASCI, have been long-term supporters and promoters of Agile Software Development methods globally. A special thanks to &lt;a href=&quot;http://industriallogic.com&quot; target=&quot;_blank&quot;&gt;Industrial Logic&lt;/a&gt; for providing the support to organize this event possible. Also a big thanks to our supporters, Directi, Binary Essentials and Agile Alliance.&lt;/p&gt;
&lt;p&gt;Some of the highlights of Agile India 2010 included “&lt;a href=&quot;http://www.agileindia.org/agilebengaluru2010/agile-bengaluru-2010-programming-with-the-stars.htm&quot; target=&quot;_blank&quot;&gt;Programming with the Stars&lt;/a&gt;” - a fun post-lunch segment each day where “ordinary” conference attendees paired with legendary developers from top companies around India, who have attained a high degree of mastery in Agile development. The duos perform live on stage in front of a panel of judges, David Hussman, J. B. Rainsberger and Jeff Patton. PWTS lived up to its expectations by being both entertaining and educational. Rajesh &amp;amp; Amit were rated as the best pair in Mumbai. While Bhavin and Mukesh won the best pair title in Bengaluru.&lt;/p&gt;
&lt;p&gt;The conference also featured over 25 &lt;a href=&quot;http://www.agileindia.org/agilebengaluru2010/agile-bengaluru-2010-lightning-talks.htm&quot; target=&quot;_blank&quot;&gt;lightning talks&lt;/a&gt; where participants shared their thoughtful, unique idea about Agile in under 3 minutes.&lt;/p&gt;
&lt;p&gt;Also this year the conference tried to be as environmental friendly as much as possible. Some of the steps taken at the conference were:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Skipped handing out printed material like conference program, printed handouts &amp;amp; slides (except for what the conference sponsor handed over).&lt;/li&gt;
&lt;li&gt;Skipped handing over notepads &amp;amp; pens. Another big source of wastage. Very few people take notes and they usually carry their own.&lt;/li&gt;
&lt;li&gt;Lunch and snacks were served in washable plates &amp;amp; steel spoons. Usually conferences use throwaway plates and plastic spoons.&lt;/li&gt;
&lt;li&gt;For drinking tea, coffee &amp;amp; juice, we requested the conference participants to carry their own mugs &amp;amp; water bottles.&lt;/li&gt;
&lt;li&gt;Conserving Electricity: We tried to switch off projectors and Air Conditioners when ever possible.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;To back all of this, both locations had an enlightening talk from Captain Planet (aka Saurabh Arora) showing the effect of global warming and how we can take small steps everyday to avoid further worsening the situation.&lt;/p&gt;
&lt;p&gt;Like every Agile India conference in the past, this conference left delegates coming away with new ideas on how to improve their software development process by applying Agile practices to development and delivery. All the conference slides are available from the conference program page on our site &lt;a href=&quot;http://agileindia.org/agileindia2010&quot; target=&quot;_blank&quot;&gt;www.agileindia.org/agileindia2010&lt;/a&gt;.&lt;/p&gt;</description>
	<pubDate>Sun, 14 Mar 2010 11:11:56 +0000</pubDate>
</item>
<item>
	<title>Naresh Jain: Is Multi-tasking really evil?</title>
	<guid isPermaLink="false">http://blogs.agilefaqs.com/?p=1181</guid>
	<link>http://blogs.agilefaqs.com/2010/03/13/is-multi-tasking-really-evil/</link>
	<description>&lt;p&gt;By now you must have heard/read numerous people explain the pitfalls of multi-tasking and why its evil.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://blogs.agilefaqs.com/wp-content/uploads/2010/03/multitaskingevil.jpg&quot;&gt;&lt;img src=&quot;http://blogs.agilefaqs.com/wp-content/uploads/2010/03/multitaskingevil.jpg&quot; title=&quot;multitaskingevil&quot; height=&quot;409&quot; width=&quot;440&quot; alt=&quot;multitaskingevil&quot; class=&quot;aligncenter size-full wp-image-1182&quot;&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Jeff Atwood’s blog on “&lt;a href=&quot;http://www.codinghorror.com/blog/2006/09/the-multi-tasking-myth.html&quot; target=&quot;_blank&quot;&gt;The Multi-Tasking Myth&lt;/a&gt;“&lt;/li&gt;
&lt;li&gt;John Naish’s article on “&lt;a href=&quot;http://www.dailymail.co.uk/health/article-1205669/Is-multi-tasking-bad-brain-Experts-reveal-hidden-perils-juggling-jobs.html&quot; target=&quot;_blank&quot;&gt;Is multi-tasking bad for your brain? Experts reveal the hidden perils of juggling too many jobs&lt;/a&gt;“&lt;/li&gt;
&lt;li&gt;Clarke Ching’s blog on “&lt;a href=&quot;http://www.clarkeching.com/2004/12/multitasking_is.html&quot; target=&quot;_blank&quot;&gt;Multitasking MAKES YOU STUPID&lt;/a&gt;“&lt;/li&gt;
&lt;li&gt;Joel Spolsky’s blog on “&lt;a href=&quot;http://www.joelonsoftware.com/articles/fog0000000022.html&quot; target=&quot;_blank&quot;&gt;Human Task Switches Considered Harmful&lt;/a&gt;“&lt;/li&gt;
&lt;li&gt;Gina Trapani’s article on “&lt;a href=&quot;http://www.fastcompany.com/article/work-smart-stop-multi-tasking-and-do-one-thing-at-a-time&quot; target=&quot;_blank&quot;&gt;Work Smart: Stop Multitasking and Start Doing One Thing Really Well&lt;/a&gt;“&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Some people offer some decent advice on how to avoid Multi-tasking:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://management.about.com/od/yourself/a/chunking1106.htm&quot; target=&quot;_blank&quot;&gt;Don’t Multi-task When You Can Use Chunking&lt;/a&gt; by F. John Reh&lt;/li&gt;
&lt;li&gt;The &lt;a href=&quot;http://www.pomodorotechnique.com/&quot; target=&quot;_blank&quot;&gt;Pomodoro Technique&lt;/a&gt; forces you to focus on 1 task for 25 mins &amp;amp; then take a short break of 5 mins after every 25 mins (and a long break after 4 Pomodoros).&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.intent.com/lauraearnest/blog/dangers-multitasking-and-how-stop&quot; target=&quot;_blank&quot;&gt;The Dangers of Multitasking And How To Stop&lt;/a&gt; by Laura Earnest&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://zenhabits.net/2007/02/how-not-to-multitask-work-simpler-and/&quot; target=&quot;_blank&quot;&gt;How NOT to Multitask – Work Simpler and Saner&lt;/a&gt; by Leo Babauta&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.wikihow.com/Avoid-Multi-Tasking&quot; target=&quot;_blank&quot;&gt;How to Avoid Multi Tasking&lt;/a&gt; on WikiHow&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;While I agree with everyone here. There are things in my daily life that contradicts (to some extent) what they are claiming to be universally true for all humans. For Ex:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I listen to the news on the radio every morning while I brush my teeth&lt;/li&gt;
&lt;li&gt;I have interesting, deep conversations with friends/family while driving on Indian roads (driving itself involves multiple tasks. Driving on Indian roads adds a whole new dimension to it)&lt;/li&gt;
&lt;li&gt;The Indian Gods had attainted a whole new level of multi-tasking &lt;img src=&quot;http://blogs.agilefaqs.com/wp-includes/images/smilies/icon_wink.gif&quot; alt=&quot;;)&quot; class=&quot;wp-smiley&quot;&gt;&lt;/img&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href=&quot;http://blogs.agilefaqs.com/wp-content/uploads/2010/03/multitasking.jpg&quot;&gt;&lt;img src=&quot;http://blogs.agilefaqs.com/wp-content/uploads/2010/03/multitasking.jpg&quot; title=&quot;multitasking&quot; height=&quot;600&quot; width=&quot;411&quot; alt=&quot;multitasking&quot; class=&quot;aligncenter size-full wp-image-1183&quot;&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;What I’m trying to highlight here is not all multi-tasking is bad/inefficient. If I take the driving example, I can do other tasks while I’m driving. My efficiency starts to go down if I’m driving to new destinations. It further goes down if I’m driving in a different lane-system and a different car.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Its important to note that multi-tasking does not hurt you much if the activities you’re performing are routine activities (embedded in your long-term memory and is referred to as muscle memory.) Multi-tasking becoming significantly exhausting, error-prone and inefficient if the tasks you are performing requires conscious processing/thought (.i.e. uses your prefrontal cortex intensively.) Five brain functions, understanding, deciding, recalling, memorizing and inhibiting thoughts, make up majority of conscious thought. Activities like planning, problem solving, communication, etc use these functions heavily. Hence multi-tasking on such activities is a bad idea.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&quot;http://www.pashler.com/&quot; target=&quot;_blank&quot;&gt;Harold Pashler&lt;/a&gt; come up with a phenomenon called &lt;a href=&quot;http://www.pashler.com/Articles/index.php?abstractid=87&quot; target=&quot;_blank&quot;&gt;Dual-Task Interference&lt;/a&gt;. Via various experiments he showed that performing 2 cognitive tasks at once can reduce the cognitive capacity drastically. But if an individual performed 2 tasks, out of which only one task required conscious processing, then the cognitive capacity did not see the same drop.&lt;/p&gt;
&lt;p&gt;There are &lt;a href=&quot;http://dualtask.org/Visible_PRP_2/prp.html&quot; target=&quot;_blank&quot;&gt;simple activities&lt;/a&gt; which illustrates that one cannot normally carry out two tasks completely independently when each of them requires a choice of response.  When we try to do so, substantial delays occur in one or both tasks.  This is true even when neither task is anything that would be described as mentally challenging. Much research in this area argues that one particular mental operation is almost invariably carried out sequentially in tasks like this: the planning of responses.   The same is true of certain types of decision operations and memory retrievals.  On the other hand, the brain seems capable of perceiving stimuli while it is choosing a response, and actually producing motor responses in one task can overlap with the choice of a response in another.&lt;/p&gt;
&lt;p&gt;Again, not all tasks requiring a choice of responses are subjected to this sort of processing bottleneck. Tasks that involve extremely “natural” mappings between stimuli and responses appear not to be.  For example, repeating words aloud as you hear them is a task most people can carry out in parallel with other tasks (McLeod &amp;amp; Posner, 1984).  The same is true of moving your eye to look at a spot (Pashler, Carrier &amp;amp; Hoffman, 1993).&lt;/p&gt;
&lt;p&gt;Are humans capable of only uni-tasking? Not at all. If one of the tasks does not involve a choice of responses (e.g., if it merely involves repetitive rhythmic tapping, or requires perceiving and identifying stimuli without the need to decide on responses), interference is often reduced or even absent (subsequent demos on this site will illustrate this point).  Laboratory experiments in which response times are analyzed in detail have lent considerable support to the idea of a “central bottleneck” in response planning and indicated that other operations are often processed in parallel between the two tasks (for recent reviews, see H. Pashler, The Psychology of Attention, 1998, MIT Press; P. Jolicoeur, Journal of Experimental Psychology: Human perception and Performance, 1999, 25, 596-616).&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;Summary: Multi-tasking activities which require conscious processing is exhausting, error-prone and inefficient, hence a bad idea.&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;</description>
	<pubDate>Sat, 13 Mar 2010 17:39:11 +0000</pubDate>
</item>
<item>
	<title>Griffin Caprio: Links for 2010-03-12 [del.icio.us]</title>
	<guid isPermaLink="false">http://del.icio.us/gcaprio#2010-03-12</guid>
	<link>http://feedproxy.google.com/~r/MemoirsOfABystander/~3/D2gu4D1f1lE/gcaprio</link>
	<description>&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://icalshare.com/&quot;&gt;Welcome to iCalShare&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/django-social-economics/&quot;&gt;django-social-economics - Project Hosting on Google Code&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/django-pagelets/&quot;&gt;django-pagelets - Project Hosting on Google Code&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/MemoirsOfABystander/~4/D2gu4D1f1lE&quot; height=&quot;1&quot; width=&quot;1&quot;&gt;&lt;/img&gt;</description>
	<pubDate>Sat, 13 Mar 2010 08:00:00 +0000</pubDate>
</item>
<item>
	<title>Brian Oxley: Using java.lang.Process</title>
	<guid isPermaLink="false">tag:blogger.com,1999:blog-5638372.post-2511249025623270319</guid>
	<link>http://binkley.blogspot.com/2010/03/using-javalangprocess.html</link>
	<description>&lt;p&gt;Kyle Cartmell has &lt;a href=&quot;http://kylecartmell.com/?p=9&quot; title=&quot;Five Common java.lang.Process Pitfalls&quot;&gt;a year-old post entitled &lt;cite&gt;Five Common java.lang.Process Pitfalls&lt;/cite&gt;&lt;/a&gt; that recently turned up as &quot;new&quot; on DZone.  The post is really top flight and will set you straight if you need to fork processes from inside Java.&lt;/p&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/tracker/5638372-2511249025623270319?l=binkley.blogspot.com&quot; alt=&quot;&quot; height=&quot;1&quot; width=&quot;1&quot;&gt;&lt;/img&gt;&lt;/div&gt;</description>
	<pubDate>Fri, 12 Mar 2010 15:03:22 +0000</pubDate>
	<author>binkley@alumni.rice.edu (binkley)</author>
</item>
<item>
	<title>Marco Abis: 1 year in Sourcesense UK</title>
	<guid isPermaLink="false">http://blog.hubdirector.com/?p=11</guid>
	<link>http://blog.hubdirector.com/general/1-year-sourcesense-uk/</link>
	<description>&lt;p&gt;I know it’s a cliché but indeed I cannot believe 1 year has already gone by! My ‘&lt;a href=&quot;http://marco.hubdirector.com/a-new-challenge/&quot;&gt;A new challenge&lt;/a&gt;‘ post was published on Monday 16th March 2009, the day I left &lt;a href=&quot;http://www.thoughtworks.com/&quot;&gt;ThoughtWorks&lt;/a&gt; and joined &lt;a href=&quot;http://www.sourcesense.com/en/home&quot;&gt;Sourcesense&lt;/a&gt; as the new UK managing director.&lt;/p&gt;
&lt;p&gt;If you are reading this it means you are still following my old blog, &lt;a href=&quot;http://marco.hubdirector.com/1-year-in-sourcesense-uk/&quot;&gt;please head over to the new one to read the entire post&lt;/a&gt;, thanks! &lt;img src=&quot;http://blog.hubdirector.com/wp-includes/images/smilies/icon_smile.gif&quot; alt=&quot;:-)&quot; class=&quot;wp-smiley&quot;&gt;&lt;/img&gt; &lt;/p&gt;


&lt;p&gt;No related posts.&lt;/p&gt;
&lt;p&gt;Related posts brought to you by &lt;a href=&quot;http://mitcho.com/code/yarpp/&quot;&gt;Yet Another Related Posts Plugin&lt;/a&gt;.&lt;/p&gt;</description>
	<pubDate>Fri, 12 Mar 2010 14:47:04 +0000</pubDate>
</item>
<item>
	<title>Griffin Caprio: Links for 2010-03-11 [del.icio.us]</title>
	<guid isPermaLink="false">http://del.icio.us/gcaprio#2010-03-11</guid>
	<link>http://feedproxy.google.com/~r/MemoirsOfABystander/~3/SjZTx_GAuoc/gcaprio</link>
	<description>&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://socalcto.blogspot.com/2009/11/matching-algorithm.html&quot;&gt;Matching Algorithm&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/MemoirsOfABystander/~4/SjZTx_GAuoc&quot; height=&quot;1&quot; width=&quot;1&quot;&gt;&lt;/img&gt;</description>
	<pubDate>Fri, 12 Mar 2010 08:00:00 +0000</pubDate>
</item>
<item>
	<title>Jay Fields: Pairing isn't the Solution</title>
	<guid isPermaLink="false">tag:blogger.com,1999:blog-12467669.post-1346879941194041332</guid>
	<link>http://feedproxy.google.com/~r/jayfields/mjKQ/~3/VdUKrdFxPlc/pairing-isnt-solution.html</link>
	<description>In 2007 &amp;amp; 2008 I wrote several blog entires on Pair Programming (tagged with &lt;a href=&quot;http://blog.jayfields.com/search/label/pair%20programming&quot;&gt;pair programming&lt;/a&gt;). Pair programming solved a lot of problems for me: knowledge transfer, mentoring, code review, etc. It also solved another problem at the same time, even though I wasn't aware of it. Pairing helps reduce the number of cooks in the kitchen.&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;These days I'm working on a project with some really talented people. The pace at which we deliver features is far faster than any project I worked on before I joined &lt;a href=&quot;http://drw.com&quot;&gt;DRW&lt;/a&gt;. However, I've seen two effects of having so many talented developers on the same team: wiki coding and spork sharing. (both metaphors coined by my tech lead, badams)&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;Wiki coding occurs when the churn on a class or component is so great that whoever commits last ends up deciding what it should do. Wiki coding leads to inconsistent design and lack of convention. Spork sharing occurs when a fork is designed and a spoon is also needed. Instead of creating a spoon, you want to share the handle, so you create a spork instead. Now, you have no spoor or fork, you have a spork, and sporks suck. Both problems seem to stem from differing vision for the classes or components.&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;It appears that the more talented programmers you put on a team, the more fractured the vision for the project becomes. Of course, complexity (as well as many other factors) can also increase the fracture.&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;You won't catch me advocating for 'hard-working average programmers'. What I do believe is: you should stock your team with only rockstars, between 2 and 4 of them. I've worked on teams that only had 3 people. I've worked on teams with about 16. I was a consultant, I've worked on a lot of teams - big and small. My experience was that the smaller teams were much more effective, every time.&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;Reflecting on the past few years, I came up with the following reasons for keeping your teams small:&lt;ul&gt;&lt;li&gt;New Technology: Small teams can more easily come to a decision to try a new technology. Also, if a small team selects a new technology, the entire team is likely to learn the new technology. However, an individual on a larger team may find a way to never learn the new technology and never contribute to that area of the code. Worse, a larger team may shy away from trying new technology because they cannot come to a consensus. New technology can offer productivity boosts, and missing those boosts can hurt a teams efficiency.&lt;/li&gt;&lt;li&gt;Smaller Problems: Smaller teams generally implies solving smaller problems. Most problems can be broken down into smaller, less complex problems. Once the problem is broken down, it should be easier for the small teams to craft elegant solutions that can integrate to solve the larger business need.&lt;/li&gt;&lt;li&gt;Improved Maintainability: Smaller teams generate less code, which allows all team members to have depth and breadth concerning a solution. Having depth and breadth allows you to easily share vision and fix broken windows.&lt;/li&gt;&lt;li&gt;Ownership: Ownership isn't bad. Single points of failure are bad, but having a small team that feels ownership over an application will generally lead to higher quality and more emotional attachment to it's success.&lt;/li&gt;&lt;li&gt;Context Switching: Smaller codebases maintained by small teams solving a smaller problem will context switch less, because there's nothing else to context switch to.&lt;/li&gt;&lt;li&gt;Responsibility: The &lt;a href=&quot;http://en.wikipedia.org/wiki/Bystander_effect&quot;&gt;Bystander Effect&lt;/a&gt; applies to code (e.g. production bugs) as well.&lt;/li&gt;&lt;li&gt;Unified Vision: In a large team it's easy to have an opposing vision and never be proven wrong. In a small team it's likely that you will agree on a vision for the project (process, technology, etc) as an entire team.&lt;/li&gt;&lt;li&gt;Adding: Adding one more person to a 2 person team will likely result in a new productive team member relatively quickly. Smaller team, smaller problem, smaller codebase = easier team to join.&lt;/li&gt;&lt;/ul&gt;Sometimes I wonder if consultancies sell large teams, and then use pairing to make the large teams more effective. It's definitely my experience that large teams pairing are much more effective than large teams that aren't pairing. However, I wonder if anyone ever stopped to ask: would a smaller team have been sufficient (or, better)?&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;I still believe pairing is an answer to many problems. However, the best solution to making a 8 person team more effective isn't pairing. I believe that a superior solution is finding a way to solve the problem with a smaller, more effective team (or teams).&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;br&gt;&lt;/br&gt;&lt;a href=&quot;http://www.jayfields.com&quot;&gt;© Jay Fields - www.jayfields.com&lt;/a&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/tracker/12467669-1346879941194041332?l=blog.jayfields.com&quot; alt=&quot;&quot; height=&quot;1&quot; width=&quot;1&quot;&gt;&lt;/img&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~ff/jayfields/mjKQ?a=VdUKrdFxPlc:mtEaitHe640:yIl2AUoC8zA&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/jayfields/mjKQ?d=yIl2AUoC8zA&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/jayfields/mjKQ?a=VdUKrdFxPlc:mtEaitHe640:F7zBnMyn0Lo&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/jayfields/mjKQ?i=VdUKrdFxPlc:mtEaitHe640:F7zBnMyn0Lo&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/jayfields/mjKQ?a=VdUKrdFxPlc:mtEaitHe640:7Q72WNTAKBA&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/jayfields/mjKQ?d=7Q72WNTAKBA&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/jayfields/mjKQ?a=VdUKrdFxPlc:mtEaitHe640:V_sGLiPBpWU&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/jayfields/mjKQ?i=VdUKrdFxPlc:mtEaitHe640:V_sGLiPBpWU&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/jayfields/mjKQ?a=VdUKrdFxPlc:mtEaitHe640:gIN9vFwOqvQ&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/jayfields/mjKQ?i=VdUKrdFxPlc:mtEaitHe640:gIN9vFwOqvQ&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/jayfields/mjKQ/~4/VdUKrdFxPlc&quot; height=&quot;1&quot; width=&quot;1&quot;&gt;&lt;/img&gt;</description>
	<pubDate>Fri, 12 Mar 2010 01:05:00 +0000</pubDate>
	<author>blogger@jayfields.com (Jay Fields)</author>
</item>
<item>
	<title>Griffin Caprio: Links for 2010-03-10 [del.icio.us]</title>
	<guid isPermaLink="false">http://del.icio.us/gcaprio#2010-03-10</guid>
	<link>http://feedproxy.google.com/~r/MemoirsOfABystander/~3/5z731XoFnFM/gcaprio</link>
	<description>&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.skmurphy.com/startup-stages/open-for-business-stage/startup-maturity-checklist/&quot;&gt;SKMurphy » Startup Maturity Checklist&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.25hoursaday.com/weblog/2010/03/10/BuildingScalableDatabasesAreRelationalDatabasesCompatibleWithLargeScaleWebsites.aspx&quot;&gt;Dare Obasanjo aka Carnage4Life - Building Scalable Databases: Are Relational Databases Compatible with Large Scale Websites?&lt;/a&gt;&lt;br&gt;&lt;/br&gt;
Nice writeup about nosql vs. rdms&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://wsgi.org/wsgi/Learn_WSGI&quot;&gt;Learn_WSGI - WSGI Wiki&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/MemoirsOfABystander/~4/5z731XoFnFM&quot; height=&quot;1&quot; width=&quot;1&quot;&gt;&lt;/img&gt;</description>
	<pubDate>Thu, 11 Mar 2010 08:00:00 +0000</pubDate>
</item>
<item>
	<title>Griffin Caprio: Want $1000?  2nd Round of ScaleWell Announced</title>
	<guid isPermaLink="false">tag:typepad.com,2003:post-6a00d8341c09c053ef0120a9236e6d970b</guid>
	<link>http://feedproxy.google.com/~r/MemoirsOfABystander/~3/tvQCxgKETwM/want-1000-2nd-round-of-scalewell-announced.html</link>
	<description>&lt;a href=&quot;http://scalewell.posterous.com/&quot;&gt;ScaleWell&lt;/a&gt; is having a call for applications.  This opens up their second grant period.  The &lt;a href=&quot;http://blog.1530technologies.com/2010/02/scalewell.html&quot;&gt;first one&lt;/a&gt; ended last month with $1000 cash and some additional services given to &lt;a href=&quot;http://scalewell.posterous.com/first-scalewell-grant-recipient-michael-una&quot;&gt;Michael Una at Unatronics&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;
So if you've got an idea for a startup and are looking for some feedback and a chance to win some cash and services, &lt;a href=&quot;http://scalewell.com/entries/new&quot;&gt;apply today&lt;/a&gt;!&lt;img src=&quot;http://feeds.feedburner.com/~r/MemoirsOfABystander/~4/tvQCxgKETwM&quot; height=&quot;1&quot; width=&quot;1&quot;&gt;&lt;/img&gt;</description>
	<pubDate>Thu, 11 Mar 2010 01:28:01 +0000</pubDate>
</item>
<item>
	<title>Griffin Caprio: Links for 2010-03-09 [del.icio.us]</title>
	<guid isPermaLink="false">http://del.icio.us/gcaprio#2010-03-09</guid>
	<link>http://feedproxy.google.com/~r/MemoirsOfABystander/~3/IndPBqfe_E8/gcaprio</link>
	<description>&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.smashingmagazine.com/2010/03/08/entering-the-wonderful-world-of-geo-location/&quot;&gt;Entering The Wonderful World of Geo Location - Smashing Magazine&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://tulip.labri.fr/TulipDrupal/&quot;&gt;Graph visualization software | Tulip&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.agilezen.com/&quot;&gt;Zen – Project management gets lean&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://myttc.ca/&quot;&gt;MyTTC&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/MemoirsOfABystander/~4/IndPBqfe_E8&quot; height=&quot;1&quot; width=&quot;1&quot;&gt;&lt;/img&gt;</description>
	<pubDate>Wed, 10 Mar 2010 08:00:00 +0000</pubDate>
</item>
<item>
	<title>Matthew Ueckerman: Book review: Programming Scala</title>
	<guid isPermaLink="false">http://ueckerman.net/?p=103</guid>
	<link>http://ueckerman.net/2010/03/10/book-review-programming-scala/</link>
	<description>I choose &lt;a href=&quot;http://www.pragprog.com/titles/vsscala/programming-scala&quot;&gt;Programming Scala - Tackle Multicore Complexity one the Java Virtual Machine&lt;/a&gt; as the book to guide me learning Scala as a relative noobie.  This blog is a brief review; Pro's and Con's followed by a brief summary and rating.</description>
	<pubDate>Tue, 09 Mar 2010 21:46:45 +0000</pubDate>
</item>
<item>
	<title>Griffin Caprio: Links for 2010-03-08 [del.icio.us]</title>
	<guid isPermaLink="false">http://del.icio.us/gcaprio#2010-03-08</guid>
	<link>http://feedproxy.google.com/~r/MemoirsOfABystander/~3/IZYf6B84NPE/gcaprio</link>
	<description>&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.flickr.com/photos/amit-agarwal/3196386402/sizes/l/&quot;&gt;How to Choose Chart Types&lt;/a&gt;&lt;br&gt;&lt;/br&gt;
Great distillation.  Tufte would be proud.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://mnmal.tumblr.com/post/434445393&quot;&gt;Simplicity&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://dev.2degreesnetwork.com/2010/03/announcing-twodwsgi-better-wsgi-support.html&quot;&gt;Open Source at 2degrees: Announcing twod.wsgi: Better WSGI support for Django&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://kanbangames.net/&quot;&gt;kanbangames.net&lt;/a&gt;&lt;br&gt;&lt;/br&gt;
Nice collection of games for teaching lean concepts.&lt;/li&gt;
&lt;/ul&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/MemoirsOfABystander/~4/IZYf6B84NPE&quot; height=&quot;1&quot; width=&quot;1&quot;&gt;&lt;/img&gt;</description>
	<pubDate>Tue, 09 Mar 2010 08:00:00 +0000</pubDate>
</item>
<item>
	<title>Dennis Byrne: Memory Barriers article published by InfoQ</title>
	<guid isPermaLink="false">tag:blogger.com,1999:blog-8675770049730349526.post-1986933887035179383</guid>
	<link>http://notdennisbyrne.blogspot.com/2010/03/memory-barriers-article-published-by.html</link>
	<description>InfoQ has published an article I wrote about memory barriers and the JVM.  Here's an excerpt:&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;&quot;A trip to main memory costs hundreds of clock cycles on commodity hardware. Processors use caching to decrease the costs of memory latency by orders of magnitude. These caches re-order pending memory operations for the sake of performance. In other words, the reads and writes of a program are not necessarily performed in the order in which they are given to the processor. When data is immutable and/or confined to the scope of one thread these optimizations are harmless. Combining these optimizations with symmetric multi-processing and shared mutable state on the other hand can be a nightmare. A program can behave non-deterministically when memory operations on shared mutable state are re-ordered. It is possible for a thread to write values that become visible to another thread in ways that are inconsistent with the order in which they were written. A properly placed memory barrier prevents this problem by forcing the processor to serialize pending memory operations.&quot;&lt;/span&gt;&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;You can &lt;a href=&quot;http://www.infoq.com/articles/memory_barriers_jvm_concurrency&quot; target=&quot;new&quot;&gt;read the rest&lt;/a&gt; over at InfoQ ...&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/tracker/8675770049730349526-1986933887035179383?l=notdennisbyrne.blogspot.com&quot; alt=&quot;&quot; height=&quot;1&quot; width=&quot;1&quot;&gt;&lt;/img&gt;&lt;/div&gt;</description>
	<pubDate>Mon, 08 Mar 2010 16:09:23 +0000</pubDate>
	<author>dennisbyrne@apache.org (Not Dennis Byrne)</author>
</item>
<item>
	<title>Muness Alrubaie: If software could make resolutions...</title>
	<guid isPermaLink="false">tag:blogger.com,1999:blog-5159103.post-5782931900097321906</guid>
	<link>http://feedproxy.google.com/~r/muness/~3/7pg7bop0Fyw/if-software-could-make-resolutions.html</link>
	<description>Two weeks ago I got what at first glance was yet another electronic greeting, the sort I've come to barely look at for couple of reasons: 1) like everyone else, I never seem to have enough time for everything, and 2) I guess I've become jaded - if someone wants to say hi, I'd rather get a personalized SMS or one sentence email than getting yet another irrelevant &quot;funny&quot; greeting lacking personality.  Seconds after hitting the delete button I restored it from my trash to visit later.
&lt;p&gt;
&lt;a href=&quot;http://2.bp.blogspot.com/_X2VtRiH_7DA/R5F0J6xrZYI/AAAAAAAAAn4/IXhwqTEaN9k/s1600-h/screen-capture-1.png&quot;&gt;&lt;img src=&quot;http://2.bp.blogspot.com/_X2VtRiH_7DA/R5F0J6xrZYI/AAAAAAAAAn4/IXhwqTEaN9k/s320/screen-capture-1.png&quot; alt=&quot;&quot; style=&quot;display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; cursor: hand;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5157030762061194626&quot;&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/p&gt;&lt;p&gt;I finally got around to it this evening while catching up on my email, curious as to why I had undeleted it.  For one, it's simple, with lots of white space and only two, clear links: one smack in the middle and an unsubscribe link - noteworthy because unlike most unsubscribe links, it was obvious.
&lt;/p&gt;&lt;p&gt;For another it was from Cooper, the interaction design firm.  Over the holidays I'd read Alan Cooper's provocative The Insane are Running the Asylum which resonated with me.  (Just ask the folks at work who must be tired of me ranting, &quot;what do you get when you cross a phone with a computer?  A computer!&quot;  A phone that takes 3 minutes to reboot is more computer than phone, no matter what it looks like.)
&lt;/p&gt;&lt;p&gt;I then &lt;a href=&quot;http://cdn2.goldmail.com/?GMID=7i8xhec3csrt&quot;&gt;clicked the link&lt;/a&gt; and was pleasantly surprised, for what I found was a short, witty presentation with thoughtful design tips, paired with music composed by Philip Glass.  The tips included:
&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;Remember users' preferences.
&lt;/li&gt;&lt;li&gt;Aesthetics matter.
&lt;/li&gt;&lt;li&gt;Stop dialog-boxing your users.
&lt;/li&gt;&lt;li&gt;Communicate with them.
&lt;/li&gt;&lt;li&gt;Don't follow, lead.
&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;But don't settle for my summary of it, &lt;a href=&quot;http://cdn2.goldmail.com/?GMID=7i8xhec3csrt&quot;&gt;check it out for yourself&lt;/a&gt;.
&lt;/p&gt;&lt;p&gt;These tips are indicative of the ideas in &lt;a href=&quot;http://cooper.com/insights/books/&quot;&gt;his books&lt;/a&gt;.  The Inmates are Running the Asylum lucidly illustrates various problems that arise when design is merely an afterthought. (Note: his primary focus is on &lt;em&gt;interaction&lt;/em&gt;, not aesthetics.)
&lt;/p&gt;&lt;p&gt;One such problem is one I alluded to earlier, about the convergence of various electronics with computers.  When everyone else's focus is on technology and features rather than on user interaction, Apple handily beats them at their own game time and again.  By the by, I contend that this is not because Apple is doing interaction design well as it is because everyone else isn't doing any.
&lt;/p&gt;&lt;p&gt;The Insane are Running the Asylum also contained an intriguing discussion of confirmation dialog boxes.  Alan points out that confirmation dialog boxes were a misguided &quot;solution&quot; to a user losing their data.  By adding a dialog box, such a loss was no longer due to poor design, instead it became the user's fault. Why these miserable dialog boxes persist in the days of unlimited undo and Recycle bin recovery is beyond me.
&lt;/p&gt;&lt;p&gt;About Face (which I am still reading) focuses on the how instead of the why of interaction design.  It's an interaction design tome.  (I want to point out that it includes an excellent primer on business analysis, covering persona and scenario composition.)  It distinguishes between &lt;em&gt;implementation&lt;/em&gt;, &lt;em&gt;mental&lt;/em&gt; and &lt;em&gt;represented&lt;/em&gt; models.  Simply, the implementation model is the set of classes that encodes the business domain, the mental model is the user's picture of the domain and the represented model is the way the implementation model is presented to the user.
&lt;/p&gt;&lt;p&gt;This is in stark contrast to &lt;a href=&quot;http://domainlanguage.com/ddd/index.html&quot;&gt;Domain Driven Design&lt;/a&gt;'s &quot;One Team, One Language&quot; mantra.  By insisting that the implementation must match up with the mental model, it can make our job of building software even more difficult than inherently is.  Or we do the reverse, forcing the implementation model on our user, who thank you very much, already understands her business and will vehemently resent being told what her business &lt;em&gt;really&lt;/em&gt; entails.
&lt;/p&gt;&lt;p&gt;By introducing a represented model, we acknowledge that a mental and an implementation model are not equivalent.  The represented model, the result of interaction design, can map from one to the other, facilitating usage and implementation.
&lt;/p&gt;&lt;p&gt;If software could make resolutions, it might resolve to be considerate.  Interaction design is part of what will get us there.&lt;/p&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/tracker/5159103-5782931900097321906?l=muness.blogspot.com&quot; alt=&quot;&quot; height=&quot;1&quot; width=&quot;1&quot;&gt;&lt;/img&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~ff/muness?a=7pg7bop0Fyw:lmllBk9sABc:yIl2AUoC8zA&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/muness?d=yIl2AUoC8zA&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/muness?a=7pg7bop0Fyw:lmllBk9sABc:63t7Ie-LG7Y&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/muness?d=63t7Ie-LG7Y&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/muness?a=7pg7bop0Fyw:lmllBk9sABc:YwkR-u9nhCs&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/muness?d=YwkR-u9nhCs&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/muness?a=7pg7bop0Fyw:lmllBk9sABc:F7zBnMyn0Lo&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/muness?i=7pg7bop0Fyw:lmllBk9sABc:F7zBnMyn0Lo&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/muness?a=7pg7bop0Fyw:lmllBk9sABc:dnMXMwOfBR0&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/muness?d=dnMXMwOfBR0&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/muness?a=7pg7bop0Fyw:lmllBk9sABc:4cEx4HpKnUU&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/muness?i=7pg7bop0Fyw:lmllBk9sABc:4cEx4HpKnUU&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/muness?a=7pg7bop0Fyw:lmllBk9sABc:V_sGLiPBpWU&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/muness?i=7pg7bop0Fyw:lmllBk9sABc:V_sGLiPBpWU&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/muness/~4/7pg7bop0Fyw&quot; height=&quot;1&quot; width=&quot;1&quot;&gt;&lt;/img&gt;</description>
	<pubDate>Mon, 08 Mar 2010 13:32:21 +0000</pubDate>
	<author>noreply@blogger.com (muness)</author>
</item>
<item>
	<title>Griffin Caprio: Links for 2010-03-07 [del.icio.us]</title>
	<guid isPermaLink="false">http://del.icio.us/gcaprio#2010-03-07</guid>
	<link>http://feedproxy.google.com/~r/MemoirsOfABystander/~3/oOnuB02SvQI/gcaprio</link>
	<description>&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://allseeing-i.com/ASIHTTPRequest/&quot;&gt;ASIHTTPRequest Documentation - All-Seeing Interactive&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://allseeing-i.com/ASIHTTPRequest/How-to-use&quot;&gt;ASIHTTPRequest example code - All-Seeing Interactive&lt;/a&gt;&lt;br&gt;&lt;/br&gt;
Support ASIHTTPRequest - buy Space Harvest - my new real-time strategy game for iPod Touch &amp;amp; iPhone!&lt;br&gt;&lt;/br&gt;
&lt;br&gt;&lt;/br&gt;
ASIHTTPRequest documentation&lt;br&gt;&lt;/br&gt;
Last updated: 2nd March 2010&lt;br&gt;&lt;/br&gt;
&lt;br&gt;&lt;/br&gt;
About&lt;br&gt;&lt;/br&gt;
Setup instructions&lt;br&gt;&lt;/br&gt;
How to use it&lt;br&gt;&lt;/br&gt;
Amazon S3&lt;br&gt;&lt;/br&gt;
Rackspace Cloud Files&lt;br&gt;&lt;/br&gt;
Changelog&lt;br&gt;&lt;/br&gt;
Who is using it?&lt;br&gt;&lt;/br&gt;
Creating a request&lt;br&gt;&lt;/br&gt;
Creating a synchronous request&lt;br&gt;&lt;/br&gt;
The simplest way to use ASIHTTPRequest. Sending the startSynchronous message will execute the request in the same thread, and return control when it has completed (successfully or otherwise).&lt;br&gt;&lt;/br&gt;
Check for problems by inspecting the error property.&lt;br&gt;&lt;/br&gt;
To get the response as a string, call the responseString method. Don't use this for binary data - use responseData to get an NSData object, or, for larger files, set your request to download to a file with the downloadDestinationPath property.&lt;br&gt;&lt;/br&gt;
- (IBAction)grabURL:(id)sender&lt;br&gt;&lt;/br&gt;
{&lt;br&gt;&lt;/br&gt;
  NSURL *url = [NSURL URLWithString:@&quot;http://allseeing-i.com&quot;];&lt;br&gt;&lt;/br&gt;
  ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];&lt;br&gt;&lt;/br&gt;
  [request startSynchronous];&lt;br&gt;&lt;/br&gt;
  NSError&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://github.com/facebook/three20&quot;&gt;facebook's three20 at master - GitHub&lt;/a&gt;&lt;br&gt;&lt;/br&gt;
face UI framework for iPhone apps.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.agilecoach.net/coach-tools/bottleneck-game/&quot;&gt;The Bottleneck Game « The Agile Coach Toolkit&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.xp.be/businessvaluegame.html&quot;&gt;Extreme programming in Belgium-The Business Value Game&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.redbead.com/&quot;&gt;REDBEAD Experiment, RED BEAD Game, Dr Deming RED BEAD Experiment&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/MemoirsOfABystander/~4/oOnuB02SvQI&quot; height=&quot;1&quot; width=&quot;1&quot;&gt;&lt;/img&gt;</description>
	<pubDate>Mon, 08 Mar 2010 08:00:00 +0000</pubDate>
</item>
<item>
	<title>Paul Gross: Web proxy in node.js for high availability</title>
	<guid isPermaLink="false">tag:www.pgrs.net,2010-02-01:13677</guid>
	<link>http://www.pgrs.net/2010/2/1/web-proxy-in-node-js-for-high-availability</link>
	<description>&lt;p&gt;&lt;strong&gt;Update (3/8/10):&lt;/strong&gt; Updated code to work with version 0.1.30 of node.js&lt;/p&gt;


	&lt;p&gt;I’ve been thinking about high availability websites lately.  In particular, I want sites that can be upgraded (including database migrations or even infrastructure changes) without downtime.&lt;/p&gt;


	&lt;p&gt;I’ve also been playing with &lt;a href=&quot;http://nodejs.org&quot;&gt;node.js&lt;/a&gt; lately, and I decided to spike out a web proxy that would sit between users and the actual website (eg, a rails app).  When performing upgrades, the proxy would hold users connections and wait.  Once the upgrade was done, the proxy would forward requests as usual.  Users would see an extra long request, but as long as the upgrade was short (eg, less than a minute), the user should not know the site was down.&lt;/p&gt;


	&lt;p&gt;This type of proxy server seems like a good fit with node.  Node’s event model means that there will be very little overhead when holding connections.  There are no threads stacking up and waiting.  Since everything is non-blocking, this server should scale well.&lt;/p&gt;


	&lt;p&gt;Here is a very simple version of the code:&lt;/p&gt;


&lt;pre&gt;&lt;code class=&quot;javascript&quot;&gt;
var fs = require('fs'),
   sys = require('sys'),
  http = require('http');

http.createServer(function (req, res) {
  checkBalanceFile(req, res);
}).listen(8000);

function checkBalanceFile(req, res) {
  fs.stat(&quot;balance&quot;, function(err) {
    if (err) {
      setTimeout(function() {checkBalanceFile(req, res)}, 1000);
    } else {
      passThroughOriginalRequest(req, res);
    }
  });
}

function passThroughOriginalRequest(req, res) {
  var request = http.createClient(2000, &quot;localhost&quot;).request(&quot;GET&quot;, req.url, {});
  request.addListener(&quot;response&quot;, function (response) {
    res.writeHeader(response.statusCode, response.headers);
    response.addListener(&quot;data&quot;, function (chunk) {
      res.write(chunk);
    });
    response.addListener(&quot;end&quot;, function () {
      res.close();
    });
  });
  request.close();
}

sys.puts('Server running at http://127.0.0.1:8000/');
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;Here is a &lt;a href=&quot;http://gist.github.com/291468&quot;&gt;gist&lt;/a&gt; if anyone would like to fork.&lt;/p&gt;


	&lt;p&gt;Basically, I use http.createServer to create a web server on port 8000.  On incoming requests, I call checkBalanceFile.  This method will try to stat a local file called balance.  If it finds it, it will call passThroughOriginalRequest, which forwards the request to another web server on port 2000.  If the balance file does not exist, I use setTimeout to call checkBalanceFile again in one second.&lt;/p&gt;


	&lt;p&gt;With a proxy server like this, the main application can be upgraded by removing the balance file.  While the file is missing, the node web server will hold all of the connections and check every second for the reappearance of the balance file.  Once it comes back, all requests will be forwarded along and then streamed back to the user.&lt;/p&gt;


	&lt;p&gt;Currently, this spike only works with &lt;span class=&quot;caps&quot;&gt;GET&lt;/span&gt; requests and does not pass any headers through, since I wanted to keep the code simple.&lt;/p&gt;</description>
	<pubDate>Mon, 08 Mar 2010 06:19:30 +0000</pubDate>
</item>
<item>
	<title>Griffin Caprio: iPad, Children &amp; the Wii</title>
	<guid isPermaLink="false">tag:typepad.com,2003:post-6a00d8341c09c053ef01310f78ac60970c</guid>
	<link>http://feedproxy.google.com/~r/MemoirsOfABystander/~3/pqaD4oWaeYs/ipad-children-the-wii.html</link>
	<description>&lt;div&gt;Taking my family out for lunch today, I noticed something interesting.  While waiting to sit down, my 2.5 yr old nephew asked for my sisters iPhone.  He grabbed it, unlocked it and proceeded to navigate to the SpongeBob Square Pants game that she had on there.  Sitting there quietly, he played until we had to move.  
&lt;p&gt;&lt;/p&gt;
Now, tell me what other full blown computing device you could put in front of a young kid and have him use.  Think about what it takes to even launch a game on Windows or Mac OS X.
&lt;p&gt;&lt;/p&gt;
What I just described is exactly what people are missing from the iPad announcements.  The iPad is not aimed at 'us' as in techies, developers and people generally comfortable ( to some extent ) with computers as they are.  It's aimed at people who would otherwise not be using computers.  Such as children and the elderly.  People who either a ) missed out on the 'computer' generation or b ) haven't been exposed to the current file / folder / desktop metaphor of computers. 
&lt;p&gt;&lt;/p&gt;
Frankly, it's the 'Wii' of computers.  Just like the Wii found a largely untapped market of people who would never buy a video game system, the iPad will become the computer for generations ( young and old ) and demographics ( soccer moms, travelers, etc.. ) that normally wouldn't buy one. The computer that is useful enough to carry with them, while at the same time being fun and easy to use.  No drivers. No disks. No hassle. No confusion.
&lt;p&gt;&lt;/p&gt;
Just functionality &amp;amp; simplicity.&lt;/div&gt;
&lt;img src=&quot;http://feeds.feedburner.com/~r/MemoirsOfABystander/~4/pqaD4oWaeYs&quot; height=&quot;1&quot; width=&quot;1&quot;&gt;&lt;/img&gt;</description>
	<pubDate>Mon, 08 Mar 2010 03:32:30 +0000</pubDate>
</item>
<item>
	<title>Ivan Moore: Tools and Environments - SCM and CI</title>
	<guid isPermaLink="false">tag:blogger.com,1999:blog-4084458860381242516.post-2318171748109819141</guid>
	<link>http://puttingtheteaintoteam.blogspot.com/2010/03/tools-and-environments-scm-and-ci.html</link>
	<description>When I taught source control and continuous integration in 2007 (for the &lt;a href=&quot;http://www.cs.ucl.ac.uk/teaching/syllabus/mscsse/gs04.htm&quot;&gt;GS04&lt;/a&gt; course at &lt;a href=&quot;http://www.ucl.ac.uk/&quot;&gt;UCL&lt;/a&gt;) I used &lt;a href=&quot;http://subversion.apache.org/&quot;&gt;Subversion&lt;/a&gt; for the source control lab and &lt;a href=&quot;http://build-o-matic.sourceforge.net/&quot;&gt;build-o-matic&lt;/a&gt; for the continuous integration lab.&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;In the labs this year, I'll be using &lt;a href=&quot;http://mercurial.selenic.com/&quot;&gt;Mercurial&lt;/a&gt; instead of Subversion, and &lt;a href=&quot;http://hudson-ci.org/&quot;&gt;Hudson&lt;/a&gt; instead of build-o-matic.&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;What would you choose for teaching source control and continuous integration (and for bonus marks, why)?&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;Copyright © 2009 Ivan Moore&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/tracker/4084458860381242516-2318171748109819141?l=puttingtheteaintoteam.blogspot.com&quot; alt=&quot;&quot; height=&quot;1&quot; width=&quot;1&quot;&gt;&lt;/img&gt;&lt;/div&gt;</description>
	<pubDate>Sun, 07 Mar 2010 18:57:05 +0000</pubDate>
	<author>noreply@blogger.com (Ivan Moore)</author>
</item>
<item>
	<title>Griffin Caprio: Links for 2010-03-05 [del.icio.us]</title>
	<guid isPermaLink="false">http://del.icio.us/gcaprio#2010-03-05</guid>
	<link>http://feedproxy.google.com/~r/MemoirsOfABystander/~3/mbi-aLxzQnw/gcaprio</link>
	<description>&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://steveblank.com/2010/03/04/perfection-by-subtraction-the-minimum-feature-set/&quot;&gt;Perfection By Subtraction – The Minimum Feature Set « Steve Blank&lt;/a&gt;&lt;br&gt;&lt;/br&gt;
Nice image at the bottom&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.cdncatalog.com/&quot;&gt;CDN Catalog&lt;/a&gt;&lt;br&gt;&lt;/br&gt;
Great collection of CDN hosted CSS &amp;amp; JS resources.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/django-batchimport/&quot;&gt;django-batchimport - Project Hosting on Google Code&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://eli.thegreenplace.net/2010/03/05/zipped-dump-of-a-sqlite-database-with-python/&quot;&gt;Eli Bendersky’s website » Blog Archive » Zipped dump of a SQLite database with Python&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/MemoirsOfABystander/~4/mbi-aLxzQnw&quot; height=&quot;1&quot; width=&quot;1&quot;&gt;&lt;/img&gt;</description>
	<pubDate>Sat, 06 Mar 2010 08:00:00 +0000</pubDate>
</item>
<item>
	<title>Paul Miles: Setting the Working Directory for a Spawned Process</title>
	<guid isPermaLink="false">tag:blogger.com,1999:blog-2101828913602807089.post-8197930326873643724</guid>
	<link>http://www.paulmiles.net/2010/03/setting-working-directory-for-spawned.html</link>
	<description>As one would expect, PowerShell is very capable of launching processes. Sometimes, it is necessary to launch a process that doesn't block (such as a user-interface based application) and wait for it to close.&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;Here is a little snippet of code to do this:&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;&lt;span style=&quot;font-family: 'Courier New', Courier, monospace;&quot; class=&quot;Apple-style-span&quot;&gt;&lt;span style=&quot;font-size: small;&quot; class=&quot;Apple-style-span&quot;&gt;$p = [diagnostics.process]::start(&quot;something.exe&quot;, &quot;--arg1 --arg2&quot;)&lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;/br&gt;&lt;span style=&quot;font-family: 'Courier New', Courier, monospace;&quot; class=&quot;Apple-style-span&quot;&gt;&lt;span style=&quot;font-size: small;&quot; class=&quot;Apple-style-span&quot;&gt;$p.WaitForExit()&lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;One limitation is that the &quot;Working Directory&quot; of the spawned process is set to the user's home directory by default, which is often unacceptable. Here is another little snippet that explicitly sets the working directory to the current directory before spawning the process:&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;&lt;span style=&quot;font-family: 'Courier New', Courier, monospace;&quot; class=&quot;Apple-style-span&quot;&gt;&lt;span style=&quot;font-size: small;&quot; class=&quot;Apple-style-span&quot;&gt;$psi = New-Object  System.Diagnostics.ProcessStartInfo(&quot;something.exe&quot;, &quot;--arg1 --arg2&quot;)&lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;/br&gt;&lt;span style=&quot;font-family: 'Courier New', Courier, monospace;&quot; class=&quot;Apple-style-span&quot;&gt;&lt;span style=&quot;font-size: small;&quot; class=&quot;Apple-style-span&quot;&gt;$psi.WorkingDirectory = (Get-Location).Path&lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;/br&gt;&lt;span style=&quot;font-family: 'Courier New', Courier, monospace;&quot; class=&quot;Apple-style-span&quot;&gt;&lt;span style=&quot;font-size: small;&quot; class=&quot;Apple-style-span&quot;&gt;$p = [Diagnostics.Process]::Start($psi)&lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;/br&gt;&lt;span style=&quot;font-family: 'Courier New', Courier, monospace;&quot; class=&quot;Apple-style-span&quot;&gt;&lt;span style=&quot;font-size: small;&quot; class=&quot;Apple-style-span&quot;&gt;$p.WaitForExit()&lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;This took me just enough time to figure out on my own where I thought it warranted a blog posting. Happy scripting...&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/tracker/2101828913602807089-8197930326873643724?l=www.paulmiles.net&quot; alt=&quot;&quot; height=&quot;1&quot; width=&quot;1&quot;&gt;&lt;/img&gt;&lt;/div&gt;</description>
	<pubDate>Fri, 05 Mar 2010 22:07:21 +0000</pubDate>
	<author>miles.paul@gmail.com (Miles)</author>
</item>
<item>
	<title>Paul Miles: Internet Explorer and more than 31 Style Tags</title>
	<guid isPermaLink="false">tag:blogger.com,1999:blog-2101828913602807089.post-396068355027708042</guid>
	<link>http://www.paulmiles.net/2008/02/internet-explorer-and-more-than-31.html</link>
	<description>Internet Explorer 7 (IE7) appears to have a bug (limit) that ignores more than 31 &amp;lt;style&amp;gt; tags. I wrote it up here since searching for it myself didn't uncover this.&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;I encountered this in a programatic use of &lt;a href=&quot;http://developer.yahoo.com/yui/&quot;&gt;Yahoo's User Interface Library&lt;/a&gt; (YUI), where it just so happened that I was outputting more than 30 button instances. Each button was outputting a small style snippet to set a background image as &lt;a href=&quot;http://developer.yahoo.com/yui/examples/button/btn_example01.html&quot;&gt;per their example&lt;/a&gt;. As a work-around, I'll need to come up with a way to collect all of the styles and then output a single &amp;lt;style&amp;gt; tag.&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;Here is a snippet that demonstrates this bug if this post is opened in IE, or you can place the HTML in a file and load it up separately. I'll post it on Microsoft's forum and update this if I find anything new.&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;&lt;pre&gt;If any span is not green, the style tag was ignored.&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;#e1 { color: green; }&lt;br&gt;&lt;/br&gt;&lt;span id=&quot;e1&quot;&gt;Span 1&lt;/span&gt;&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;#e2 { color: green; }&lt;br&gt;&lt;/br&gt;&lt;span id=&quot;e2&quot;&gt;Span 2&lt;/span&gt;&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;#e3 { color: green; }&lt;br&gt;&lt;/br&gt;&lt;span id=&quot;e3&quot;&gt;Span 3&lt;/span&gt;&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;#e4 { color: green; }&lt;br&gt;&lt;/br&gt;&lt;span id=&quot;e4&quot;&gt;Span 4&lt;/span&gt;&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;#e5 { color: green; }&lt;br&gt;&lt;/br&gt;&lt;span id=&quot;e5&quot;&gt;Span 5&lt;/span&gt;&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;#e6 { color: green; }&lt;br&gt;&lt;/br&gt;&lt;span id=&quot;e6&quot;&gt;Span 6&lt;/span&gt;&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;#e7 { color: green; }&lt;br&gt;&lt;/br&gt;&lt;span id=&quot;e7&quot;&gt;Span 7&lt;/span&gt;&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;#e8 { color: green; }&lt;br&gt;&lt;/br&gt;&lt;span id=&quot;e8&quot;&gt;Span 8&lt;/span&gt;&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;#e9 { color: green; }&lt;br&gt;&lt;/br&gt;&lt;span id=&quot;e9&quot;&gt;Span 9&lt;/span&gt;&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;#e10 { color: green; }&lt;br&gt;&lt;/br&gt;&lt;span id=&quot;e10&quot;&gt;Span 10&lt;/span&gt;&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;#e11 { color: green; }&lt;br&gt;&lt;/br&gt;&lt;span id=&quot;e11&quot;&gt;Span 11&lt;/span&gt;&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;#e12 { color: green; }&lt;br&gt;&lt;/br&gt;&lt;span id=&quot;e12&quot;&gt;Span 12&lt;/span&gt;&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;#e13 { color: green; }&lt;br&gt;&lt;/br&gt;&lt;span id=&quot;e13&quot;&gt;Span 13&lt;/span&gt;&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;#e14 { color: green; }&lt;br&gt;&lt;/br&gt;&lt;span id=&quot;e14&quot;&gt;Span 14&lt;/span&gt;&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;#e15 { color: green; }&lt;br&gt;&lt;/br&gt;&lt;span id=&quot;e15&quot;&gt;Span 15&lt;/span&gt;&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;#e16 { color: green; }&lt;br&gt;&lt;/br&gt;&lt;span id=&quot;e16&quot;&gt;Span 16&lt;/span&gt;&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;#e17 { color: green; }&lt;br&gt;&lt;/br&gt;&lt;span id=&quot;e17&quot;&gt;Span 17&lt;/span&gt;&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;#e18 { color: green; }&lt;br&gt;&lt;/br&gt;&lt;span id=&quot;e18&quot;&gt;Span 18&lt;/span&gt;&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;#e19 { color: green; }&lt;br&gt;&lt;/br&gt;&lt;span id=&quot;e19&quot;&gt;Span 19&lt;/span&gt;&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;#e20 { color: green; }&lt;br&gt;&lt;/br&gt;&lt;span id=&quot;e20&quot;&gt;Span 20&lt;/span&gt;&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;#e21 { color: green; }&lt;br&gt;&lt;/br&gt;&lt;span id=&quot;e21&quot;&gt;Span 21&lt;/span&gt;&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;#e22 { color: green; }&lt;br&gt;&lt;/br&gt;&lt;span id=&quot;e22&quot;&gt;Span 22&lt;/span&gt;&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;#e23 { color: green; }&lt;br&gt;&lt;/br&gt;&lt;span id=&quot;e23&quot;&gt;Span 23&lt;/span&gt;&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;#e24 { color: green; }&lt;br&gt;&lt;/br&gt;&lt;span id=&quot;e24&quot;&gt;Span 24&lt;/span&gt;&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;#e25 { color: green; }&lt;br&gt;&lt;/br&gt;&lt;span id=&quot;e25&quot;&gt;Span 25&lt;/span&gt;&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;#e26 { color: green; }&lt;br&gt;&lt;/br&gt;&lt;span id=&quot;e26&quot;&gt;Span 26&lt;/span&gt;&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;#e27 { color: green; }&lt;br&gt;&lt;/br&gt;&lt;span id=&quot;e27&quot;&gt;Span 27&lt;/span&gt;&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;#e28 { color: green; }&lt;br&gt;&lt;/br&gt;&lt;span id=&quot;e28&quot;&gt;Span 28&lt;/span&gt;&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;#e29 { color: green; }&lt;br&gt;&lt;/br&gt;&lt;span id=&quot;e29&quot;&gt;Span 29&lt;/span&gt;&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;#e30 { color: green; }&lt;br&gt;&lt;/br&gt;&lt;span id=&quot;e30&quot;&gt;Span 30&lt;/span&gt;&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;#e31 { color: green; }&lt;br&gt;&lt;/br&gt;&lt;span id=&quot;e31&quot;&gt;Span 31&lt;/span&gt;&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;#e32 { color: green; }&lt;br&gt;&lt;/br&gt;&lt;span id=&quot;e32&quot;&gt;Span 32&lt;/span&gt;&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;#e33 { color: green; }&lt;br&gt;&lt;/br&gt;&lt;span id=&quot;e33&quot;&gt;Span 33&lt;/span&gt;&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;#e34 { color: green; }&lt;br&gt;&lt;/br&gt;&lt;span id=&quot;e34&quot;&gt;Span 34&lt;/span&gt;&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;#e35 { color: green; }&lt;br&gt;&lt;/br&gt;&lt;span id=&quot;e35&quot;&gt;Span 35&lt;/span&gt;&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;&lt;/pre&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/tracker/2101828913602807089-396068355027708042?l=www.paulmiles.net&quot; alt=&quot;&quot; height=&quot;1&quot; width=&quot;1&quot;&gt;&lt;/img&gt;&lt;/div&gt;</description>
	<pubDate>Fri, 05 Mar 2010 21:57:47 +0000</pubDate>
	<author>miles.paul@gmail.com (Miles)</author>
</item>
<item>
	<title>Griffin Caprio: Links for 2010-03-04 [del.icio.us]</title>
	<guid isPermaLink="false">http://del.icio.us/gcaprio#2010-03-04</guid>
	<link>http://feedproxy.google.com/~r/MemoirsOfABystander/~3/Wm2OfoV5ovM/gcaprio</link>
	<description>&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://ufridman.org/kfc.html&quot;&gt;Kill Flash Cookies- Simple Software&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/MemoirsOfABystander/~4/Wm2OfoV5ovM&quot; height=&quot;1&quot; width=&quot;1&quot;&gt;&lt;/img&gt;</description>
	<pubDate>Fri, 05 Mar 2010 08:00:00 +0000</pubDate>
</item>
<item>
	<title>Griffin Caprio: Links for 2010-03-03 [del.icio.us]</title>
	<guid isPermaLink="false">http://del.icio.us/gcaprio#2010-03-03</guid>
	<link>http://feedproxy.google.com/~r/MemoirsOfABystander/~3/qhGt9rY4OJA/gcaprio</link>
	<description>&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.lean.org/&quot;&gt;LEAN.org - Lean Enterprise Institute| Lean Production | Lean Manufacturing | LEI | Lean Services |&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.getrocketbox.com/&quot;&gt;Central Atomics | Rocketbox - Powerful e-mail search for Apple Mail&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/MemoirsOfABystander/~4/qhGt9rY4OJA&quot; height=&quot;1&quot; width=&quot;1&quot;&gt;&lt;/img&gt;</description>
	<pubDate>Thu, 04 Mar 2010 08:00:00 +0000</pubDate>
</item>
<item>
	<title>Szczepan Faber: Sweetest</title>
	<guid isPermaLink="true">http://monkeyisland.pl/2010/02/22/sweetest/</guid>
	<link>http://monkeyisland.pl/2010/02/22/sweetest/</link>
	<description>In a constant battle for sweet tests (readable &amp;amp; maintainable) I developed another weapon. Have a look at this tool for acceptance testing: Sweetest. What do you think?
       &lt;img src=&quot;http://stats.wordpress.com/b.gif?host=monkeyisland.pl&amp;amp;blog=857943&amp;amp;post=371&amp;amp;subd=szczepiq&amp;amp;ref=&amp;amp;feed=1&quot; alt=&quot;&quot; border=&quot;0&quot;&gt;&lt;/img&gt;</description>
	<pubDate>Thu, 04 Mar 2010 07:29:46 +0000</pubDate>
</item>
<item>
	<title>Szczepan Faber: Hudson is a cunning beast</title>
	<guid isPermaLink="true">http://monkeyisland.pl/2010/01/19/hudson-is-a-cunning-beast/</guid>
	<link>http://monkeyisland.pl/2010/01/19/hudson-is-a-cunning-beast/</link>
	<description>Build failed today:
ERROR: Failed to update http://svn.dev.sabre.com/svn/apd_centiva2/trunk
org.tmatesoft.svn.core.SVNException: svn: blah blah blah
‘Bummer, I need to log in to the ci box and figure out what’s wrong with svn.’ – I thought. Being in the middle of something I didn’t get to it immediately. Then I got another notification from Hudson:

Updated failed due to local files. Getting [...]&lt;img src=&quot;http://stats.wordpress.com/b.gif?host=monkeyisland.pl&amp;amp;blog=857943&amp;amp;post=362&amp;amp;subd=szczepiq&amp;amp;ref=&amp;amp;feed=1&quot; alt=&quot;&quot; border=&quot;0&quot;&gt;&lt;/img&gt;</description>
	<pubDate>Thu, 04 Mar 2010 07:29:46 +0000</pubDate>
</item>
<item>
	<title>Szczepan Faber: Guerrilla Developers</title>
	<guid isPermaLink="true">http://monkeyisland.pl/2009/12/21/guerrilla-developers/</guid>
	<link>http://monkeyisland.pl/2009/12/21/guerrilla-developers/</link>
	<description>Not sure I like the punchline but the story is real.
Once upon a time there was a project, pretty bad one actually. The were big performance and stability issues. The were no docs about functionality whatsoever. The code base quality was disastrous. There was even a local framework implemented that dealt with mapping java classes [...]&lt;img src=&quot;http://stats.wordpress.com/b.gif?host=monkeyisland.pl&amp;amp;blog=857943&amp;amp;post=357&amp;amp;subd=szczepiq&amp;amp;ref=&amp;amp;feed=1&quot; alt=&quot;&quot; border=&quot;0&quot;&gt;&lt;/img&gt;</description>
	<pubDate>Thu, 04 Mar 2010 07:29:46 +0000</pubDate>
</item>
<item>
	<title>Szczepan Faber: be careful with fundamentalism</title>
	<guid isPermaLink="true">http://monkeyisland.pl/2009/02/08/be-careful-with-fundamentalism/</guid>
	<link>http://monkeyisland.pl/2009/02/08/be-careful-with-fundamentalism/</link>
	<description>One of my colleagues told me the other day:
“Szczepan, last year, when I started working in the X team someone warned me not to speak too loud about unit testing”
Apparently, there were feisty TDDers in the X team and they witch-hunted devs who not necessarily had written test-first. I guess it’s easy to become a [...]&lt;img src=&quot;http://stats.wordpress.com/b.gif?host=monkeyisland.pl&amp;amp;blog=857943&amp;amp;post=226&amp;amp;subd=szczepiq&amp;amp;ref=&amp;amp;feed=1&quot; alt=&quot;&quot; border=&quot;0&quot;&gt;&lt;/img&gt;</description>
	<pubDate>Thu, 04 Mar 2010 07:29:46 +0000</pubDate>
</item>
<item>
	<title>Brian Oxley: Massive agile</title>
	<guid isPermaLink="false">tag:blogger.com,1999:blog-5638372.post-3511051477589994594</guid>
	<link>http://binkley.blogspot.com/2010/03/massive-agile.html</link>
	<description>&lt;p&gt;James Shore &lt;a href=&quot;http://jamesshore.com/Blog/Large-Scale-Agile.html&quot;&gt;writes about Large-scale Agile&lt;/a&gt;.  Half a decade ago I was at ThoughtWorks and heard tale of massive agile undertakings in the UK by TW under the aegis, &quot;distributed agile&quot;. I never experienced it first hand (but I can &lt;a href=&quot;http://www.thoughtworks.com/pdfs/trainline.pdf&quot; title=&quot;Replatforming thetrainline.com&quot;&gt;read about one such project&lt;/a&gt;) and I'd love to hear from any other TWers or alums who worked firsthand on these.&lt;/p&gt; &lt;p&gt;(Thanks to &lt;a href=&quot;http://blog.rodcoffin.com/&quot;&gt;Rod Coffin&lt;/a&gt; for pointing out Shore's post to me.)&lt;/p&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/tracker/5638372-3511051477589994594?l=binkley.blogspot.com&quot; alt=&quot;&quot; height=&quot;1&quot; width=&quot;1&quot;&gt;&lt;/img&gt;&lt;/div&gt;</description>
	<pubDate>Thu, 04 Mar 2010 00:05:36 +0000</pubDate>
	<author>binkley@alumni.rice.edu (binkley)</author>
</item>
<item>
	<title>Griffin Caprio: Links for 2010-03-02 [del.icio.us]</title>
	<guid isPermaLink="false">http://del.icio.us/gcaprio#2010-03-02</guid>
	<link>http://feedproxy.google.com/~r/MemoirsOfABystander/~3/wYsM2PbWTdc/gcaprio</link>
	<description>&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://github.com/lincolnloop/django-startproject&quot;&gt;lincolnloop's django-startproject at master - GitHub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://luckybite.com/iprocessing/&quot;&gt;iProcessing&lt;/a&gt;&lt;br&gt;&lt;/br&gt;
Processing for iPhone&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://martinfowler.com/bliki/ToyotaFailings.html&quot;&gt;MF Bliki: ToyotaFailings&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/MemoirsOfABystander/~4/wYsM2PbWTdc&quot; height=&quot;1&quot; width=&quot;1&quot;&gt;&lt;/img&gt;</description>
	<pubDate>Wed, 03 Mar 2010 08:00:00 +0000</pubDate>
</item>
<item>
	<title>Narayan Raman (Sahi): ThoughtWorks Studios' Twist 2.0 with Sahi</title>
	<guid isPermaLink="false">tag:blogger.com,1999:blog-32259128.post-8929592781137859010</guid>
	<link>http://blog.sahi.co.in/2010/03/thoughtworks-studios-twist-20-with-sahi.html</link>
	<description>ThoughtWorks announces Twist 2.0 availability from 31st March 2010: &lt;br&gt;&lt;/br&gt;&lt;a href=&quot;http://www.prnewswire.com/news-releases/thoughtworks-studios-new-twist-20-provides-collaborative-agile-test-management-85809582.html&quot;&gt;http://www.prnewswire.com/news-releases/thoughtworks-studios-new-twist-20-provides-collaborative-agile-test-management-85809582.html&lt;/a&gt;&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;Tyto Software has been collaborating with ThoughtWorks Studios to integrate Sahi with Twist and results will be visible in Twist 2.0.&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;&quot;Twist 2.0 has added Sahi as an additional option for web testing. The main benefit of Sahi is that it abstracts out most difficulties that testers face while automating web applications. Its features include an excellent recorder, platform and browser independence, no XPaths, no waits and multi-threaded playback. In addition, it allows you to identify UI components within the application as you record test scenarios.&quot; &lt;a href=&quot;http://community.thoughtworks.com/posts/a0f1346f57&quot;&gt;Announcing Twist 2.0: Available for download on March 31&lt;/a&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/tracker/32259128-8929592781137859010?l=blog.sahi.co.in&quot; alt=&quot;&quot; height=&quot;1&quot; width=&quot;1&quot;&gt;&lt;/img&gt;&lt;/div&gt;</description>
	<pubDate>Wed, 03 Mar 2010 03:07:38 +0000</pubDate>
	<author>noreply@blogger.com (V. Narayan Raman)</author>
</item>
<item>
	<title>Paul Gross: Node.js, redis, and resque</title>
	<guid isPermaLink="false">tag:www.pgrs.net,2010-02-28:14647</guid>
	<link>http://www.pgrs.net/2010/2/28/node-js-redis-and-resque</link>
	<description>&lt;p&gt;&lt;strong&gt;Update (3/2/10):&lt;/strong&gt; Updated code to work with version 0.1.30 of node.js&lt;/p&gt;


	&lt;p&gt;I’ve continued to play with &lt;a href=&quot;http://nodejs.org/&quot;&gt;node.js&lt;/a&gt;, and I’ve decided to do a follow up spike to my previous one: &lt;a href=&quot;http://www.pgrs.net/2010/2/1/web-proxy-in-node-js-for-high-availability&quot;&gt;Web proxy in node.js for high availability&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;The previous spike used node to proxy requests directly to a web server.  This spike uses node to put messages into a (&lt;a href=&quot;http://code.google.com/p/redis&quot;&gt;redis&lt;/a&gt;) queue.  Ruby background workers read from the queue, process the requests, and respond on a different queue.   When node receives the response from the background worker, it sends the response back to the waiting user.&lt;/p&gt;


	&lt;p&gt;Just like my first spike, this type of architecture can be used for high availability web sites.  Since all messages go into a queue and node holds the connections from the users, the site can be upgraded (including database migrations or infrastructure changes) as long as node and redis stay the same.  Once the upgrade is finished, the workers can resume working from the queue.  Users would see an extra long request, but as long as the upgrade was short (eg, less than a minute), the user should not know the site was down.&lt;/p&gt;


A queue has a lot of advantages over a straight proxy:
	&lt;ol&gt;
	&lt;li&gt;Easy to scale up and down by adding or removing workers&lt;/li&gt;
		&lt;li&gt;Can use priority queues to prioritize more important web requests&lt;/li&gt;
		&lt;li&gt;Easy to monitor (eg, how many messages are in the queue, how fast are they being added)&lt;/li&gt;
	&lt;/ol&gt;


	&lt;p&gt;Here is a very simple version of the code.  First, the node webserver (using &lt;a href=&quot;http://github.com/fictorial/redis-node-client/&quot;&gt;redis-node-client&lt;/a&gt;):&lt;/p&gt;


&lt;pre&gt;&lt;code class=&quot;javascript&quot;&gt;
var sys = require('sys'),
   http = require('http'),
  redis = require(&quot;./redisclient&quot;);

var queuedRes = {}
var counter = 1;

http.createServer(function (req, res) {
  pushOnQueue(req, res);
}).listen(8000);

function pushOnQueue(req, res) {
  requestNumber = counter++;

  message = JSON.stringify({
    &quot;class&quot;: &quot;RequestProcessor&quot;,
    &quot;args&quot;: [ {&quot;node_id&quot;: requestNumber, &quot;url&quot;: req.url} ]
  });

  client.rpush('resque:queue:requests', message);
  queuedRes[requestNumber] = res
}

var client = new redis.Client();
client.connect(function() {
  popFromQueue();
});

function popFromQueue() {
  client.lpop('responses', handleResponse);
}

function handleResponse(err, result) {
  if (result == null) {
    setTimeout(function() { popFromQueue(); }, 100);
  } else {
    json = JSON.parse(result);
    requestNumber = json.node_id;
    body = unescape(json.body);
    res = queuedRes[requestNumber];
    res.writeHeader(200, {'Content-Type': 'text/plain'});
    res.write(body);
    res.close();
    delete queuedRes[requestNumber];
    popFromQueue();
  }
}

sys.puts('Server running at http://127.0.0.1:8000/');
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;Also available as a &lt;a href=&quot;http://gist.github.com/317707&quot;&gt;gist&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;pushOnQueue() is called on incoming web requests.  This creates a &lt;span class=&quot;caps&quot;&gt;JSON&lt;/span&gt; message and pushes it on the resque:queue:requests queue.  It also puts the res object into a hash so it can be retrieved again on the way back.&lt;/p&gt;


	&lt;p&gt;At the same time, a queue listener is set up using redis.Client().  On
connect, popFromQueue() is called.  This method pops messages from the
responses queue and calls handleResponse().  If the pop did not find a
message, it is scheduled to call again in 100 milliseconds.  If it did find a
message, the message is parsed with &lt;span class=&quot;caps&quot;&gt;JSON&lt;/span&gt;, the requestNumber is pulled out, and
the original res object is pulled out of the queuedRes hash.  The res object is then
sent the body of the message from the queue, which makes it back to the user.&lt;/p&gt;


	&lt;p&gt;On the other side, I have a ruby worker using
&lt;a href=&quot;http://github.com/defunkt/resque&quot;&gt;resque&lt;/a&gt;:&lt;/p&gt;


&lt;pre&gt;&lt;code class=&quot;javascript&quot;&gt;
class RequestProcessor
  @queue = :requests

  APP = Rack::Builder.new do
    use Rails::Rack::Static
    use Rack::CommonLogger
    run ActionController::Dispatcher.new
  end

  RACK_BASE_REQUEST = {
    &quot;PATH_INFO&quot; =&amp;gt; &quot;/things&quot;,
    &quot;QUERY_STRING&quot; =&amp;gt; &quot;&quot;,
    &quot;REQUEST_METHOD&quot; =&amp;gt; &quot;GET&quot;,
    &quot;SERVER_NAME&quot; =&amp;gt; &quot;localhost&quot;,
    &quot;SERVER_PORT&quot; =&amp;gt; &quot;3000&quot;,
    &quot;rack.errors&quot; =&amp;gt; STDERR,
    &quot;rack.input&quot; =&amp;gt; StringIO.new(&quot;&quot;),
    &quot;rack.multiprocess&quot; =&amp;gt; true,
    &quot;rack.multithread&quot; =&amp;gt; false,
    &quot;rack.run_once&quot; =&amp;gt; false,
    &quot;rack.url_scheme&quot; =&amp;gt; &quot;http&quot;,
    &quot;rack.version&quot; =&amp;gt; [1, 0],
  }

  def self.perform(hash)
    url = hash.delete(&quot;url&quot;)

    request = RACK_BASE_REQUEST.clone
    request[&quot;PATH_INFO&quot;] = url
    response = APP.call(request)

    body = &quot;&quot; 
    response.last.each { |part| body &amp;lt;&amp;lt; part }

    hash[&quot;body&quot;] = URI.escape(body)
    cmd = &quot;redis-cli rpush responses #{hash.to_json.inspect}&quot; 
    system cmd
  end
end
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;Also available as a &lt;a href=&quot;http://gist.github.com/317709&quot;&gt;gist&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;The worker can be started with:&lt;/p&gt;


&lt;pre&gt;&lt;code class=&quot;ruby&quot;&gt;
env QUEUE=requests INTERVAL=1 rake environment resque:work
&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;This worker uses resque, which polls the queue and calls perform when a
message is received.  The perform method builds the Rack request and runs the &lt;span class=&quot;caps&quot;&gt;URL&lt;/span&gt; from
the message through Rails.  It then pushes the response body onto the
responses queue using redis-cli.&lt;/p&gt;


	&lt;p&gt;As before, this spike only works with &lt;span class=&quot;caps&quot;&gt;GET&lt;/span&gt; requests and does not pass any headers through to keep the code simple.  Comments and forks are welcome.&lt;/p&gt;</description>
	<pubDate>Wed, 03 Mar 2010 02:31:53 +0000</pubDate>
</item>
<item>
	<title>Adewale Oshineye: Mapping personal practices</title>
	<guid isPermaLink="false">http://www.blogger.com/feeds/3804478417938445896/posts/default/1118336977344502366</guid>
	<link>http://www.advogato.org/person/ade/diary.html?start=36</link>
	<description>A long time ago Joe Walnes ran a session at the &lt;a href=&quot;http://xpday-london.editme.com/eXtremeTuesdayClub&quot;&gt;Extreme Tuesday Club&lt;/a&gt; where he encouraged us all to draw &lt;a href=&quot;http://web.archive.org/web/20060506130037/www.xpdeveloper.net/xpdwiki/Wiki.jsp?page=PersonalPracticesMap&quot;&gt;maps of our personal practices&lt;/a&gt;. As he put it:&lt;br&gt;&lt;/br&gt;&lt;blockquote&gt;We want your personal practices that you find important. Different people work in different ways, so we thought it would be interesting to discuss this.&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;In your own time, make a list of your 10 most important practices for coding and design. These do not have to be XP related and should be the most important things in your mind. For example: Separate interfaces from implementation, mock objects, follow the Law of Demeter, test driven development. Controversy encouraged - everyone's different.&lt;br&gt;&lt;/br&gt;Try to determine any relationships that may exist between these. Specifically, which practices support other practices. For example: unit testing supports refactoring and test driven design.&lt;br&gt;&lt;/br&gt;Draw a map of the relationships - like this: &lt;a href=&quot;http://joe.truemesh.com/sample-structure.gif&quot;&gt;http://joe.truemesh.com/sample-structure.gif&lt;/a&gt;&lt;br&gt;&lt;/br&gt;&lt;/blockquote&gt;&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;Sadly the old XTC wiki has gone to that great stand-up in the sky but I was able to use the &lt;a href=&quot;http://web.archive.org/web/20060529072724/http://www.xpdeveloper.net/xpdwiki/Wiki.jsp?page=MapsOfPeoplesPersonalPractice&quot;&gt;Wayback Machine's copy&lt;/a&gt; to rescue some people's maps.&lt;br&gt;&lt;/br&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://www.oshineye.com/texts/personalPracticesMap.png&quot;&gt;Adewale Oshineye&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://joe.truemesh.com/maintainability/structure.gif&quot;&gt;Joe Walnes&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Paul Hammant didn't draw a map but did write &lt;a href=&quot;http://paulhammant.com/blog/000068.html&quot;&gt;a blog post listing his practices&lt;/a&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/tracker/3804478417938445896-1118336977344502366?l=blog.oshineye.com&quot; alt=&quot;&quot; height=&quot;1&quot; width=&quot;1&quot;&gt;&lt;/img&gt;&lt;/div&gt;</description>
	<pubDate>Wed, 03 Mar 2010 01:08:21 +0000</pubDate>
</item>
<item>
	<title>Obie Fernandez: 2010 Conference and Event Calendar</title>
	<guid isPermaLink="false">tag:typepad.com,2003:post-6a00e54fdca911883301310f50bce8970c</guid>
	<link>http://feedproxy.google.com/~r/obie/~3/_DAm10uo_sY/2010-conference-and-event-calendar.html</link>
	<description>&lt;div&gt;&lt;p&gt;&lt;em&gt;Despite my honest intention to travel less this year, I still have a particularly long list of conferences and events that I'm attending, sponsoring or otherwise involved with. Will keep this blog entry as up to date as possible as changes occur.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://speakerconf.com/&quot;&gt;&lt;span&gt;SpeakerConf&lt;/span&gt;&lt;/a&gt;&lt;span&gt; in Aruba (February 9-11)&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;Had an awesome time hanging with folks way smarter than me, learned a lot, drank way too much and came back with a tan. Please don't hate me.&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Hashrocket Chicago Grand Opening Party (March 5)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Meet a bunch of Hashrocket folks and a good chunk of the local Ruby community for a cocktail party to celebrate the opening of our Chicago branch office. &lt;a href=&quot;http://hashrocket-chicago-opening.eventbrite.com/&quot; target=&quot;_blank&quot;&gt;Details and RSVP&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NoSQL Live in Boston (March 11)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;In support of our growing reputation in MongoDB circles, we've decided to sponsor &lt;a href=&quot;http://nosqlboston.eventbrite.com/&quot; target=&quot;_blank&quot;&gt;this promising event&lt;/a&gt; and are sending a couple of Rocketeers to present: Les Hill creator of &lt;a href=&quot;http://github.com/leshill/mongodoc&quot; target=&quot;_blank&quot;&gt;MongoDoc&lt;/a&gt; and Durran Jordan creator of &lt;a href=&quot;http://mongoid.org/&quot; target=&quot;_blank&quot;&gt;Mongoid&lt;/a&gt;. The conference is sold out, but you should be able to catch a &lt;a href=&quot;http://vivu.tv/portal/Join?flow=992-839-6148&quot; target=&quot;_blank&quot;&gt;live simulcast&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SXSW Interactive in Austin (March 11-16)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I've been attending SXSW for the last couple years and always learn a ton and enjoy the great networking opportunities. This year I'm excited to participate in the program as a panelist on the &lt;a href=&quot;http://thenextwomen.com/2010/02/08/what-are-guys-doing-to-get-more-girls-int-tech/&quot; target=&quot;_blank&quot;&gt;What Guys are Doing to Get More Girls Into Tech&lt;/a&gt; panel.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;span&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;strong&gt;&lt;span&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;Together with our design team, I'll also be premiering our the results of our rebranding effort and the relaunch of &lt;a href=&quot;http://hashrocket.com&quot; target=&quot;_blank&quot;&gt;hashrocket.com&lt;/a&gt;. Special limited-edition prints to honor the occasion will be available to select friends of Hashrocket in attendance at SXSW.&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;RubyConf India in Bangalore (March 17-21)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I'll finally put my Indian visa back to work when I travel back to Bangalore to speak at &lt;a href=&quot;http://rubyconfindia.org/&quot; target=&quot;_blank&quot;&gt;the inaugural RubyConf India&lt;/a&gt;, which we are sponsoring as Hashrocket. If you've been following my blog for awhile or know me personally, you know that in 2006 I lived in Bangalore for three months as a ThoughtWorks University trainer and loved it! I have a special fondness for my friends and associates in India, so this trip is particularly near and dear to my heart. I can't wait to reconnect with everyone and make new friends.&lt;/p&gt;
&lt;p&gt;I still haven't decided what my talk will be, but I'm leaning towards an updated version of The Hashrocket Way. Let me know what you think about that &lt;a href=&quot;http://twitter.com/obie/status/9847649148&quot; target=&quot;_blank&quot;&gt;via twitter&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pune Visit (March 22-24)&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Before leaving the subcontinent, I'm hoping to visit old friends at the ThoughtWorks India office in Pune, as well as meeting with other folks from the &lt;a href=&quot;http://rubylearning.com/blog/2009/06/05/10-ruby-rails-companies-in-pune-india/&quot; target=&quot;_blank&quot;&gt;thriving Ruby on Rails scene in that city&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Scottish Ruby Conf (March 25-28)&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;On my way back from India, I'm spending a few days in Scotland for what's quickly becoming a yearly Hashrocket tradition. Jon Larkowski, Robert Pitts and Jim &quot;Big Tiger&quot; Remsik are representing us on the &lt;a href=&quot;http://scottishrubyconference.com/sessions&quot; target=&quot;_blank&quot;&gt;speaker list&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;April &amp;amp; May&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Recuperating from insane March travel schedule. Then likely that I'll spend the last three weeks of May working in Boston (but the details of that trip are secret for now).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://www.hashrocket.com/university/&quot; target=&quot;_blank&quot;&gt;Hashrocket University&lt;/a&gt; in Baltimore (June 6)&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Your &lt;em&gt;very&lt;/em&gt; exclusive opportunity to study the tools and processes behind Hashrocket's success, hands-on and directly from actual Rocketeers, pairing on our equipment. Presented in partnership with the excellent folks at &lt;a href=&quot;http://jumpstartlab.com/&quot; target=&quot;_blank&quot;&gt;JumpstartLab&lt;/a&gt;. Plus, you're going to be in Baltimore for RailsConf 2010 already!&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://igniterailsconf.com&quot; target=&quot;_blank&quot;&gt;Ignite RailsConf&lt;/a&gt; in Baltimore (June 6)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Ignite events are lightning talks, where 16 speakers each get 5 minutes to talk about a subject they are passionate about, but with a twist: the speaker's slides are automatically advanced every 15 seconds. At Hashrocket, we think Ignite events are fucking awesome. That's why we're sponsoring this one, which promises to be an awesome pre-party kickoff for...&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://en.oreilly.com/rails2010&quot;&gt;RailsConf 2010&lt;/a&gt; in Baltimore (June 7-10)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I'll be part of a contingent of at least 10-15 people from Hashrocket, many of us speaking (hopefully). I've proposed several talks including a great new experience report called &quot;Million Dollar Mongo&quot; about our work on a large and successful production deployment of a MongoDB/Mongoid/Rails app.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;July&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Planning to spend most of middle and late July working out of our Chile office.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://bizconf.org&quot; target=&quot;_blank&quot;&gt;BizConf 2010 &lt;/a&gt; in Amelia Island (August 4-6)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;My own conference promises to be one of the greatest learning events of 2010 for people that run software operations. &lt;a href=&quot;http://www.regonline.com/Checkin.asp?EventId=813174&quot; target=&quot;_blank&quot;&gt;Registration&lt;/a&gt; is now open and seats will go fast due to limited capacity. Seriously, what are you waiting for? (Okay, maybe you're waiting for me to post the program - I promise to do it soon.)&lt;/p&gt;&lt;span style=&quot;font-weight: 800;&quot;&gt;&lt;span&gt;&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://www.burningman.com/&quot; target=&quot;_blank&quot;&gt;Burning Man&lt;/a&gt; in Black Rock City (September 1-5)&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Oh man, I can't wait for this. Been trying to go for at least 5 years and I lost count. I think I'll be able to go this year, in fact have promised special friends that I will do so.&lt;/p&gt;

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

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

&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://gogaruco.com/&quot; target=&quot;_blank&quot;&gt;GoGaRuCo 2010&lt;/a&gt; in San Francisco (September 10-11)&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Probably moderating a panel discussion. More details as they become available.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://www.ayeconference.com/&quot; target=&quot;_blank&quot;&gt;AYE Conference&lt;/a&gt; in Phoenix (November 7-11)&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Haven't bought tickets yet, but learned so much at last year's event and enjoyed it so much that I doubt I'll be able to resist this year. A conference of legendary reputation, which you should really check out and consider. If I could only attend one learning event this year, it would probably be this one.&lt;/p&gt;&lt;/span&gt;&lt;/span&gt;&lt;p&gt;&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://akitaonrails.com/2009/10/30/rails-summit-2010-commence-planning&quot; target=&quot;_blank&quot;&gt;Rails Summit 2010&lt;/a&gt; in Sao Paolo (October ?)&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;More details as they become available.&lt;/p&gt;

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

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

&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://www.conferenciarails.org/&quot; target=&quot;_blank&quot;&gt;Conferencia Rails 2010&lt;/a&gt; in Madrid (November ?)&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;More details as they become available.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://jaoo.dk/&quot; target=&quot;_blank&quot;&gt;YOW! 2010&lt;/a&gt; in Melbourne (December 2-3) and Brisbane (December 6-7)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Presenting on Rails 3. More details as they become available.&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~ff/obie?a=_DAm10uo_sY:5dwPS5cJIqQ:yIl2AUoC8zA&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/obie?d=yIl2AUoC8zA&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/obie?a=_DAm10uo_sY:5dwPS5cJIqQ:dnMXMwOfBR0&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/obie?d=dnMXMwOfBR0&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/obie?a=_DAm10uo_sY:5dwPS5cJIqQ:RJU-JkLLmTY&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/obie?i=_DAm10uo_sY:5dwPS5cJIqQ:RJU-JkLLmTY&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/obie?a=_DAm10uo_sY:5dwPS5cJIqQ:F7zBnMyn0Lo&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/obie?i=_DAm10uo_sY:5dwPS5cJIqQ:F7zBnMyn0Lo&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/obie?a=_DAm10uo_sY:5dwPS5cJIqQ:V_sGLiPBpWU&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/obie?i=_DAm10uo_sY:5dwPS5cJIqQ:V_sGLiPBpWU&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/obie?a=_DAm10uo_sY:5dwPS5cJIqQ:qj6IDK7rITs&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/obie?d=qj6IDK7rITs&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
	<pubDate>Tue, 02 Mar 2010 18:59:04 +0000</pubDate>
</item>
<item>
	<title>Griffin Caprio: WS-* Specs</title>
	<guid isPermaLink="false">tag:typepad.com,2003:post-6a00d8341c09c053ef0120a8ed20f1970b</guid>
	<link>http://feedproxy.google.com/~r/MemoirsOfABystander/~3/RoTFpdkLhko/ws--specs.html</link>
	<description>After &lt;a href=&quot;http://ueckerman.net/2010/03/03/ws-whatthe/&quot;&gt;this post&lt;/a&gt; about the current state of WS-* specs, I thought it would be funny to go back and look at the second blog post I ever wrote:
&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;http://blog.1530technologies.com/2004/11/ws_specs_deed.html&quot;&gt;WS-* Specs De-*'ed&lt;/a&gt;
&lt;p&gt;&lt;/p&gt;
I got about 10% into the main SOAP spec and gave up.  What a load of crap those things were / are.&lt;img src=&quot;http://feeds.feedburner.com/~r/MemoirsOfABystander/~4/RoTFpdkLhko&quot; height=&quot;1&quot; width=&quot;1&quot;&gt;&lt;/img&gt;</description>
	<pubDate>Tue, 02 Mar 2010 18:48:54 +0000</pubDate>
</item>
<item>
	<title>Matthew Ueckerman: WS-WhatThe?</title>
	<guid isPermaLink="false">http://ueckerman.net/?p=93</guid>
	<link>http://ueckerman.net/2010/03/03/ws-whatthe/</link>
	<description>It used to be so simple – just code invocation via the web.  So I write this post as I recently had a wonder through the WS-* specifications to see if anything was actually of some use.</description>
	<pubDate>Tue, 02 Mar 2010 16:53:53 +0000</pubDate>
</item>
<item>
	<title>Matthew Ueckerman: SOA What and Why?</title>
	<guid isPermaLink="false">http://ueckerman.net/?p=86</guid>
	<link>http://ueckerman.net/2010/03/03/soa-what-and-why/</link>
	<description>This blog documents my initial experiences wading through the reference architecture and related explanations of SOA.  My intention is briefly summarize SOA, condense important terms used in the architecture and offers reasons why the architecture can be of some value.</description>
	<pubDate>Tue, 02 Mar 2010 15:31:43 +0000</pubDate>
</item>
<item>
	<title>Obie Fernandez: Great CS Program for Girls Needs Funding</title>
	<guid isPermaLink="false">tag:typepad.com,2003:post-6a00e54fdca911883301310f41252a970c</guid>
	<link>http://feedproxy.google.com/~r/obie/~3/peuJMZuVlkM/great-cs-program-for-girls-needs-funding.html</link>
	<description>&lt;div&gt;&lt;p&gt;Started in 1996, &lt;a href=&quot;http://www.cs.brown.edu/orgs/artemis/&quot; target=&quot;_blank&quot;&gt;Artemis&lt;/a&gt; is a nationally recognized outreach program to encourage girls from local public schools to pursue careers in Computer Science, and more broadly in science and engineering.&lt;/p&gt;

&lt;p&gt;From their website description:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;&lt;em&gt;The Artemis Project is a free, five-week summer day camp for rising 9th grade girls in the Providence area who are interested in learning about science and technology. Traditionally, it has been run by four undergraduate women from Brown University in connection with Brown's Computer Science Department. This year, Artemis is pleased to announce that we will additionally have a coordinator from Boston University.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;By teaching students computer skills, programming, and computer science concepts through engaging activities, the Artemis Project encourages young women to join the field of computer science. According to my friends in &lt;a href=&quot;http://www.devchix.com/&quot; target=&quot;_blank&quot;&gt;DevChix&lt;/a&gt;, early experience in computer programming is essential to stemming attrition rates among women in CS programs at the university level.&lt;/p&gt;
&lt;p&gt;So here's a great opportunity to help sustain a program that has been getting girls excited about CS for 15 years. Artemis needs to raise $25,000 to keep the program going this year. My company, Hashrocket, will be making a sizable donation. If you or your company also is able to donate, you can do one of the following things...&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;&lt;strong&gt;1. Send a check&lt;/strong&gt; made out to &quot;Department of Computer Science, Brown University, Artemis Program&quot; to:&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;&lt;span&gt;Amy Tarbox&lt;br&gt;&lt;/br&gt;Department of Computer Science, Brown University&lt;br&gt;&lt;/br&gt;Box 1910, 115 Waterman St.&lt;br&gt;&lt;/br&gt;Providence, RI 02912&lt;/span&gt;&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;&lt;strong&gt;2. Donate online&lt;/strong&gt; by going to &lt;a href=&quot;https://gifts.development.brown.edu/Brown/ChooseGifts.aspx&quot; target=&quot;_blank&quot;&gt;https://gifts.development.brown.edu/Brown/ChooseGifts.aspx&lt;/a&gt; and under the &quot;Other Current-Use Priorities&quot; section, fill in &quot;Artemis Program&quot;&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;For more information on potential sponsorship arrangements, contact Amy Tarbox: &lt;a href=&quot;mailto:abt@cs.brown.edu&quot;&gt;abt@cs.brown.edu&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~ff/obie?a=peuJMZuVlkM:ehM34Rr7vE0:yIl2AUoC8zA&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/obie?d=yIl2AUoC8zA&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/obie?a=peuJMZuVlkM:ehM34Rr7vE0:dnMXMwOfBR0&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/obie?d=dnMXMwOfBR0&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/obie?a=peuJMZuVlkM:ehM34Rr7vE0:RJU-JkLLmTY&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/obie?i=peuJMZuVlkM:ehM34Rr7vE0:RJU-JkLLmTY&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/obie?a=peuJMZuVlkM:ehM34Rr7vE0:F7zBnMyn0Lo&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/obie?i=peuJMZuVlkM:ehM34Rr7vE0:F7zBnMyn0Lo&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/obie?a=peuJMZuVlkM:ehM34Rr7vE0:V_sGLiPBpWU&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/obie?i=peuJMZuVlkM:ehM34Rr7vE0:V_sGLiPBpWU&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/obie?a=peuJMZuVlkM:ehM34Rr7vE0:qj6IDK7rITs&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/obie?d=qj6IDK7rITs&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
	<pubDate>Mon, 01 Mar 2010 19:37:35 +0000</pubDate>
</item>
<item>
	<title>Brian Oxley: Clever deployment: blue v. green</title>
	<guid isPermaLink="false">tag:blogger.com,1999:blog-5638372.post-3937589705964839210</guid>
	<link>http://binkley.blogspot.com/2010/03/clever-deployment-blue-v-green.html</link>
	<description>&lt;p&gt;Martin Fowler &lt;a href=&quot;http://martinfowler.com/bliki/BlueGreenDeployment.html&quot; title=&quot;MF Bliki: BlueGreenDeployment&quot;&gt;writes about blue-green deployment&lt;/a&gt;, a technique I will try out for my next production project.  With posts like these, Fowler shows why ThoughtWorks continues to turn out &lt;a href=&quot;http://blogs.thoughtworks.com/&quot;&gt;brilliant agilists&lt;/a&gt;.&lt;/p&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/tracker/5638372-3937589705964839210?l=binkley.blogspot.com&quot; alt=&quot;&quot; height=&quot;1&quot; width=&quot;1&quot;&gt;&lt;/img&gt;&lt;/div&gt;</description>
	<pubDate>Mon, 01 Mar 2010 15:15:35 +0000</pubDate>
	<author>binkley@alumni.rice.edu (binkley)</author>
</item>
<item>
	<title>Naresh Jain: Planning Agile Coach Camp India</title>
	<guid isPermaLink="false">http://blogs.agilefaqs.com/?p=1175</guid>
	<link>http://blogs.agilefaqs.com/2010/03/01/planning-agile-coach-camp-india/</link>
	<description>&lt;p&gt;At the &lt;a href=&quot;http://agileindia.org/agileindia2010&quot; target=&quot;_blank&quot;&gt;Agile India 2010 conference&lt;/a&gt;, there was a lot of interest for agile coaching in India.&lt;/p&gt;
&lt;p&gt;Today, in India, I believe we have many Agile coaches (internal and external, more internal coaches). If you are helping bring Agile/Lean/Light-Weight thinking into your company, you are playing the Agile coach role (you like it or not). You could be in the leadership role doing this or you could have taken the ownership and facilitating/influencing your team. While doing so, we all need a lot of help, advice and reassurance of our strategies. To facilitate this, help people network and to push the boundaries of Agile, in 2008, Deb and I created the first &lt;a href=&quot;http://agilecoachcamp.org/tiki-index.php?page=AgileCoachCamp2008&quot; target=&quot;_blank&quot;&gt;Agile Coach Camp in US&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;In the past I’ve considered doing something similar in India, but always felt we’ve not reached the point yet. Now (esp. after the agile india 2010 conference), I feel we might be at this point.&lt;/p&gt;
&lt;p&gt;So if you are interested in participating in a 2 day invitation only, all open-space based conference, over a weekend in March/April, inform me by filling out the following form:&lt;/p&gt;
&lt;p&gt;Loading…&lt;/p&gt;
&lt;p&gt;Also please vote for which city you would like to have the conference in:&lt;br&gt;&lt;/br&gt;
&lt;a style=&quot;text-decoration: none;&quot; href=&quot;http://www.objectplanet.com/opinio/&quot; class=&quot;OPP-powered-by&quot;&gt;
&lt;/a&gt;&lt;/p&gt;&lt;div style=&quot;font: 9px arial; color: gray;&quot;&gt;&lt;a style=&quot;text-decoration: none;&quot; href=&quot;http://www.objectplanet.com/opinio/&quot; class=&quot;OPP-powered-by&quot;&gt;online surveys&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;And what dates work best for you?&lt;br&gt;&lt;/br&gt;
&lt;a style=&quot;text-decoration: none;&quot; href=&quot;http://www.objectplanet.com/opinio/&quot; class=&quot;OPP-powered-by&quot;&gt;
&lt;/a&gt;&lt;/p&gt;&lt;div style=&quot;font: 9px arial; color: gray;&quot;&gt;&lt;a style=&quot;text-decoration: none;&quot; href=&quot;http://www.objectplanet.com/opinio/&quot; class=&quot;OPP-powered-by&quot;&gt;customer survey&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;</description>
	<pubDate>Mon, 01 Mar 2010 13:35:13 +0000</pubDate>
</item>
<item>
	<title>Griffin Caprio: Links for 2010-02-28 [del.icio.us]</title>
	<guid isPermaLink="false">http://del.icio.us/gcaprio#2010-02-28</guid>
	<link>http://feedproxy.google.com/~r/MemoirsOfABystander/~3/tkiZt9GOjwY/gcaprio</link>
	<description>&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://witandwhistle.com/?p=1737&quot;&gt;Homemade Granola Bars « Wit &amp;amp; Whistle&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/MemoirsOfABystander/~4/tkiZt9GOjwY&quot; height=&quot;1&quot; width=&quot;1&quot;&gt;&lt;/img&gt;</description>
	<pubDate>Mon, 01 Mar 2010 08:00:00 +0000</pubDate>
</item>
<item>
	<title>Griffin Caprio: Small Team Lean</title>
	<guid isPermaLink="false">tag:typepad.com,2003:post-6a00d8341c09c053ef01310f4a847a970c</guid>
	<link>http://feedproxy.google.com/~r/MemoirsOfABystander/~3/9vyf8_rxsQs/small-team-lean.html</link>
	<description>I've become more and more interested in lean software development over the past 5 years.  Seeing it as the next logical step to typical agile development processes, I've started to refine my approach to software development.  If you consider agile to be the 'how' of developing software, lean could almost be considered the 'why' of development.
&lt;p&gt;&lt;/p&gt;
Unfortunately, one can't get far into reading about lean before you recognize a key property of its application: large teams.  Most of the work in lean is centered on multiple multi-person teams trying to  work in unison to build and release a product.  Something that doesn't really apply to startups, especially bootstrapped ones.  Knowing how productive lean can make a team, I'm keen on applying it to 1530.
&lt;p&gt;&lt;/p&gt;
So, as I've spent the last 1.5 years building 1530, I've tried to apply lean principles not only to some client work that we've been doing, but also to the construction of our own products.  As the months progress, I've started to come up with small optimizations or best practices for applying lean to a small companies and teams.  I'm calling this &quot;Small Team Lean&quot;.  I'll be posting these small tidbits on this blog.  I would welcome some feedback and/or criticism.&lt;img src=&quot;http://feeds.feedburner.com/~r/MemoirsOfABystander/~4/9vyf8_rxsQs&quot; height=&quot;1&quot; width=&quot;1&quot;&gt;&lt;/img&gt;</description>
	<pubDate>Mon, 01 Mar 2010 04:02:54 +0000</pubDate>
</item>
<item>
	<title>Adewale Oshineye: 37: Intimacy doesn't scale</title>
	<guid isPermaLink="false">http://www.blogger.com/feeds/3804478417938445896/posts/default/1492918911954924809</guid>
	<link>http://www.advogato.org/person/ade/diary.html?start=35</link>
	<description>&lt;a href=&quot;http://www.flickr.com/photos/adewale_oshineye/4392861923/&quot; title=&quot;37: Intimacy doesn't scale by adewale_oshineye, on Flickr&quot;&gt;&lt;img src=&quot;http://farm5.static.flickr.com/4071/4392861923_b30593ba48.jpg&quot; alt=&quot;37: Intimacy doesn't scale&quot; height=&quot;500&quot; width=&quot;333&quot;&gt;&lt;/img&gt;&lt;/a&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/tracker/3804478417938445896-1492918911954924809?l=blog.oshineye.com&quot; alt=&quot;&quot; height=&quot;1&quot; width=&quot;1&quot;&gt;&lt;/img&gt;&lt;/div&gt;</description>
	<pubDate>Mon, 01 Mar 2010 03:15:27 +0000</pubDate>
</item>
<item>
	<title>Ivan Moore: Tools and Environments</title>
	<guid isPermaLink="false">tag:blogger.com,1999:blog-4084458860381242516.post-7796343587713190233</guid>
	<link>http://puttingtheteaintoteam.blogspot.com/2010/02/tools-and-environments.html</link>
	<description>&lt;a href=&quot;http://www.m3p.co.uk/&quot;&gt;Steve Freeman&lt;/a&gt; and I are teaching a course at &lt;a href=&quot;http://www.ucl.ac.uk/&quot;&gt;UCL&lt;/a&gt; called &quot;Tools and Environments&quot;.&lt;br&gt;&lt;/br&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;The course we wish we’d had in college, only we didn’t know it at the time.&lt;/span&gt;&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;We cover subjects such as source control systems, automated builds, automated testing and continuous integration.&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;In preparing for the course, I've been reminded of how few books there are which we can use as a &quot;course text&quot;. There are plenty of books for specific tools (e.g. Ant) once you know that you need those tools, but few books which explain the sorts of things that you need for real software development projects, and why you need them.&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;The book we're using for our &quot;course text&quot; is &lt;a href=&quot;http://www.amazon.co.uk/Practical-Development-Environments-Matthew-Doar/dp/0596007965&quot;&gt;Practical Development Environments&lt;/a&gt; (and we'll also be recommending &lt;a href=&quot;http://www.amazon.co.uk/Continuous-Integration-Improving-Software-Signature/dp/0321336380&quot;&gt;Continuous Integration&lt;/a&gt; as that also covers much of the material of the course).&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;If you have other recommendations please add a comment!&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;Copyright © 2009 Ivan Moore&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/tracker/4084458860381242516-7796343587713190233?l=puttingtheteaintoteam.blogspot.com&quot; alt=&quot;&quot; height=&quot;1&quot; width=&quot;1&quot;&gt;&lt;/img&gt;&lt;/div&gt;</description>
	<pubDate>Sat, 27 Feb 2010 12:06:24 +0000</pubDate>
	<author>noreply@blogger.com (Ivan Moore)</author>
</item>
<item>
	<title>Griffin Caprio: Links for 2010-02-26 [del.icio.us]</title>
	<guid isPermaLink="false">http://del.icio.us/gcaprio#2010-02-26</guid>
	<link>http://feedproxy.google.com/~r/MemoirsOfABystander/~3/F2hWMWr5JpI/gcaprio</link>
	<description>&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://founderdating.com/&quot;&gt;Founder Dating&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/MemoirsOfABystander/~4/F2hWMWr5JpI&quot; height=&quot;1&quot; width=&quot;1&quot;&gt;&lt;/img&gt;</description>
	<pubDate>Sat, 27 Feb 2010 08:00:00 +0000</pubDate>
</item>
<item>
	<title>Griffin Caprio: Links for 2010-02-25 [del.icio.us]</title>
	<guid isPermaLink="false">http://del.icio.us/gcaprio#2010-02-25</guid>
	<link>http://feedproxy.google.com/~r/MemoirsOfABystander/~3/kMbCdMo_-HA/gcaprio</link>
	<description>&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://djangoadvent.com/1.2/scaling-django/&quot;&gt;Django Advent - Scaling Django (Feb 25, 2010)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://github.com/batiste/django-continuous-integration&quot;&gt;batiste's django-continuous-integration at master - GitHub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://bitbucket.org/Josh/django-twitter-backend/&quot;&gt;Josh / django-twitter-backend / overview — bitbucket.org&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/MemoirsOfABystander/~4/kMbCdMo_-HA&quot; height=&quot;1&quot; width=&quot;1&quot;&gt;&lt;/img&gt;</description>
	<pubDate>Fri, 26 Feb 2010 08:00:00 +0000</pubDate>
</item>
<item>
	<title>Philippe Hanrigou: SystemTimer 1.2 Release</title>
	<guid isPermaLink="false">http://ph7spot.com/blog/system-timer-1-2-release</guid>
	<link>http://feeds.ph7spot.com/~r/ph7/~3/7I4UiiWZJd4/system-timer-1-2-release</link>
	<description>&lt;p&gt;I have just published &lt;a href=&quot;http://ph7spot.com/musings/system-timer&quot;&gt;&lt;code&gt;SystemTimer&lt;/code&gt;&lt;/a&gt; 1.2 release on &lt;a href=&quot;http://gemcutter.org&quot;&gt;Gemcutter&lt;/a&gt;. This new version provides support for custom timeout exceptions, will let you specify sub-second timeouts and plays nicer with Ruby interpreters compiled with &lt;code&gt;-disable-pthreads&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Install &lt;code&gt;SystemTimer&lt;/code&gt; latest version with:&lt;/p&gt;

&lt;pre&gt;&lt;code lang=&quot;sh&quot; class=&quot;sh&quot;&gt;sudo gem install SystemTimer&lt;/code&gt;&lt;/pre&gt;

&lt;h3 id=&quot;support_for_custom_timeout_exceptions&quot; class=&quot;header&quot;&gt;Support for Custom Timeout Exceptions&lt;/h3&gt;

&lt;p&gt;This version adds support for custom timeout exceptions. This is useful when you want to avoid interference with other libraries already using/catching &lt;code&gt;Timeout::Error&lt;/code&gt; (e.g. &lt;code&gt;Net::HTTP&lt;/code&gt;)&lt;/p&gt;

&lt;pre&gt;&lt;code lang=&quot;ruby&quot; class=&quot;ruby&quot;&gt;&lt;span class=&quot;ident&quot;&gt;require&lt;/span&gt; &lt;span class=&quot;punct&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;string&quot;&gt;system_timer&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;'&lt;/span&gt;

&lt;span class=&quot;keyword&quot;&gt;begin&lt;/span&gt;
  &lt;span class=&quot;constant&quot;&gt;SystemTimer&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;ident&quot;&gt;timeout_after&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;number&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;constant&quot;&gt;MyCustomTimeoutException&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;keyword&quot;&gt;do&lt;/span&gt;
    &lt;span class=&quot;comment&quot;&gt;# Something that should be interrupted if it &lt;/span&gt;
    &lt;span class=&quot;comment&quot;&gt;# takes too much time...  even if blocked on &lt;/span&gt;
    &lt;span class=&quot;comment&quot;&gt;# a system call!&lt;/span&gt;
  &lt;span class=&quot;keyword&quot;&gt;end&lt;/span&gt;
&lt;span class=&quot;keyword&quot;&gt;rescue&lt;/span&gt; &lt;span class=&quot;constant&quot;&gt;MyCustomTimeoutException&lt;/span&gt; &lt;span class=&quot;punct&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;ident&quot;&gt;e&lt;/span&gt;
  &lt;span class=&quot;comment&quot;&gt;# Recovering strategy&lt;/span&gt;
&lt;span class=&quot;keyword&quot;&gt;end&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;This patch was kindly contributed by &lt;a href=&quot;http://github.com/runix&quot;&gt;runix&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;subsecond_timeouts&quot; class=&quot;header&quot;&gt;Sub-second Timeouts&lt;/h3&gt;

&lt;p&gt;SystemTimer is going through too many layers to be able to reliably guarantee a sub-second timeout on all platforms, so – in the original SystemTimer implementation – the timeout had to be expressed as a number of seconds.&lt;/p&gt;

&lt;p&gt;You can now specify timeouts as a fraction of a second and SystemTimer will do its best to reduce the timeout accordingly. e.g.&lt;/p&gt;

&lt;pre&gt;&lt;code lang=&quot;ruby&quot; class=&quot;ruby&quot;&gt;&lt;span class=&quot;constant&quot;&gt;SystemTimer&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;ident&quot;&gt;timeout_after&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;number&quot;&gt;0.5&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;keyword&quot;&gt;do&lt;/span&gt; 
  &lt;span class=&quot;comment&quot;&gt;# timeout after 500ms&lt;/span&gt;
&lt;span class=&quot;keyword&quot;&gt;end&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Note that for stability reasons SystemTimer will not allow you to go below 200ms, e.g.&lt;/p&gt;

&lt;pre&gt;&lt;code lang=&quot;ruby&quot; class=&quot;ruby&quot;&gt;&lt;span class=&quot;constant&quot;&gt;SystemTimer&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;ident&quot;&gt;timeout_after&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;number&quot;&gt;0.01&lt;/span&gt;&lt;span class=&quot;punct&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;keyword&quot;&gt;do&lt;/span&gt; 
  &lt;span class=&quot;comment&quot;&gt;# timeout at best after (uncompressable) 200ms &lt;/span&gt;
  &lt;span class=&quot;comment&quot;&gt;# even if 10ms is requested&lt;/span&gt;
&lt;span class=&quot;keyword&quot;&gt;end&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;This feature is based on an idea and original contribution by &lt;a href=&quot;http://kpumuk.info/&quot;&gt;Dmytro Shteflyuk&lt;/a&gt; (of &lt;a href=&quot;http://scribd.com&quot;&gt;Scribd&lt;/a&gt; fame).&lt;/p&gt;

&lt;h3 id=&quot;better_compatibility_with_&quot; class=&quot;header&quot;&gt;Better Compatibility with &lt;code&gt;-disable-pthreads&lt;/code&gt;&lt;/h3&gt;

&lt;p&gt;Changed SystemTimer implementation from using &lt;code&gt;Mutex&lt;/code&gt; to &lt;code&gt;Monitor&lt;/code&gt;. &lt;code&gt;Mutex&lt;/code&gt; causes thread join errors when Ruby is compiled with &lt;code&gt;-disable-pthreads&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Thanks again to &lt;a href=&quot;http://kpumuk.info/&quot;&gt;Dmytro Shteflyuk&lt;/a&gt; who contributed this patch.&lt;/p&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.ph7spot.com/~ff/ph7?a=7I4UiiWZJd4:zZvaJk4zuDM:yIl2AUoC8zA&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/ph7?d=yIl2AUoC8zA&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/ph7/~4/7I4UiiWZJd4&quot; height=&quot;1&quot; width=&quot;1&quot;&gt;&lt;/img&gt;</description>
	<pubDate>Fri, 26 Feb 2010 07:59:17 +0000</pubDate>
	<author>http://ph7spot.com/about/contact_me (Philippe Hanrigou)</author>
</item>
<item>
	<title>Paul Holser: Reflective method lookup, almost ten years on</title>
	<guid isPermaLink="true">http://cleveralias.blogs.com/thought_spearmints/2010/02/reflective-method-lookup-almost-ten-years-on.html</guid>
	<link>http://cleveralias.blogs.com/thought_spearmints/2010/02/reflective-method-lookup-almost-ten-years-on.html</link>
	<description>&lt;p&gt;Nearly ten years ago, I wrote an &lt;a href=&quot;http://adtmag.com/articles/2001/07/24/limitations-of-reflective-method-lookup.aspx&quot;&gt;article&lt;/a&gt; exploring how to find a method on a Java class using reflection, given the class's name, the method name, and an array of arguments, whose parameter types would be most compatible with the runtime types of the actual arguments. This might be handy for, say, simple scripting languages sitting atop Java.&lt;/p&gt;

&lt;p&gt;I sure wish someone would have told me about &lt;a href=&quot;http://java.sun.com/javase/6/docs/api/java/beans/Expression.html&quot;&gt;java.beans.Expression&lt;/a&gt; and &lt;a href=&quot;http://java.sun.com/javase/6/docs/api/java/beans/Statement.html&quot;&gt;java.beans.Statement&lt;/a&gt; when JDK 1.4 came out (2002?). Looks like it handles the exact kind of method/constructor lookup I wrote about. Plus, its ambiguity resolution is almost certainly more &lt;a href=&quot;http://java.sun.com/docs/books/jls/&quot;&gt;JLS&lt;/a&gt;-accurate.&lt;/p&gt;

&lt;p&gt;The Expression/Statement facility doesn't seem to support primitive widening conversions:&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;&lt;pre&gt;&lt;code&gt;import java.beans.Expression;

import org.junit.Test;
import static org.junit.Assert.*;

public class BeansExpressionTest {
    public static class Foo {
        public String bar(int i) {
            return &quot;int&quot;;
        }

        public String bar(byte b) {
            return &quot;byte&quot;;
        }
    }

    @Test
    public void shouldWidenPrimitives() throws Exception {
        Expression expr = new Expression(new Foo(), &quot;bar&quot;,
            new Object[] { Short.valueOf(&quot;3&quot;) });

        assertEquals(&quot;int&quot;, expr.getValue());
    }
}&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;code&gt;shouldWidenPrimitives()&lt;/code&gt; raises &lt;code&gt;NoSuchMethodException&lt;/code&gt;. Oversight on Sun's part? Misunderstanding on my part regarding how such a call should be resolved? If I already have a handle on &lt;code&gt;Foo#bar(int)&lt;/code&gt;, the reflective call would widen a &lt;code&gt;Short&lt;/code&gt; argument.&lt;/p&gt;</description>
	<pubDate>Thu, 25 Feb 2010 22:56:08 +0000</pubDate>
</item>
<item>
	<title>Elizabeth Keogh: WiPFlash, or How To Do Microsoft UI Automation</title>
	<guid isPermaLink="false">http://lizkeogh.com/?p=571</guid>
	<link>http://lizkeogh.com/2010/02/25/wipflash-or-how-to-do-microsoft-ui-automation/</link>
	<description>&lt;p&gt;I’ve kicked off another open-source project, &lt;a href=&quot;http://code.google.com/p/wipflash&quot;&gt;WiPFlash&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This is a little automation framework with a number of goals:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;To let me learn how to do .NET UI Automation&lt;/li&gt;
&lt;li&gt;To fix a couple of things that &lt;a href=&quot;http://code.google.com/p/white-project&quot;&gt;White&lt;/a&gt; doesn’t do yet&lt;/li&gt;
&lt;li&gt;To automate scenarios as fast as possible&lt;/li&gt;
&lt;li&gt;To provide examples that anyone else can look at, if you want to do the same thing.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The project is written in C#, and is exclusively focused on WPF Windows GUIs. Currently WiPFlash can:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Launch or reuse an existing application or window&lt;/li&gt;
&lt;li&gt;Enter text in TextBox, RichTextBox, and editable ComboBox&lt;/li&gt;
&lt;li&gt;Select values and retrieve selection in ListBox or ComboBox&lt;/li&gt;
&lt;li&gt;Retrieve values from RichTextBox (and its children), TextBox, TextBlock, editable ComboBox&lt;/li&gt;
&lt;li&gt;Click buttons.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;It also provides an example of a Prism application, complete with MVVM paradigm, command binding, dependency injection using Unity, etc.&lt;/p&gt;
&lt;p&gt;Please feel free to try it out and add any requests and/or issues, bearing in mind that the purpose of the framework is not to replace &lt;a href=&quot;http://code.google.com/p/white-project&quot;&gt;White&lt;/a&gt;. For instance, I have no plans at this time to support drag-and-drop or mouse and keyboard input, nor am I going to respond to bugs with WiPFlash not working on WinForms, SWT, etc.&lt;/p&gt;
&lt;p&gt;If you’re looking for something similar for Java and Swing, check out my other automation framework, &lt;a href=&quot;http://code.google.com/p/tyburn&quot;&gt;Tyburn&lt;/a&gt;.&lt;/p&gt;</description>
	<pubDate>Thu, 25 Feb 2010 11:44:56 +0000</pubDate>
</item>
<item>
	<title>Adewale Oshineye: 36: A fine and private place</title>
	<guid isPermaLink="false">http://www.blogger.com/feeds/3804478417938445896/posts/default/397871997120633212</guid>
	<link>http://www.advogato.org/person/ade/diary.html?start=34</link>
	<description>&lt;a href=&quot;http://www.flickr.com/photos/adewale_oshineye/4374202459/&quot; title=&quot;36: A fine and private place by adewale_oshineye, on Flickr&quot;&gt;&lt;img src=&quot;http://farm3.static.flickr.com/2767/4374202459_dae0131a5f.jpg&quot; alt=&quot;36: A fine and private place&quot; height=&quot;500&quot; width=&quot;333&quot;&gt;&lt;/img&gt;&lt;/a&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/tracker/3804478417938445896-397871997120633212?l=blog.oshineye.com&quot; alt=&quot;&quot; height=&quot;1&quot; width=&quot;1&quot;&gt;&lt;/img&gt;&lt;/div&gt;</description>
	<pubDate>Thu, 25 Feb 2010 11:23:59 +0000</pubDate>
</item>

</channel>
</rss>
