<?xml version="1.0"?>
<rss version="2.0">
<channel>
	<title>Planet Apache</title>
	<link>http://planet.apache.org/committers/</link>
	<language>en</language>

<item>
	<title>Matt Raible: A Spectacular Trip to Stockholm and Madrid</title>
	<guid isPermaLink="true">http://raibledesigns.com/rd/entry/a_spectacular_trip_to_stockholm</guid>
	<link>http://raibledesigns.com/rd/entry/a_spectacular_trip_to_stockholm</link>
	<description>When I travel in the winter, it's usually to ski resorts or client sites, not to conferences. However, when the &lt;a href=&quot;http://www.linkedin.com/in/mattiask&quot;&gt;Mattias Karlsson&lt;/a&gt; invited me to speak at Jfokus, I jumped at the opportunity. That same day in Antwerp, &lt;a href=&quot;http://www.linkedin.com/in/salmar&quot;&gt;Sergi Almar&lt;/a&gt; asked me to speak at Spring I/O. Turns out, both conferences were in the same week so we worked out the logistics of traveling to Stockholm and Madrid and got ready for a spectacular trip.&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Trish and I started our journey two weeks ago by flying over the top of world, connecting through Seattle and Reykjavik (Iceland) before arriving in Stockholm on Monday afternoon. We took the bullet train from the airport to downtown and walked a couple blocks to the conference venue/hotel. We checked in, relaxed, then met a bunch of folks a few hours later to go to the speaker's dinner at &lt;a href=&quot;http://f12.se/&quot;&gt;F12&lt;/a&gt;. 
  &lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;
  &lt;a href=&quot;http://farm8.staticflickr.com/7045/6881171867_09636a59a7.jpg&quot; rel=&quot;lightbox[stockholmandmadrid]&quot; rev=&quot;http://www.flickr.com/photos/mcginityphoto/6881171867/&quot; title=&quot;James Ward and Enno Runne by Trish McGinity&quot;&gt;&lt;img alt=&quot;James Ward and Enno Runne by Trish McGinity&quot; height=&quot;67&quot; src=&quot;http://farm8.staticflickr.com/7045/6881171867_09636a59a7_t.jpg&quot; style=&quot;border: 1px solid black;&quot; width=&quot;100&quot; /&gt;&lt;/a&gt;

&lt;a href=&quot;http://farm8.staticflickr.com/7056/6881180979_1372afcaa0.jpg&quot; rel=&quot;lightbox[stockholmandmadrid]&quot; rev=&quot;http://www.flickr.com/photos/mcginityphoto/6881180979/&quot; title=&quot;Juergen Hoeller&quot;&gt;&lt;img alt=&quot;Juergen Hoeller&quot; height=&quot;67&quot; src=&quot;http://farm8.staticflickr.com/7056/6881180979_1372afcaa0_t.jpg&quot; style=&quot;border: 1px solid black; margin-left: 10px;&quot; width=&quot;100&quot; /&gt;&lt;/a&gt;

&lt;a href=&quot;http://farm8.staticflickr.com/7195/6881185325_53b85808b8.jpg&quot; rel=&quot;lightbox[stockholmandmadrid]&quot; rev=&quot;http://www.flickr.com/photos/mcginityphoto/6881185325/&quot; title=&quot;Speakers Dinner Singers by Trish McGinity&quot;&gt;&lt;img alt=&quot;Speakers Dinner Singers&quot; height=&quot;67&quot; src=&quot;http://farm8.staticflickr.com/7195/6881185325_53b85808b8_t.jpg&quot; style=&quot;border: 1px solid black; margin-left: 10px;&quot; width=&quot;100&quot; /&gt;&lt;/a&gt;

&lt;a href=&quot;http://farm8.staticflickr.com/7176/6881187931_f3635ec67c.jpg&quot; rel=&quot;lightbox[stockholmandmadrid]&quot; rev=&quot;http://www.flickr.com/photos/mcginityphoto/6881187931/&quot; title=&quot;Matt Raible James Ward Rickard Oberg Jfokus speakers dinner by Trish McGinity&quot;&gt;&lt;img alt=&quot;Matt Raible James Ward Rickard Oberg Jfokus speakers dinner&quot; height=&quot;67&quot; src=&quot;http://farm8.staticflickr.com/7176/6881187931_f3635ec67c_t.jpg&quot; style=&quot;border: 1px solid black; margin-left: 10px;&quot; width=&quot;100&quot; /&gt;&lt;/a&gt;

&lt;/p&gt;
&lt;p&gt;
On Tuesday, I attended quite a few sessions at the conference, took and nap and delivered my Comparing JVM Web Frameworks talk at 17:00. The Atlassian Bar opened after my talk concluded and we enjoyed some tasty beverages while talking tech with new and old friends. James Ward's Cloud BOF started at 8 and we enjoyed the beer and banter before heading out to the local Sports Bar. We scared the bar's proprietors with our hunger and thirst at such a late hour, but they served us anyway. &lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;
&lt;a href=&quot;http://farm8.staticflickr.com/7042/6881201229_e8944be043.jpg&quot; rel=&quot;lightbox[stockholmandmadrid]&quot; rev=&quot;http://www.flickr.com/photos/mcginityphoto/6881201229/&quot; title=&quot;John Wilander Jfokus 2012 by Trish McGinity&quot;&gt;&lt;img alt=&quot;John Wilander Jfokus 2012&quot; height=&quot;67&quot; src=&quot;http://farm8.staticflickr.com/7042/6881201229_e8944be043_t.jpg&quot; style=&quot;border: 1px solid black;&quot; width=&quot;100&quot; /&gt;&lt;/a&gt;

&lt;a href=&quot;http://farm8.staticflickr.com/7191/6881213521_f7d9a25890.jpg&quot; rel=&quot;lightbox[stockholmandmadrid]&quot; rev=&quot;http://www.flickr.com/photos/mcginityphoto/6881213521/&quot; title=&quot;Thanks for the beer Atlassian!&quot;&gt;&lt;img alt=&quot;Thanks for the beer Atlassian!&quot; height=&quot;67&quot; src=&quot;http://farm8.staticflickr.com/7191/6881213521_f7d9a25890_t.jpg&quot; style=&quot;border: 1px solid black; margin-left: 10px;&quot; width=&quot;100&quot; /&gt;&lt;/a&gt;

&lt;a href=&quot;http://farm8.staticflickr.com/7063/6881237511_93613abb62.jpg&quot; rel=&quot;lightbox[stockholmandmadrid]&quot; rev=&quot;http://www.flickr.com/photos/mcginityphoto/6881237511/&quot; title=&quot;Cloud Conversations Heroku James Ward by Trish McGinity&quot;&gt;&lt;img alt=&quot;Cloud Conversations Heroku James Ward&quot; height=&quot;67&quot; src=&quot;http://farm8.staticflickr.com/7063/6881237511_93613abb62_t.jpg&quot; style=&quot;border: 1px solid black; margin-left: 10px;&quot; width=&quot;100&quot; /&gt;&lt;/a&gt;

&lt;a href=&quot;http://farm8.staticflickr.com/7048/6910599347_2d6225a045.jpg&quot; rel=&quot;lightbox[stockholmandmadrid]&quot; rev=&quot;http://www.flickr.com/photos/mraible/6910599347/&quot; title=&quot;After BOF Dinner Crew&quot;&gt;&lt;img alt=&quot;After BOF Dinner Crew&quot; height=&quot;67&quot; src=&quot;http://farm8.staticflickr.com/7048/6910599347_2d6225a045_t.jpg&quot; style=&quot;border: 1px solid black; margin-left: 10px;&quot; width=&quot;100&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;On Wednesday, I got woken up by the hotel's housekeeping at 9:52 and I had to be on stage at 10:10. I got dressed and downstairs as fast as I could and put the final touches on my presentation as people were filing in the room. I opened my talk with, &quot;You ever had one of those morning where the housekeeping woke you up and you had to be on stage 10 minutes later?&quot;&lt;/p&gt;
&lt;p&gt;The conference ended that day, but Trish and I extended it a bit by going to the &lt;a href=&quot;http://www.meetup.com/Scala-Stockholm/&quot;&gt;Scala Stockholm Meetup&lt;/a&gt; and walking around the city to capture some night photos. I wrote up a &lt;a href=&quot;http://raibledesigns.com/rd/entry/comparing_web_frameworks_and_html5&quot;&gt;blog post about my presentations and Jfokus&lt;/a&gt; the next morning and Trish posted both her &lt;a href=&quot;http://www.flickr.com/photos/mcginityphoto/sets/72157629439085261/&quot;&gt;Jfokus&lt;/a&gt; and &lt;a href=&quot;http://www.flickr.com/photos/mcginityphoto/sets/72157629439076533&quot;&gt;Stockholm&lt;/a&gt; pictures to Flickr. Below are some of my favorite pictures of Sweden. 
&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;

&lt;a href=&quot;http://farm8.staticflickr.com/7194/6800810982_c1a6fdb9ab.jpg&quot; rel=&quot;lightbox[stockholmandmadrid]&quot; rev=&quot;http://www.flickr.com/photos/mcginityphoto/6800810982&quot; title=&quot;Stockholm bike along rail by Trish McGinity&quot;&gt;&lt;img alt=&quot;Stockholm bike along rail&quot; height=&quot;332&quot; src=&quot;http://farm8.staticflickr.com/7194/6800810982_c1a6fdb9ab.jpg&quot; style=&quot;border: 1px solid black;&quot; width=&quot;500&quot; /&gt;&lt;/a&gt;

&lt;/p&gt;

&lt;table style=&quot;margin: 0 auto 10px auto;&quot;&gt;
  &lt;tbody&gt;&lt;tr&gt;
    &lt;td&gt;
  &lt;a href=&quot;http://farm8.staticflickr.com/7044/6777947302_85b37f969f.jpg&quot; rel=&quot;lightbox[stockholmandmadrid]&quot; rev=&quot;http://www.flickr.com/photos/mcginityphoto/6777947302/&quot; title=&quot;Storkyrkan Saint Nicolaus Church Stockholm by Trish McGinity&quot;&gt;&lt;img alt=&quot;Storkyrkan Saint Nicolaus Church Stockholm&quot; height=&quot;240&quot; src=&quot;http://farm8.staticflickr.com/7044/6777947302_85b37f969f_m.jpg&quot; style=&quot;border: 1px solid black; margin-left: 15px;&quot; width=&quot;159&quot; /&gt;&lt;/a&gt;
  &lt;/td&gt;
  &lt;td style=&quot;text-align: center;&quot;&gt;

&lt;a href=&quot;http://farm8.staticflickr.com/7190/6777958106_258dfc3fb1.jpg&quot; rel=&quot;lightbox[stockholmandmadrid]&quot; rev=&quot;http://www.flickr.com/photos/mcginityphoto/6777958106/&quot; title=&quot;Stockholm Town Hall by Trish McGinity&quot;&gt;&lt;img alt=&quot;Stockholm Town Hall&quot; height=&quot;66&quot; src=&quot;http://farm8.staticflickr.com/7190/6777958106_258dfc3fb1_t.jpg&quot; style=&quot;border: 1px solid black;&quot; width=&quot;100&quot; /&gt;&lt;/a&gt;&lt;br /&gt;

&lt;a href=&quot;http://farm8.staticflickr.com/7205/6777957232_b4073470d3.jpg&quot; rel=&quot;lightbox[stockholmandmadrid]&quot; rev=&quot;http://www.flickr.com/photos/mcginityphoto/6777957232/&quot; title=&quot;Stockholm Evening by Trish McGinity&quot;&gt;&lt;img alt=&quot;Stockholm Evening&quot; height=&quot;66&quot; src=&quot;http://farm8.staticflickr.com/7205/6777957232_b4073470d3_t.jpg&quot; style=&quot;margin-top: 17px; border: 1px solid black;&quot; width=&quot;100&quot; /&gt;&lt;/a&gt;&lt;br /&gt;

&lt;a href=&quot;http://farm8.staticflickr.com/7183/6924072343_7198dfb4ef.jpg&quot; rel=&quot;lightbox[stockholmandmadrid]&quot; rev=&quot;http://www.flickr.com/photos/mcginityphoto/6924072343/&quot; title=&quot;Stockholm Lion by Trish McGinity&quot;&gt;&lt;img alt=&quot;Stockholm Lion&quot; height=&quot;67&quot; src=&quot;http://farm8.staticflickr.com/7183/6924072343_7198dfb4ef_t.jpg&quot; style=&quot;margin-top: 17px; border: 1px solid black;&quot; width=&quot;100&quot; /&gt;&lt;/a&gt;

&lt;/td&gt;
&lt;td style=&quot;text-align: right;&quot;&gt;
&lt;a href=&quot;http://farm8.staticflickr.com/7048/6777944990_0858dedd9a.jpg&quot; rel=&quot;lightbox[stockholmandmadrid]&quot; rev=&quot;http://www.flickr.com/photos/mcginityphoto/6777944990/&quot; title=&quot;Riddenholm Church by Trish McGinity&quot;&gt;&lt;img alt=&quot;Riddenholm Church&quot; height=&quot;240&quot; src=&quot;http://farm8.staticflickr.com/7048/6777944990_0858dedd9a_m.jpg&quot; style=&quot;border: 1px solid black; margin-right: 15px;&quot; width=&quot;159&quot; /&gt;&lt;/a&gt;

&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;3&quot;&gt;
&lt;a href=&quot;http://farm8.staticflickr.com/7177/6924066213_9c3c1c802c.jpg&quot; rel=&quot;lightbox[stockholmandmadrid]&quot; rev=&quot;http://www.flickr.com/photos/mcginityphoto/6924066213/&quot; title=&quot;Stockholm View by Trish McGinity&quot;&gt;&lt;img alt=&quot;Stockholm View&quot; height=&quot;333&quot; src=&quot;http://farm8.staticflickr.com/7177/6924066213_9c3c1c802c.jpg&quot; style=&quot;margin-top: 10px; border: 1px solid black;&quot; width=&quot;500&quot; /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;
On Thursday, we traveled to Madrid for Spring I/O. We arrived at sunset and met up with &lt;a href=&quot;http://www.joshlong.com/jl/blogPost/my_trip_to_jfokus_vaadin_dev_day_and_spring_io_with_my_dad.html&quot;&gt;Josh Long and his Dad&lt;/a&gt; for a ride to our hotel. Trish went to high school in Puerto Rico and got to show of her Spanish skills when she helped the driver find the hotel. I spoke on Friday morning and we spent the rest of the weekend taking photos and enjoying Carnival. We had a &lt;a href=&quot;http://www.tripadvisor.com/Hotel_Review-g187514-d228509-Reviews-Vincci_Capitol_Hotel-Madrid.html&quot;&gt;great hotel&lt;/a&gt; in the heart of Madrid and could walk to almost all the historic sites. 
&lt;/p&gt;
&lt;p&gt;It was great seeing Trish in Madrid. Her Spanish was excellent and I felt like I had a personal tour guide the whole time. Her pictures show the weather was beautiful and the sites, amazing.&lt;/p&gt; 

&lt;p style=&quot;text-align: center;&quot;&gt;
&lt;a href=&quot;http://farm8.staticflickr.com/7051/6924006159_dde4b8e04d.jpg&quot; rel=&quot;lightbox[stockholmandmadrid]&quot; rev=&quot;http://www.flickr.com/photos/mcginityphoto/6924006159/&quot; title=&quot;Templo de Debod by Trish McGinity&quot;&gt;&lt;img alt=&quot;Templo de Debod&quot; height=&quot;333&quot; src=&quot;http://farm8.staticflickr.com/7051/6924006159_dde4b8e04d.jpg&quot; style=&quot;border: 1px solid black;&quot; width=&quot;500&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;
&lt;a href=&quot;http://farm8.staticflickr.com/7197/6924014647_e8b71ff650.jpg&quot; rel=&quot;lightbox[stockholmandmadrid]&quot; rev=&quot;http://www.flickr.com/photos/mcginityphoto/6924014647/&quot; title=&quot;Iglesia San Gines by Trish McGinity&quot;&gt;&lt;img alt=&quot;Iglesia San Gines&quot; height=&quot;160&quot; src=&quot;http://farm8.staticflickr.com/7197/6924014647_e8b71ff650_m.jpg&quot; style=&quot;border: 1px solid black;&quot; width=&quot;240&quot; /&gt;&lt;/a&gt;

&lt;a href=&quot;http://farm8.staticflickr.com/7044/6777891952_b13bb78276.jpg&quot; rel=&quot;lightbox[stockholmandmadrid]&quot; rev=&quot;http://www.flickr.com/photos/mcginityphoto/6777891952/&quot; title=&quot;Palace Real by Trish McGinity&quot;&gt;&lt;img alt=&quot;Palace Real .jpg&quot; height=&quot;160&quot; src=&quot;http://farm8.staticflickr.com/7044/6777891952_b13bb78276_m.jpg&quot; style=&quot;margin-left: 10px; border: 1px solid black;&quot; width=&quot;240&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;
&lt;a href=&quot;http://farm8.staticflickr.com/7210/6777901942_e55251409c.jpg&quot; rel=&quot;lightbox[stockholmandmadrid]&quot; rev=&quot;http://www.flickr.com/photos/mcginityphoto/6777901942/&quot; title=&quot;Plaza Mayor Madrid by Trish McGinity&quot;&gt;&lt;img alt=&quot;Plaza Mayor Madrid&quot; height=&quot;159&quot; src=&quot;http://farm8.staticflickr.com/7210/6777901942_e55251409c_m.jpg&quot; style=&quot;border: 1px solid black;&quot; width=&quot;240&quot; /&gt;&lt;/a&gt;

&lt;a href=&quot;http://farm8.staticflickr.com/7178/6924019539_347def3eb8.jpg&quot; rel=&quot;lightbox[stockholmandmadrid]&quot; rev=&quot;http://www.flickr.com/photos/mcginityphoto/6924019539/&quot; title=&quot;Puerta de Alcala Madrid at night by Trish McGinity&quot;&gt;&lt;img alt=&quot;Puerta de Alcala Madrid at night&quot; height=&quot;160&quot; src=&quot;http://farm8.staticflickr.com/7178/6924019539_347def3eb8_m.jpg&quot; style=&quot;margin-left: 10px; border: 1px solid black;&quot; width=&quot;240&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;
&lt;a href=&quot;http://farm8.staticflickr.com/7190/6924011715_e0fc033fdf.jpg&quot; rel=&quot;lightbox[stockholmandmadrid]&quot; rev=&quot;http://www.flickr.com/photos/mcginityphoto/6924011715/&quot; title=&quot;Almudena Cathedral by Trish McGinity&quot;&gt;&lt;img alt=&quot;Almudena Cathedral&quot; height=&quot;332&quot; src=&quot;http://farm8.staticflickr.com/7190/6924011715_e0fc033fdf.jpg&quot; style=&quot;border: 1px solid black;&quot; width=&quot;500&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;You can see all of &lt;a href=&quot;http://www.flickr.com/photos/mcginityphoto/sets/72157629439261897&quot;&gt;Trish's Madrid photos on Flickr&lt;/a&gt;. I also published mine in a &lt;a href=&quot;http://www.flickr.com/photos/mraible/sets/72157629403734649/&quot;&gt;Stockholm and Madrid 2012&lt;/a&gt; album. 
&lt;/p&gt;
Yes, it was quite a bit of work preparing for two conferences in one week. However, both were in exotic, beautiful locations. Not only that, but Mattias and Sergi did a great job of providing terrific &lt;a href=&quot;http://sites.google.com/site/inertiainterrupted/journal-blog/thelocalexperience&quot;&gt;local experiences&lt;/a&gt;. Thanks guys, we had a blast.  &lt;p&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;
&lt;a href=&quot;http://farm8.staticflickr.com/7192/6910613103_fafa21bc96.jpg&quot; rel=&quot;lightbox[stockholmandmadrid]&quot; rev=&quot;http://www.flickr.com/photos/mraible/6910613103/&quot; title=&quot;Happy Travelers in Madrid&quot;&gt;&lt;img alt=&quot;Happy Travelers in Madrid&quot; height=&quot;180&quot; src=&quot;http://farm8.staticflickr.com/7192/6910613103_fafa21bc96_m.jpg&quot; style=&quot;border: 1px solid black;&quot; width=&quot;240&quot; /&gt;&lt;/a&gt;

&lt;/p&gt;
&lt;p style=&quot;border-top: 1px dotted silver; padding-top: 5px; color: #666; text-align: center;&quot;&gt;
For more of Trish's photos from our world travels, see McGinity Photo's &lt;a href=&quot;http://www.mcginityphoto.com/Nature/Nature/4725995_szrsM&quot; style=&quot;color: #666;&quot;&gt;World Gallery&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;&lt;/p&gt;</description>
	<pubDate>Wed, 16 May 2012 15:32:27 +0000</pubDate>
</item>
<item>
	<title>Matt Raible: Comparing Web Frameworks and HTML5 with Play Scala at Jfokus 2012</title>
	<guid isPermaLink="true">http://raibledesigns.com/rd/entry/comparing_web_frameworks_and_html5</guid>
	<link>http://raibledesigns.com/rd/entry/comparing_web_frameworks_and_html5</link>
	<description>&lt;a href=&quot;http://www.flickr.com/photos/mcginityphoto/6777944990/&quot; title=&quot;Riddenholm Church by McGinityPhoto, on Flickr&quot;&gt;&lt;img alt=&quot;Riddenholm Church&quot; class=&quot;picture&quot; height=&quot;100&quot; src=&quot;http://farm8.staticflickr.com/7048/6777944990_0858dedd9a_t.jpg&quot; width=&quot;66&quot; /&gt;&lt;/a&gt;
Stockholm seems a lot like Denver this time of year. Cold, snowy and beautiful. &lt;a href=&quot;http://www.mcginityphoto.com/&quot;&gt;Trish&lt;/a&gt; and I arrived in Stockholm (Sweden) on Monday for the &lt;a href=&quot;http://jfokus.se&quot;&gt;Jfokus&lt;/a&gt; conference and we're traveling to Madrid today for the &lt;a href=&quot;http://springio.net/&quot;&gt;Spring I/O&lt;/a&gt; conference. I was invited to Jfokus within minutes of delivering my &lt;a href=&quot;http://raibledesigns.com/rd/entry/my_html5_with_play_scala&quot;&gt;HTML5 with Play Scala talk at Devoxx&lt;/a&gt;. 
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;
Both the Jfokus and Spring I/O Organizers were interested in my Comparing JVM Web Frameworks talk, so I updated it to reflect my latest thoughts. First of all, I mentioned that there's a lot of great frameworks out there and I think the reason people are so apprehensive to choose one is because they've chosen badly at one point. This might've been Struts back in the day (even thought it was one of the best frameworks at the time) or it might be because a vendor talked them into it. However, if you look at the modern JVM frameworks today, you should be able to see that they're all pretty awesome.
&lt;/p&gt;
&lt;p&gt;
I mentioned how I think &lt;em&gt;Web&lt;/em&gt; developers should know JavaScript and CSS. If you're a &lt;em&gt;Java&lt;/em&gt; developer and you call yourself a web developer, you're letting your framework do too much of the work for you. I mentioned Rich Manalang's &lt;a href=&quot;http://blogs.atlassian.com/2012/01/modern-principles-in-web-development/&quot;&gt;Modern Principles in Web Development&lt;/a&gt;, where he talks about his core web development principles.
&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;Designing for mobile first (even if you’re not building a mobile app)&lt;/li&gt;
&lt;li&gt;Build only single page apps&lt;/li&gt;
&lt;li&gt;Create and use your own REST API&lt;/li&gt;
&lt;li&gt;“Sex sells” applies to web apps&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I've found these principles to be true in my own experience and suggested that if you want to be a web developer, the frameworks you might want to learn are not traditional JVM web frameworks, but rather &lt;a href=&quot;http://paulhammant.com/2012/02/13/client-side-mvc-frameworks-compared/&quot;&gt;client-side MVC frameworks&lt;/a&gt;. For those Java developers that don't want to be web developers, I suggest they strengthen their services development knowledge by reading &lt;a href=&quot;http://www.infoq.com/articles/webber-rest-workflow&quot;&gt;Hot to GET a Cup of Coffee&lt;/a&gt;.
&lt;/p&gt;

You can see my updated presentation below, &lt;a href=&quot;http://www.slideshare.net/mraible/comparing-jvm-web-frameworks-jfokus-2012&quot;&gt;on Slideshare&lt;/a&gt; or as a &lt;a href=&quot;http://static.raibledesigns.com/repository/presentations/Comparing_JVM_Web_Frameworks_Jfokus2012.pdf&quot;&gt;downloadable PDF&lt;/a&gt;.
&lt;p&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt; 
&lt;/p&gt;
&lt;p&gt;I delivered my 2nd presentation on HTML5 with Play Scala, CoffeeScript and Jade on Wednesday morning. This talk is one of my favorites and I prepared for it over the last several weeks by adding &lt;a href=&quot;http://raibledesigns.com/rd/entry/secure_json_services_with_play&quot;&gt;JSON CRUD Services and SecureSocial&lt;/a&gt; to my HTML5 Fitness Tracking application. Right before we left for Jfokus, I was able to get everything to work, but didn't spend as much time as I'd like working on the mobile client. If this talk gets accepted for &lt;a href=&quot;http://www.devoxx.com/display/FR12/Accueil&quot;&gt;Devoxx France&lt;/a&gt;, I plan on spending most of my time enhancing the mobile client. After my latest experience developing, I can see how Rich's first principle (above) makes a lot of sense.
&lt;/p&gt;
&lt;p&gt;Below is my presentation for this talk. Of course, it's &lt;a href=&quot;http://www.slideshare.net/mraible/html5-with-play-scala-coffeescript-and-jade-jfokus-2012&quot;&gt;on Slideshare&lt;/a&gt; and &lt;a href=&quot;http://static.raibledesigns.com/repository/presentations/HTML5_with_Play_Scala_CoffeeScript_and_Jade_Jfokus2012.pdf&quot;&gt;downloadable as a PDF&lt;/a&gt;.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;
&lt;/p&gt;
&lt;p&gt;I also updated the &lt;a href=&quot;http://vimeo.com/36826202&quot;&gt;Developing Play More demo video&lt;/a&gt; to show my latest efforts.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;

&lt;/p&gt;
&lt;p&gt;Delivering these talks at Jfokus was a lot of fun. Yes, it was a lot of work and stress to prepare them. However, I also learned a lot creating them and I hope the audience benefitted from that. 
&lt;/p&gt;
&lt;p&gt;  
&lt;a href=&quot;http://www.flickr.com/photos/mcginityphoto/6881203059/&quot; title=&quot;Jfokus 2012 by McGinityPhoto, on Flickr&quot;&gt;&lt;img alt=&quot;Jfokus 2012&quot; height=&quot;100&quot; src=&quot;http://farm8.staticflickr.com/7185/6881203059_11a0f20a53_t.jpg&quot; style=&quot;border: 1px solid black; float: left; margin: 0 10px 0 0;&quot; width=&quot;67&quot; /&gt;&lt;/a&gt;
The conference itself was incredible. I got to meet &lt;a href=&quot;https://twitter.com/peterhilton&quot;&gt;Peter Hilton&lt;/a&gt; and &lt;a href=&quot;https://twitter.com/javahelena&quot;&gt;Helena Hjertén&lt;/a&gt; as I was registering.
The speaker's dinner at &lt;a href=&quot;http://f12.se/&quot;&gt;F12&lt;/a&gt; was off-the-hook good and I had the pleasure of finally meeting &lt;a href=&quot;http://rickardoberg.wordpress.com/&quot;&gt;Rickard Öberg&lt;/a&gt;. 

&lt;/p&gt;
&lt;p&gt;I also attended some fantastic presentations, including Peter Hilton's &lt;a href=&quot;http://raibledesigns.com/rd/entry/play_framework_2_0_with&quot;&gt;Play Framework 2.0&lt;/a&gt;, &lt;a href=&quot;https://twitter.com/bodiltv&quot;&gt;Bodil Stokke's&lt;/a&gt; &lt;a href=&quot;http://bodil.github.com/coffeescript/#landing-slide&quot;&gt;CoffeeScript: JavaScript without the Fail&lt;/a&gt;, &lt;a href=&quot;http://twitter.com/pamelafox&quot;&gt;Pamela Fox's&lt;/a&gt; &lt;a href=&quot;http://client-side-storage.appspot.com&quot;&gt;Client-side Storage&lt;/a&gt; and &lt;a href=&quot;http://twitter.com/hseeberger&quot;&gt;Heiko Seeberger's&lt;/a&gt; Scala in Action. I don't know if Heiko has published any slides, but I'm guessing not since most of his presentation was live coding. 
&lt;/p&gt;
&lt;p&gt;I have lots of good memories from Jfokus. Many thanks to &lt;a href=&quot;http://twitter.com/matkar&quot;&gt;Mattias&lt;/a&gt; for inviting me!&lt;/p&gt;</description>
	<pubDate>Wed, 16 May 2012 15:28:12 +0000</pubDate>
</item>
<item>
	<title>Colm O hEigeartaigh: Apache XML Security for Java 1.4.7 and 1.5.2 released</title>
	<guid isPermaLink="true">http://coheigea.blogspot.com/2012/05/apache-xml-security-for-java-147-and.html</guid>
	<link>http://coheigea.blogspot.com/2012/05/apache-xml-security-for-java-147-and.html</link>
	<description>There are two new releases for the Apache XML Security for Java project, which are now available for &lt;a href=&quot;http://santuario.apache.org/download.html&quot;&gt;download&lt;/a&gt;&lt;a href=&quot;http://santuario.apache.org/download.html&quot;&gt;&lt;/a&gt;. The main feature of the 1.5.2 release is that the default canonicalization  algorithm for encryption has changed from inclusive with comments to a  new canonicalization algorithm that preserves the physical  representation of the element being encrypted. This change fixes a  problem where an element might be decrypted to the wrong namespace. The release notes are available &lt;a href=&quot;http://santuario.apache.org/java152releasenotes.html&quot;&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The 1.4.7 release fixes a problem with a missing KeyInfo Element when  multiple elements are encrypted, as well as a number of other issues. The release notes are available &lt;a href=&quot;http://santuario.apache.org/java147releasenotes.html&quot;&gt;here&lt;/a&gt;.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img alt=&quot;&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/7391783704166348052-6111738284380916135?l=coheigea.blogspot.com&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Wed, 16 May 2012 15:12:18 +0000</pubDate>
</item>
<item>
	<title>Daniel Kulp: Apache CXF – New Features</title>
	<guid isPermaLink="true">http://www.dankulp.com/blog/2012/05/apache-cxf-new-features/</guid>
	<link>http://www.dankulp.com/blog/2012/05/apache-cxf-new-features/</link>
	<description>&lt;p&gt;I just uploaded my slide deck from my presentation about &lt;a href=&quot;http://cxf.apache.org&quot;&gt;Apache CXF&lt;/a&gt;‘s new features that I presented at CamelOne in Boston to Slideshare.  &lt;/p&gt;
&lt;div id=&quot;__ss_12957258&quot; style=&quot;width: 425px;&quot;&gt; &lt;strong style=&quot;display: block; margin: 12px 0 4px;&quot;&gt;&lt;a href=&quot;http://www.slideshare.net/jdkulp/cxf-newfeatures-12957258&quot; target=&quot;_blank&quot; title=&quot;Apache CXF - New Features&quot;&gt;Apache CXF – New Features&lt;/a&gt;&lt;/strong&gt; 
&lt;div style=&quot;padding: 5px 0 12px;&quot;&gt; View more &lt;a href=&quot;http://www.slideshare.net/&quot; target=&quot;_blank&quot;&gt;presentations&lt;/a&gt; from &lt;a href=&quot;http://www.slideshare.net/jdkulp&quot; target=&quot;_blank&quot;&gt;Daniel Kulp&lt;/a&gt; &lt;/div&gt;
&lt;p&gt;&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;I will hopefully be getting a full video of it sometime soon.   When I do, I’ll post it here. &lt;/p&gt;</description>
	<pubDate>Wed, 16 May 2012 14:44:13 +0000</pubDate>
</item>
<item>
	<title>James Duncan: Producing an Event in Tunis</title>
	<guid isPermaLink="true">http://duncandavidson.com/blog/2012/05/houssem_producer</guid>
	<link>http://duncandavidson.com/blog/2012/05/houssem_producer</link>
	<description>&lt;p&gt;Watching my friend Houssem Aoudi produce an event in Tunis was a unique experience. He’s put on dozens of events in Tunisia—including musical performances, parties, and raves in addition to TEDx events—so he’s got his system down. In a nutshell, instead of formal specifications and group meetings, it’s all about being on the phone from early morning to late evening. Dozens of calls and texts per hour, even while enjoying a breakfast café stop or a late night dinner.&lt;/p&gt;

&lt;div class=&quot;breakout&quot;&gt;&lt;img height=&quot;334&quot; src=&quot;http://duncandavidson.com/blog/2012/05/houssem_producer_1_500w.jpg&quot; width=&quot;500&quot; /&gt;&lt;div class=&quot;caption&quot; style=&quot;width: 500px;&quot;&gt;Houssem Aoudi coordinates on the phone while at a café with a sheesha&lt;/div&gt;&lt;/div&gt;




&lt;div class=&quot;breakout&quot;&gt;&lt;img height=&quot;334&quot; src=&quot;http://duncandavidson.com/blog/2012/05/houssem_producer_2_500w.jpg&quot; width=&quot;500&quot; /&gt;&lt;div class=&quot;caption&quot; style=&quot;width: 500px;&quot;&gt;Houssem Aoudi on the phone late at night coordinating&lt;/div&gt;&lt;/div&gt;


&lt;p&gt;As far as paying suppliers goes, things are also a bit different than you might find elsewhere in the world. Invoices and checks? Not so much. While many of the social functions of Tunis are in remarkably good order after the revolution, long payment terms and credit around money aren’t really part of the program. Cold, hard cash up front is the rule here if you want to get things done in any kind of effective manner.&lt;/p&gt;

&lt;div class=&quot;breakout&quot;&gt;&lt;img height=&quot;334&quot; src=&quot;http://duncandavidson.com/blog/2012/05/houssem_producer_3_500w.jpg&quot; width=&quot;500&quot; /&gt;&lt;div class=&quot;caption&quot; style=&quot;width: 500px;&quot;&gt;Houssem Aoudi picks up the cash needed to pay suppliers for the event&lt;/div&gt;&lt;/div&gt;


&lt;p&gt;This doesn’t just apply to big things like audio and video production, but also the smallest of matters. When we first got to the venue, none of the restrooms had soap or toilet paper, basics that you’d expect to be provided as part of renting a venue. Anything that we brought in—even for our own needs while setting up the day before the event—was quickly removed by the staff. Apparently the proper mechanism for getting such necessities involved all sorts of official paperwork. I’m not sure how things eventually got handled, but I wouldn’t be surprised if the real mechanism involved some small payments of one kind or another from the cash reserve.&lt;/p&gt;

&lt;div class=&quot;breakout&quot;&gt;&lt;img height=&quot;334&quot; src=&quot;http://duncandavidson.com/blog/2012/05/houssem_producer_4_500w.jpg&quot; width=&quot;500&quot; /&gt;&lt;div class=&quot;caption&quot; style=&quot;width: 500px;&quot;&gt;Counting money out for suppliers at the event venue&lt;/div&gt;&lt;/div&gt;


&lt;p&gt;Whatever it took, the job got done. Despite failing projectors, glitchy lights, and equipment that needed maintenance, everything came together just at the right time. Well, almost everything. The caterer that was supposed to provide evening snacks after the event was a no show. Luckily, attendees took the news in stride with a &lt;em&gt;“well, that’s Tunis”&lt;/em&gt; shrug and headed off into the night happy with thoughts of the event and what people had said.&lt;/p&gt;

&lt;p style=&quot;font-style: italic; color: #999;&quot;&gt;
Posted by
&lt;a href=&quot;http://duncandavidson.com/blog/2012/05/houssem_producer&quot;&gt;James Duncan Davidson.&lt;/a&gt;
&lt;/p&gt;</description>
	<pubDate>Wed, 16 May 2012 13:19:56 +0000</pubDate>
</item>
<item>
	<title>James Duncan: Signs of a Revolution</title>
	<guid isPermaLink="true">http://duncandavidson.com/blog/2012/05/tunis_flag</guid>
	<link>http://duncandavidson.com/blog/2012/05/tunis_flag</link>
	<description>&lt;div class=&quot;breakout&quot;&gt;&lt;img height=&quot;334&quot; src=&quot;http://duncandavidson.com/blog/2012/05/tunis_flag_500w.jpg&quot; width=&quot;500&quot; /&gt;&lt;div class=&quot;caption&quot; style=&quot;width: 500px;&quot;&gt;A Tunisian flag in a razor wire barricade near the center of Tunis&lt;/div&gt;&lt;/div&gt;


&lt;p style=&quot;font-style: italic; color: #999;&quot;&gt;
Posted by
&lt;a href=&quot;http://duncandavidson.com/blog/2012/05/tunis_flag&quot;&gt;James Duncan Davidson.&lt;/a&gt;
&lt;/p&gt;</description>
	<pubDate>Wed, 16 May 2012 13:14:40 +0000</pubDate>
</item>
<item>
	<title>James Duncan: On Tunisian Radio</title>
	<guid isPermaLink="true">http://duncandavidson.com/blog/2012/05/tunis_radio</guid>
	<link>http://duncandavidson.com/blog/2012/05/tunis_radio</link>
	<description>&lt;p&gt;I was napping peacefully in my room—well, OK, I was dealing with a head cold, but that’s neither here nor there—at the funky bed and breakfast I was staying at in Tunis when Houssem called up and said, “Come on. We’re going to be on the radio. We’re picking you up in five minutes.” Eh? Ok. I pulled myself together, went outside, and was met by a full car of happy people. In no time at all, we were at Radio Express FM. The mission: talk with host Zied M’Hirsi about TED@Tunis, part of &lt;a href=&quot;http://conferences.ted.com/TED2013/auditions/&quot;&gt;TED’s worldwide talent search&lt;/a&gt;.&lt;/p&gt;

&lt;div class=&quot;breakout&quot;&gt;&lt;img height=&quot;334&quot; src=&quot;http://duncandavidson.com/blog/2012/05/tunis_radio_1_500w.jpg&quot; width=&quot;500&quot; /&gt;&lt;div class=&quot;caption&quot; style=&quot;width: 500px;&quot;&gt;Zied M’Hirsi sits down with Shawn Gannet, Nate Mook, and Houssem Aoudi at Radio Express FM in Tunis&lt;/div&gt;&lt;/div&gt;


&lt;p&gt;The interview was a polyglot one in Tunisian Arabic, French, and English. Houssem handled the bulk of the questions about the TED@Tunis event in a mix of Arabic and French—appropriate as he was the event’s local producer, but Zied turned to Shawn, Nate, and I in English to get our stories and find out more about TED and TEDx. He was really interested in how the TED and TEDx phenomenon is spreading throughout the world. There were a few questions about TED that we had to pass on answering, but luckily Zied didn’t mind us redirecting to our own personal experiences and points of view.&lt;/p&gt;

&lt;div class=&quot;breakout&quot;&gt;&lt;img height=&quot;334&quot; src=&quot;http://duncandavidson.com/blog/2012/05/tunis_radio_2_500w.jpg&quot; width=&quot;500&quot; /&gt;&lt;div class=&quot;caption&quot; style=&quot;width: 500px;&quot;&gt;Shawn Gannet at Radio Express FM in Tunis&lt;/div&gt;&lt;/div&gt;




&lt;div class=&quot;breakout&quot;&gt;&lt;img height=&quot;334&quot; src=&quot;http://duncandavidson.com/blog/2012/05/tunis_radio_3_500w.jpg&quot; width=&quot;500&quot; /&gt;&lt;div class=&quot;caption&quot; style=&quot;width: 500px;&quot;&gt;Houssem Aoudi at Radio Express FM in Tunis&lt;/div&gt;&lt;/div&gt;




&lt;div class=&quot;breakout&quot;&gt;&lt;img height=&quot;334&quot; src=&quot;http://duncandavidson.com/blog/2012/05/tunis_radio_4_500w.jpg&quot; width=&quot;500&quot; /&gt;&lt;div class=&quot;caption&quot; style=&quot;width: 500px;&quot;&gt;Nate Mook at Radio Express FM in Tunis&lt;/div&gt;&lt;/div&gt;


&lt;p&gt;Our initial fifteen minute time slot was bumped a bit by coverage of Francois Hollande’s election victory in France, but once we were on the air, we ended up talking with Zied for almost an hour as our discussion led to the local TEDxCarthage team and the fact that Hans Rosling was soon arriving in the country to meet with locals. Zied’s face lit up at this last bit of news and you could tell that he would be happy to put aside any other commitment to see Hans during his time in Tunis.&lt;/p&gt;

&lt;div class=&quot;breakout&quot;&gt;&lt;img height=&quot;334&quot; src=&quot;http://duncandavidson.com/blog/2012/05/tunis_radio_5_500w.jpg&quot; width=&quot;500&quot; /&gt;&lt;div class=&quot;caption&quot; style=&quot;width: 500px;&quot;&gt;Zied M’Hirsi reacts to hearing about Hans Rosling plans to come to Tunis at Radio Express FM in Tunis&lt;/div&gt;&lt;/div&gt;




&lt;p style=&quot;font-style: italic; color: #999;&quot;&gt;
Posted by
&lt;a href=&quot;http://duncandavidson.com/blog/2012/05/tunis_radio&quot;&gt;James Duncan Davidson.&lt;/a&gt;
&lt;/p&gt;</description>
	<pubDate>Wed, 16 May 2012 11:58:00 +0000</pubDate>
</item>
<item>
	<title>Community Over Code: CamelOne 2012 Presentation – About: Apache</title>
	<guid isPermaLink="true">http://communityovercode.com/2012/05/camelone-2012-presentation/</guid>
	<link>http://communityovercode.com/2012/05/camelone-2012-presentation/</link>
	<description>&lt;p&gt;I was recently asked to speak at the CamelOne conference here in Boston, about The Apache Way.  Here are my slides (including my speaker notes, written today).&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://communityovercode.com/wp-content/uploads/2012/05/TheApacheWay-ShaneCurcuru-CamelOne2012.odp&quot;&gt;TheApacheWay-ShaneCurcuru-CamelOne2012&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This presentation is placed under the Apache License, v2.0, and was created with Apache OpenOffice v3.4 Impress application, and uses Open Sans fonts, also under the Apache License.  This is not to say that I use only the Apache license, more to point out that there are plenty of different kinds of resources available today under the Apache License.&lt;/p&gt;
&lt;p&gt;If you have suggestions, questions, or comments about this or anything else Apache, please let me know!  Even better, ask about it on the &lt;a href=&quot;http://mail-archives.apache.org/mod_mbox/community-dev/&quot;&gt;Apache Community Development Mailing Lists&lt;/a&gt;!&lt;/p&gt;
&lt;p&gt;Many thanks to Jim Jagielski and Justin Erenkrantz, who’s past Apache Way slides I borrowed heavily from; and also many other Apache members like Lars, J Aaron and company who have given many an Apache Way talk in the past.&lt;/p&gt;</description>
	<pubDate>Wed, 16 May 2012 11:14:22 +0000</pubDate>
</item>
<item>
	<title>Bryan Pendleton: Unwieldy companies overrun with vice presidents</title>
	<guid isPermaLink="true">http://bryanpendleton.blogspot.com/2012/05/unwieldy-companies-overrun-with-vice.html</guid>
	<link>http://bryanpendleton.blogspot.com/2012/05/unwieldy-companies-overrun-with-vice.html</link>
	<description>&lt;p&gt;The Yahoo epitaphs are starting to come fast and furious nowadays, unsurprisingly. &lt;/p&gt;&lt;p&gt;Don't miss this epic article over at Gizmodo: &lt;a href=&quot;http://gizmodo.com/5910223/how-yahoo-killed-flickr-and-lost-the-internet&quot;&gt;&lt;i&gt;How Yahoo Killed Flickr and Lost the Internet&lt;/i&gt;&lt;/a&gt;. Some of it is the typical sort of combination of sour-grapes griping and revisionist history that these articles tend to bring, but this one is well-written and has some genuine insights and some strong lessons learned. For example: &lt;/p&gt;&lt;blockquote&gt;Yahoo needed to leverage this thing that it had just bought. Yahoo wanted to make sure that every one of its registered users could instantly use Flickr without having to register for it separately. It wanted Flickr to work seamlessly with Yahoo Mail. It wanted its services to sing together in harmony, rather than in cacophonous isolation. The first step in that is to create a unified login. That's great for Yahoo, but it didn't do anything for Flickr, and it certainly didn't do anything for Flickr's (extremely vocal) users. &lt;p&gt;Yahoo's RegID solution turned out to be a nightmare for the existing community. You could no longer use your existing Flickr login to get to your photos, you had to use a Yahoo one. If you did not already have a Yahoo account, you had to create one. And you did not even log in on Flickr's home page, upon arriving, you were immediately kicked over to a Yahoo login screen. &lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;This sort of merger-and-acquisition pain is all too real; I've been through plenty of it myself. It's a heartbreak, as the quote above shows, for it's always full of well-meaning individuals trying to do the right thing, but even though they have the best ideas and the best intentions, what results is catastrophe. &lt;/p&gt;&lt;p&gt;One of the best aspects of the article is the way it analyzes how the various decisions that were made along the way impacted that most delicate and crucial concept: the &lt;i&gt;community&lt;/i&gt;: &lt;/p&gt;&lt;blockquote&gt;While other apps draw users into their Web services (think Foursquare, Twitter, Facebook, and notably Instagram) the Flickr app that Yahoo Mobile rolled out had no mechanism for that. It was not a recruitment tool. It was just for existing users. &lt;/blockquote&gt;&lt;p&gt;Of course, it's extremely hard to understand, predict, anticipate, and adapt to the changing tastes of the online public: &lt;/p&gt;&lt;blockquote&gt;The story of Flickr is not that dissimilar to the story of Google's buyout of Dodgeball, or Aol's purchase of Brizzly. Beloved Internet services with dedicated communities, dashed upon the rocks of unwieldy companies overrun with vice presidents. &lt;p&gt;As a result, Flickr today is a very different site than it was five years ago. It's an Internet backwater. It's not socially appealing. &lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Of course, just to be clear, I'm perhaps the most dinosaur of them all, for I still store my photos (those few of them that I actually take) on &lt;b&gt;Picasa&lt;/b&gt; (gasp!). &lt;/p&gt;&lt;p&gt;I mean, how 10-years-ago is that?!&lt;/p&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img alt=&quot;&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/7545863793559798918-7647009425357391221?l=bryanpendleton.blogspot.com&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Wed, 16 May 2012 03:14:51 +0000</pubDate>
</item>
<item>
	<title>Adrian Sutton: Growing a Team By Investing in Tools</title>
	<guid isPermaLink="true">http://www.symphonious.net/2012/05/16/growing-a-team-by-investing-in-tools/</guid>
	<link>http://www.symphonious.net/2012/05/16/growing-a-team-by-investing-in-tools/</link>
	<description>&lt;p&gt;&lt;img alt=&quot;Tools&quot; class=&quot;size-thumbnail wp-image-1687 alignleft&quot; height=&quot;150&quot; src=&quot;http://www.symphonious.net/wp-content/uploads/2012/05/Andy_Tools_Hammer_Spanner-150x150.png&quot; width=&quot;150&quot; /&gt;It’s widely recognised that adding people to a team often doesn’t result in increases in velocity and can even reduce the velocity of the team due to the extra communication overhead. Instead, teams look to increasing levels of automation and tools to improve their productivity without adding extra people.&lt;/p&gt;&lt;p&gt;Where many teams struggle however is in finding the right balance of building out the product versus “sharpening the saw” by improving their tools and automating processes. With the same people attempting to do both jobs that contention is unavoidable.&lt;/p&gt;&lt;p&gt;The solution then is to build a second team who’s job is entirely focussed on building, maintaining, configuring and improving the tools that the product team uses. Since the majority of tools used by a project are fairly orthogonal to the project itself – and often shared with other product teams – the tool team can be much more independent, reducing the communication overhead. Not only do the product team now have more time to devote to improving the product, they are continuously made more productive because of the work done by the tools team.&lt;/p&gt;&lt;p&gt;The most common argument against having a separate team devoted to tools is that the people building the actual product are in the best position to know what tools will make them work better and exactly how those tools should work. While this is certainly true, agile development methods are explicitly designed to help one team efficiently deliver solutions to other people’s problems. The customer for the tools team is the product team – and they already have a common understanding of software development and speak roughly the same language.&lt;/p&gt;&lt;p&gt;This certainly isn’t a new idea – Fred Brooks suggests it in &lt;em&gt;The Mythical Man Month&lt;/em&gt; – and it’s used in many large companies but many small teams have a hard time switching over to this level of thinking, unable to really believe that adding people to the product team may make it go slower and that the same number of people could do significantly more if they had better tools. The time to create a dedicated tools team is significantly earlier in a team’s growth than most people initially think.&lt;/p&gt;&lt;img height=&quot;1&quot; src=&quot;http://feeds.feedburner.com/~r/symphonious/~4/Tsy77u7jgEs&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Wed, 16 May 2012 00:27:23 +0000</pubDate>
</item>
<item>
	<title>Justin Mason: Links for 2012-05-15</title>
	<guid isPermaLink="true">http://taint.org/2012/05/15/235802a.html</guid>
	<link>http://taint.org/2012/05/15/235802a.html</link>
	<description>&lt;ul&gt;&lt;li&gt;&lt;p&gt;
&lt;a class=&quot;deliciouslink&quot; href=&quot;http://www.sciencegallery.com/events/2012/05/digital-rights-forum-online-privacy&quot; target=&quot;_blank&quot; title=&quot;Digital Rights Forum - Online Privacy&quot;&gt;Digital Rights Forum – Online Privacy&lt;/a&gt;
: ‘The Digital Rights Forum is a public debate on the important issues surrounding digital rights, with each event designed around the general over-arching topic of digital rights, puls a more narrowly focused subject. On Friday, the 18th of May, the forum will tackle the issue of Online Privacy.  With our lives ever more integrated with the web and social media, staying safe online is becoming an increasing concern to everyone. From mobile apps to websites and email, protecting our personal information and online privacy has never been more complicated and more important. Faced with software vulnerabilities such as contacts being leaked onto the Internet by mobile application providers, the increasing push toward revealing more private and personal information on social networks, and attempts by some to protect their businesses through litigation or processes which require the disclosure of personal information, the modern digital landscape has made protecting one’s privacy more difficult than ever before.  With this in mind, this Digital Rights Forum will discuss the current state of data protection and online privacy in the current context of social networks and mobile applications.’  Featuring Billy Hawkes (the DPC, no less!), and Devore from Boards.&lt;br /&gt;
(tags: &lt;a class=&quot;delicioustag&quot; href=&quot;http://pinboard.in/u:jm/t:dpc&quot;&gt;dpc&lt;/a&gt; &lt;a class=&quot;delicioustag&quot; href=&quot;http://pinboard.in/u:jm/t:digital-rights&quot;&gt;digital-rights&lt;/a&gt; &lt;a class=&quot;delicioustag&quot; href=&quot;http://pinboard.in/u:jm/t:ireland&quot;&gt;ireland&lt;/a&gt; &lt;a class=&quot;delicioustag&quot; href=&quot;http://pinboard.in/u:jm/t:politics&quot;&gt;politics&lt;/a&gt; &lt;a class=&quot;delicioustag&quot; href=&quot;http://pinboard.in/u:jm/t:online&quot;&gt;online&lt;/a&gt; &lt;a class=&quot;delicioustag&quot; href=&quot;http://pinboard.in/u:jm/t:security&quot;&gt;security&lt;/a&gt; &lt;a class=&quot;delicioustag&quot; href=&quot;http://pinboard.in/u:jm/t:privacy&quot;&gt;privacy&lt;/a&gt; &lt;a class=&quot;delicioustag&quot; href=&quot;http://pinboard.in/u:jm/t:data-protection&quot;&gt;data-protection&lt;/a&gt;)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
	<pubDate>Tue, 15 May 2012 23:58:02 +0000</pubDate>
</item>
<item>
	<title>Isabel Drost: Presentation shortening</title>
	<guid isPermaLink="true">http://blog.isabel-drost.de/index.php/archives/385/presentation-shortening</guid>
	<link>http://blog.isabel-drost.de/index.php/archives/385/presentation-shortening</link>
	<description>&lt;p&gt;In an effort to make more room for more talks in our schedule for this year’s Berlin Buzzwords we’ve asked quite a few people to shorten their presentation from 40min down to 20min. The thought behind it is to not only give more people a chance to talk on their work but also have those shorter talks focused down to the absolute essential information for people to learn.&lt;/p&gt;
&lt;p&gt;However I’ve seen people give awesome 45min presentations fail miserably when forced to cut down their talk - and have myself delivered a very weak presentation at a 5min &lt;a href=&quot;http://en.wikipedia.org/wiki/Ignite_(event)&quot;&gt;Ignite&lt;/a&gt; presentation.&lt;/p&gt;
&lt;p&gt;As a result I thought it might be a good idea to share some thoughts on how to go about shortening your talk and still deliver a convincing performance:&lt;/p&gt;
&lt;p&gt;First of all, don’t take your usual 40min talk and cut away slides. As obvious as it may seem that this will result in poor slides it’s still all too tempting to take a working long presentation and just throw away some content to make it shorter in time. What really happens however is that people either cut out the meat - which leaves you with a shallow brief introduction and not much else left - or the meat is left in with not much around to help listeners understand what the talk is all about. Also speakers might be tempted to leave well working jokes in: Don’t without thinking twice - there are things that do take long to prepare, if you cut away all preparation the fun is gone as well. Some people cut down demos to just briefly skip to the browser and than switch back to the slides - if you like the demo and think it’s worthwhile: Take your time to demo and shorten elsewhere. Noone benefits from briefly seeing a browser window with not much like an application in there.&lt;/p&gt;
&lt;p&gt;So how to go about when asked to cut down your slides? First of all: Think about what is the main message that you want to deliver. What is the core piece of knowledge people should know when leaving your talk. From there build up your story and provide all the necessary detail for the audience to understand your talk.&lt;/p&gt;
&lt;p&gt;That does not necessarily mean throwing out all greek symbols because math is just to hard to explain briefly - if they are needed, leave them in, take the time for explanation and build up equations as you go.&lt;/p&gt;
&lt;p&gt;Also it doesn’t mean that you should cover the very basics only. Clearly label your talk as advanced whenever that is both appropriate and possible - build on your audience’s knowledge without repeating all nitty gritty details. It can help to openly ask at the beginning simple yes/no questions and ask people to raise their hands to find out whether they are familiar with a certain technology or not. Knowing your attendees background can save you a lot of time when preparing a talk.&lt;/p&gt;
&lt;p&gt;One final piece of advise: There’s one book that once helped my a lot improve my own talks called &lt;a href=&quot;http://www.presentationzen.com/&quot;&gt;Presentation Zen&lt;/a&gt; - if you don’t know it yet, it certainly is well worth reading.&lt;/p&gt;
&lt;p&gt;PS: Dear speakers, if you are reading this but have not yet fully read the speaker acceptance notification mail - please do so now - I promise it does contain information that is valuable for you to know in particular if your employer happens to sponsor your travel to the conference.&lt;/p&gt;</description>
	<pubDate>Tue, 15 May 2012 20:23:03 +0000</pubDate>
</item>
<item>
	<title>Nick Kew: The Wrath of God?</title>
	<guid isPermaLink="true">http://bahumbug.wordpress.com/2012/05/15/the-wrath-of-god/</guid>
	<link>http://bahumbug.wordpress.com/2012/05/15/the-wrath-of-god/</link>
	<description>&lt;p&gt;France’s new president Hollande hit by lightning on his first day in office!&lt;/p&gt;
&lt;p&gt;I hope he’s a good atheist.  The world will come to terms with his politics and vice versa, but a paranoid president would be bad news indeed!&lt;/p&gt;
&lt;br /&gt;  &lt;a href=&quot;http://feeds.wordpress.com/1.0/gocomments/bahumbug.wordpress.com/2171/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/bahumbug.wordpress.com/2171/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godelicious/bahumbug.wordpress.com/2171/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/bahumbug.wordpress.com/2171/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gofacebook/bahumbug.wordpress.com/2171/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/facebook/bahumbug.wordpress.com/2171/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gotwitter/bahumbug.wordpress.com/2171/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/twitter/bahumbug.wordpress.com/2171/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gostumble/bahumbug.wordpress.com/2171/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/bahumbug.wordpress.com/2171/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godigg/bahumbug.wordpress.com/2171/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/bahumbug.wordpress.com/2171/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/goreddit/bahumbug.wordpress.com/2171/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/bahumbug.wordpress.com/2171/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; height=&quot;1&quot; src=&quot;http://stats.wordpress.com/b.gif?host=bahumbug.wordpress.com&amp;amp;blog=471959&amp;amp;post=2171&amp;amp;subd=bahumbug&amp;amp;ref=&amp;amp;feed=1&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Tue, 15 May 2012 20:17:04 +0000</pubDate>
</item>
<item>
	<title>Jukka Zitting: JAAS authentication and OSGi</title>
	<guid isPermaLink="true">http://blogs.adobe.com/jzitting/jaas-authentication-and-osgi/</guid>
	<link>http://blogs.adobe.com/jzitting/jaas-authentication-and-osgi/</link>
	<description>&lt;p&gt;I was looking at how to best do JAAS-based authentication in an OSGi environment, but didn’t really find much useful material, so I’m sharing my findings here in the hope that others will jump in and add anything I may have missed.&lt;/p&gt;
&lt;p&gt;Basically what I want to achieve is being able to run the following code unmodified in an OSGi bundle, and have the &lt;code&gt;login()&lt;/code&gt; call access the set of JAAS authentication services that are currently available in the OSGi environment. I should be able to deploy and undeploy such authentication services without any changes to this code or the configuration of the containing bundle.&lt;/p&gt;
&lt;pre class=&quot;brush: java; title: ; notranslate&quot;&gt;LoginContext context = new LoginContext(...);
context.login();
try {
    ...; // do something
} finally {
    context.logout();
}
&lt;/pre&gt;
&lt;p&gt;So far the best thing I’ve found is the JAAS support that &lt;a href=&quot;http://gnodet.blogspot.com/2008/05/jaas-in-osgi.html&quot; title=&quot;JAAS in OSGi&quot;&gt;Guillaume Nodet described&lt;/a&gt; a few years ago. If I understand correctly, the relevant code &lt;a href=&quot;http://karaf.apache.org/manual/latest-2.2.x/developers-guide/security-framework.html&quot; title=&quot;Karaf security framework&quot;&gt;lives in Apache Karaf&lt;/a&gt; nowadays, even though also Apache Felix &lt;a href=&quot;http://felix.apache.org/site/45-security-framework.html&quot;&gt;mentions it&lt;/a&gt; and Guillaume’s original post refers to &lt;a href=&quot;http://servicemix.apache.org/&quot; title=&quot;Apache ServiceMix&quot;&gt;Apache ServiceMix&lt;/a&gt;. I’ve given up hope trying to identify which Maven dependency I should use to get this code.&lt;/p&gt;
&lt;p&gt;However, the trouble I see with the &lt;a href=&quot;http://svn.apache.org/repos/asf/karaf/tags/karaf-2.0.0/jaas/boot/src/main/java/org/apache/karaf/jaas/boot/ProxyLoginModule.java&quot;&gt;ProxyLoginModule&lt;/a&gt; class, that seems like the core piece of glue in the Karaf JAAS support, is that it requires the login() call in the client code to explicitly pass the name of the bundle and the contained LoginModule class that are to be used for authentication. That breaks my expectation of zero code or configuration changes in the client bundle for adding or removing new authentication services. Also, it looks like only a single authentication service can be used at a time.&lt;/p&gt;
&lt;p&gt;A more promising solution is described in a &lt;a href=&quot;http://www.slideshare.net/mfrancis/common-security-services-consolidation-patterns-for-legacy-components-stefan-vladov&quot;&gt;presentation&lt;/a&gt; that was apparently given by Stefan Vladov in the &lt;a href=&quot;http://www.osgi.org/CommunityEvent2011/HomePage&quot;&gt;OSGi Community Event 2011&lt;/a&gt;. However, I couldn’t find any references to actual running code that implements that solution.&lt;/p&gt;
&lt;p&gt;Please share any relevant pointers or other information in the comments below!&lt;/p&gt;</description>
	<pubDate>Tue, 15 May 2012 19:11:06 +0000</pubDate>
</item>
<item>
	<title>Christian Grobmeier: Exception Handling in jQuery Event Handlers</title>
	<guid isPermaLink="true">http://www.grobmeier.de/exception-handling-in-jquery-event-handlers-15052012.html</guid>
	<link>http://www.grobmeier.de/exception-handling-in-jquery-event-handlers-15052012.html</link>
	<description>&lt;p&gt;Today I had a problem with my upcoming &lt;a href=&quot;http://www.timeandbill.de&quot; target=&quot;_blank&quot;&gt;Time &amp;amp; Bill mobile&lt;/a&gt; client: I want to throw an exception from an event handler. For example:&lt;/p&gt;
&lt;pre class=&quot;brush: jscript; title: ; notranslate&quot;&gt;// Inside a constructor
$('.x').live(&quot;click&quot;, this.stuff);
&lt;/pre&gt;
&lt;p&gt;My elements marked with the css class “x” will execute the stuff method. As mentioned in the comment, stuff is a method of my object and thus “this” is necessary. With that code you can run into problems: if you refer to “this” inside the stuff method, it will run in the function context and not the object context. Most likely you run into trouble. The usual solution is to use a proxy:&lt;/p&gt;
&lt;pre class=&quot;brush: jscript; title: ; notranslate&quot;&gt;$('.x').live(&quot;click&quot;, $.proxy(this.stuff, this));
&lt;/pre&gt;
&lt;p&gt;Now we can execute the stuff method with the “this” context, which is in the object our constructor created. Basically jQuerys $.proxy is nothing else than a “bind” implementation. It uses JavaScripts “apply” to execute “stuff”. &lt;/p&gt;
&lt;p&gt;So far so good. Unfortunately you can’t throw a new Exception/Error inside stuff and catch it properly. What to do? It would be elegant if jQuery would offer us something here. But that’s not the case. The only way I found was to write my own “bind” mechanism. Bind usually executes a function in the correct context. In my case I additionally want to react to exception handling.&lt;/p&gt;
&lt;p&gt;It looks like:&lt;/p&gt;
&lt;pre class=&quot;brush: jscript; title: ; notranslate&quot;&gt;APP.proxyMethod = function (fn, context) {
    return function () {
        try {
            fn.apply(context, arguments);
        } catch (error) {
            APP.errorHandler(error);
        }
    };
};
&lt;/pre&gt;
&lt;p&gt;The first argument is the function to execute, the second one the desired context. Basically this is a pretty simple bind function, just returning a new function which applies my function to the context with arguments. The only exception is my surrounding try/catch block which catches potential errors and calls an errorHandler.&lt;/p&gt;
&lt;p&gt;You can use it like the jQuery proxy:&lt;/p&gt;
&lt;pre class=&quot;brush: jscript; title: ; notranslate&quot;&gt;$('.x').live(&quot;click&quot;, APP.proxyMethod(this.stuff, this));
&lt;/pre&gt;
&lt;p&gt;That’s it. Thanks that I have learned about apply/bind/call recently I could easily implement this feature. For me it means another step to reduce my jQuery dependency on my mobile.&lt;/p&gt;</description>
	<pubDate>Tue, 15 May 2012 18:12:51 +0000</pubDate>
</item>
<item>
	<title>Bryan Pendleton: Anand-Gelfand Game 4: Draw</title>
	<guid isPermaLink="true">http://bryanpendleton.blogspot.com/2012/05/anand-gelfand-game-4-draw.html</guid>
	<link>http://bryanpendleton.blogspot.com/2012/05/anand-gelfand-game-4-draw.html</link>
	<description>&lt;p&gt;This game seemed quite similar to game 2, in my naive eyes. &lt;/p&gt;&lt;p&gt;Sometime later today, Dana MacKenzie should have the translation of GM Sergei Shipov's coverage &lt;a href=&quot;http://www.danamackenzie.com/blog/&quot;&gt;on his blog&lt;/a&gt;. &lt;/p&gt;&lt;p&gt;While you wait, you can content yourself with all the various links in GM Ian Rogers's nice article: &lt;a href=&quot;http://main.uschess.org/content/view/11724/666/&quot;&gt;&lt;i&gt;A Couch Potato’s Guide to the 2012 World Championship&lt;/i&gt;&lt;/a&gt;. &lt;/p&gt;&lt;blockquote&gt;So, once you have followed the games online, eaten the potato pancakes, viewed the press conferences, had lunch (the leftover potato pancakes), then watched the videos and read the pundits' opinions of each game, please go outside and do some exercise or you will end May with a vitamin D deficiency and seriously overweight! &lt;/blockquote&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img alt=&quot;&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/7545863793559798918-6836978730028982995?l=bryanpendleton.blogspot.com&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Tue, 15 May 2012 14:20:54 +0000</pubDate>
</item>
<item>
	<title>Simon Willnauer: Finite State Automata in Lucene</title>
	<guid isPermaLink="true">http://www.searchworkings.org/c/blogs/find_entry?noSuchEntryRedirect=null&amp;entryId=467982</guid>
	<link>http://www.searchworkings.org/c/blogs/find_entry?noSuchEntryRedirect=null&amp;entryId=467982</link>
	<description>Lucene Revolution 2012 is now done, and the talk Robert and I gave went well! We showed how we are using automata (FSAs and FSTs) to make great improvements throughout Lucene. You can view the slides</description>
	<pubDate>Tue, 15 May 2012 10:51:25 +0000</pubDate>
</item>
<item>
	<title>James Duncan: Cloudscape</title>
	<guid isPermaLink="true">http://duncandavidson.com/blog/2012/05/cloudscape</guid>
	<link>http://duncandavidson.com/blog/2012/05/cloudscape</link>
	<description>&lt;div class=&quot;breakout&quot;&gt;&lt;img height=&quot;281&quot; src=&quot;http://duncandavidson.com/blog/2012/05/cloudscape_500w.jpg&quot; width=&quot;500&quot; /&gt;&lt;div class=&quot;caption&quot; style=&quot;width: 500px;&quot;&gt;A cloudscape from one of my recent flights here, there, and yonder&lt;/div&gt;&lt;/div&gt;


&lt;p style=&quot;font-style: italic; color: #999;&quot;&gt;
Posted by
&lt;a href=&quot;http://duncandavidson.com/blog/2012/05/cloudscape&quot;&gt;James Duncan Davidson.&lt;/a&gt;
&lt;/p&gt;</description>
	<pubDate>Tue, 15 May 2012 10:13:02 +0000</pubDate>
</item>
<item>
	<title>Simon Willnauer: Spatial Solr Plugin 1.0-RC4</title>
	<guid isPermaLink="true">http://www.searchworkings.org/c/blogs/find_entry?noSuchEntryRedirect=null&amp;entryId=23956</guid>
	<link>http://www.searchworkings.org/c/blogs/find_entry?noSuchEntryRedirect=null&amp;entryId=23956</link>
	<description>I am pleased to announce the latest release of our Spatial Solr Plugin, v1.0-RC4. This release is a backwards compatible with RC3, and contains the following changes: PDF documentation has been improved to remove inconsistencies in request parameter and source code package names SpatialFilter now includes hashCode and equals implementations, facilitating storage of the filter in...</description>
	<pubDate>Tue, 15 May 2012 09:21:49 +0000</pubDate>
</item>
<item>
	<title>Brian McCallister: Learning to Code</title>
	<guid isPermaLink="true">http://skife.org/too/much/information/2012/05/15/learn_to_code.html</guid>
	<link>http://skife.org/too/much/information/2012/05/15/learn_to_code.html</link>
	<description>&lt;p&gt;Rewinding my career a ways, I want to weigh in on the &lt;a href=&quot;http://www.codinghorror.com/blog/2012/05/please-dont-learn-to-code.html&quot;&gt;Learn to Code&lt;/a&gt; debate as a &lt;em&gt;non-programmer who coded&lt;/em&gt;. I am a professional programmer &lt;em&gt;now&lt;/em&gt;, but my previous career was teaching English in High School (you are not allowed to take that as license to mock my grammar).&lt;/p&gt;

&lt;p&gt;Programming and the Profession of Programming are quite different things. Programming is being able to efficiently tell a computer exactly what to do in a repeatable manner. The profession of programming is being able to efficiently convert business requirements into bugs.&lt;/p&gt;

&lt;p&gt;As an English teacher I programmed regularly in order to make my life easier. I generated vocabulary quizzes (and grading sheets for them), I created interactive epic poetry (I shit you not) with my classes (those studens really grokked epic poetry thereafter), I wrote hundreds of small scripts to calculate various things (many of which could have been done in excel, but I knew perl, not excel), I turned at least one student onto &lt;a href=&quot;http://en.wikipedia.org/wiki/Cypherpunk&quot;&gt;cypherpunks&lt;/a&gt; during a study hall, I built various one-off web applications for teachers, classes, groups, etc. I calculated lots of statistics on student performance, tests, and so on so I could better understand and calibrate things (teachers may not always grade on a curve explicitely, but new teachers always do at least hand-wavily as they don’t have tests and teaching well calibrated yet).&lt;/p&gt;

&lt;p&gt;Programming is a tool that let me be more efficient, that allows you to automate boring things, and sometimes opens up options which would otherwise be unavailable. I later left teaching, went into technical writing, and then (back) into the profession of programming full time. As Zed Shaw put it well, &lt;a href=&quot;http://learnpythonthehardway.org/book/advice.html&quot;&gt;“Programming as a profession is only moderately interesting. … You’re much better off using code as your secret weapon in another profession.”&lt;/a&gt;. I happen to love programming for itself, so programming as a profession works well for me. Code is ephemeral though, and most folks don’t like to “see your works become replaced by superior ones in a year. unable to run at all in a few more” as &lt;a href=&quot;http://en.wikipedia.org/wiki/Why_the_lucky_stiff&quot;&gt;_why&lt;/a&gt; described. Progamming is an exceptionally powerful tool for accomplishing &lt;em&gt;other&lt;/em&gt; things.&lt;/p&gt;</description>
	<pubDate>Tue, 15 May 2012 06:00:00 +0000</pubDate>
</item>
<item>
	<title>Edward J. Yoon: 급발진은 불가능하다.</title>
	<guid isPermaLink="true">http://feedproxy.google.com/~r/EdwardJYoonsBlog/~3/KpyVlDr2PRA/blog-post.html</guid>
	<link>http://feedproxy.google.com/~r/EdwardJYoonsBlog/~3/KpyVlDr2PRA/blog-post.html</link>
	<description>&lt;br /&gt;
요즘 급발진 뉴스가 많던데 .. 이거 정말 가능할까?&lt;br /&gt;
&lt;br /&gt;
스로틀이 와이어식인건 기계 결함없는 급발진이 아예 불가능하고, 그래 전자식인 경우는 소프트웨어 버그로 RPM 급상승이 가능은 해보인다. 근데 그와 동시에 브레이크가 동작 안 한다는건 상식적으로 이해가 안가는 부분. ECU라는게 컴퓨터 PC처럼 모든 기능을 중앙관리하는게 아니고 윈도우 미러나 브레이크 등 모두 분할된 독립 모듈로 구성되있다. 각종 전가기기의 전자파 영향 얘기도 나오는데 전자파보다는 오히려 자기장에 더 관련있을것 같네.&lt;br /&gt;
&lt;br /&gt;
여튼 ECU 버그로 RPM이 레드존까지 치고 올라가더라도 브레이크를 밟으면 튀어나가지 않는다. 더하여 사이드 브레이크도 있고. 소나타가 헐크로 변한다? 연료가 아무리 과하게 주입되어도 토크는 상승하지 않는다. 물론 브레이크가 노후된거면 조금씩 밀릴 수는 있겠고 울컥울컥할 땐 그냥 밟아도 서지만 한번 가속하면 양발로 강하게 푸쉬해야 된다.&lt;br /&gt;
&lt;br /&gt;
그럼 또, 당황하면 브레이크 못 밟을 수도 있지 않은가? 절대 네버 노! 뒤에서 광속 질주해오는 차들 무시하고 고속도로 한복판에 차 세우고 전화받는 김여사를 보라. 우리네 브레이크 본능은 무시하기 힘들지. 오히려 안밟고 컨트롤 하면 될 것을 브레이크 밟아서 더 큰 사고 발생하는 이유가 뭐겠어. 물론 협소한 곳에서 그러면 당황할테지만 어딘가에 바로 박을 테고. 뻥뚫린 도로에서 그러면 국산 승용차로는 제로백 8초도 못 찍을텐데 시간적으로 충분하지. 영상들 보면 차 스스로인지는 몰겠으나 악셀링하면서 변속도 타이밍 맞춰 잘하고 그러던데 ㅋ&lt;br /&gt;
&lt;br /&gt;
결국 아마 악셀을 브레이크로 착각하고 밟으면서 튀어나간 경우가 태반일 것이고, .. &lt;br /&gt;
&lt;br /&gt;
한가지 의심되는게 있다라 하면, 스포츠카 같은 류에는 브레이크와 악셀을 같이 밟고 몇 초 대기하면 급발진 모드로 전환하는 이른바 런치 컨트롤 시스템이라는게 있는데, .. 현대차나 기아차가 펌웨어 해외에서 사다가 커스터마이징하면서 지들도 모르던 런치 컨트롤 같은 기능을 숨겨논거 아닌가 몰러? 런치 스타트 처음해볼 땐 알면서도 매우 공포스러웠긴 함.&lt;br /&gt;
&lt;br /&gt;
여튼 급발진 통계를 살펴보면 고령 운전자가 대부분이고 해외에서 급발진 피해자 주행 습관 분석 결과를 보면 100% 운전 과실이다. 브레이크를 밟아야 변속되는 Shift lock 기능이 추가되면서 현격이 줄어들기도 하였고. 순식간에 일어난 사고의 기억을 자신도 모르게 정당화하는 심리도 한 몫하지. 양재동에서 불법야매로 ECU 소프트웨어 해킹하고 다니는 폭주족들이 급발진을 당했으면 당했지 도대체 왜 젊잖은 어르신들의 승용차가 그리 말썽인가?&lt;br /&gt;
&lt;br /&gt;
결론은 제어불가능한 급발진은 존재할 수가 없다.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img alt=&quot;&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/9588112-6332975854867141346?l=blog.udanax.org&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;&lt;img height=&quot;1&quot; src=&quot;http://feeds.feedburner.com/~r/EdwardJYoonsBlog/~4/KpyVlDr2PRA&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Tue, 15 May 2012 05:56:40 +0000</pubDate>
</item>
<item>
	<title>Bryan Pendleton: Somewhere in the swamp between Art and Sport ...</title>
	<guid isPermaLink="true">http://bryanpendleton.blogspot.com/2012/05/somewhere-in-swamp-between-art-and.html</guid>
	<link>http://bryanpendleton.blogspot.com/2012/05/somewhere-in-swamp-between-art-and.html</link>
	<description>&lt;p&gt;... resides LP record Parkour: &lt;a href=&quot;http://www.youtube.com/watch?feature=player_embedded&amp;amp;v=JIoQyOHqgAw&quot;&gt;&lt;i&gt;Vinyl Throw: MusicBunk&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img alt=&quot;&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/7545863793559798918-3211822641994563094?l=bryanpendleton.blogspot.com&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Tue, 15 May 2012 03:07:30 +0000</pubDate>
</item>
<item>
	<title>Justin Mason: Links for 2012-05-14</title>
	<guid isPermaLink="true">http://taint.org/2012/05/14/235802a.html</guid>
	<link>http://taint.org/2012/05/14/235802a.html</link>
	<description>&lt;ul&gt;&lt;li&gt;&lt;p&gt;
&lt;a class=&quot;deliciouslink&quot; href=&quot;http://www.youtube.com/watch?feature=player_embedded&amp;amp;v=IFe9wiDfb0E&quot; target=&quot;_blank&quot; title=&quot;Welcome to Life: the singularity, ruined by lawyers - YouTube&quot;&gt;Welcome to Life: the singularity, ruined by lawyers – YouTube&lt;/a&gt;
: ’some portions of the experience, such as the sky, may be replaced by personalised advertising.’  Uploading your consciousness in the age of copyright maximalism, as Nelson Minar put it (via Nelson)&lt;br /&gt;
(tags: &lt;a class=&quot;delicioustag&quot; href=&quot;http://pinboard.in/u:jm/t:via:nelson&quot;&gt;via:nelson&lt;/a&gt; &lt;a class=&quot;delicioustag&quot; href=&quot;http://pinboard.in/u:jm/t:grim-meathook-future&quot;&gt;grim-meathook-future&lt;/a&gt; &lt;a class=&quot;delicioustag&quot; href=&quot;http://pinboard.in/u:jm/t:future&quot;&gt;future&lt;/a&gt; &lt;a class=&quot;delicioustag&quot; href=&quot;http://pinboard.in/u:jm/t:singularity&quot;&gt;singularity&lt;/a&gt; &lt;a class=&quot;delicioustag&quot; href=&quot;http://pinboard.in/u:jm/t:funny&quot;&gt;funny&lt;/a&gt; &lt;a class=&quot;delicioustag&quot; href=&quot;http://pinboard.in/u:jm/t:copyright&quot;&gt;copyright&lt;/a&gt; &lt;a class=&quot;delicioustag&quot; href=&quot;http://pinboard.in/u:jm/t:advertising&quot;&gt;advertising&lt;/a&gt;)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
	<pubDate>Mon, 14 May 2012 23:58:02 +0000</pubDate>
</item>
<item>
	<title>David Reid: Your choice, your reputation</title>
	<guid isPermaLink="true">http://blog.david-reid.com/2012/05/14/your-choice-your-reputation/</guid>
	<link>http://blog.david-reid.com/2012/05/14/your-choice-your-reputation/</link>
	<description>&lt;p&gt;Earlier in the year we ordered made to measure curtains from &lt;a href=&quot;http://www.lauraashley.com/&quot;&gt;Laura Ashley&lt;/a&gt;. They quoted 7 weeks delivery but arrived 5 weeks after our order and have been exactly what we wanted. Following this experience, deciding to place a subsequent order wasn’t a hard decision. We placed the order and waited. And waited. And waited. Returning home today we had an answering machine message from Laura Ashley saying their courier had failed to deliver them after leaving several cards. As we’ve haven’t had a card through the door for the last 8 weeks or so and certainly haven’t had multiple cards, this has left us a little puzzled.&lt;/p&gt;
&lt;p&gt;Tomorrow we’ll call &lt;a href=&quot;http://www.lauraashley.com/&quot;&gt;Laura Ashley&lt;/a&gt; and try and rearrange delivery, but sadly it’s yet another issue with &lt;a href=&quot;http://www.city-link.co.uk/&quot;&gt;City Link&lt;/a&gt;. Yes, the courier company that seems to try harder than any other courier to ruin the reputation of any company using them strikes again &lt;img alt=&quot;:-(&quot; class=&quot;wp-smiley&quot; src=&quot;http://blog.david-reid.com/wp-includes/images/smilies/icon_sad.gif&quot; /&gt; &lt;/p&gt;
&lt;p&gt;Just to clarify the situation &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.city-link.co.uk/&quot;&gt;City Link&lt;/a&gt; have delivered to this address before&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.lauraashley.com/&quot;&gt;Laura Ashley&lt;/a&gt; have the correct address as the previous order arrived here&lt;/li&gt;
&lt;li&gt;We were here during the period the deliveries allegedly took place&lt;/li&gt;
&lt;li&gt;Our neighbours were also in continuously during the alleged deliveries&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.city-link.co.uk/&quot;&gt;City Link&lt;/a&gt; routinely leave parcels with them if we’re not in (this is what happened to the previous delivery)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So, why no delivery???&lt;/p&gt;</description>
	<pubDate>Mon, 14 May 2012 21:06:09 +0000</pubDate>
</item>
<item>
	<title>David Reid: Banking on Trust</title>
	<guid isPermaLink="true">http://blog.david-reid.com/2012/05/14/banking-on-trust/</guid>
	<link>http://blog.david-reid.com/2012/05/14/banking-on-trust/</link>
	<description>&lt;p&gt;I last wrote about our experiences with &lt;a href=&quot;http://www.halifax.co.uk/home/home.asp&quot;&gt;HBOS&lt;/a&gt; in &lt;a href=&quot;http://blog.david-reid.com/2012/04/23/this-is-not-the-bank-you-want/&quot;&gt;This is not the bank you want&lt;/a&gt;, but tonight has proved that things really could get worse.&lt;/p&gt;
&lt;p&gt;Towards the end of April we opened a new account with Halifax to try and get a better savings rate for our money. The account was, like so many these days, an online only account. To get the better rates of interest this seems like a reasonable compromise and given we already had internet banking setup didn’t pose any problems. We setup the account and arranged the transfer of some money from our older savings account that was paying 1/30th the amount of interest! All seemed to go OK and the account said it was setup.&lt;/p&gt;
&lt;p&gt;When I checked our accounts online earlier this evening I was surprised to find no mention of the new account. I had received no confirmation or details of the account, but as it was an internet only account that wasn’t unexpected, but for it to not be listed was a surprise. When I tried calling their support telephone number I was greeted by a message telling me that it could be 20 minutes before they answered. Deciding to persevere I waited and after 30 minutes I was finally connected to an operator. After explaining the problem his initial reaction was&lt;br /&gt;
&lt;code&gt;&quot;I think I know what the problem is. We had a technical glitch last month.&quot;&lt;/code&gt;&lt;br /&gt;
Not being filled with confidence I went through security and after providing the details of the new account I had gleaned from the transfer details (having no other information the fact the details were listed was a relief) he confirmed that the account had suffered from “&lt;strong&gt;&lt;em&gt;the glitch&lt;/em&gt;&lt;/strong&gt;“.&lt;/p&gt;
&lt;p&gt;As he explained it, “&lt;strong&gt;&lt;em&gt;the glitch&lt;/em&gt;&lt;/strong&gt;” basically removed all of my details from the account. The account was still there but was no longer associated with me! PARDON. So basically the bank had suffered an issue that meant a large amount of my money was no longer my money. They knew about it and hadn’t bothered to try and trace those affected. Had I not contacted them the account would have just sat there – with no apparent owner. I did check and it’s not April 1&lt;sup&gt;st&lt;/sup&gt;, but surely this had to be a joke? One of the largest banks in the UK had managed to loose my money? In 2012?&lt;/p&gt;
&lt;p&gt;To say that I’m astonished and very concerned about this is a mild understatement. Every time there is an issue with HBOS I say I should move my money, but after this it really is time to move.&lt;/p&gt;
&lt;p&gt;The operator took my details and said the account would be reattached to my “profile” which should mean that within 48 hours I have access to and control of my money again. Time will tell.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt;&lt;br /&gt;
The account has been linked and is now available.&lt;/p&gt;</description>
	<pubDate>Mon, 14 May 2012 20:35:20 +0000</pubDate>
</item>
<item>
	<title>Bryan Pendleton: Anand-Gelfand Game 3: Draw</title>
	<guid isPermaLink="true">http://bryanpendleton.blogspot.com/2012/05/anand-gelfand-game-3-draw.html</guid>
	<link>http://bryanpendleton.blogspot.com/2012/05/anand-gelfand-game-3-draw.html</link>
	<description>&lt;p&gt;But far from a boring draw! &lt;/p&gt;&lt;p&gt;GM Sergei Shipov concludes his comments about game 3 as follows: &lt;/p&gt;&lt;blockquote&gt;The Champion reacted extremely successfully to the Challenger's prepared idea in the opening, seized the initiative, applied pressure, was close to victory, but didn't have enough stamina or time. An irony of fate - once the world's fastest player fell victim to time trouble. Times have changed and Anand's no longer so young. &lt;/blockquote&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img alt=&quot;&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/7545863793559798918-7222540744512521501?l=bryanpendleton.blogspot.com&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Mon, 14 May 2012 16:50:49 +0000</pubDate>
</item>
<item>
	<title>Rich Bowen: Update: The story so far</title>
	<guid isPermaLink="true">http://drbacchus.com/update-the-story-so-far</guid>
	<link>http://drbacchus.com/update-the-story-so-far</link>
	<description>&lt;p&gt;The update on S's lunch-bag serial story:&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/rbowen/6982009778/&quot; title=&quot;Major Monogram is today's lunch picture. What is Doofenshmirtz up to?! by DrBacchus, on Flickr&quot;&gt;&lt;img alt=&quot;Major Monogram is today's lunch picture. What is Doofenshmirtz up to?!&quot; height=&quot;373&quot; src=&quot;http://farm9.staticflickr.com/8021/6982009778_d90fe80e7c.jpg&quot; width=&quot;500&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/rbowen/6986147710/&quot; title=&quot;Doofenschmirtz by DrBacchus, on Flickr&quot;&gt;&lt;img alt=&quot;Doofenschmirtz&quot; height=&quot;500&quot; src=&quot;http://farm8.staticflickr.com/7211/6986147710_c0e32847e7.jpg&quot; width=&quot;375&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/rbowen/6989085094/&quot; title=&quot;And, today's scene from S's story. by DrBacchus, on Flickr&quot;&gt;&lt;img alt=&quot;And, today's scene from S's story.&quot; height=&quot;373&quot; src=&quot;http://farm8.staticflickr.com/7245/6989085094_d869d6bfe7.jpg&quot; width=&quot;500&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/rbowen/7196734670/&quot; title=&quot;562092_10150817117939628_510719627_9351772_132221953_n by DrBacchus, on Flickr&quot;&gt;&lt;img alt=&quot;562092_10150817117939628_510719627_9351772_132221953_n&quot; height=&quot;375&quot; src=&quot;http://farm6.staticflickr.com/5454/7196734670_b69dce8bd8.jpg&quot; width=&quot;500&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/rbowen/6999080420/&quot; title=&quot;And here's the next installment in S's story, although I'm not sure when she'll actually get it. by DrBacchus, on Flickr&quot;&gt;&lt;img alt=&quot;And here's the next installment in S's story, although I'm not sure when she'll actually get it.&quot; height=&quot;373&quot; src=&quot;http://farm6.staticflickr.com/5444/6999080420_3e5ee07283.jpg&quot; width=&quot;500&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/rbowen/7196701800/&quot; title=&quot;148945_10150866785919628_510719627_9395716_236516189_n by DrBacchus, on Flickr&quot;&gt;&lt;img alt=&quot;148945_10150866785919628_510719627_9395716_236516189_n&quot; height=&quot;500&quot; src=&quot;http://farm6.staticflickr.com/5347/7196701800_b35600d586.jpg&quot; width=&quot;375&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/rbowen/7196693708/&quot; title=&quot;Hurry! by DrBacchus, on Flickr&quot;&gt;&lt;img alt=&quot;Hurry!&quot; height=&quot;375&quot; src=&quot;http://farm8.staticflickr.com/7076/7196693708_a7079eb0c7.jpg&quot; width=&quot;500&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description>
	<pubDate>Mon, 14 May 2012 15:49:30 +0000</pubDate>
</item>
<item>
	<title>Michael McCandless: Finite State Automata in Lucene</title>
	<guid isPermaLink="true">http://blog.mikemccandless.com/2012/05/finite-state-automata-in-lucene.html</guid>
	<link>http://blog.mikemccandless.com/2012/05/finite-state-automata-in-lucene.html</link>
	<description>&lt;a href=&quot;http://www.lucenerevolution.com/&quot;&gt;Lucene Revolution 2012&lt;/a&gt; is now done, and the talk Robert and I gave went well!  We showed how we are using automata (&lt;a href=&quot;http://en.wikipedia.org/wiki/Finite-state_machine&quot;&gt;FSA&lt;/a&gt;s and &lt;a href=&quot;http://en.wikipedia.org/wiki/Finite_state_transducer&quot;&gt;FST&lt;/a&gt;s) to make great improvements throughout Lucene.  &lt;br /&gt;&lt;br /&gt; You can view the slides &lt;a href=&quot;https://docs.google.com/presentation/d/1Z7OYvKc5dHAXiVdMpk69uulpIT6A7FGfohjHx8fmHBU/edit&quot;&gt;here&lt;/a&gt;.  &lt;br /&gt;&lt;br /&gt; This was the first time I used &lt;a href=&quot;http://docs.google.com&quot;&gt;Google Docs&lt;/a&gt; exclusively for a talk, and I was impressed!  The real-time collaboration was awesome: we each could see the edits the other was doing, live.  You never have to &quot;save&quot; your document: instead, every time you make a change, the document is saved to a new revision and you can then use infinite undo, or step back through all revisions, to go back.  &lt;br /&gt;&lt;br /&gt; Finally, Google Docs covers the whole life-cycle of your talk: editing/iterating, presenting (it presents in full-screen just fine, but does require an internet connection; I exported to PDF ahead of time as a backup) and, finally, sharing with the rest of the world!&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img alt=&quot;&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/8623074010562846957-6520490435990511682?l=blog.mikemccandless.com&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Mon, 14 May 2012 15:25:42 +0000</pubDate>
</item>
<item>
	<title>Edward J. Yoon: NHN 좋은 시절 다 갔나?</title>
	<guid isPermaLink="true">http://feedproxy.google.com/~r/EdwardJYoonsBlog/~3/yaA5H3G_PJI/nhn.html</guid>
	<link>http://feedproxy.google.com/~r/EdwardJYoonsBlog/~3/yaA5H3G_PJI/nhn.html</link>
	<description>이해진 CSO, 조기 축구 동아리냐며 억장 무너진다는 푸념&lt;sup&gt;[1]&lt;/sup&gt;이 뜨거운 이슈다.&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
문득, 그 분 사진을 보니 한 순간이 떠오른다.&lt;br /&gt;
사직서 제출하고 빈둥거릴때 오후 3시 쯤 엘베에서 이해진 CSO와 마추쳤던 그 순간이.&lt;br /&gt;
정자 그린팩토리 13층에서 1층까지 내려가는 그 십여 초의 침묵에 긴 순간이 ㅋ. &lt;/blockquote&gt;
한국 웹 잘 안돌아다니는데도 내 눈에 까는 글이 하나 둘 보이는 것을 보면 아마도 2010년도 부터 자의반 타의반 곱지않은 환경에서 퇴사한 사람이 많은거 같음. 주변에서도 들려오고.&lt;br /&gt;
&lt;br /&gt;
거의 5년간을 몸담고 있었지만, 이런 일이 있어도 고민상담실에서나 익명으로 떠들뿐 어느 한 명 찍소리 하는 것을 본 적이 없는데 말이지. 다들 퇴사했다 이건가 ㅋ. 언행일치 안되는 헛소리들 집어치워 다들 ㅋ. 지들이 한 자리 맏고 있었으면 달랐을까?&lt;br /&gt;
&lt;br /&gt;
뭐 여튼, 한국 IT가 총체적 난국인건 사실.&lt;br /&gt;
&lt;br /&gt;
NHN이 물론 좋은 회사고,
처음 봤을땐 굉장했다.&lt;br /&gt;
네이버 수십억 웹 문서, 어마어마한 규모의 고가 장비들, 검색엔진, 다양한 기술들과 젊은 인재들 (or 청춘 남녀들?) ...&lt;br /&gt;
근데 지금 이제 내 눈엔, 한국 대형 포탈이건 클라우드한다고 이빨까는 애들이건 자메이카선수들이 봅슬레이하는걸로 밖에 안보인다.&lt;br /&gt;
&lt;br /&gt;
대형 스펙타클 헐리웃 영화들이 쏟아진다. 다들 긴장타라. 그게 맞다.&lt;br /&gt;
&lt;br /&gt;
1. &lt;a href=&quot;http://www.hankyung.com/news/app/newsview.php?aid=2012041550991&quot;&gt;http://www.hankyung.com/news/app/newsview.php?aid=2012041550991&lt;/a&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img alt=&quot;&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/9588112-5542038124352020833?l=blog.udanax.org&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;&lt;img height=&quot;1&quot; src=&quot;http://feeds.feedburner.com/~r/EdwardJYoonsBlog/~4/yaA5H3G_PJI&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Mon, 14 May 2012 14:54:56 +0000</pubDate>
</item>
<item>
	<title>Arjé Cahn: Is Responsive Design Too Much Response And Not Enough Design?</title>
	<guid isPermaLink="true">http://blogs.onehippo.org/arje/2012/05/is_responsive_design_too_much.html</guid>
	<link>http://blogs.onehippo.org/arje/2012/05/is_responsive_design_too_much.html</link>
	<description>&lt;p&gt;At Hippo we’re certainly seeing the explosive growth of companies investing in delivering content to multiple devices. And, while we mostly think of smartphones – it’s not just those devices that are part of that growth. Last holiday season, &lt;a href=&quot;http://www.brafton.com/news/69-percent-of-smartphone-users-access-web-every-day&quot;&gt;studies found&lt;/a&gt; that the total share of people owning a tablet device almost doubled. In fact, if you’d like to learn more about this trend – we’ve recently released a &lt;a href=&quot;http://www.onehippo.com/en/resources&quot;&gt;whitepaper&lt;/a&gt; (&quot;Mobile Content Optimization - Content Marketing on the Go&quot;) describing how the priorities of creating content for mobile and desktop devices are beginning to shift.
&lt;/p&gt;
&lt;p&gt;One idea that has gotten a tremendous amount of attention is Responsive Design. If you’re not familiar with the term – it became popular after Ethan Marcotte &lt;a href=&quot;http://www.alistapart.com/articles/responsive-web-design/&quot;&gt;published an excellent post&lt;/a&gt; on the subject on &lt;a href=&quot;http://www.alistapart.com/articles/responsive-web-design/&quot;&gt;A List Apart web site&lt;/a&gt; back in 2010. That post subsequently inspired &lt;a href=&quot;http://www.amazon.com/Responsive-Web-Design-Ethan-Marcotte/dp/B005SYWGXW/ref=sr_1_1?ie=UTF8&amp;amp;qid=1333303077&amp;amp;sr=8-1&quot;&gt;the book&lt;/a&gt; by the same name.
&lt;/p&gt;
&lt;p&gt;We know that today it’s not enough to make your Web strategy &lt;strong&gt;compatible&lt;/strong&gt; with Mobile – you have to &lt;strong&gt;optimize&lt;/strong&gt; your content for Mobile. Smart marketers and communicators are taking specific content strategies to their mobile channels. But, while Responsive Design has its place – and will work very well – it is only one piece of the puzzle for the enterprise to manage Web Content.
&lt;/p&gt;
&lt;p&gt;See, from content MANAGEMENT perspectives – Responsive Web Design works best when your WCMS is only capable of managing one channel. As a publisher with this kind of WCMS, you’re inherently depending on the responsiveness of CSS Media Queries to adapt the content and design to any device. &lt;strong&gt;For large enterprises – defaulting to this approach can actually mean LESS efficiency, LESS flexibility and MORE costs.&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;Let me explain what I mean:
&lt;/p&gt;
&lt;h2&gt;Responsive Web Design Challenges&lt;/h2&gt;
&lt;p&gt;There has been a lot written – and some of it wonderfully well thought out on this subject. I would absolutely recommend &lt;a href=&quot;http://www.lukew.com/ff/entry.asp?1509&quot;&gt;Luke Wroblewski’s blog on the topic&lt;/a&gt; among others. Luke points out correctly, that while Responsive Design is one way of tackling the challenge – it’s definitely not the only way. And I’d like to take the opportunity to expand on that by pointing out some of the challenges from the enterprise web content strategy point of view.
&lt;/p&gt;
&lt;h3&gt;1. Downloading Is An Issue For Both The User AND A Cost To The Enterprise&lt;/h3&gt;
&lt;p&gt;Despite your device or internet speed – when you access a Web site using Responsive Web Design, the totality of CSS, code and images that are on the page are downloaded at their fully rendered weight for the desktop experience. And it’s then the device and onboard browser’s job to resize and optimize that page as the screen shrinks and expands. But using this strategy means that you’re delivering (and making the user download) perhaps 80% more than is necessary for the experience.
&lt;/p&gt;
&lt;p&gt;So, let’s just take images as an example. Let’s say we have one page with six images that total 210K for the desktop experience. If we were to instead resize those images and deliver them in a channel-specific way they might be a total of 45K. That means there’s a 165K extra payload for the mobile visitor. Now, when you look at one visit and one visitor this doesn’t mean much (although in some cases – especially with data plan caps - this can be a real cost to your audience).
&lt;/p&gt;
&lt;p&gt;But it gets even more interesting when we look at the enterprise and costs. Using that same math – if we assume 5 million visitors per month (very common for &lt;a href=&quot;http://www.onehippo.com&quot;&gt;Hippo&lt;/a&gt; enterprise customers) and we assume 20% of them are arriving via mobile device – that means 1 million visitors are downloading that extra 165K. Meaning an extra 165 Gigabytes of data per month delivered out of the data center. And, remember that’s just ONE PAGE! And, by the way, we didn’t even get into the extra CSS, Javascript and other code that also has to be delivered to accommodate the Responsive Design. These are real costs to the enterprise.
&lt;/p&gt;
&lt;h3&gt;2. For Mobile Users Speed Counts&lt;/h3&gt;
&lt;p&gt;Mobile is becoming a huge piece of the e-Commerce pie – and speed absolutely is a huge predicator of that. Audiences are now expecting content to arrive in their mobile device as fast (or in some cases even faster) than their desktop counterparts. There &lt;a href=&quot;http://blog.kissmetrics.com/loading-time/&quot;&gt;have been studies done recently&lt;/a&gt; that suggest that an enterprise generating $100,000 per day could actually be losing $2.5 million annually with just a 1 second delay in their site.
&lt;/p&gt;
&lt;p&gt;And this isn’t just ecommerce either – over the last year Google has made more adjustments to their algorithm and speed is, more than ever, a critical factor in how websites are ranked in Search Results (and this includes mobile). Additionally, it’s also clear that faster sites don’t just improve your user’s experience; they can also &lt;a href=&quot;http://radar.oreilly.com/2009/07/velocity-making-your-site-fast.html&quot;&gt;reduce your overall costs&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;Despite the advancements being made on the power of handheld devices – which are becoming themselves handheld computers - wireless networks still are still not there. &lt;a href=&quot;http://www.computerweekly.com/news/1280097362/Mobile-internet-download-speeds-average-just-15Mbps&quot;&gt;A recent study&lt;/a&gt; done by Ofcom showed that while households using mobile broadband are increasing – it’s still less than 20% of the market. And, web pages still took, on average, 8.5 seconds to load on mobile – which is much slower than on fixed broadband.
&lt;/p&gt;
&lt;p&gt;This means that anything we do as an enterprise should be focused on delivering content to our users faster and more efficiently.
&lt;/p&gt;
&lt;h3&gt;3. Responsive Design Doesn’t Take Context Into Account&lt;/h3&gt;
&lt;p&gt;Of course at Hippo, we are passionate about &lt;a href=&quot;http://www.onehippo.com/en/products/cms/Why+Hippo&quot;&gt;delivering contextually relevant experiences&lt;/a&gt; to audiences – and Responsive Design does not take this into account. Responsive design ONLY takes into account the device accessing the design – and more precisely &lt;strong&gt;only the screen size&lt;/strong&gt;. For example, we need to be able to accommodate different TYPES of interfaces based on devices and input interfaces. As a web site that is optimized for desktop shrinks – so too must it also be optimized for “touch and swipe” interfaces rather than point and click. This is an important contextual layer.
&lt;/p&gt;
&lt;p&gt;Also, responsive design doesn’t look at location, connectivity speed, behavior and personal preferences. All of these can affect WHY a user wants to interact with content, and HOW.
&lt;/p&gt;
&lt;p&gt;For example, one of the examples that’s often used in Responsive Design is the &lt;a href=&quot;http://www.bostonglobe.com&quot;&gt;Boston Globe website&lt;/a&gt;. Go try it. As you resize your browser window, it elegantly adapts using grids and media queries to eliminate content and reduce the design as you access it. But WHICH CONTENT SHOULD IT REMOVE? Using Responsive Web Design we have to decide which content to remove as part of the design process – not as part of the content consumption. Shouldn’t the AUDIENCE decide which content they want to view as part of the experience based on either their previously stated preferences, their real-time behavior on the site or even the context of where they are located? For publishers who only manage one channel that might seem like a “nice to have” – but for enterprises in today’s competitive world this is a definite requirement.
&lt;/p&gt;
&lt;h2&gt;What’s The Solution&lt;/h2&gt;
&lt;p&gt;As Luke Wroblewski points out in his post – there should be multiple approaches to delivering content to multiple devices. One intriguing idea that he puts forth is RESS (Responsive Web Design with Server Side Components). &lt;a href=&quot;http://www.lukew.com/ff/entry.asp?1509&quot;&gt;He describes this&lt;/a&gt; as where “a single set of templates define an entire Web site for all devices but key components within that site have device-class specific implementations that are rendered server side”.&lt;/p&gt;
&lt;p&gt;Now, I don’t want you to get the wrong idea. I’m not completely discounting the value of Responsive Design. It has its place. But, especially for enterprises, it’s not a one-size-fits-all solution. This gets back to the challenge that I mentioned in the beginning. Responsive Design is great when you are limited by your content management system to only managing one channel of content.
&lt;/p&gt;
&lt;p&gt;So, for example, if you’re blogging using WordPress, or using a solution like Drupal to manage one Web channel this can be an easy solution for delivering multiple versions of content to mobile devices.
&lt;/p&gt;
&lt;p&gt;But here at Hippo, we recommend a different approach – which utilizes our Context Aware Server. Using this, enterprises can manage channels in multiple ways – and in whichever way makes sense for their web content strategy. For example, the mobile corporate blog can be delivered using Responsive Design, while content from it is re-used on the ecommerce platform and delivered using a combination of a specific desktop channel, a dedicated mobile phone phone channel, an iPad optimized channel delivered as an “online magazine” and all across multiple languages and adapting in real-time as the user interacts with the content. Images, code and delivery is all optimized in real-time delivering only what’s necessary for the experience.
&lt;/p&gt;
&lt;p&gt;Ultimately, your content strategy should be a completely separated concern from the interface that is used to access it. Responsive Design blurs those lines a bit – and it’s important that we remember that it’s just one more way to deliver web content. And easier and “more fluid” doesn’t always equate to better or more efficient.
&lt;/p&gt;</description>
	<pubDate>Mon, 14 May 2012 09:38:22 +0000</pubDate>
</item>
<item>
	<title>Jacopo Cappellato: Film che ho visto: To Rome With Love</title>
	<guid isPermaLink="true">http://jacopospot.blogspot.com/2012/05/film-che-ho-visto-to-rome-with-love.html</guid>
	<link>http://jacopospot.blogspot.com/2012/05/film-che-ho-visto-to-rome-with-love.html</link>
	<description>Temo di aver sbagliato sala ed essere finito in quella in cui proiettavano un film dei Vanzina.&lt;br /&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img alt=&quot;&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/20491786-8261722919219213706?l=jacopospot.blogspot.com&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Mon, 14 May 2012 08:00:49 +0000</pubDate>
</item>
<item>
	<title>Brian McCallister: Java URL Handlers</title>
	<guid isPermaLink="true">http://skife.org/java/url/library/2012/05/14/java_url_handlers.html</guid>
	<link>http://skife.org/java/url/library/2012/05/14/java_url_handlers.html</link>
	<description>&lt;p&gt;There are &lt;a href=&quot;http://docs.oracle.com/javase/7/docs/api/java/net/URL.html#URL(java.lang.String, java.lang.String, int, java.lang.String)&quot;&gt;two ways&lt;/a&gt; to register your own URL scheme handler in Java, but they both kind of suck. The first is to set a system property to a list of packages, and then name subpackages and classes therein just right, the second is to register a handler factory. The handler factory approach seems great, except that you can register one, once, ever – and, oh yeah, Tomcat registers one. Given the complete brokeness of the factory registration the sane way is to align packages and class names perfectly, though this is annoying to do, so like all good programmers, I wrote a library to put a nice facade on the process: &lt;a href=&quot;https://github.com/brianm/url-scheme-registry&quot;&gt;URL Scheme Registry&lt;/a&gt; .&lt;/p&gt;

&lt;p&gt;Using it is about as simple as I could figure out – because URL handlers need to be global (given how URL works) there is a single static method. To register the &lt;code&gt;dinner&lt;/code&gt; scheme handler you just do like:&lt;/p&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;java&quot;&gt;&lt;span class=&quot;n&quot;&gt;UrlSchemeRegistry&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;register&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;dinner&quot;&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;DinnerHandler&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;Et voila, you can now use &lt;code&gt;dinner://okonomiyaki&lt;/code&gt; and an instance of &lt;a href=&quot;https://github.com/brianm/url-scheme-registry/blob/master/src/test/java/org/skife/url/DinnerHandler.java&quot;&gt;DinnerHandler&lt;/a&gt;, which must implement &lt;a href=&quot;http://docs.oracle.com/javase/7/docs/api/java/net/URLStreamHandler.html&quot;&gt;URLStreamHandler&lt;/a&gt;, will be used if you retrieve the resource.&lt;/p&gt;

&lt;p&gt;Note that you can only register a given scheme once, and your handler must have a no-arg constructor.&lt;/p&gt;

&lt;p&gt;Under the covers the library adds a particular package to the needed system property for the package/class lookup method and creates a subclass of the class you pass it, using the super convenient &lt;a href=&quot;http://cglib.sourceforge.net/&quot;&gt;CGLib&lt;/a&gt;. This way it can leave the handler factory setting alone (so you can use it in Tomcat or others that register the url handler factory), and don’t need to manually set system properties.&lt;/p&gt;

&lt;p&gt;You can fetch it via Maven ( &lt;a href=&quot;http://search.maven.org/#search%7Cga%7C1%7Curl-scheme-registry&quot;&gt;search for current version&lt;/a&gt; ) in two forms. The first has a normal dependency on cglib:&lt;/p&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;xml&quot;&gt;&lt;span class=&quot;nt&quot;&gt;&amp;lt;dependency&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;nt&quot;&gt;&amp;lt;groupId&amp;gt;&lt;/span&gt;org.skife.url&lt;span class=&quot;nt&quot;&gt;&amp;lt;/groupId&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;nt&quot;&gt;&amp;lt;artifactId&amp;gt;&lt;/span&gt;url-scheme-registry&lt;span class=&quot;nt&quot;&gt;&amp;lt;/artifactId&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;nt&quot;&gt;&amp;lt;version&amp;gt;&lt;/span&gt;0.0.1&lt;span class=&quot;nt&quot;&gt;&amp;lt;/version&amp;gt;&lt;/span&gt;
&lt;span class=&quot;nt&quot;&gt;&amp;lt;/dependency&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;The second puts cglib into a new namespace and bundles it in case there are still cases of colliding cglib versions in the same namespace out there:&lt;/p&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;xml&quot;&gt;&lt;span class=&quot;nt&quot;&gt;&amp;lt;dependency&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;nt&quot;&gt;&amp;lt;groupId&amp;gt;&lt;/span&gt;org.skife.url&lt;span class=&quot;nt&quot;&gt;&amp;lt;/groupId&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;nt&quot;&gt;&amp;lt;artifactId&amp;gt;&lt;/span&gt;url-scheme-registry&lt;span class=&quot;nt&quot;&gt;&amp;lt;/artifactId&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;nt&quot;&gt;&amp;lt;version&amp;gt;&lt;/span&gt;0.0.1&lt;span class=&quot;nt&quot;&gt;&amp;lt;/version&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;nt&quot;&gt;&amp;lt;classifier&amp;gt;&lt;/span&gt;nodep&lt;span class=&quot;nt&quot;&gt;&amp;lt;/classifier&amp;gt;&lt;/span&gt;
&lt;span class=&quot;nt&quot;&gt;&amp;lt;/dependency&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;Have fun!&lt;/p&gt;</description>
	<pubDate>Mon, 14 May 2012 06:00:00 +0000</pubDate>
</item>
<item>
	<title>Justin Mason: Links for 2012-05-13</title>
	<guid isPermaLink="true">http://taint.org/2012/05/13/235802a.html</guid>
	<link>http://taint.org/2012/05/13/235802a.html</link>
	<description>&lt;ul&gt;&lt;li&gt;&lt;p&gt;
&lt;a class=&quot;deliciouslink&quot; href=&quot;http://alarmingdevelopment.org/?p=680&quot; target=&quot;_blank&quot; title=&quot;An IDE is not enough&quot;&gt;An IDE is not enough&lt;/a&gt;
: Very thought-provoking response to that ‘Light Table’ demo which went round the aggregators a couple of weeks back.  ‘The fundamental reason IDEs have dead-ended is that they are constrained by the syntax and semantics of our programming languages. Our programming languages were all designed to be used with a text editor. It is therefore not surprising that our IDEs amount to tarted-up text editors. Likewise our programming languages were all designed with an imperative semantics that efficiently matches the hardware but defies static visualization. Indeed it would be a miracle if we could slap a new IDE on top of an old language and magically alter its syntactic and semantic assumptions. I don’t believe in miracles.  Languages and IDEs have co-evolved and neither can change without the other also changing. That is why three years ago I put aside my IDE work to focus on language design. Getting rid of imperative semantics is one of the goals. Another is getting rid of source text files (as well as ASTs, which carry all the baggage of a textual encoding minus the readability). This has turned out to be really really hard. And lonely – no one wants to even talk about these crazy ideas. Nevertheless I firmly believe that so long as we are programming in decendants of assembly language we will continue to program in descendants of text editors.’  (via Chris Horn)&lt;br /&gt;
(tags: &lt;a class=&quot;delicioustag&quot; href=&quot;http://pinboard.in/u:jm/t:via:cjhorn&quot;&gt;via:cjhorn&lt;/a&gt; &lt;a class=&quot;delicioustag&quot; href=&quot;http://pinboard.in/u:jm/t:ide&quot;&gt;ide&lt;/a&gt; &lt;a class=&quot;delicioustag&quot; href=&quot;http://pinboard.in/u:jm/t:programming&quot;&gt;programming&lt;/a&gt; &lt;a class=&quot;delicioustag&quot; href=&quot;http://pinboard.in/u:jm/t:coding&quot;&gt;coding&lt;/a&gt; &lt;a class=&quot;delicioustag&quot; href=&quot;http://pinboard.in/u:jm/t:programming-languages&quot;&gt;programming-languages&lt;/a&gt; &lt;a class=&quot;delicioustag&quot; href=&quot;http://pinboard.in/u:jm/t:semantics&quot;&gt;semantics&lt;/a&gt; &lt;a class=&quot;delicioustag&quot; href=&quot;http://pinboard.in/u:jm/t:syntax&quot;&gt;syntax&lt;/a&gt; &lt;a class=&quot;delicioustag&quot; href=&quot;http://pinboard.in/u:jm/t:source-code&quot;&gt;source-code&lt;/a&gt; &lt;a class=&quot;delicioustag&quot; href=&quot;http://pinboard.in/u:jm/t:text&quot;&gt;text&lt;/a&gt;)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;
&lt;a class=&quot;deliciouslink&quot; href=&quot;http://opendatastructures.org/&quot; target=&quot;_blank&quot; title=&quot;Open Data Structures&quot;&gt;Open Data Structures&lt;/a&gt;
: A free-as-in-speech as well as -beer textbook of data structures, covering a great range, including some I hadn’t heard of before.  Here’s the full list: ArrayStack, FastArrayStack, ArrayQueue, ArrayDeque, DualArrayDeque, RootishArrayStack, SLList, DLList,  SEList, SkiplistSSet, SkiplistList, ChainedHashTable, LinearHashTable, BinaryTree, BinarySearchTree, Treap, ScapegoatTree, RedBlackTree, BinaryHeap, MeldableHeap, AdjacencyMatrix, AdjacencyLists, BinaryTrie, XFastTrie, and YFastTrie&lt;br /&gt;
(tags: &lt;a class=&quot;delicioustag&quot; href=&quot;http://pinboard.in/u:jm/t:algorithms&quot;&gt;algorithms&lt;/a&gt; &lt;a class=&quot;delicioustag&quot; href=&quot;http://pinboard.in/u:jm/t:books&quot;&gt;books&lt;/a&gt; &lt;a class=&quot;delicioustag&quot; href=&quot;http://pinboard.in/u:jm/t:data-structures&quot;&gt;data-structures&lt;/a&gt; &lt;a class=&quot;delicioustag&quot; href=&quot;http://pinboard.in/u:jm/t:computer-science&quot;&gt;computer-science&lt;/a&gt; &lt;a class=&quot;delicioustag&quot; href=&quot;http://pinboard.in/u:jm/t:coding&quot;&gt;coding&lt;/a&gt; &lt;a class=&quot;delicioustag&quot; href=&quot;http://pinboard.in/u:jm/t:tries&quot;&gt;tries&lt;/a&gt; &lt;a class=&quot;delicioustag&quot; href=&quot;http://pinboard.in/u:jm/t:skiplists&quot;&gt;skiplists&lt;/a&gt; &lt;a class=&quot;delicioustag&quot; href=&quot;http://pinboard.in/u:jm/t:arrays&quot;&gt;arrays&lt;/a&gt; &lt;a class=&quot;delicioustag&quot; href=&quot;http://pinboard.in/u:jm/t:queues&quot;&gt;queues&lt;/a&gt; &lt;a class=&quot;delicioustag&quot; href=&quot;http://pinboard.in/u:jm/t:heap&quot;&gt;heap&lt;/a&gt; &lt;a class=&quot;delicioustag&quot; href=&quot;http://pinboard.in/u:jm/t:trees&quot;&gt;trees&lt;/a&gt; &lt;a class=&quot;delicioustag&quot; href=&quot;http://pinboard.in/u:jm/t:graphs&quot;&gt;graphs&lt;/a&gt; &lt;a class=&quot;delicioustag&quot; href=&quot;http://pinboard.in/u:jm/t:hashtables&quot;&gt;hashtables&lt;/a&gt;)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
	<pubDate>Sun, 13 May 2012 23:58:02 +0000</pubDate>
</item>
<item>
	<title>Yoav Shapira: Run For Your Lives outdoor 5K race</title>
	<guid isPermaLink="true">http://yoavs.blogspot.com/2012/05/run-for-your-lives-outdoor-5k-race.html</guid>
	<link>http://yoavs.blogspot.com/2012/05/run-for-your-lives-outdoor-5k-race.html</link>
	<description>On Saturday, May 5th 2012, also known as &lt;a href=&quot;http://en.wikipedia.org/wiki/Cinco_de_Mayo&quot;&gt;Cinco de Mayo&lt;/a&gt;, I ran an outdoor obstacle race, the &quot;&lt;a href=&quot;http://runforyourlives.com/&quot;&gt;run for your lives&lt;/a&gt;&quot; zombie 5K.&lt;br /&gt;
&lt;br /&gt;
It was a blast.  I don't actually like running that much, since I find it mentally boring, and I don't like the odds of &lt;a href=&quot;http://www.runnersworld.com/article/0,7120,s6-241-285--13841-0,00.html&quot;&gt;injuring&lt;/a&gt; one's joints.  Yes, I do other equally (or more) dangerous sports, but I've never liked running that much.&lt;br /&gt;
&lt;br /&gt;
But this race was unusual, with obstacles, mud, and zombies chasing you around.  You had a belt with three flags on it, and if they got all three, you were &quot;dead.&quot;  You could still finish the race, but your time wouldn't be recorded.&lt;br /&gt;
&lt;br /&gt;
I ran with a fun team I organized, consisting of six people total.  Only one of us finished &quot;alive,&quot; and he had one flag.  But we all had a great time.  I'd definitely do this race again.&lt;br /&gt;
&lt;br /&gt;
It's not a particularly challenging event in terms of fitness, but avoiding zombies adds an element of interval training and agility that you don't find in the standard 5K race.  And, again, it's a lot more fun :)&lt;br /&gt;
&lt;br /&gt;
The event company posted &lt;a href=&quot;https://www.facebook.com/media/set/?set=a.385310604843976.79218.149347058440333&amp;amp;type=3&quot;&gt;pictures&lt;/a&gt; on &lt;a href=&quot;https://www.facebook.com/media/set/?set=a.385310604843976.79218.149347058440333&amp;amp;type=3&quot;&gt;their Facebook page&lt;/a&gt;, too, if you're curious.  I don't have any good pictures myself, since I didn't carry my iPhone, afraid it'd get destroyed like the rest of my race outfit.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://4.bp.blogspot.com/-KPgeVcujFFM/T67aV2zFxKI/AAAAAAAAAVI/cAdDTEVBcJA/s1600/318201_385993741439041_184680874903663_1079007_944334814_n.jpeg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;213&quot; src=&quot;http://4.bp.blogspot.com/-KPgeVcujFFM/T67aV2zFxKI/AAAAAAAAAVI/cAdDTEVBcJA/s320/318201_385993741439041_184680874903663_1079007_944334814_n.jpeg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img alt=&quot;&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/9360002-6517838945066121920?l=yoavs.blogspot.com&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Sun, 13 May 2012 07:32:00 +0000</pubDate>
</item>
<item>
	<title>Justin Mason: Links for 2012-05-12</title>
	<guid isPermaLink="true">http://taint.org/2012/05/12/235802a.html</guid>
	<link>http://taint.org/2012/05/12/235802a.html</link>
	<description>&lt;ul&gt;&lt;li&gt;&lt;p&gt;
&lt;a class=&quot;deliciouslink&quot; href=&quot;http://www.chrononsystems.com/&quot; target=&quot;_blank&quot; title=&quot;Chronon DVR for Java&quot;&gt;Chronon DVR for Java&lt;/a&gt;
: “record entire execution of your Java app; play it back on any machine”. Other features: time-travelling debugger — step backwards, jump to any point in execution, designed for long running programs; post-execution logging — add log statements after the program has run, and see what it would have logged.  Looks extremely nifty, but I wonder how big those recording files get…&lt;br /&gt;
(tags: &lt;a class=&quot;delicioustag&quot; href=&quot;http://pinboard.in/u:jm/t:debugging&quot;&gt;debugging&lt;/a&gt; &lt;a class=&quot;delicioustag&quot; href=&quot;http://pinboard.in/u:jm/t:via:peakscale&quot;&gt;via:peakscale&lt;/a&gt; &lt;a class=&quot;delicioustag&quot; href=&quot;http://pinboard.in/u:jm/t:eclipse&quot;&gt;eclipse&lt;/a&gt; &lt;a class=&quot;delicioustag&quot; href=&quot;http://pinboard.in/u:jm/t:chronon&quot;&gt;chronon&lt;/a&gt; &lt;a class=&quot;delicioustag&quot; href=&quot;http://pinboard.in/u:jm/t:dvr&quot;&gt;dvr&lt;/a&gt; &lt;a class=&quot;delicioustag&quot; href=&quot;http://pinboard.in/u:jm/t:java&quot;&gt;java&lt;/a&gt; &lt;a class=&quot;delicioustag&quot; href=&quot;http://pinboard.in/u:jm/t:coding&quot;&gt;coding&lt;/a&gt; &lt;a class=&quot;delicioustag&quot; href=&quot;http://pinboard.in/u:jm/t:logging&quot;&gt;logging&lt;/a&gt; &lt;a class=&quot;delicioustag&quot; href=&quot;http://pinboard.in/u:jm/t:jvm&quot;&gt;jvm&lt;/a&gt;)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
	<pubDate>Sat, 12 May 2012 23:58:02 +0000</pubDate>
</item>
<item>
	<title>Yoav Shapira: Recent fav music</title>
	<guid isPermaLink="true">http://yoavs.blogspot.com/2012/05/recent-fav-music.html</guid>
	<link>http://yoavs.blogspot.com/2012/05/recent-fav-music.html</link>
	<description>The past couple of months, partially thanks to a new friend, I've been listening a little less to my usual techno + trance work (although &lt;a href=&quot;http://yoavs.blogspot.com/2012/04/tiesto-at-bijou.html&quot;&gt;I didn't fully stop&lt;/a&gt; ;)), and a little more to some alt + indie work.  It's been fun.&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
I wanted to share some of my favorites from recent months, if only for my own amusing recollection years from now.  This is not a complete list, just the top few from my Spotify and iTunes play counts, unsorted. &lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
A number of these have been getting airplay on stations like &lt;a href=&quot;http://wfnx.com/&quot;&gt;WFNX&lt;/a&gt;, too, which is my standard radio channel around town.  And you can catch at least two of these groups in the upcoming &quot;&lt;a href=&quot;http://www.livenation.com/event/01004895D38A97FF&quot;&gt;Seaport Six&lt;/a&gt;&quot; day-long concert, which should be awesome.  I had tickets but had to give them away since I'll be out of the country.  (More on that in an upcoming blog post.)&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;a href=&quot;http://silversunpickups.com/&quot;&gt;&lt;b&gt;The Silversun Pickups&lt;/b&gt;&lt;/a&gt;: &lt;a href=&quot;http://www.youtube.com/watch?v=r_j7AGSbiYU&amp;amp;feature=relmfu&quot;&gt;Panic Switch&lt;/a&gt;, &lt;a href=&quot;http://www.youtube.com/watch?v=DIO43xfij3s&quot;&gt;Bloody Mary (Nerve Endings)&lt;/a&gt;, and more.  I wish they'd tour more on the east coast.  Listen to the chorus lyrics on Panic Switch...&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;




&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;a href=&quot;http://www.youngthegiant.com/&quot;&gt;&lt;b&gt;Young the Giant&lt;/b&gt;&lt;/a&gt;: &lt;a href=&quot;http://www.youtube.com/watch?v=qQYpF2pCkLI&quot;&gt;My Body&lt;/a&gt;, &lt;a href=&quot;http://www.youtube.com/watch?v=UAsTlnjvetI&quot;&gt;Cough Syrup&lt;/a&gt;, and more.  Their whole recent album is good.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;


&lt;/div&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.myspace.com/ofmonstersandmenmusic&quot;&gt;&lt;b&gt;Of Monsters and Men&lt;/b&gt;&lt;/a&gt;: &lt;a href=&quot;http://www.youtube.com/watch?v=ghb6eDopW8I&quot;&gt;Little Talks&lt;/a&gt;, their only track I really like so far, but a good one.  Also, the first MySpace link on this blog in years.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;


&lt;/div&gt;
&lt;br /&gt;
&lt;b&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Metric_(band)&quot;&gt;Metric&lt;/a&gt;&lt;/b&gt;'s &lt;a href=&quot;http://www.youtube.com/watch?v=KtA7YIFapnY&quot;&gt;Help I'm Alive&lt;/a&gt; is fun.  I hope they follow it up with more goodness.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;a href=&quot;http://www.reverbnation.com/walkthemoonband&quot;&gt;Walk the Moon&lt;/a&gt;&lt;/b&gt;: &lt;a href=&quot;http://www.youtube.com/watch?v=qDVW81bXo0s&quot;&gt;Anna Sun&lt;/a&gt; is awesome, other songs OK.  Would love to see them live.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;


&lt;/div&gt;
&lt;br /&gt;
&lt;b&gt;&lt;a href=&quot;http://www.grouplovemusic.com/&quot;&gt;Grouplove&lt;/a&gt;&lt;/b&gt;: &lt;a href=&quot;http://www.youtube.com/watch?v=1x1wjGKHjBI&quot;&gt;Tongue Tied&lt;/a&gt; rocks, and the rest of the recent album is pretty good too.  They had a show with Young the Giant (above) together in Boston a couple of months ago, which I'm sorry to have missed.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;


&lt;/div&gt;
&lt;br /&gt;
The &lt;a href=&quot;http://www.bombaybicycleclubmusic.com/&quot;&gt;&lt;b&gt;Bombay Bicycle Club&lt;/b&gt;&lt;/a&gt; is a fun London-based group, and I like their track &lt;a href=&quot;http://www.youtube.com/watch?v=oDuif301F-8&amp;amp;list=AL94UKMTqg-9AuFJgKRwfuZ96lBljjTckk&amp;amp;index=3&amp;amp;feature=plcp&quot;&gt;Shuffle&lt;/a&gt; among others.  I saw them live with a friend here in town back in March.  Apparently they're doing well, playing ever-bigger venues and touring a ton.  I saw them at &lt;a href=&quot;http://www.mideastclub.com/&quot;&gt;The Middle East&lt;/a&gt; (downstairs), but their next Boston show, in July, is at &lt;a href=&quot;http://royaleboston.com/&quot;&gt;Royale&lt;/a&gt;.  And they're playing &lt;a href=&quot;http://websterhall.com/&quot;&gt;Webster Hall&lt;/a&gt; in NYC right after that.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;


&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Placebo_(band)&quot;&gt;Placebo&lt;/a&gt;&lt;/b&gt;'s &lt;a href=&quot;http://www.youtube.com/watch?v=FOBeubfr-xY&quot;&gt;The Bitter End&lt;/a&gt; is not new, just a ton of fun. &lt;br /&gt;
&lt;br /&gt;
Same for &lt;b&gt;&lt;a href=&quot;http://www.thekillersmusic.com/band&quot;&gt;The Killers&lt;/a&gt;&lt;/b&gt;' track from years ago, &lt;a href=&quot;http://www.youtube.com/watch?v=Y5fBdpreJiU&quot;&gt;Somebody Told Me&lt;/a&gt;.  Apparently my iTunes has been playing it more recently.  Maybe because of &lt;a href=&quot;http://www.tmz.com/2012/04/26/the-killers-saxophone-tommy-marth-dead-suicide/&quot;&gt;&lt;b&gt;Tommy Marth&lt;/b&gt;'s suicide&lt;/a&gt;? :(&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;


&lt;/div&gt;
&lt;br /&gt;
&lt;b&gt;&lt;a href=&quot;http://childishgambino.com/&quot;&gt;Childish Gambino&lt;/a&gt;&lt;/b&gt; has some amazing lyrics, e.g. on &lt;a href=&quot;http://www.youtube.com/watch?v=kZQFgXpG6LM&amp;amp;feature=BFa&amp;amp;list=ALYL4kY05133oXnXDW5I6LHrZM-rIN1Nn-&quot;&gt;Hold You Down&lt;/a&gt; and &lt;a href=&quot;http://www.youtube.com/watch?v=ONsTnobkeys&quot;&gt;Heartbeat&lt;/a&gt;.  I really wanted to see his Boston show in June, got tickets, but I will be out of the country (still, same as Seaport Six above).  Enjoy the show, &lt;b&gt;&lt;a href=&quot;http://graysky.org/&quot;&gt;Mike&lt;/a&gt;&lt;/b&gt; -- take some pics!&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;


&lt;/div&gt;
&lt;br /&gt;
&lt;b&gt;&lt;a href=&quot;http://rubblebucket.com/&quot;&gt;Rubblebucket&lt;/a&gt;&lt;/b&gt; is one of those bands that is way better in person than recorded.  They bring a ton of energy to their show.  I saw it with a friend a few days ago at the &lt;a href=&quot;http://www.thedise.com/&quot;&gt;Paradise&lt;/a&gt; here in Boston, a nice small venue.  Their track &lt;a href=&quot;http://www.youtube.com/watch?v=_dNfvHuBkZE&quot;&gt;Bikes&lt;/a&gt; is my favorite.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;


&lt;/div&gt;
&lt;br /&gt;
&lt;b&gt;&lt;a href=&quot;http://twodoorcinemaclub.com/&quot;&gt;Two Door Cinema Club&lt;/a&gt;&lt;/b&gt;'s &lt;a href=&quot;http://www.youtube.com/watch?v=YXwYJyrKK5A&quot;&gt;What You Know&lt;/a&gt; is fun.  They too are in the Seaport Six above.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;a href=&quot;http://www.bestcoast.us/&quot;&gt;The Best Coast&lt;/a&gt;&lt;/b&gt; has a number of fun tracks, and they'll be in Boston in July.  My favorite of theirs so far is &lt;a href=&quot;http://www.youtube.com/watch?v=yoPoRuNTo9U&quot;&gt;The Only Place&lt;/a&gt;, which I was humming to myself, apparently sometimes loudly, while running a 5K last week.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;


&lt;/div&gt;
&lt;br /&gt;
&lt;b&gt;&lt;a href=&quot;http://www.thewombats.co.uk/&quot;&gt;The Wombats&lt;/a&gt;&lt;/b&gt;' &lt;a href=&quot;http://www.youtube.com/watch?v=hpadYhXHgwA&quot;&gt;Jump Into The Fog&lt;/a&gt; is also not new, but it's been playing more recently.  Another UK alt group on my list, huh?&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;


&lt;/div&gt;
&lt;br /&gt;
Finally, since I have to run, a cute song from &lt;b&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Frank_Turner&quot;&gt;Frank Turner&lt;/a&gt;&lt;/b&gt;, &lt;a href=&quot;http://www.youtube.com/watch?v=mKkIysX2Bow&quot;&gt;I Still Believe&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;


&lt;/div&gt;
&lt;br /&gt;
A long list, and that's just ~1 genre of music :)  Hopefully others will find it useful, but I know I'll find it amusing years down the road.&lt;br /&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://2.bp.blogspot.com/-39vCqY3XGT8/T66cugsaj2I/AAAAAAAAAU8/1PjRWm7w8L0/s1600/IMG_1334.JPG&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;240&quot; src=&quot;http://2.bp.blogspot.com/-39vCqY3XGT8/T66cugsaj2I/AAAAAAAAAU8/1PjRWm7w8L0/s320/IMG_1334.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;From the Rubblebucket concert at Paradise, May 2012.&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
  &lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img alt=&quot;&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/9360002-2145915181983319256?l=yoavs.blogspot.com&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Sat, 12 May 2012 17:24:36 +0000</pubDate>
</item>
<item>
	<title>Andrew Savory: Twitter Weekly Updates for 2012-05-12</title>
	<guid isPermaLink="true">http://www.andrewsavory.com/blog/2012/2351?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=twitter-weekly-updates-for-2012-05-12-2</guid>
	<link>http://www.andrewsavory.com/blog/2012/2351?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=twitter-weekly-updates-for-2012-05-12-2</link>
	<description>&lt;ul class=&quot;aktt_tweet_digest&quot;&gt;
&lt;li&gt;Just changed my tyre in the car park. It was a race to see if I would finish before the jack sunk into the tarmac. &lt;a href=&quot;http://t.co/kRI3x9pH&quot; rel=&quot;nofollow&quot;&gt;http://t.co/kRI3x9pH&lt;/a&gt; &lt;a class=&quot;aktt_tweet_time&quot; href=&quot;http://twitter.com/savs/statuses/201297133868040192&quot;&gt;#&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p class=&quot;aktt_credit&quot;&gt;Powered by &lt;a href=&quot;http://alexking.org/projects/wordpress&quot;&gt;Twitter Tools&lt;/a&gt;&lt;/p&gt;</description>
	<pubDate>Sat, 12 May 2012 13:15:00 +0000</pubDate>
</item>
<item>
	<title>Andrew Savory: Twitter Weekly Updates for 2012-05-12</title>
	<guid isPermaLink="true">http://www.andrewsavory.com/blog/2012/2350?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=twitter-weekly-updates-for-2012-05-12</guid>
	<link>http://www.andrewsavory.com/blog/2012/2350?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=twitter-weekly-updates-for-2012-05-12</link>
	<description>&lt;ul class=&quot;aktt_tweet_digest&quot;&gt;
&lt;li&gt;Just changed my tyre in the car park. It was a race to see if I would finish before the jack sunk into the tarmac. &lt;a href=&quot;http://t.co/kRI3x9pH&quot; rel=&quot;nofollow&quot;&gt;http://t.co/kRI3x9pH&lt;/a&gt; &lt;a class=&quot;aktt_tweet_time&quot; href=&quot;http://twitter.com/savs/statuses/201297133868040192&quot;&gt;#&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p class=&quot;aktt_credit&quot;&gt;Powered by &lt;a href=&quot;http://alexking.org/projects/wordpress&quot;&gt;Twitter Tools&lt;/a&gt;&lt;/p&gt;</description>
	<pubDate>Sat, 12 May 2012 13:15:00 +0000</pubDate>
</item>
<item>
	<title>Olivier Lamy: Java5 annotations support for Maven plugins</title>
	<guid isPermaLink="true">http://feedproxy.google.com/~r/OlamyAtApacheDotOrg/~3/xMefo-TDYm0/java5-annotations-support-for-maven.html</guid>
	<link>http://feedproxy.google.com/~r/OlamyAtApacheDotOrg/~3/xMefo-TDYm0/java5-annotations-support-for-maven.html</link>
	<description>So finally or at least (depends on your POV :-)), I have pushed some code to support Java5 annotations support for Maven plugins.
&lt;br /&gt;
The &quot;specs&quot; are here &lt;a href=&quot;https://cwiki.apache.org/confluence/display/MAVEN/Java+5+Annotations+for+Plugins&quot; target=&quot;_blank&quot;&gt;https://cwiki.apache.org/confluence/display/MAVEN/Java+5+Annotations+for+Plugins&lt;/a&gt;.
&lt;br /&gt;
The code is available in the branch &lt;a href=&quot;http://svn.apache.org/repos/asf/maven/plugin-tools/branches/MPLUGIN-189/&quot; target=&quot;_blank&quot;&gt;http://svn.apache.org/repos/asf/maven/plugin-tools/branches/MPLUGIN-189/&lt;/a&gt;.
&lt;br /&gt;
Snapshot are deployed to: https://repository.apache.org/content/repositories/snapshot .
&lt;br /&gt;
You can have a look at it tests to see some samples: http://svn.apache.org/repos/asf/maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-plugin/src/it/annotation-with-inheritance/ 
&lt;br /&gt;
Basically you need to setup your pom as it:
&lt;pre&gt;    &amp;lt;dependency&amp;gt;
      &amp;lt;groupId&amp;gt;org.apache.maven.plugin-tools&amp;lt;/groupId&amp;gt;
      &amp;lt;artifactId&amp;gt;maven-plugin-annotations&amp;lt;/artifactId&amp;gt;
      &amp;lt;version&amp;gt;3.0-SNAPSHOT&amp;lt;/version&amp;gt;
      &amp;lt;scope&amp;gt;compile&amp;lt;/scope&amp;gt;
    &amp;lt;/dependency&amp;gt;


  &amp;lt;build&amp;gt;
    &amp;lt;plugins&amp;gt;
      &amp;lt;plugin&amp;gt;
        &amp;lt;groupId&amp;gt;org.apache.maven.plugins&amp;lt;/groupId&amp;gt;
        &amp;lt;artifactId&amp;gt;maven-plugin-plugin&amp;lt;/artifactId&amp;gt;
        &amp;lt;version&amp;gt;3.0-SNAPSHOT&amp;lt;/version&amp;gt;
        &amp;lt;configuration&amp;gt;
          &amp;lt;skipErrorNoDescriptorsFound&amp;gt;true&amp;lt;/skipErrorNoDescriptorsFound&amp;gt;
        &amp;lt;/configuration&amp;gt;
        &amp;lt;executions&amp;gt;
          &amp;lt;execution&amp;gt;
            &amp;lt;id&amp;gt;mojo-descriptor&amp;lt;/id&amp;gt;
            &amp;lt;phase&amp;gt;process-classes&amp;lt;/phase&amp;gt;
            &amp;lt;goals&amp;gt;
              &amp;lt;goal&amp;gt;descriptor&amp;lt;/goal&amp;gt;
            &amp;lt;/goals&amp;gt;
          &amp;lt;/execution&amp;gt;
        &amp;lt;/executions&amp;gt;
      &amp;lt;/plugin&amp;gt;
    &amp;lt;/plugins&amp;gt;
  &amp;lt;/build&amp;gt;
  
  &amp;lt;repositories&amp;gt;
    &amp;lt;repository&amp;gt;
      &amp;lt;id&amp;gt;apache.snapshots&amp;lt;/id&amp;gt;
      &amp;lt;name&amp;gt;Apache Snapshot Repository&amp;lt;/name&amp;gt;
      &amp;lt;url&amp;gt;http://repository.apache.org/snapshots&amp;lt;/url&amp;gt;
      &amp;lt;releases&amp;gt;
        &amp;lt;enabled&amp;gt;false&amp;lt;/enabled&amp;gt;
      &amp;lt;/releases&amp;gt;
    &amp;lt;/repository&amp;gt;
  &amp;lt;/repositories&amp;gt;
  &amp;lt;pluginRepositories&amp;gt;
    &amp;lt;pluginRepository&amp;gt;
      &amp;lt;id&amp;gt;apache.snapshots&amp;lt;/id&amp;gt;
      &amp;lt;name&amp;gt;Apache Snapshot Repository&amp;lt;/name&amp;gt;
      &amp;lt;url&amp;gt;http://repository.apache.org/snapshots&amp;lt;/url&amp;gt;
      &amp;lt;releases&amp;gt;
        &amp;lt;enabled&amp;gt;false&amp;lt;/enabled&amp;gt;
      &amp;lt;/releases&amp;gt;
    &amp;lt;/pluginRepository&amp;gt;
  &amp;lt;/pluginRepositories&amp;gt;

&lt;/pre&gt;

Annotations to use are:
&lt;pre&gt;@Mojo( name = &quot;foo&quot;, 
       defaultPhase = LifecyclePhase.COMPILE, 
       threadSafe = true )
@Execute( goal = &quot;compiler&quot;, 
          lifecycle = &quot;my-lifecycle&quot;, 
          phase = LifecyclePhase.PACKAGE )

public class FooMojo extends AbstractMojo
{
    /**
     * the cool bar to go
     * @since 1.0
     */
    @Parameter( expression = &quot;${thebar}&quot;, 
                required = true, 
                defaultValue = &quot;coolbar&quot; )
    protected String bar;

    /**
     * beer for non french folks
     * @deprecated wine is better
     */
    @Parameter( expression = &quot;${thebeer}&quot;, 
                defaultValue = &quot;coolbeer&quot; )
    protected String beer;

    /**
     * Plexus compiler manager.
     */
    @Component
    protected CompilerManager compilerManager;

    /**
     *
     */
    @Component( role = &quot;org.apache.maven.artifact.metadata.ArtifactMetadataSource&quot;, 
                roleHint = &quot;maven&quot; )
    protected ArtifactMetadataSource artifactMetadataSource;

    public void execute()
        throws MojoExecutionException, MojoFailureException
    {
        // nothing
    }
}
&lt;/pre&gt;

&lt;b&gt;Note:&lt;/b&gt; the help generation doesn't work yet !!&lt;br /&gt;
A new feature is your parent annotated classes can come from reactor project and from your project dependencies.
&lt;br /&gt;
And don't complain yet too much in case of issues, it's a work in progress :-)
&lt;br /&gt;

&lt;b&gt;12 May 2012 UPDATE&lt;/b&gt;: Help generation done and code merged in trunk YEAHH :-)

&lt;br /&gt;

Have Fun!&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img alt=&quot;&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/2243705636208447360-2380789148335142631?l=olamy.blogspot.com&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href=&quot;http://feedads.g.doubleclick.net/~a/Q3b7QmhMOcmANo3tqcjJQmMv9rQ/0/da&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;true&quot; src=&quot;http://feedads.g.doubleclick.net/~a/Q3b7QmhMOcmANo3tqcjJQmMv9rQ/0/di&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://feedads.g.doubleclick.net/~a/Q3b7QmhMOcmANo3tqcjJQmMv9rQ/1/da&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;true&quot; src=&quot;http://feedads.g.doubleclick.net/~a/Q3b7QmhMOcmANo3tqcjJQmMv9rQ/1/di&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img height=&quot;1&quot; src=&quot;http://feeds.feedburner.com/~r/OlamyAtApacheDotOrg/~4/xMefo-TDYm0&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Sat, 12 May 2012 12:28:34 +0000</pubDate>
</item>
<item>
	<title>Yoav Shapira: 7 (!) quick restaurant reviews: Woodward, Trade, Lone Star Taco Bar, Marc Forgione, Minca, Chacareros, Rosa Mexicano...</title>
	<guid isPermaLink="true">http://yoavs.blogspot.com/2012/05/7-quick-restaurant-reviews-woodward.html</guid>
	<link>http://yoavs.blogspot.com/2012/05/7-quick-restaurant-reviews-woodward.html</link>
	<description>You know I'm really far behind in my blogging backlog when I need to cram multiple restaurant reviews, normally one of my favorite blogging topics, into one quick post.  And yet, the past month or so has been insane, with almost no time to write, so here we go.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.woodwardboston.com/&quot;&gt;Woodward at Ames&lt;/a&gt;: happening little place in a downtown hotel.  The entrance could be better, as you think you're just entering a small hotel lobby.  I was there on a Friday night, and it was packed, with a good vibe.  Good-looking crowd, decent-looking menu.  Nothing too crazy, all fairly crowd-pleasing items, and reasonably (not amazingly) executed.  Service was decent, the wine selection just OK, so overall this was fun, but no rush to go back.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://www.woodwardboston.com/content/slides/Woodward32.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;149&quot; src=&quot;http://www.woodwardboston.com/content/slides/Woodward32.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://trade-boston.com/&quot;&gt;Trade&lt;/a&gt;: new restaurant from &lt;b&gt;&lt;a href=&quot;http://www.rialto-restaurant.com/chef_jody_adams/&quot;&gt;Jody Adams&lt;/a&gt;&lt;/b&gt; (of &lt;a href=&quot;http://www.rialto-restaurant.com/home/&quot;&gt;Rialto&lt;/a&gt; fame) near South Station.  It, too, was busy while I was there, but not packed.  The location seems like it would be tough beyond the after-work crowd, i.e. into late hours, and on weekends.  The menu had a variety of items, including some good-looking flatbreads.  Service was decent, and most of the food was good, not great.  Chef Adams was there while we were there, which was cool, and I would hope to see that in a new place: the owning chef &lt;b&gt;should&lt;/b&gt; be there to help improve service, get feedback directly, and improve things rapidly.  No particular dish sticks out as amazing, but I'd like to check it out in a couple of months.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://trade-boston.com/wp-content/gallery/homeslideshow/home-promo-2.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;83&quot; src=&quot;http://trade-boston.com/wp-content/gallery/homeslideshow/home-promo-2.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.yelp.com/biz/lone-star-taco-bar-allston&quot;&gt;Lone Star Taco Bar&lt;/a&gt;: love, love, loved this placed.  I actually went there twice on consecutive days, May 4th and 5th (&lt;a href=&quot;http://en.wikipedia.org/wiki/Cinco_de_Mayo&quot;&gt;Cinco de Mayo&lt;/a&gt;), with different people.  On May 4th, we were there for dinner before a live music show, had a bunch of tacos and some tequila (and mezcal), had a blast, and it was packed.  On May 5th, I was there with friends from a 5K outdoor obstacle race, in the middle of the day, it wasn't quite as busy, and the food was again delicious.  In both cases, the spicy beef and fish tacos stood out, among the best tacos we've ever had, as did the El Diablo margarita.  (And my dinner companion that night is as much a connoisseur of these two categories as I am.)  I'll be going back here multiple times in the future.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://s3-media1.ak.yelpcdn.com/bphoto/WNAILCnDkJMfyvPSYr3loQ/l.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;http://s3-media1.ak.yelpcdn.com/bphoto/WNAILCnDkJMfyvPSYr3loQ/l.jpg&quot; width=&quot;238&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.marcforgione.com/&quot;&gt;Marc Forgione&lt;/a&gt; is a restaurant in NYC with 1 Michelin star, named after the co-owner and chef, also known as &quot;the Forge&quot; after his &lt;a href=&quot;http://en.wikipedia.org/wiki/Iron_Chef_America&quot;&gt;Iron Chef (America)&lt;/a&gt; victory a couple of years ago.  It's a romantic restaurant whose food and service were both excellent -- as expected from a place of this caliber / rating.  The wine selection was very good, as was the presentation.  My friend and I agreed that although we enjoyed this place a lot, it did nothing badly, but with so many restaurants in the City, it's not clear whether we'll be going back.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://www.marcforgione.com/wordpress/wp-content/gallery/gallery/pic_6.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;239&quot; src=&quot;http://www.marcforgione.com/wordpress/wp-content/gallery/gallery/pic_6.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Bonus: after Marc Forgione, we went to &lt;a href=&quot;http://www.ward3tribeca.com/&quot;&gt;Ward III&lt;/a&gt; for drinks, and they were pretty amazing.  However, we already had a bunch of wine with dinner, so I think my judgment was probably a little impaired, and there's no point writing a lot about this place.&lt;br /&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://fermentedadventures.com/wp-content/uploads/2012/03/NY_Ward_III.jpg&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;213&quot; src=&quot;http://fermentedadventures.com/wp-content/uploads/2012/03/NY_Ward_III.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Image from &lt;a href=&quot;http://fermentedadventures.com/?p=488&quot;&gt;Fermented Adventures&lt;/a&gt;: thanks!&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;a href=&quot;http://www.newyorkramen.com/&quot;&gt;Minca&lt;/a&gt; is a small but amazing ramen restaurant in New York City, where I spend some of the past few days.  I've been trying more ramen recently ahead of an upcoming trip to Asia (more on that shortly), in order to establish a baseline for comparison to ramen in Japan.  Minca was exceptional.  I had the spicy pork ramen and it was the best I've ever had, so far ;)&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://www.newyorkramen.com/img/middlerightimage.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;254&quot; src=&quot;http://www.newyorkramen.com/img/middlerightimage.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.chacarero.com/&quot;&gt;Chacarero&lt;/a&gt; is a tiny lunch place in downtown Boston, specializing in its namesake, Chilean sandwiches.  They're really good :)  Get the BBQ beef or chicken with extra hot sauce, and you'll thank me.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://www.chacarero.com/images/boston-chilean-sandwich.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://www.chacarero.com/images/boston-chilean-sandwich.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.rosamexicano.com/&quot;&gt;Rosa Mexicano&lt;/a&gt; is (yet another) new upscale Mexican restaurant on &lt;a href=&quot;https://www.google.com/search?ix=aca&amp;amp;sourceid=chrome&amp;amp;ie=UTF-8&amp;amp;q=boston+waterfront&quot;&gt;Boston's waterfront&lt;/a&gt;.  I went there last night, roughly 36 hours after they opened to the public.  It was packed, which was a surprise, and service was just OK, which was expected.  I'm sure they'll improve that in the near future.  What disappointed me a little bit was the food quality, as well as one of the drinks.  But the El Mezcalito drink was excellent, and the concept of a matching taco and tequila flight (3 of each, paired) is really nice.  Overall, not a bad place, but not near the top of my list.  See above for a better taco and tequila place...&lt;br /&gt;
&lt;br /&gt;
Whew...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img alt=&quot;&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/9360002-4238179904985144665?l=yoavs.blogspot.com&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Fri, 11 May 2012 21:40:13 +0000</pubDate>
</item>
<item>
	<title>Community Over Code: Apache projects are technically independent</title>
	<guid isPermaLink="true">http://communityovercode.com/2012/05/apache-projects-are-technically-independent/</guid>
	<link>http://communityovercode.com/2012/05/apache-projects-are-technically-independent/</link>
	<description>&lt;p&gt;In the &lt;a href=&quot;http://communityovercode.com/2011/05/apache-projects-are-independent/&quot;&gt;earlier essay&lt;/a&gt; I wrote on Apache project independence (since promoted to an article on the &lt;a href=&quot;http://community.apache.org/projectIndependence.html&quot;&gt;Apache Community Development website&lt;/a&gt;) I missed a critical bit of independence that I think we should add to the ComDev site.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Apache projects are technically independent&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;While Apache PMCs provide a report of their operations to the Board on a quarterly basis, they are technically independent of the Board.  PMCs are free to collaboratively decide their project’s technical direction however they choose.  While the Board holds PMC chairs and PMCs accountable for ensuring that their methods are appropriate – following the Apache Way and the few other rules at Apache – the Board does not exercise any technical direction over Apache projects.&lt;/p&gt;
&lt;p&gt;This is a critical point to understand.  There is no top-down direction at the ASF in terms of what technology we implement or what kinds of projects we seek out or support.  All technical choices are made by the individual committers and PMC members within their project communities – i.e. the individuals actually doing the coding decide where the coding will go.&lt;/p&gt;
&lt;p&gt;This applies equally to the Apache Incubator, as the gateway of new project proposals at Apache.  The ASF has noagenda of what projects it wants to find, nor do we have a corporate strategy for new project acquisition.  Project communities that &lt;strong&gt;want&lt;/strong&gt; to come to the ASF are welcome – and will be reviewed in the Incubation process for community health and diversity, and for IP clearance and licensing.  But not for technical merit.&lt;/p&gt;
&lt;p&gt;The essence is: if there is a sufficiently diverse community who chooses to live by the Apache Way, the ASF is happy to host them.  The fact that there is sufficient diverse community means that people are interested in the technology.  Similarly, the Apache Attic awaits projects that may seem interesting technically, but fail to have a sufficiently diverse and active community to maintain them. &lt;/p&gt;
&lt;p&gt;So – worthy to add to the ComDev page?&lt;/p&gt;</description>
	<pubDate>Fri, 11 May 2012 18:47:00 +0000</pubDate>
</item>
<item>
	<title>Claus Ibsen: Looking at the impressive first Apache Camel release</title>
	<guid isPermaLink="true">http://feedproxy.google.com/~r/ApacheCamel/~3/gdSsXKNCZKo/looking-at-impressive-first-apache.html</guid>
	<link>http://feedproxy.google.com/~r/ApacheCamel/~3/gdSsXKNCZKo/looking-at-impressive-first-apache.html</link>
	<description>In preparation for the &lt;a href=&quot;http://fusesource.com/apache-camel-conference-2012/&quot;&gt;CamelOne&lt;/a&gt; conference next week, I took time to look back in the history of the &lt;a href=&quot;http://camel.apache.org/&quot;&gt;Apache Camel&lt;/a&gt; project. So among others I had a look at the first official &lt;a href=&quot;http://camel.apache.org/camel-100-release.html&quot;&gt;1.0 release&lt;/a&gt; of Apache Camel.&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://2.bp.blogspot.com/-BbwcHKwr4wQ/T6zD5CDuJeI/AAAAAAAAAMk/RfNbYyr0c6c/s1600/camel1.png&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://2.bp.blogspot.com/-BbwcHKwr4wQ/T6zD5CDuJeI/AAAAAAAAAMk/RfNbYyr0c6c/s1600/camel1.png&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Apache Camel 1.0 - 5 years ago&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div&gt;
The more I looked the more impressed I am with the fact of this release. Now you have to consider this was done 5 years ago, and in this release the Camel founders had already in the DNA of the project&lt;/div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;Java DSL&lt;/li&gt;
&lt;li&gt;XML DSL (using Spring)&lt;/li&gt;
&lt;li&gt;OSGi on the roadmap&lt;/li&gt;
&lt;li&gt;camel-core JAR of 660kb&lt;/li&gt;
&lt;li&gt;18 external components (+ whats in camel-core)&lt;/li&gt;
&lt;li&gt;2 working examples&lt;/li&gt;
&lt;li&gt;full website with documentation included, incl FAQs&lt;/li&gt;
&lt;li&gt;Project logo and box&lt;/li&gt;
&lt;li&gt;The Camel Maven plugin to easily run Camel and its examples&lt;/li&gt;
&lt;li&gt;Test Kit&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;
Below is a screenshot of the tar ball distribution, of this release:&lt;/div&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://1.bp.blogspot.com/-TGGbWwYyzhg/T6zEOQ0xWxI/AAAAAAAAAMs/N0SBYKzip_Q/s1600/camel-1-dist.png&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;http://1.bp.blogspot.com/-TGGbWwYyzhg/T6zEOQ0xWxI/AAAAAAAAAMs/N0SBYKzip_Q/s320/camel-1-dist.png&quot; width=&quot;317&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Camel 1.0 distribution (hint the OSGi ambitions in the pom.xml)&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div&gt;
When you hear James talk about the past and how he created Camel, then his ambitions was that Camel should not restrain you. If you want to use Java and not XML then fine. If you are on the Spring XML wagon, then fine. If you are into Groovy, then fine, if you want to use Ruby, then hell yeah (Ruby supported was added in Camel 1.3).&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
Lets take a look down the lane of the DSLs. Apache Camel is most likely the first integration project that offers multiple language DSLs out of the box in its very first release. It is simply in the projects DNA, and what makes IMHO Apache Camel stand out from the rest - The diverse and vibrant community and the DNA of the Camel project embracing &quot;no shoe fits all&quot;.  &lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
So lets take a look at this example with the Java DSL. Todays people using the latest Camel release, eg 2.9.2 should instant be familiar with the DSL - Something just works from the very beginning!&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://3.bp.blogspot.com/-ROhSVu-QTVg/T6zFMdk5cPI/AAAAAAAAAM0/V_YjNZFA9NE/s1600/java-dsl.png&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;181&quot; src=&quot;http://3.bp.blogspot.com/-ROhSVu-QTVg/T6zFMdk5cPI/AAAAAAAAAM0/V_YjNZFA9NE/s320/java-dsl.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Java DSL in Camel 1.0&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div&gt;
And a sample of the XML DSL, which you can see in the &lt;a href=&quot;http://svn.apache.org/repos/asf/camel/tags/camel-1.0.0/components/camel-spring/src/test/resources/org/apache/camel/spring/builder/spring_route_builder_test.xml&quot;&gt;source code as well&lt;/a&gt;.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://1.bp.blogspot.com/-8fLrqmFj_6k/T6zFXa6YhpI/AAAAAAAAAM8/wBT3nraqfFc/s1600/xml-dsl.png&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;99&quot; src=&quot;http://1.bp.blogspot.com/-8fLrqmFj_6k/T6zFXa6YhpI/AAAAAAAAAM8/wBT3nraqfFc/s320/xml-dsl.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;XML DSL in Camel 1.0&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div&gt;
And in this first release we also have the excellent Test Kit, for example notice the usage of mocks and setting up expectations in the screenshot below. Testing Camel was made easy from day-1. Yes its in the DNA of the Camel project.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://4.bp.blogspot.com/-WeDmm5Zsulk/T6zGPuZ4VAI/AAAAAAAAANE/zTb3hWQAyRQ/s1600/test-kit.png&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;214&quot; src=&quot;http://4.bp.blogspot.com/-WeDmm5Zsulk/T6zGPuZ4VAI/AAAAAAAAANE/zTb3hWQAyRQ/s320/test-kit.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Camel Test Kit already in Camel 1.0&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div&gt;
And notice from the unit test above, the reference to the founders of Apache Camel.&lt;/div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;James Strachan&lt;/li&gt;
&lt;li&gt;Rob Davies&lt;/li&gt;
&lt;li&gt;Hiram Chirino&lt;/li&gt;
&lt;li&gt;Guillaume Nodet&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
Thanks guys for creating this marvelous project. Impressive first release, you guys did 5 years ago.&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
I will end this blog by running the camel-example-spring from the Apache Camel 1.0 release.&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: 'Courier New', Courier, monospace;&quot;&gt;$cd examples&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: 'Courier New', Courier, monospace;&quot;&gt;$cd camel-example-spring&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: 'Courier New', Courier, monospace;&quot;&gt;$mvn compile&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: 'Courier New', Courier, monospace;&quot;&gt;$mvn camel:run&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Now you should have patience as Maven is downloading ancient JARs that are 5 years old. So it takes a while :)&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://1.bp.blogspot.com/-qTfwUgLNjiI/T6zRdYzoyPI/AAAAAAAAANQ/MS6e0vYpvgI/s1600/camel1-run2.png&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;194&quot; src=&quot;http://1.bp.blogspot.com/-qTfwUgLNjiI/T6zRdYzoyPI/AAAAAAAAANQ/MS6e0vYpvgI/s320/camel1-run2.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Camel 1.0 example running&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div&gt;
The screenshot above shows the Camel 1.0 example running. This example kicks off by consuming messages from a JMS queue and write those to a file. So we need to connect with jconsole, to send a message. I have highlighted the service url to use in jconsole.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://3.bp.blogspot.com/-whINLzgzZR8/T6zR4EOPLTI/AAAAAAAAANY/9nNL5FWAw5A/s1600/jconsole-send-msg.png&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;228&quot; src=&quot;http://3.bp.blogspot.com/-whINLzgzZR8/T6zR4EOPLTI/AAAAAAAAANY/9nNL5FWAw5A/s320/jconsole-send-msg.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;jconsole to send a message - Camel 1.0 rocks&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div&gt;
In jconsole we expand the tree and find the test queue, and invoke the sentTextMessage operation with the text &quot;Camel 1.0 rocks&quot;.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
In the 2nd screenshot above, you may notice in the last line from the console, it says &quot;Received Exchange&quot;. This is Camel logging this, as the example uses the following route shown in the screenshot in the top of this blog.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
We can then see the file was written to the test directory as well, where we can see the file name is the message id, and the file content is what we sent from jconsole:&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://2.bp.blogspot.com/-LmAPCX6Fci0/T6zSjrhJFBI/AAAAAAAAANg/jYS1QNJeW-I/s1600/cat-file.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;20&quot; src=&quot;http://2.bp.blogspot.com/-LmAPCX6Fci0/T6zSjrhJFBI/AAAAAAAAANg/jYS1QNJeW-I/s320/cat-file.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
This was 5 years ago, so lets fast forward to today.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
The last release of Apache Camel is 2.9.2, so lets migrate the old example to use this version instead. To do that you need to:&lt;/div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;Adjust the pom.xml to use Camel 2.9.2 and the camel-activemq component has been moved from Camel to ActiveMQ so you need to include that. And for logging we now use slf4j. The modified pom.xml is shown below&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://3.bp.blogspot.com/-GSS1byNOFbw/T6zVm1iTDKI/AAAAAAAAANs/5001BOtY-LI/s1600/pom.png&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;http://3.bp.blogspot.com/-GSS1byNOFbw/T6zVm1iTDKI/AAAAAAAAANs/5001BOtY-LI/s320/pom.png&quot; width=&quot;194&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Upgrading the example from Camel 1.0 to 2.9.2, adjusting the pom.xml file&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;In the Spring XML file you need to change the namespace of Camel, as when Camel graduated to become an Apache Top Level Project, the namespace was migrated from activemq to camel. Also we upgrade to use Spring 3.0 in the XSD. And the activemq component is now from ActiveMQ and not Camel. And the packages attribute is now a xml tag, so you need to use &amp;lt;packlage&amp;gt; in the &amp;lt;camelContext&amp;gt;. The updated file is shown below:&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://2.bp.blogspot.com/-k8bC1q3rN38/T6zWJZcW6hI/AAAAAAAAAN0/mTrajnBD_E4/s1600/spring.png&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;100&quot; src=&quot;http://2.bp.blogspot.com/-k8bC1q3rN38/T6zWJZcW6hI/AAAAAAAAAN0/mTrajnBD_E4/s320/spring.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Upgrading Spring XML from Camel 1.0 to Camel 2.9.2&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;div&gt;
Okay we are now ready to go. &lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;b&gt;There is no need for changes in the Java source code!!!&lt;/b&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://4.bp.blogspot.com/-gNb-D5AHUNg/T6zW8OUlQGI/AAAAAAAAAN8/PT8Pb6Ib1YE/s1600/camel-run3.png&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;117&quot; src=&quot;http://4.bp.blogspot.com/-gNb-D5AHUNg/T6zW8OUlQGI/AAAAAAAAAN8/PT8Pb6Ib1YE/s320/camel-run3.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;The example migrated from Camel 1.0 to 2.9.2 without any Java code changes!!!&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
And like before we use JConsole to send a text message.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
I must say James and the founders hit it in Camel 1.0 release, the DSL from the example is fully compatible with todays Camel release.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Indeed a very impressive first release. Camel was off to a great start, and the project has grown from strength to strength ever since.&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img alt=&quot;&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/5283832592516522895-1500348278665150812?l=davsclaus.blogspot.com&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~ff/ApacheCamel?a=gdSsXKNCZKo:3DTqTdZ0RYw:yIl2AUoC8zA&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/ApacheCamel?d=yIl2AUoC8zA&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/ApacheCamel?a=gdSsXKNCZKo:3DTqTdZ0RYw:4cEx4HpKnUU&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/ApacheCamel?i=gdSsXKNCZKo:3DTqTdZ0RYw:4cEx4HpKnUU&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/ApacheCamel?a=gdSsXKNCZKo:3DTqTdZ0RYw:F7zBnMyn0Lo&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/ApacheCamel?i=gdSsXKNCZKo:3DTqTdZ0RYw:F7zBnMyn0Lo&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/ApacheCamel?a=gdSsXKNCZKo:3DTqTdZ0RYw:V_sGLiPBpWU&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/ApacheCamel?i=gdSsXKNCZKo:3DTqTdZ0RYw:V_sGLiPBpWU&quot; /&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img height=&quot;1&quot; src=&quot;http://feeds.feedburner.com/~r/ApacheCamel/~4/gdSsXKNCZKo&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Fri, 11 May 2012 09:16:52 +0000</pubDate>
</item>
<item>
	<title>Tom White: Volcanoes!</title>
	<guid isPermaLink="true">http://www.lexemetech.com/2012/05/volcanoes.html</guid>
	<link>http://www.lexemetech.com/2012/05/volcanoes.html</link>
	<description>I've just finished reading &lt;a href=&quot;http://www.amazon.com/Super-Volcano-Ticking-Yellowstone-National/dp/0760329257&quot;&gt;&quot;Super Volcano: The Ticking Time Bomb Beneath Yellowstone National Park&quot;&lt;/a&gt; by Greg Breinin. Despite the hyperbolic title, it's a really good introduction to the subject. Actually, the title is entirely appropriate, since the previous Yellowstone eruption around 600,000 years ago was one &lt;i&gt;thousand&lt;/i&gt; times as powerful as the 1980 Mount St. Helens eruption. And it's likely to erupt again, but no one knows when.&lt;br /&gt;
&lt;br /&gt;
We've been on a bit of a volcano tour recently. First &lt;a href=&quot;http://faites-simple.blogspot.com/2011/10/lake-almanor-eagle-lake-and-lassen.html&quot;&gt;we visited Lassen Volcanic National Park&lt;/a&gt; in October (climbing the Cinder Cone was a highlight), and &lt;a href=&quot;http://faites-simple.blogspot.com/2012/04/towards-seattle-and-other-thoughts.html&quot;&gt;we stopped in on Mount St. Helens visitor center&lt;/a&gt; on our way to Seattle last month. Yesterday &lt;a href=&quot;http://faites-simple.blogspot.com/2012/05/yellowstone-mammoth-hot-springs-to-old.html&quot;&gt;we ventured into the Yellowstone caldera&lt;/a&gt; (the bit that blew out in the last eruption).&lt;br /&gt;
&lt;br /&gt;
Before reading the book I hadn't appreciated how recent our understanding of Yellowstone's geology is. It was only in the 1960s that scientists combined new empirical data about the ages of different rock formations in the park with the then emerging theory of plate tectonics. One of the scientists was Robert Christiansen of the U.S. Geological Survey, who, with Richard Blank, collected samples from all over Yellowstone and pieced together the puzzle of how Yellowstone formed. (He also wrote &lt;a href=&quot;http://pubs.usgs.gov/pp/pp729g/&quot;&gt;the definitive account of Yellowstone's geology&lt;/a&gt; in 2001.)&lt;br /&gt;
&lt;br /&gt;
They realized that the series of calderas between Oregon and Wyoming were all eruptions caused by what is now known as the &lt;a href=&quot;http://en.wikipedia.org/wiki/Yellowstone_Hotspot&quot;&gt;Yellowstone hotspot&lt;/a&gt; over the last 16 million years. The continental plate is moving south west, which makes the newer volcanoes appear in the north east.&lt;br /&gt;
&lt;br /&gt;
This &lt;a href=&quot;http://en.wikipedia.org/wiki/File:HotspotsSRP.jpg&quot;&gt;diagram from Wikipedia&lt;/a&gt; summarizes it nicely:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://upload.wikimedia.org/wikipedia/commons/thumb/4/46/HotspotsSRP.jpg/800px-HotspotsSRP.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;219&quot; src=&quot;http://upload.wikimedia.org/wikipedia/commons/thumb/4/46/HotspotsSRP.jpg/800px-HotspotsSRP.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img alt=&quot;&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/8898949683610477251-1017419998967425216?l=www.lexemetech.com&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;&lt;img height=&quot;1&quot; src=&quot;http://feeds.feedburner.com/~r/TomWhite/~4/sESWxYOpVAs&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Thu, 10 May 2012 20:42:44 +0000</pubDate>
</item>
<item>
	<title>Jacopo Cappellato: Film che ho visto: Halloween</title>
	<guid isPermaLink="true">http://jacopospot.blogspot.com/2012/05/film-che-ho-visto-halloween.html</guid>
	<link>http://jacopospot.blogspot.com/2012/05/film-che-ho-visto-halloween.html</link>
	<description>Film di John Carpenter del 1978 che ha ispirato (e forse iniziato) il sottogenere degli slasher e di fatto ne fissa tutti gli stereotipi: un pazzo omicida perseguita e massacra, uno dopo l'altro, dei ragazzi stupidissimi e insopportabili per poi fallire con l'ultimo (in genere il più' timido/sfigato) e poi finire ammazzato (ma nell'epilogo poi si scopre che non e' vero e che ci sarà un sequel).&lt;br /&gt;&lt;br /&gt;Alcune scene sono riuscite e mettono ancora qualche brivido:&lt;br /&gt;* la scena iniziale tutta vista dagli occhi dell'assassino/bambino&lt;br /&gt;* le apparizioni di Myers immobile in pieno giorno (aliena e inquietante presenza)&lt;br /&gt;* il ritrovamento, da parte della protagonista (una giovanissima Jamie Lee Curtis), dei cadaveri degli amici nella stanza adibita a mausoleo.&lt;br /&gt;&lt;br /&gt;Ma una domanda: dopo aver assassinato i ragazzi e prima di cercare di fare lo stesso con la protagonista a Michael Myers e' venuto un ictus, vero? Fino a quel momento era stato letale ma poi:&lt;br /&gt;* camminava lentissimo&lt;br /&gt;* mancava il bersaglio con fendenti da 10 centimetri di distanza&lt;br /&gt;* scendeva le scale come se si fosse cagato addosso&lt;br /&gt;e si e' pure fatto trafiggere da da una ragazzina terrorizzata armata di spillone da maglia prima e poi di un appendiabiti (!?)&lt;br /&gt;&lt;br /&gt;Comunque, banalità a parte, Halloween si eleva di molto sopra il livello di molti altri film del genere e regge bene il peso degli anni.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img alt=&quot;&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/20491786-890593754578591939?l=jacopospot.blogspot.com&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Thu, 10 May 2012 18:44:15 +0000</pubDate>
</item>
<item>
	<title>Chris Pepper: Isilon Notes, 2012 Edition</title>
	<guid isPermaLink="true">http://www.extrapepperoni.com/post/2012/04/Isilon-Tips</guid>
	<link>http://www.extrapepperoni.com/post/2012/04/Isilon-Tips</link>
	<description>&lt;h2&gt;General&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Isilon provides templates for &lt;a href=&quot;http://www.nagios.org/&quot;&gt;Nagios&lt;/a&gt;, which you should use. Unfortunately Nagios cannot distinguish serious problems (failed disk) from trivia (quota violations &amp;amp; bogus warnings).&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Hardware&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Isilon's current units are either 2U (12-bay 200 series) or 4U (36-bay 400 series).&lt;/li&gt;
&lt;li&gt;The new NL400-108 nodes are similar enough to the older 108NL nodes that they pool together. The 108NLs are dual-socket 16gb nodes based on the 72000x chassis, which is an upgrade from the 36000x chassis. This makes them much faster than the older single-core 36NLs &amp;amp; 72NLs.&lt;/li&gt;
&lt;li&gt;As of OneFS v6.0(?), Isilon nodes no longer use the VGA keyboard &amp;amp; mouse console. Instead they use the serial port exclusively as console, although the VGA port does display some booting messages. In 2011, a USB connection to a KVM made a node reboot until we disconnected USB.&lt;/li&gt;
&lt;li&gt;Every node is assigned a device ID when it is joined to the cluster. All alerts are tagged with the device ID of the node reporting the event. Device IDs are never reused, so if a chassis fails and is swapped out, the replacement will get a new device ID, but the old node's hostname. If this happens to you, you may want to use &lt;code&gt;isi config&lt;/code&gt; (with advice from Isilon Support) to change the hostname to match the device ID. With a large or dynamic cluster it might just be better to ignore device IDs and let the node names run in a contiguous sequence.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Jobs&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Isilon's job engine is problematic. Only one job runs at a time, and jobs are not efficiently parallelized.&lt;/li&gt;
&lt;li&gt;MultiScan combines Collect and AutoBalance jobs.&lt;/li&gt;
&lt;li&gt;During the Mark phase of Collect (or MultiScan), with snapshots enabled, delete is &lt;strong&gt;slow&lt;/strong&gt; and can cause NFS timeouts.&lt;/li&gt;
&lt;li&gt;It is fine for non-disruptive jobs to run in the background for long periods, and it is understandable for high-priority jobs to briefly impact the cluster, but there are too many jobs (SmartPools, AutoBalance, Collect, MultiScan) which have a substantial impact on performance for long periods.&lt;/li&gt;
&lt;li&gt;There are enough long-running jobs that it's easy to get into a cycle where as soon as one finishes another resumes, meaning a job is always running and the cluster never actually catches up. It took months for us to get this all sorted out so the jobs run safely in the background and don't interfere badly.&lt;/li&gt;
&lt;li&gt;When a drive does not respond quickly, Isilon logs a 'stall' in &lt;code&gt;/var/log/messages&lt;/code&gt;. Stalls trigger &quot;group changes&quot;, which can trigger jobs. Group changes also disrupt jobs including MultiScan, AutoBalance, &amp;amp; MediaScan from completing. The workaround is to tune &lt;code&gt;/etc/mcp/override/sysctl.conf&lt;/code&gt; per Isilon Support.&lt;/li&gt;
&lt;li&gt;The default job priorities were dysfunctional for us. We had to alter priorites for AutoBalance, SnapshotDelete, SmartPools, and QuotaScan, and frequency for at least SmartPools. This improved somewhat in v6.5.&lt;/li&gt;
&lt;li&gt;To tweak job priority, do &lt;strong&gt;not&lt;/strong&gt; redefine an existing priority. This caused problems as the change cascaded to other jobs. Define a new priority instead.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Batch Jobs&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;/etc/mcp/templates/crontab&lt;/code&gt; is a cluster-wide crontab; field #6 is username.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Support &amp;amp; Diagnostics&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;By default, Isilon's main diagnostic command, &lt;code&gt;isi_gather_info&lt;/code&gt;, builds a tarball of configuration and logs and uploads it to EMC. This took over 15 minutes on our clusters. To make this quicker, change &quot;Gather mode&quot; to Incremental under Help:Diagnostics:Settings.&lt;/li&gt;
&lt;li&gt;Isilon does not actually maintain an HTTP upload server, so uncheck HTTP upload to avoid a wasted timeout.&lt;/li&gt;
&lt;li&gt;When a node crashes it logs a core in &lt;code&gt;/var/crash&lt;/code&gt;, which can fill up. Upload the log with '&lt;code&gt;isi_gather_info -s &quot;isi_hw_status -i&quot; -f /var/crash&lt;/code&gt;' on the affected node before deleting it.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Network &amp;amp; DNS&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Isilon is &quot;not compatible&quot; with firewalls, so client firewalls must be configured to allow all TCP &amp;amp; UDP ports from Isilon nodes &amp;amp; pools back to NFS clients (and currently SNMP consoles).&lt;/li&gt;
&lt;li&gt;Specifically, there is a bug where SNMP responses come from the node's primary IP. &lt;code&gt;iptables&lt;/code&gt; on our Nagios console dropped responses which came from a different IP than Nagios queried.&lt;/li&gt;
&lt;li&gt;To use SmartConnect you must &lt;em&gt;delegate&lt;/em&gt; the Isilon domain names to the SmartConnect resolver on the cluster. We were unable to use DNS forwarding in BIND with this delegation active.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;NFS&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;By default Isilon exports a shared large &lt;code&gt;/ifs&lt;/code&gt; filesystem from all nodes. They suggest mounting with &lt;code&gt;/etc/fstab&lt;/code&gt; options &lt;code&gt;rw,nfsvers=3,rsize=131072,wsize=524288&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;CIFS&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Migrating an IP to another node disconnects CIFS clients of that IP.&lt;/li&gt;
&lt;li&gt;CIFS clients should use their own static SmartConnect pools rather than connecting to dynamic SmartConnect pools (for NFS clients).&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Load Balancing&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Rather than real-time load balancing, Isilon handles load-balancing through its built-in DNS server (SmartConnect: Basic or Advanced). Because this happens at connection time, the cluster cannot manage load between clients which are already connected, except via &quot;&lt;code&gt;isi networks --sc-rebalance-all&lt;/code&gt;&quot;, which shuffles server-side IPs in to even out load. Unfortunately OneFS (as of v6.5) does not track utilization statistics for network connections, so it cannot intelligently determine how much traffic each IP represents. This means only Round Robin and Connection Count are suitable for &quot;IP failover policy&quot; (rebalancing) -- &quot;Network Throughput&quot; &amp;amp; &quot;CPU Usage&quot; don't work.&lt;/li&gt;
&lt;li&gt;High availability is handled by reassigning IPs to different nodes in case of failure. For NFS this is seamless, but for CIFS this causes client disconnection. As a result CIFS clients must connect to static pools, and &quot;&lt;code&gt;isi networks --sc-rebalance-all&lt;/code&gt;&quot; should never be run on clusters with CIFS clients (there is apparently a corresponding command to rebalance a single pool, suitable for manual use on each dynamic pool).&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Quotas&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Some of the advantage of the single filesystem is lost because it is impossible to move files from one quota under another. This forces us to copy (&lt;code&gt;rsync&lt;/code&gt;) and then delete as if each quota were its own mount point.&lt;/li&gt;
&lt;li&gt;For user quota reporting, each user should have an account (perhaps via LDAP or AD) on the cluster.&lt;/li&gt;
&lt;li&gt;For user quota notifications, each user must have an email mapping (we created aliases to route machine account quota notifications to the right users).&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Bugs&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;The user &lt;code&gt;Enable&lt;/code&gt; checkbox disables all login access (but preserves UID mappings for quota reports). Unchecking it blocks both &lt;code&gt;ssh&lt;/code&gt; and CIFS/SMB access and clears the user password.&lt;/li&gt;
&lt;li&gt;You cannot create a user with a home directory that exists (even with &lt;code&gt;--force&lt;/code&gt;). Workaround: move the directory aside before creating the user, or create with a bogus homedirectory (which can only be used once) and use &quot;&lt;code&gt;isi auth local user modify&lt;/code&gt;&quot; to fix after creation.&lt;/li&gt;
&lt;li&gt;Don't use more than 8 SyncIQ policies (I don't know if this bug has been fixed).&lt;/li&gt;
&lt;li&gt;Gateways and priorities are not clear, but if there are 2 gateways with the same priority the cluster can get confused and misbehave. The primary gateway should have the lowest priority number (1).&lt;/li&gt;
&lt;li&gt;We heard one report that advisory quotas on a SyncIQ target cluster caused SyncIQ errors.&lt;/li&gt;
&lt;li&gt;If you configure two gateways with the same priority, the cluster can get confused and misbehave.&lt;/li&gt;
&lt;li&gt;In at least one case, advisory quotas on a SyncIQ target disrupted SyncIQ.&lt;/li&gt;
&lt;li&gt;The Virtual Hot Spare feature appears to reserve twice as many drives as are specified in the UI, and they do not work as described.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Support&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Support is very slow. SLAs apparently only apply to parts delivery -- our 4-hour service does not prevent Isilon from saying they will answer questions in a few days.&lt;/li&gt;
&lt;li&gt;Support is constantly backlogged. Callback times are rarely made and cases are often not followed up unless we call in to prod Support.&lt;/li&gt;
&lt;li&gt;My process for opening a case looks like this:

&lt;ol&gt;
&lt;li&gt;Run &lt;code&gt;uname -a; isi_hw_status -i; isi_gather_info&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Paste output from first 2 commands and gather filename into email message.&lt;/li&gt;
&lt;li&gt;Describe problem and send email to support@.&lt;/li&gt;
&lt;li&gt;A while later we get a confirmation email with a case number.&lt;/li&gt;
&lt;li&gt;A day or two later I get tired of waiting and phone Isilon support.&lt;/li&gt;
&lt;li&gt;I punch in my case number from the acknowledgement.&lt;/li&gt;
&lt;li&gt;I get a phone rep and repeat the case number.&lt;/li&gt;
&lt;li&gt;The phone rep transfers me to a level 1 support rep, who as a rule cannot answer my question.&lt;/li&gt;
&lt;li&gt;The L1 rep tries to reach an L2 rep to address my question. They are often unable to reach anyone(!!!), and promise a callback as soon as they find an L2 rep.&lt;/li&gt;
&lt;li&gt;As a rule, I do not receive a callback.&lt;/li&gt;
&lt;li&gt;Eventually I give up on waiting and call in again.&lt;/li&gt;
&lt;li&gt;I describe my problem a third time.&lt;/li&gt;
&lt;li&gt;The L1 tech goes off to find an answer.&lt;/li&gt;
&lt;li&gt;I may have to call back in and prod L1 multiple times (there is no way for me to reach L2 directly).&lt;/li&gt;
&lt;li&gt;Eventually I get an answer. This process often takes over a week.&lt;/li&gt;
&lt;/ol&gt;&lt;/li&gt;
&lt;li&gt;Support provides misinformation too often. Most often this is simple ignorance or confusion, but it appears to be EMC policy to deny that &lt;em&gt;any&lt;/em&gt; problem affects multiple sites.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Commands&lt;/h2&gt;

&lt;p&gt;For manual pages, use an underscore (&lt;em&gt;e.g.,&lt;/em&gt; &lt;code&gt;man isi_statistics&lt;/code&gt;). The command line is much more complete than the web interface but not completely documented. Isilon uses &lt;code&gt;zsh&lt;/code&gt; with customized tab completion. When opening a new case include output from &quot;&lt;code&gt;uname -a&lt;/code&gt;&quot; &amp;amp; &quot;&lt;code&gt;isi_hw_status -i&lt;/code&gt;&quot;, and run &lt;code&gt;isi_gather_info&lt;/code&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;isi_for_array -s&lt;/code&gt;: Execute a command on all nodes in in order.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;isi_hw_status -i&lt;/code&gt;: Node model &amp;amp; serial number -- include this with every new case.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;isi status&lt;/code&gt;: Node &amp;amp; job status. &lt;code&gt;-n#&lt;/code&gt; for particular node, &lt;code&gt;-q&lt;/code&gt; to skip job status, &lt;code&gt;-d&lt;/code&gt; for SmartPool utilization; we use &lt;code&gt;isi status -qd&lt;/code&gt; more often.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;isi statistics pstat --top&lt;/code&gt; &amp;amp; &lt;code&gt;isi statistics protocol --protocol=nfs --nodes=all --top --long --orderby=Ops&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;isi networks&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;isi alerts list -A -w&lt;/code&gt;: Review all alerts.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;isi alerts cancel all&lt;/code&gt;: Clear existing alerts, including the throttled critical errors message. Better than the '''Quiet''' command, which can suppress future errors as well.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;isi networks --sc-rebalance-all&lt;/code&gt;: Redistribute SmartConnect IPs to rebalance load. Not suitable for clusters with CIFS shares.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;du -A&lt;/code&gt;: Size, excluding protection overhead, from an Isilon node.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;du --apparent-size&lt;/code&gt;: Size, excluding protection overhead, from a Linux client.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;isi devices&lt;/code&gt;: List disks with serial numbers.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;isi snapshot list --schedule&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;isi snapshot usage | grep -v '0.0'&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;isi quota list --show-with-no-overhead&lt;/code&gt; | &lt;code&gt;isi quota list --show-with-overhead&lt;/code&gt; | &lt;code&gt;isi quota list --recurse-path=/ifs/nl --directory&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;isi quota modify --directory --path=/ifs/nl --reset-notify-state&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;isi job pause MultiScan&lt;/code&gt; / &lt;code&gt;isi job resume MultiScan&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;isi job config --path jobs.types.filescan.enabled=False&lt;/code&gt;: Disable MultiScan.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;isi_change_list&lt;/code&gt; (unsupported): List changes between snapshots.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;sysctl -n hw.physmem&lt;/code&gt;: Check RAM.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;isi device -a smartfail -d 1:bay6&lt;/code&gt; / &lt;code&gt;isi devices -a stopfail -d 1:bay6&lt;/code&gt; (&lt;code&gt;stopfail&lt;/code&gt; is not normally appropriate)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;isi devices -a add -d 12:10&lt;/code&gt;: Use new disk in node 12, bay 10.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;date; i=0; while [ $i -lt 36 ]; do isi statistics query --nodes=1-4 --stats=node.disk.xfers.rate.$i; i=$[$i+1]; done&lt;/code&gt; # Report disk IOPS(?) for all disks in nodes 1-4 -- 85-120 is apparently normal for SATA drives.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;isi networks modify pool --name *$NETWORK*:*$POOL* --sc-suspend-node *$NODE*&lt;/code&gt;: Prevent $POOL from offering $NODE for new connections, without interfering with active connections. &lt;code&gt;--sc-resume-node&lt;/code&gt; to undo.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;isi_lcd_d restart&lt;/code&gt;: Reset LEDs.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;isi smb config global modify --access-based-share-enum=true&lt;/code&gt;: Restrict SMB shares to authorized users (global version); &lt;code&gt;isi smb config global list | grep access-based&lt;/code&gt;: verify (KB #2837)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ifa isi devices | grep -v HEALTHY&lt;/code&gt;: Find problem drives.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;isi quota create --path=$PATH --directory --snaps=yes --include-overhead --accounting&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cd /ifs; touch LINTEST; isi get -DD LINTEST | grep LIN; rm LINTEST&lt;/code&gt;: Find the current maximum LIN.&lt;/li&gt;
&lt;/ul&gt;</description>
	<pubDate>Thu, 10 May 2012 15:16:28 +0000</pubDate>
</item>
<item>
	<title>Jon Scott Stevens: Scrape webpages with node.js</title>
	<guid isPermaLink="true">http://feedproxy.google.com/~r/KickMeInTheNuts/~3/or9S5NPZoCM/scrape-webpages-with-nodejs.html</guid>
	<link>http://feedproxy.google.com/~r/KickMeInTheNuts/~3/or9S5NPZoCM/scrape-webpages-with-nodejs.html</link>
	<description>I recently had the task of scraping data from a website so I choose to use &lt;a href=&quot;http://nodejs.org/&quot;&gt;node.js&lt;/a&gt; in order to get a bit more experience with it. After checking out a few different options for scraping, I finally settled on the &lt;a href=&quot;https://github.com/chriso/node.io&quot;&gt;node.io&lt;/a&gt; project which provided the most robust handling and configuration features that I could find.&lt;br /&gt;
&lt;br /&gt;
The hard part about scraping data from websites is coming up with ways to quickly and reliably pick out pieces from the document object model (DOM). These days, I spend a lot of time using the &lt;a href=&quot;http://api.jquery.com/category/selectors/&quot;&gt;jQuery selector syntax&lt;/a&gt; to develop &lt;a href=&quot;https://www.voo.st/&quot;&gt;my site&lt;/a&gt; which means that ideally I'd find a solution that can download a webpage and then provide me with jQuery-like functions and selectors to pick out pieces from the DOM. For this purpose, node.io uses a project called &lt;a href=&quot;https://github.com/harryf/node-soupselect&quot;&gt;node-soupselect&lt;/a&gt; by default, but I found the selector syntax to be lacking. Thus, I layered another project called &lt;a href=&quot;https://github.com/MatthewMueller/cheerio&quot;&gt;cheerio&lt;/a&gt; on top. Whatever you do, don't use &lt;a href=&quot;https://github.com/tmpvar/jsdom&quot;&gt;jsdom&lt;/a&gt; as it is too slow and very strict in its processing of html.&lt;br /&gt;
&lt;br /&gt;
Node.io stands out from the rest of the projects because it applies a 'jobs' approach to scraping. This is something that I used in &lt;a href=&quot;https://github.com/lookfirst/jmxtrans&quot;&gt;another project of mine&lt;/a&gt; and it worked out really well. In other words, you write a 'job' which gets executed and if there is a failure during the run of the job, you have control over what you do next (skip, fail, retry).&lt;br /&gt;
&lt;br /&gt;
In order to develop and debug your code, you shouldn't continually hit the website that you are scraping from. What I do is download the page I want to scrape and then run a local webserver to serve up the file. I found the python webserver the easiest to use as it is just one simple command, &lt;span style=&quot;font-family: 'Courier New', Courier, monospace;&quot;&gt;python -m SimpleHTTPServer 8000&lt;/span&gt; which will serve up files from whichever directory you run that command from.&lt;br /&gt;
&lt;br /&gt;
For debugging code, I recommend setting up the excellent &lt;a href=&quot;https://github.com/dannycoates/node-inspector&quot;&gt;node-inspector&lt;/a&gt; which will allow you to setup breakpoints in your code and step through to inspect objects as necessary, just like you do with web page JavaScript development. This becomes invaluable with JavaScript because the lack of types makes it hard to know what properties objects have. For logging output to the console so that I could keep track of the execution, I ended up with the &lt;a href=&quot;https://github.com/igo/nlogger&quot;&gt;nlogger&lt;/a&gt; project which I wasn't super happy with, but worked well enough for this project.&lt;br /&gt;
&lt;br /&gt;
Writing your first job is easy and if you are a &lt;a href=&quot;http://coffeescript.org/&quot;&gt;CoffeeScript&lt;/a&gt; (CS) fan, node.io will automatically compile your CS files for you.  If you aren't a CS fan, I apologize as my example is in CS. This simple job @get's a page and selects the &amp;lt;title&amp;gt; element:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;brush:js&quot;&gt;nodeio = require 'node.io'
cheerio = require 'cheerio'
log = require('nlogger').logger(module)

count = 0
class InputScraper extends nodeio.JobClass
    input: [476,1184]
    run: (inputId) -&amp;gt;
        @get &quot;http://localhost:8000/#{inputId}.html&quot;, (err, data, headers) =&amp;gt;
            @exit(err) if err?
            try
                log.info('Started: {}', inputId)
                $ = cheerio.load(data)
                @emit($('title').text())
                log.info(&quot;(#{count}) Finished inputId: #{inputId}&quot;)
                count++
            catch error
                log.error('Error: {} : {}', inputId, error.stack)
                @skip()
    output: (data) -&amp;gt;
        console.log(data)
@class = InputScraper
@job = new InputScraper({spoof:true, max: 1})

nodeio.start(@job)&lt;/pre&gt;
&lt;br /&gt;
The 'run' function is called for each piece of input data in the array (476, 1184). @get() grabs the html page data. On success, @get() executes the callback function which loads the data into cheerio and @emit()'s the title. When the 'run' function is complete, node.io calls output which logs the @emit() data to the console.&lt;br /&gt;
&lt;br /&gt;
In my code, the line above the @emit(), I have another class function which I pass the $ cheerio object into which handles all of my parsing and the result is an object that I pass into @emit(). This allows me to re-use the InputScraper boilerplate to parse all sorts of different pages.&lt;br /&gt;
&lt;br /&gt;
I also run things directly with node 'nodeio.start(@job)' so that I can use the node-inspector more easily. This means that I also end up actually compiling the CS myself using my answer on &lt;a href=&quot;http://stackoverflow.com/a/7507987/253773&quot;&gt;StackOverflow&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Obviously, this is a pretty simple example, but it should get you up and running with the node.io framework quickly. The speed of this is fairly impressive, on my desktop and home network, I was able to crawl and extract data from about 2000 webpages using max: 20 in about 1.5 minutes. Most of the time is spent downloading the pages and the parsing only takes a few milliseconds.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img alt=&quot;&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/1033933413127832310-923324018630494914?l=lookfirst.com&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href=&quot;http://feedads.g.doubleclick.net/~a/BcM-RQtY7VocXGHhjwijvkxFoVo/0/da&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;true&quot; src=&quot;http://feedads.g.doubleclick.net/~a/BcM-RQtY7VocXGHhjwijvkxFoVo/0/di&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://feedads.g.doubleclick.net/~a/BcM-RQtY7VocXGHhjwijvkxFoVo/1/da&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;true&quot; src=&quot;http://feedads.g.doubleclick.net/~a/BcM-RQtY7VocXGHhjwijvkxFoVo/1/di&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img height=&quot;1&quot; src=&quot;http://feeds.feedburner.com/~r/KickMeInTheNuts/~4/or9S5NPZoCM&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Thu, 10 May 2012 02:03:17 +0000</pubDate>
</item>
<item>
	<title>Jon Scott Stevens: The first comprehensive review of 22 online athletic event registration services. The Good, the Bad, and the Ugly.</title>
	<guid isPermaLink="true">http://feedproxy.google.com/~r/KickMeInTheNuts/~3/3Qyzyx3r5Hg/first-comprehensive-review-of-22-online.html</guid>
	<link>http://feedproxy.google.com/~r/KickMeInTheNuts/~3/3Qyzyx3r5Hg/first-comprehensive-review-of-22-online.html</link>
	<description>&lt;div class=&quot;separator&quot;&gt;
&lt;span style=&quot;color: #666666; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; line-height: 22px;&quot;&gt;Before we decided to build Voost, we spent a lot of time studying the myriad registration services already available online. There are a staggeringly large number of choices with wildly differing levels of sophistication. Comparing them is incredibly difficult, in no small part due to the fact that many of these websites seem to go out of their way to hide critical information like fees and disbursement schedules.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot;&gt;
&lt;span style=&quot;color: #666666; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;&quot;&gt;&lt;span style=&quot;line-height: 22px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot;&gt;
&lt;span style=&quot;color: #666666; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;&quot;&gt;&lt;span style=&quot;line-height: 22px;&quot;&gt;Over a hundred hours of tedious research, creating accounts, combing through documentation and FAQs, setting up test events, going through registration processes, calculating fees, etc. While we certainly have biases, we have tried to present the information as objectively as possible - this isn't a cheap marketing gimmick designed to show green checkboxes for us and red Xes for our competitors. We freely admit that there are features other services have that Voost does not (yet!) - and this information is reflected on the table.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot;&gt;
&lt;span style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot;&gt;
&lt;span style=&quot;color: #666666; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; line-height: 22px;&quot;&gt;The table is not complete. We have left fields blank where we just couldn't figure out the answers (and believe me, we tried). Despite our best efforts, there may also be errors - again, some websites seem to deliberately befuddle attempts at objective comparison.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot;&gt;
&lt;span style=&quot;color: #666666; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; line-height: 22px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot;&gt;
&lt;span style=&quot;color: #666666; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; line-height: 22px;&quot;&gt;&lt;a href=&quot;https://www.voo.st/compare&quot; target=&quot;_blank&quot;&gt;Click the image to view the whole table.&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://www.voo.st/compare&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;300&quot; src=&quot;http://2.bp.blogspot.com/-1sHM12AdrTY/T3Srk25zcLI/AAAAAAAAAtY/6QQTZu0EMBk/s400/compare.jpg&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img alt=&quot;&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/1033933413127832310-1434760079488080732?l=lookfirst.com&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href=&quot;http://feedads.g.doubleclick.net/~a/-6wUPu34AoQBnEt_Bs32MTH4a4I/0/da&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;true&quot; src=&quot;http://feedads.g.doubleclick.net/~a/-6wUPu34AoQBnEt_Bs32MTH4a4I/0/di&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://feedads.g.doubleclick.net/~a/-6wUPu34AoQBnEt_Bs32MTH4a4I/1/da&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;true&quot; src=&quot;http://feedads.g.doubleclick.net/~a/-6wUPu34AoQBnEt_Bs32MTH4a4I/1/di&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img height=&quot;1&quot; src=&quot;http://feeds.feedburner.com/~r/KickMeInTheNuts/~4/3Qyzyx3r5Hg&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Wed, 09 May 2012 23:42:18 +0000</pubDate>
</item>
<item>
	<title>FeatherCast: Apache OpenOffice 3.4, interview with Jürgen Schmidt</title>
	<guid isPermaLink="true">http://feathercast.apache.org/?p=170&amp;utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=apache-openoffice-3-4-interview-with-jurgen-schmidt</guid>
	<link>http://feathercast.apache.org/?p=170&amp;utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=apache-openoffice-3-4-interview-with-jurgen-schmidt</link>
	<description>&lt;p&gt;I recently spoke with Jürgen Schmidt about the release of Apache OpenOffice 3.4, and what went into that process. Here’s that interview.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div class=&quot;googlePlusOneButton&quot;&gt;&lt;div class=&quot;g-plusone&quot; size=&quot;standard&quot;&gt;&lt;/div&gt;&lt;/div&gt;</description>
	<pubDate>Wed, 09 May 2012 14:03:18 +0000</pubDate>
</item>
<item>
	<title>Claus Ibsen: Davs Claus is ready for CamelOne - 100$ discount code</title>
	<guid isPermaLink="true">http://feedproxy.google.com/~r/ApacheCamel/~3/NLWE-lUK23I/davs-claus-is-ready-for-camelone-100.html</guid>
	<link>http://feedproxy.google.com/~r/ApacheCamel/~3/NLWE-lUK23I/davs-claus-is-ready-for-camelone-100.html</link>
	<description>So the 2nd annual &lt;a href=&quot;http://fusesource.com/apache-camel-conference-2012/&quot;&gt;CamelOne&lt;/a&gt; conference is just around the corner.&lt;br /&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://1.bp.blogspot.com/-6UcWMx-RQ0Q/T1jDxiwJvnI/AAAAAAAAAI0/OEjuEdr-9uk/s1600/camelone_sig_v1.jpg&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://1.bp.blogspot.com/-6UcWMx-RQ0Q/T1jDxiwJvnI/AAAAAAAAAI0/OEjuEdr-9uk/s1600/camelone_sig_v1.jpg&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;CamelOne 2012&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
And I am of course attending. &lt;a href=&quot;http://janstey.blogspot.com/&quot;&gt;Jonathan&lt;/a&gt; and I was asked to give this years key note on the first day, to give a briefing of the state of the Apache Camel project, with focus on the past, the present and the future. We are honored to follow the foot steps of &lt;a href=&quot;http://davsclaus.blogspot.se/2011/09/camelone-2011-flashback.html&quot;&gt;last years key note speakers&lt;/a&gt; Gregor Hohpe and James Strachan.&lt;br /&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://3.bp.blogspot.com/-LNas4KXB490/TmoWGtSncmI/AAAAAAAAADg/1EmLcCgNUdQ/s1600/IMG_0087.jpg&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;239&quot; src=&quot;http://3.bp.blogspot.com/-LNas4KXB490/TmoWGtSncmI/AAAAAAAAADg/1EmLcCgNUdQ/s320/IMG_0087.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;James Strachan and Gregor Hohpe&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
Two persons whom has a huge reason why there is an Apache Camel project today.&lt;br /&gt;
&lt;br /&gt;
We have their keynote session as &lt;a href=&quot;http://fusesource.com/fuse/camelone-2011-videos/&quot;&gt;videos from last year&lt;/a&gt;. I encourage you to view those, its nice to hear Gregor talk about how the EIP book came along, and some of his thoughts for a 2nd EIP book. Likewise James outlines the history from the early days when the core team from Apache ActiveMQ took form and how that evolved into new projects such as Apache ServiceMix, Apache Camel and lately Apache Karaf and &lt;a href=&quot;http://fuse.fusesource.org/fabric/&quot;&gt;Fuse Fabric&lt;/a&gt;. Also James gives his thoughts where Camel is heading for the future with the cloud and all that.&lt;br /&gt;
&lt;br /&gt;
The CamelOne website contains the agenda, speaker list, location information, and other useful information.&lt;br /&gt;
&lt;br /&gt;
We have a special discount on the ticket price, with thanks to &lt;a href=&quot;http://fusesource.com/apache-camel-conference-2012/camelone_sponsors_2012/&quot;&gt;Manning&lt;/a&gt; being a sponsor. You can get 100$ off the price, and get a e-book copy of the &lt;a href=&quot;http://manning.com/ibsen/&quot;&gt;Camel in Action&lt;/a&gt; book. Use the promotion code: &lt;b&gt;CamelAction&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.christianposta.com/blog/?p=213&quot;&gt;Christian Posta&lt;/a&gt; is going as well, and he wrote a blog entry why he is excited to go, and highlights some of the talks he is looking forward to attend.&lt;br /&gt;
&lt;br /&gt;
So I am polishing the last minute details on our slides, and getting ready. As I play football in my spare time on a amateur/hobby level, I was challenge by my team mates, to wear a football shirt giving my talk.&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://2.bp.blogspot.com/-s8BPQ1M4sT8/T6pB1OpMcQI/AAAAAAAAAMY/gLx08u-tqOk/s1600/74davsclaus.jpg&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;http://2.bp.blogspot.com/-s8BPQ1M4sT8/T6pB1OpMcQI/AAAAAAAAAMY/gLx08u-tqOk/s320/74davsclaus.jpg&quot; width=&quot;253&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Player number 74 - Davs Claus&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
Well lets see if that happens :)&lt;br /&gt;
&lt;br /&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img alt=&quot;&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/5283832592516522895-2396511530757147492?l=davsclaus.blogspot.com&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~ff/ApacheCamel?a=NLWE-lUK23I:Evk8ypQQFO4:yIl2AUoC8zA&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/ApacheCamel?d=yIl2AUoC8zA&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/ApacheCamel?a=NLWE-lUK23I:Evk8ypQQFO4:4cEx4HpKnUU&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/ApacheCamel?i=NLWE-lUK23I:Evk8ypQQFO4:4cEx4HpKnUU&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/ApacheCamel?a=NLWE-lUK23I:Evk8ypQQFO4:F7zBnMyn0Lo&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/ApacheCamel?i=NLWE-lUK23I:Evk8ypQQFO4:F7zBnMyn0Lo&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/ApacheCamel?a=NLWE-lUK23I:Evk8ypQQFO4:V_sGLiPBpWU&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/ApacheCamel?i=NLWE-lUK23I:Evk8ypQQFO4:V_sGLiPBpWU&quot; /&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img height=&quot;1&quot; src=&quot;http://feeds.feedburner.com/~r/ApacheCamel/~4/NLWE-lUK23I&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Wed, 09 May 2012 10:15:47 +0000</pubDate>
</item>
<item>
	<title>Ian Boston: The trouble with Time Machine</title>
	<guid isPermaLink="true">http://blog.tfd.co.uk/2012/05/09/the-trouble-with-time-machine/</guid>
	<link>http://blog.tfd.co.uk/2012/05/09/the-trouble-with-time-machine/</link>
	<description>&lt;p&gt;Every now and again &lt;a class=&quot;zem_slink&quot; href=&quot;http://en.wikipedia.org/wiki/Time_Machine_%28Mac_OS%29&quot; rel=&quot;wikipedia&quot; target=&quot;_blank&quot; title=&quot;Time Machine (Mac OS)&quot;&gt;Time Machine&lt;/a&gt; will spit out a “Cant perform backup, you must re-create your backup from scratch” or “Cant attach backup”.  For anyone who was relying on its rollback-time feature this is a reasonably depressing message and does typify modern operating systems, especially those of the closed source variety. At some point, having spent all the budget on pretty user interfaces, and catered for all use cases the deadline driven environment decides, “Aw stuffit we will just popup a catch all, your stuffed mate dialog box”. 99% of users, rant and rave and delete their backup starting again with a sense of injustice. If your reading this and have little or no technical knowledge, thats what you should do now.&lt;/p&gt;
&lt;p&gt;If you get down to bare nuts and bolts you will find that a Time Machine backup is not that disimular to a &lt;a class=&quot;zem_slink&quot; href=&quot;http://en.wikipedia.org/wiki/BackupPC&quot; rel=&quot;wikipedia&quot; target=&quot;_blank&quot; title=&quot;BackupPC&quot;&gt;BackupPC&lt;/a&gt; backup of 10 years ago. It makes extensive use of hard links to snapshot the state of the disk. It perform this in folders with thousands of files creating uniformly distributed tree. That all works fine except when it doesn’t. Anyone who has used hard links in anger on a file system will know it tends to put the file system under a lot of stress resulting in more filesystem corruptions than normal. File systems are not that transactional so if an operation fails part way through, then the hard links may start to generate orphaned links.&lt;/p&gt;
&lt;p&gt;Now TimeMachine runs fsck_hsf when it attaches a &lt;a class=&quot;zem_slink&quot; href=&quot;http://en.wikipedia.org/wiki/Sparse_image&quot; rel=&quot;wikipedia&quot; target=&quot;_blank&quot; title=&quot;Sparse image&quot;&gt;sparse bundle&lt;/a&gt; file system which is the Time Machine backup. Unfortunately it doesn’t try that hard to fix any problems it finds and couldn’t possibly corrupt its pretty UI by telling the user that it might have a problem with the users cherished backup of life’s memories. Not good for marketing, loosing your loyal customers photos when you promised them it wouldn’t happen. Fortunately, those messages are logged in /var/log/fsck_hfs.log. If you use Time Machine and are finding the attach stage takes forever. Take a look in there for the words “FILESYSTEM DIRTY”. That indicates, that the last time Time Machine tried to attache the drive the file system check was unable to check the file system and correct any errors, and so, it marked it DIRTY. It is possible to correct one of these filesystems, however, with all those hard links the likelyhood is that your filesystem, even if fsck_hfs -dryf /dev/discXs1 does correct the errors and put it into a FILESYTEM CLEAN state, it wont be a usable and valid backup. When your laptop exits you house with a man wearing a stripy jumper and tights over his head, your children (and you) will cry realising that the backup in the cupboard is corrupt.&lt;/p&gt;
&lt;p&gt;What advice can I give you?&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Check your backups regularly&lt;/li&gt;
&lt;li&gt;If you use TimeMachine, open the “console” program, type DIRTY into the search box and if you find that word, go out an buy another backup disk…. quick.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;For those that want to try and recover a Time Machine backup.&lt;/p&gt;
&lt;pre&gt;chflags -R nouchg /Volumes/My\ Time\ Capsule/mylaptop.sparsebundle
hdiutil attach -nomount -noverify -verbose -noautofsck /Volumes/My\ Time\ Capsule/mylaptop.sparsebundle
tail -f /var/log/fsck_hfs.log
# If you see  &quot;The Volume could not be repaired&quot;
# then you need to run
fsck_hsf -dryf /dev/rdiskXs2
# where X was the number of disk listed when you hdutil attached.
# I can almost guarentee that the disk will not be recoverable and you will see tens of thousands
# of broken hard link chains. Fixing those will probably corrupt the backup.
# which is why this is futile.&lt;/pre&gt;
&lt;p&gt;If you are using a &lt;a class=&quot;zem_slink&quot; href=&quot;http://en.wikipedia.org/wiki/Time_Capsule_%28Apple%29&quot; rel=&quot;wikipedia&quot; target=&quot;_blank&quot; title=&quot;Time Capsule (Apple)&quot;&gt;Time Capsule&lt;/a&gt;, power cycle it first, connect your machine to it of 1000BaseT and make sure no other machines are accessing it. Don’t use Wifi unless you want to grow old and die before the process completes.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h2&gt;Update&lt;/h2&gt;
&lt;p&gt;Perhaps I am being a little unfair here. The same unreliability could happen with any backup mechanism that is vulnerable to corrupted backups as a result of the user shutting the lid, the computer going to sleep, a power failure. Time Machine and Time Capsules weakness is that its all to easy to disconnect the network hard disk image and once you do that the Time Capsule end has no way of shutting down the back up process in a safe way. Do that enough times (I have found 1 is enough) and the backup is corrupt and unrecoverable and even the HFS+ Journal can’t recover.&lt;/p&gt;
&lt;p&gt;I was also a bit unfair on BackupPC, which is initiated from the server and so although it may create nightmare file systems, can leave the backup image in a reasonable state when the server looses sight of the client.&lt;/p&gt;
&lt;p&gt;Time Machine on an attached drive appears more reliable, but a lot less useful.&lt;/p&gt;
&lt;br /&gt;  &lt;a href=&quot;http://feeds.wordpress.com/1.0/gocomments/ianboston.wordpress.com/625/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/ianboston.wordpress.com/625/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godelicious/ianboston.wordpress.com/625/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/ianboston.wordpress.com/625/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gofacebook/ianboston.wordpress.com/625/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/facebook/ianboston.wordpress.com/625/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gotwitter/ianboston.wordpress.com/625/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/twitter/ianboston.wordpress.com/625/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gostumble/ianboston.wordpress.com/625/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/ianboston.wordpress.com/625/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godigg/ianboston.wordpress.com/625/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/ianboston.wordpress.com/625/&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/goreddit/ianboston.wordpress.com/625/&quot; rel=&quot;nofollow&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/ianboston.wordpress.com/625/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; height=&quot;1&quot; src=&quot;http://stats.wordpress.com/b.gif?host=blog.tfd.co.uk&amp;amp;blog=6575768&amp;amp;post=625&amp;amp;subd=ianboston&amp;amp;ref=&amp;amp;feed=1&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Wed, 09 May 2012 08:56:14 +0000</pubDate>
</item>
<item>
	<title>Jacopo Cappellato: Film che ho visto: Zabriskie Point</title>
	<guid isPermaLink="true">http://jacopospot.blogspot.com/2012/05/film-che-ho-visto-zabriskie-point.html</guid>
	<link>http://jacopospot.blogspot.com/2012/05/film-che-ho-visto-zabriskie-point.html</link>
	<description>Film di Antonioni del 1970 ambientato negli Stati Uniti (Los Angeles, Phoenix e soprattutto la Death Valley) che mi ero sempre riproposto di vedere per la colonna sonora dei Pink Floyd (fra gli altri).&lt;br /&gt;Il mio commento (per quel che vale): film lento con fotografia ed immagini bellissime, una sequenza finale (giustamente) nella storia del Cinema ma una trama esile con dei passaggi poco credibili (il furto dell'aereo, ritorno all'aeroporto con la polizia che attende l'arrivo del protagonista ed e' già al corrente del fatto che l'aereo e' stato dipinto, lei che ascolta alla radio in diretta le interviste al personale dell'aeroporto... mah!).&lt;br /&gt;Protagonisti insopportabili, soprattutto lui: Antonioni sembra non capire che essere anarchici non vuol dire essere ignoranti, imberbi, arroganti, scansafatiche, menefreghisti, rompipalle, molesti... perché dovremmo provare empatia per un tale protagonista? La distruzione dei valori dello status quo (credo rappresentata magnificamente dalla scena finale) non può certo avvenire ad opera di chi non porta con se alcun valore o qualità.&lt;br /&gt;Inspiegabilmente Antonioni sembra non rendersene conto, ma forse sono io che non ci ho capito niente.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img alt=&quot;&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/20491786-2610917280036104212?l=jacopospot.blogspot.com&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Wed, 09 May 2012 08:25:24 +0000</pubDate>
</item>
<item>
	<title>Christian Grobmeier: Apache OpenOffice.org 3.4 released</title>
	<guid isPermaLink="true">http://www.grobmeier.de/apache-openoffice-org-3-4-released-09052012.html</guid>
	<link>http://www.grobmeier.de/apache-openoffice-org-3-4-released-09052012.html</link>
	<description>&lt;p&gt;&lt;a href=&quot;http://www.openoffice.org/images/AOO_logos/OOo_Website_v2_copy.png&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;alignnone&quot; height=&quot;100&quot; src=&quot;http://www.openoffice.org/images/AOO_logos/OOo_Website_v2_copy.png&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;The Apache OpenOffice.org project &lt;a href=&quot;http://www.openoffice.org/news/aoo34.html&quot;&gt;announced it’s first release&lt;/a&gt;!&lt;/p&gt;
&lt;p&gt;This is a huge milestone for the project as it means all dependencies and code are either Apache Licensed or compatible to that license. This opens the office suite for commercial work. While you are often forced to release GPL-dependent code as GPL itself, you are free to include AL-licensed code into your commercial work (Disclaimer: please consult your lawyer, because I am not one of these guys).&lt;/p&gt;
&lt;p&gt;Besides the transfer to the new license the team had to manage lots of work with transferring the infrastructure to Apache. As I was around when this happened, I can tell it was hard work and I congratulate everybody on the project for succeeding. My expectation is release cycles are quicker now, as everything seems to work and is in place after that first release.&lt;/p&gt;
&lt;p&gt;Apache OpenOffice.org got &lt;a href=&quot;https://cwiki.apache.org/confluence/display/OOOUSERS/AOO+3.4+Release+Notes&quot;&gt;some great new features&lt;/a&gt;. Among my favorites: improved starting time and improved encryption suppoprt.&lt;/p&gt;
&lt;p&gt;Personally I expect Apache OpenOffice.org to leave the incubator pretty soon. The Incubator is a place for new podling at Apache, were they can build up community, work on licensing issues or anything else which is not compatible to the ASF. A first release is usually a sign that most problems are gone and the project can become a full fledged ASF project soon. Let’s wait and see.&lt;/p&gt;
&lt;p&gt;Anyway, it was a hard ride until now. Congratulations again to the team!&lt;/p&gt;</description>
	<pubDate>Wed, 09 May 2012 06:04:52 +0000</pubDate>
</item>
<item>
	<title>Tim Bish: What's new for Stomp in ActiveMQ 5.6</title>
	<guid isPermaLink="true">http://timbish.blogspot.com/2012/05/whats-new-for-stomp-in-activemq-56.html</guid>
	<link>http://timbish.blogspot.com/2012/05/whats-new-for-stomp-in-activemq-56.html</link>
	<description>Version 5.6 of &lt;a href=&quot;http://activemq.apache.org/&quot;&gt;ActiveMQ&lt;/a&gt; has been a long time coming but its finally here and brings with it some great new features.  In this post I'm going to cover what's new for those of you using STOMP clients to communicate with ActiveMQ.&lt;br /&gt;&lt;h2 style=&quot;font-weight: normal;&quot;&gt;&lt;b&gt; STOMP v1.1 Support &lt;/b&gt;&lt;/h2&gt;Probably the biggest change in ActiveMQ 5.6 is that we now support &lt;a href=&quot;http://stomp.github.com/stomp-specification-1.1.html&quot;&gt;STOMP v1.1&lt;/a&gt; but that's not the only thing we've done, there's plenty of new goodies even if you are stuck using a STOMP v1.0 based client.  With the addition of STOMP 1.1 support STOMP you get:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;protocol negotiation to allow for interoperability between clients and servers supporting successive versions of STOMP&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;heartbeats to allow for reliable detection of disconnecting clients and servers&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;NACK frames for negative acknowledgment of message receipt&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Support for virtual hosting.&lt;/li&gt;&lt;/ul&gt;I won't spend a lot of time rehashing the STOMP 1.1 spec here as its laid out quite nicely in the protocol specification page &lt;a href=&quot;http://stomp.github.com/stomp-specification-1.1.html&quot;&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;h2&gt;  Other New STOMP Features and Fixes&lt;/h2&gt;Of course support for STOMP 1.1 isn't the only thing we added to our STOMP support, there's several other new goodies in there as well.  Lets take a look at what else you can now do with the STOMP Transport in ActiveMQ 5.6. &lt;br /&gt;&lt;br /&gt;&lt;h3&gt;  Queue Browsing &lt;/h3&gt;A normal subscription on a queue will consume messages so that no other subscription will get a copy of the message. If you want to browse all the messages on a queue in a non-destructive fashion, you can create browsing subscription. To make a a browsing subscription, just add the &lt;code&gt;browser:true&lt;/code&gt; header to the &lt;code&gt;SUBSCRIBE&lt;/code&gt; frame. For example:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;code&gt;SUBSCRIBE&lt;br /&gt;id:mysub&lt;br /&gt;browser:true&lt;br /&gt;destination:/queue/foo&lt;br /&gt;&lt;br /&gt;^@&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt; &lt;/code&gt;&lt;/pre&gt;Once the broker sends a browsing subscription the last message in the queue, it will send the subscription a special “end of browse” message to indicate browsing has completed and that the subscription should not expect any more messages. The “end of browse” message will have a &lt;code&gt;browser:end&lt;/code&gt; header set. Example:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;code&gt;MESSAGE&lt;br /&gt;subscription:mysub&lt;br /&gt;destination:&lt;br /&gt;message-id:&lt;br /&gt;browser:end&lt;br /&gt;&lt;br /&gt;^@&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt; &lt;/code&gt;&lt;/pre&gt;The Queue browsing support works for both STOMP 1.0 and STOMP 1.1 clients so you don't need to upgrade your client in order to take advantage of this new feature.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;  Message Selectors and Numeric Values&lt;/h3&gt;Prior to the 5.6 release you couldn't specify a numeric selector expression on a STOMP subscription, this has now been fixed so you are free to subscribe to a destination via STOMP using selectors such as the following:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;code&gt;SUBSCRIBE&lt;br /&gt;id:mysub&lt;br /&gt;selector:someId = 42&lt;br /&gt;destination:/queue/foo&lt;br /&gt;&lt;br /&gt;^@&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt; &lt;/code&gt;&lt;/pre&gt;With this subscription any JMS Message's sent to this destination with an numeric message property named 'someId' and a value of 42 will be picked up as expected.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;   STOMP+NIO+SSL Transport&lt;/h3&gt;In 5.6 we've added NIO+SSL transports for both Openwire and STOMP clients which allow you to connect large numbers of SSL based STOMP clients to a single broker instance.  You can configure a STOMP+NIO+SSL TransportConnector in you broker as follows:&lt;br /&gt;&lt;pre&gt;&lt;code&gt;&lt;br /&gt;&lt;br /&gt;    transportconnector name=&quot;stomp+nio+ssl&quot; uri=&quot;stomp+nio+ssl://0.0.0.0:61616&quot;  &lt;br /&gt;  &lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3&gt;  STOMP 1.0 default heartbeat configuration&lt;/h3&gt;Unlike STOMP 1.1 the original STOMP 1.0 does not provide for an inactivity monitor since there was no defined hear-beat capability.  A client connect  that stays idle will remain active on the broker indefinitely.  With STOMP 1.1,  the inactivity monitor has come into play in response to the &lt;code&gt;heart-beat&lt;/code&gt;  header.   Since not all your clients might not be upgraded to STOMP 1.1 right away we added the capability to specify a default &lt;code&gt;heart-beat&lt;/code&gt; value to the transportConnector so that you can still timeout idle STOMP connections.  You can setup this default value on your connector as follows:&lt;br /&gt;&lt;br /&gt;&lt;tt&gt;   stomp://0.0.0.0:0?transport.defaultHeartBeat=5000,0&lt;/tt&gt;&lt;br /&gt;&lt;br /&gt;In the absence of a heartbeat header, as in the STOMP  1.0 case, this default value would cause an InactivityMonitor with  read check interval of 5 seconds to be installed on each new broker stomp transport  connection.  Any client that remains inactive (sends no messages) for more than 5 seconds will have their broker connection closed.  You should tune this value based on the exceptions of the behavior of you clients.&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Wrap Up&lt;/h2&gt;I've tried to just quickly touch on some of the enhancements that we've made for those of you using STOMP clients in ActiveMQ v5.6.  There's a ton of other new and improved features in 5.6 as well given that there were some &lt;a href=&quot;https://issues.apache.org/jira/secure/IssueNavigator.jspa?reset=true&amp;amp;jqlQuery=project%20%3D%20AMQ%20AND%20fixVersion%20%3D%2012317974%20AND%20status%20in%20%28Resolved,%20Closed%29%20ORDER%20BY%20priority%20DESC&quot;&gt;435 issues&lt;/a&gt; resolved for this release.  I encourage you to download this new release and take it for a spin.  If can ask questions on our &lt;a href=&quot;http://activemq.apache.org/mailing-lists.html&quot;&gt;mailing list&lt;/a&gt; if you run into trouble. &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img alt=&quot;&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/1000597103989045457-6518378802867171799?l=timbish.blogspot.com&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Tue, 08 May 2012 21:25:13 +0000</pubDate>
</item>
<item>
	<title>Dejan Bosanac: ActiveMQ 5.6.0 and other news</title>
	<guid isPermaLink="true">http://www.nighttale.net/activemq/activemq-560-and-other-news.html</guid>
	<link>http://www.nighttale.net/activemq/activemq-560-and-other-news.html</link>
	<description>&lt;p&gt;We just released Apache ActiveMQ 5.6.0. It was a long-awaited maintenance release, but however there are a few very significant new features that was worth waiting for. Those include a new &lt;a href=&quot;https://github.com/fusesource/fuse-extra/tree/master/fusemq-leveldb&quot;&gt;LevelDB store&lt;/a&gt;, MQTT and Stomp 1.1 protocols support and self-balancing cluster clients, to name a few. I already written about clustering &lt;a href=&quot;http://www.nighttale.net/activemq/new-activemq-failover-and-clustering-goodies.html&quot;&gt;here&lt;/a&gt; and there sure will be a lot of things to write about these other features as well in coming days.&lt;/p&gt;

&lt;p&gt;Also, next week I’ll be at &lt;a href=&quot;http://fusesource.com/apache-camel-conference-2012/&quot;&gt;CamelOne&lt;/a&gt; in Boston and &lt;a href=&quot;http://jeeconf.com/&quot;&gt;JEEConf&lt;/a&gt; In Kiev (a bit too much traveling for my taste, but there you go). I’ll talk about Enterprise deployment of ActiveMQ using Fuse Fabric (a topic already covered &lt;a href=&quot;http://www.nighttale.net/activemq/activemq-in-cloud.html&quot;&gt;here&lt;/a&gt; in a nutshell) and &lt;a href=&quot;http://activemq.apache.org/apollo/&quot;&gt;Apache Apollo&lt;/a&gt;, the next generation of the broker. All these projects that are coming in the pipeline are pushing the possibilities of our integration infrastructure one step further. It will allow people to do complex deployments easier and connect to the infrastructure from virtually everywhere. It was a very exciting first half of the year, and it looks like things are going to be even more interesting going forward.&lt;/p&gt;</description>
	<pubDate>Tue, 08 May 2012 14:22:45 +0000</pubDate>
</item>
<item>
	<title>FeatherCast: Announcing Apache OpenOffice 3.4!</title>
	<guid isPermaLink="true">http://feathercast.apache.org/?p=165&amp;utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=announcing-apache-openoffice-3-4</guid>
	<link>http://feathercast.apache.org/?p=165&amp;utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=announcing-apache-openoffice-3-4</link>
	<description>&lt;p&gt;Apache OpenOffice is proud to announce the release of Apache OpenOffice 3.4. While much of the effort in this release was in replacing, or rewriting, components that weren’t under the Apache license, the team still found time to put in a number of exciting new features.&lt;/p&gt;
&lt;p&gt;The video below highlights a few of those.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;(The video was created as part of my work at SourceForge. SourceForge is &lt;a href=&quot;https://sourceforge.net/blog/apache-openoffice-turns-to-sourceforge-for-distribution/&quot;&gt;helping out&lt;/a&gt; with mirroring the Apache OpenOffice downloads, and is also hosting the &lt;a href=&quot;http://templates.openoffice.org/&quot;&gt;templates&lt;/a&gt; and &lt;a href=&quot;http://extensions.openoffice.org/&quot;&gt;extensions&lt;/a&gt; websites.)&lt;/p&gt;
&lt;div class=&quot;googlePlusOneButton&quot;&gt;&lt;div class=&quot;g-plusone&quot; size=&quot;standard&quot;&gt;&lt;/div&gt;&lt;/div&gt;</description>
	<pubDate>Tue, 08 May 2012 13:15:35 +0000</pubDate>
</item>
<item>
	<title>Rob Weir: +1 for Apache OpenOffice 3.4</title>
	<guid isPermaLink="true">http://feedproxy.google.com/~r/robweir/antic-atom/~3/9ygAgSTfGlU/apache-openoffice-34.html</guid>
	<link>http://feedproxy.google.com/~r/robweir/antic-atom/~3/9ygAgSTfGlU/apache-openoffice-34.html</link>
	<description>&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;img alt=&quot;&quot; class=&quot;aligncenter&quot; height=&quot;942&quot; src=&quot;http://www.robweir.com/blog/images/aoo-plus1.png&quot; title=&quot;Apache OpenOffice 3.4 approved&quot; width=&quot;1326&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Read more in the &lt;a href=&quot;http://www.openoffice.org/news/aoo34.html&quot;&gt;official announcement&lt;/a&gt;.  You can download Apache OpenOffice 3.4 now, from &lt;a href=&quot;http://download.openoffice.org/&quot;&gt;http://download.openoffice.org/&lt;/a&gt;    Tell your friends.  And welcome home.&lt;/p&gt;
&lt;p&gt;&lt;a class=&quot;a2a_button_twitter&quot; href=&quot;http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fwww.robweir.com%2Fblog%2F2012%2F05%2Fapache-openoffice-34.html&amp;amp;linkname=%2B1%20for%20Apache%20OpenOffice%203.4&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot; title=&quot;Twitter&quot;&gt;&lt;img alt=&quot;Twitter&quot; height=&quot;16&quot; src=&quot;http://www.robweir.com/blog/wp-content/plugins/add-to-any/icons/twitter.png&quot; width=&quot;16&quot; /&gt;&lt;/a&gt;&lt;a class=&quot;a2a_button_identi_ca&quot; href=&quot;http://www.addtoany.com/add_to/identi_ca?linkurl=http%3A%2F%2Fwww.robweir.com%2Fblog%2F2012%2F05%2Fapache-openoffice-34.html&amp;amp;linkname=%2B1%20for%20Apache%20OpenOffice%203.4&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot; title=&quot;Identi.ca&quot;&gt;&lt;img alt=&quot;Identi.ca&quot; height=&quot;16&quot; src=&quot;http://www.robweir.com/blog/wp-content/plugins/add-to-any/icons/identica.png&quot; width=&quot;16&quot; /&gt;&lt;/a&gt;&lt;a class=&quot;a2a_button_delicious&quot; href=&quot;http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fwww.robweir.com%2Fblog%2F2012%2F05%2Fapache-openoffice-34.html&amp;amp;linkname=%2B1%20for%20Apache%20OpenOffice%203.4&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot; title=&quot;Delicious&quot;&gt;&lt;img alt=&quot;Delicious&quot; height=&quot;16&quot; src=&quot;http://www.robweir.com/blog/wp-content/plugins/add-to-any/icons/delicious.png&quot; width=&quot;16&quot; /&gt;&lt;/a&gt;&lt;a class=&quot;a2a_button_diigo&quot; href=&quot;http://www.addtoany.com/add_to/diigo?linkurl=http%3A%2F%2Fwww.robweir.com%2Fblog%2F2012%2F05%2Fapache-openoffice-34.html&amp;amp;linkname=%2B1%20for%20Apache%20OpenOffice%203.4&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot; title=&quot;Diigo&quot;&gt;&lt;img alt=&quot;Diigo&quot; height=&quot;16&quot; src=&quot;http://www.robweir.com/blog/wp-content/plugins/add-to-any/icons/diigo.png&quot; width=&quot;16&quot; /&gt;&lt;/a&gt;&lt;a class=&quot;a2a_button_digg&quot; href=&quot;http://www.addtoany.com/add_to/digg?linkurl=http%3A%2F%2Fwww.robweir.com%2Fblog%2F2012%2F05%2Fapache-openoffice-34.html&amp;amp;linkname=%2B1%20for%20Apache%20OpenOffice%203.4&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot; title=&quot;Digg&quot;&gt;&lt;img alt=&quot;Digg&quot; height=&quot;16&quot; src=&quot;http://www.robweir.com/blog/wp-content/plugins/add-to-any/icons/digg.png&quot; width=&quot;16&quot; /&gt;&lt;/a&gt;&lt;a class=&quot;a2a_button_email&quot; href=&quot;http://www.addtoany.com/add_to/email?linkurl=http%3A%2F%2Fwww.robweir.com%2Fblog%2F2012%2F05%2Fapache-openoffice-34.html&amp;amp;linkname=%2B1%20for%20Apache%20OpenOffice%203.4&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot; title=&quot;Email&quot;&gt;&lt;img alt=&quot;Email&quot; height=&quot;16&quot; src=&quot;http://www.robweir.com/blog/wp-content/plugins/add-to-any/icons/email.png&quot; width=&quot;16&quot; /&gt;&lt;/a&gt;&lt;a class=&quot;a2a_button_facebook&quot; href=&quot;http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fwww.robweir.com%2Fblog%2F2012%2F05%2Fapache-openoffice-34.html&amp;amp;linkname=%2B1%20for%20Apache%20OpenOffice%203.4&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot; title=&quot;Facebook&quot;&gt;&lt;img alt=&quot;Facebook&quot; height=&quot;16&quot; src=&quot;http://www.robweir.com/blog/wp-content/plugins/add-to-any/icons/facebook.png&quot; width=&quot;16&quot; /&gt;&lt;/a&gt;&lt;a class=&quot;a2a_button_instapaper&quot; href=&quot;http://www.addtoany.com/add_to/instapaper?linkurl=http%3A%2F%2Fwww.robweir.com%2Fblog%2F2012%2F05%2Fapache-openoffice-34.html&amp;amp;linkname=%2B1%20for%20Apache%20OpenOffice%203.4&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot; title=&quot;Instapaper&quot;&gt;&lt;img alt=&quot;Instapaper&quot; height=&quot;16&quot; src=&quot;http://www.robweir.com/blog/wp-content/plugins/add-to-any/icons/instapaper.png&quot; width=&quot;16&quot; /&gt;&lt;/a&gt;&lt;a class=&quot;a2a_button_linkedin&quot; href=&quot;http://www.addtoany.com/add_to/linkedin?linkurl=http%3A%2F%2Fwww.robweir.com%2Fblog%2F2012%2F05%2Fapache-openoffice-34.html&amp;amp;linkname=%2B1%20for%20Apache%20OpenOffice%203.4&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot; title=&quot;LinkedIn&quot;&gt;&lt;img alt=&quot;LinkedIn&quot; height=&quot;16&quot; src=&quot;http://www.robweir.com/blog/wp-content/plugins/add-to-any/icons/linkedin.png&quot; width=&quot;16&quot; /&gt;&lt;/a&gt;&lt;a class=&quot;a2a_button_reddit&quot; href=&quot;http://www.addtoany.com/add_to/reddit?linkurl=http%3A%2F%2Fwww.robweir.com%2Fblog%2F2012%2F05%2Fapache-openoffice-34.html&amp;amp;linkname=%2B1%20for%20Apache%20OpenOffice%203.4&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot; title=&quot;Reddit&quot;&gt;&lt;img alt=&quot;Reddit&quot; height=&quot;16&quot; src=&quot;http://www.robweir.com/blog/wp-content/plugins/add-to-any/icons/reddit.png&quot; width=&quot;16&quot; /&gt;&lt;/a&gt;&lt;a class=&quot;a2a_button_slashdot&quot; href=&quot;http://www.addtoany.com/add_to/slashdot?linkurl=http%3A%2F%2Fwww.robweir.com%2Fblog%2F2012%2F05%2Fapache-openoffice-34.html&amp;amp;linkname=%2B1%20for%20Apache%20OpenOffice%203.4&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot; title=&quot;Slashdot&quot;&gt;&lt;img alt=&quot;Slashdot&quot; height=&quot;16&quot; src=&quot;http://www.robweir.com/blog/wp-content/plugins/add-to-any/icons/slashdot.png&quot; width=&quot;16&quot; /&gt;&lt;/a&gt;&lt;a class=&quot;a2a_button_stumbleupon&quot; href=&quot;http://www.addtoany.com/add_to/stumbleupon?linkurl=http%3A%2F%2Fwww.robweir.com%2Fblog%2F2012%2F05%2Fapache-openoffice-34.html&amp;amp;linkname=%2B1%20for%20Apache%20OpenOffice%203.4&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot; title=&quot;StumbleUpon&quot;&gt;&lt;img alt=&quot;StumbleUpon&quot; height=&quot;16&quot; src=&quot;http://www.robweir.com/blog/wp-content/plugins/add-to-any/icons/stumbleupon.png&quot; width=&quot;16&quot; /&gt;&lt;/a&gt;&lt;a class=&quot;a2a_dd a2a_target addtoany_share_save&quot; href=&quot;http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.robweir.com%2Fblog%2F2012%2F05%2Fapache-openoffice-34.html&amp;amp;title=%2B1%20for%20Apache%20OpenOffice%203.4&quot; id=&quot;wpa2a_4&quot;&gt;&lt;img alt=&quot;Share&quot; height=&quot;16&quot; src=&quot;http://www.robweir.com/blog/wp-content/plugins/add-to-any/share_save_171_16.png&quot; width=&quot;171&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Related posts:&lt;/p&gt;&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;http://www.robweir.com/blog/2011/06/apache-openoffice.html&quot; rel=&quot;bookmark&quot; title=&quot;An Invitation to Apache OpenOffice&quot;&gt;An Invitation to Apache OpenOffice&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.robweir.com/blog/2011/06/apache-openoffice-how-to-get-involved.html&quot; rel=&quot;bookmark&quot; title=&quot;Apache OpenOffice: How to Get Involved&quot;&gt;Apache OpenOffice: How to Get Involved&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.robweir.com/blog/2012/01/apache-odf-toolkit-release.html&quot; rel=&quot;bookmark&quot; title=&quot;First release of the Apache ODF Toolkit&quot;&gt;First release of the Apache ODF Toolkit&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~ff/robweir/antic-atom?a=9ygAgSTfGlU:CFClmbZboJc:yIl2AUoC8zA&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/robweir/antic-atom?d=yIl2AUoC8zA&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/robweir/antic-atom?a=9ygAgSTfGlU:CFClmbZboJc:gIN9vFwOqvQ&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/robweir/antic-atom?i=9ygAgSTfGlU:CFClmbZboJc:gIN9vFwOqvQ&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/robweir/antic-atom?a=9ygAgSTfGlU:CFClmbZboJc:V_sGLiPBpWU&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/robweir/antic-atom?i=9ygAgSTfGlU:CFClmbZboJc:V_sGLiPBpWU&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/robweir/antic-atom?a=9ygAgSTfGlU:CFClmbZboJc:-BTjWOF_DHI&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/robweir/antic-atom?i=9ygAgSTfGlU:CFClmbZboJc:-BTjWOF_DHI&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/robweir/antic-atom?a=9ygAgSTfGlU:CFClmbZboJc:YwkR-u9nhCs&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/robweir/antic-atom?d=YwkR-u9nhCs&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/robweir/antic-atom?a=9ygAgSTfGlU:CFClmbZboJc:F7zBnMyn0Lo&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/robweir/antic-atom?i=9ygAgSTfGlU:CFClmbZboJc:F7zBnMyn0Lo&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/robweir/antic-atom?a=9ygAgSTfGlU:CFClmbZboJc:qj6IDK7rITs&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://feeds.feedburner.com/~ff/robweir/antic-atom?d=qj6IDK7rITs&quot; /&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img height=&quot;1&quot; src=&quot;http://feeds.feedburner.com/~r/robweir/antic-atom/~4/9ygAgSTfGlU&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Tue, 08 May 2012 13:05:19 +0000</pubDate>
</item>
<item>
	<title>Roy T. Fielding: ICSE Most Influential Paper award</title>
	<guid isPermaLink="true">http://roy.gbiv.com/untangled/2010/icse-most-influential-paper-award</guid>
	<link>http://roy.gbiv.com/untangled/2010/icse-most-influential-paper-award</link>
	<description>&lt;p&gt;On the same day that &lt;a href=&quot;http://roy.gbiv.com/untangled/2010/some-people-call-him-liam&quot;&gt;Liam was born&lt;/a&gt;, I received news that one of my two papers published at the ICSE 2000 conference has been given the &lt;a href=&quot;http://www.icse-conferences.org/mostinfluential.html&quot;&gt;International Conference on Software Engineering’s Most Influential Paper Award&lt;/a&gt; for its impact on software engineering research over the past decade. The paper, &lt;em&gt;&lt;a href=&quot;http://doi.acm.org/10.1145/337180.337209&quot;&gt;A case study of open source software development: the Apache server&lt;/a&gt;&lt;/em&gt;, is co-authored by Audris Mockus, myself, and James Herbsleb.  The &lt;a href=&quot;http://www.sigsoft.org/awards/mostInfPapAwd.htm&quot;&gt;MIP&lt;/a&gt; is an important award within the academic world; my thanks to the award committee and congrats to Audris and Jim. I wish I could have been there in South Africa for the presentation. This year’s award is shared with a paper by Corbett et al. on &lt;a href=&quot;http://doi.acm.org/10.1145/337180.337234&quot;&gt;Bandera&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Interestingly, my other paper in ICSE 2000 was the &lt;a href=&quot;http://doi.acm.org/10.1145/337180.337228&quot;&gt;first conference paper about REST&lt;/a&gt;, co-authored with my adviser, &lt;a href=&quot;http://www.ics.uci.edu/~taylor/&quot;&gt;Dick Taylor&lt;/a&gt;. That must have caused some debate within the awards committee. As I understand it, the MIP award is based on academic citations of the original paper and any follow-up publication in a journal. Since I encouraged people to read and &lt;a href=&quot;http://www.ics.uci.edu/~fielding/pubs/dissertation/faq.htm&quot;&gt;cite my dissertation&lt;/a&gt; directly, rather than the ICSE paper’s summary or its corresponding &lt;a href=&quot;http://doi.acm.org/10.1145/514183.514185&quot;&gt;journal version&lt;/a&gt;, I am not surprised that the REST paper is considered less influential. However, it does make we wonder what would have happened if I had never published my dissertation on the Web.  Would that paper have been cited more, or would nobody know about REST? &lt;em&gt;shrug&lt;/em&gt;. I like the way it turned out.&lt;/p&gt;
&lt;p&gt;The next two International Conferences on Software Engineering will be held in Hawaii (&lt;a href=&quot;http://2011.icse-conferences.org/&quot;&gt;ICSE 2011&lt;/a&gt;), with Dick as the general chair, and Zürich (&lt;a href=&quot;http://www.ifi.uzh.ch/arvo/req/events/ICSE2012/&quot;&gt;ICSE 2012&lt;/a&gt;). That is some fine scheduling on the part of the conference organizers! Fortunately, I have a pretty good excuse to attend both.&lt;/p&gt;</description>
	<pubDate>Mon, 07 May 2012 23:44:40 +0000</pubDate>
</item>
<item>
	<title>Tim Bish: Apache.NMS.ActiveMQ v1.5.5 Released</title>
	<guid isPermaLink="true">http://timbish.blogspot.com/2012/05/apachenmsactivemq-v155-released.html</guid>
	<link>http://timbish.blogspot.com/2012/05/apachenmsactivemq-v155-released.html</link>
	<description>Announcing the official release of &lt;a href=&quot;http://bit.ly/JSbVpK&quot;&gt;Apache.NMS.ActiveMQ v1.5.5&lt;/a&gt;.       We put a lot of work into this one fixing bugs that were found  since    the 1.5.4 release.  There was an additional issue with advisory monitoring  and Temporary Destinations that was resolved in this release along with  a couple other minor bugs.  Also some improvements to the failover transport are included.  Highlights of the things in this release:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;* Sending to non-existent temp queue causes consumer to shutdown&lt;br /&gt;* Consumers frequently fail to reconnect after broker outage/failover.&lt;br /&gt;* FailoverTransport doesn't trigger a reconnect on send of a Tracked Command.&lt;br /&gt;* ActiveMQ.NMS hangs sometimes due to concurrency problems while accessing static IDictionary&lt;br /&gt;* Apache.NMS.ActiveMQ discovery protocol throwing ArgumentOutOfRangeException&lt;br /&gt;&lt;br /&gt;Grab in from the &lt;a href=&quot;http://bit.ly/J1NZ5h&quot;&gt;Apache.NMS.ActiveMQ&lt;/a&gt; downloads page.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img alt=&quot;&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/1000597103989045457-6287775255660518194?l=timbish.blogspot.com&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Mon, 07 May 2012 19:38:31 +0000</pubDate>
</item>
<item>
	<title>Chris Hostetter: Stump The Chump Updates</title>
	<guid isPermaLink="true">http://feedproxy.google.com/~r/LucidImagination/~3/9Q_gO-UWaeM/</guid>
	<link>http://feedproxy.google.com/~r/LucidImagination/~3/9Q_gO-UWaeM/</link>
	<description>&lt;p&gt;
For those of you not following the &lt;a href=&quot;http://lucenerevolution.com/blog/&quot;&gt;Lucene Revolution Blog&lt;/a&gt; I’ve posted some updates there about &lt;a href=&quot;http://www.lucenerevolution.com/2012/sessions-day-1#stump-chump&quot;&gt;Stump The Chump&lt;/a&gt; over the last couple of weeks:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://lucenerevolution.com/blog/2012/05/01/stump-the-chump-meet-the-panel/&quot;&gt;The panel of judges&lt;/a&gt; who will be lead by moderator Erik Hatcher&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://lucenerevolution.com/blog/2012/05/04/stump-the-chump-and-win-a-prize/&quot;&gt;The prizes&lt;/a&gt; that will be awarded to folks who do the best job at Stumping me&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
It’s not to late to &lt;a href=&quot;mailto:stump@lucenerevolution.com&quot;&gt;submit your interesting Solr problem&lt;/a&gt; to try and stump me — even if you can’t make it to Boston for the conference.&lt;/p&gt;
&lt;img height=&quot;1&quot; src=&quot;http://feeds.feedburner.com/~r/LucidImagination/~4/9Q_gO-UWaeM&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Mon, 07 May 2012 18:17:59 +0000</pubDate>
</item>
<item>
	<title>Rob Davies: Apache ActiveMQ 5.6 is released</title>
	<guid isPermaLink="true">http://rajdavies.blogspot.com/2012/05/apache-activemq-56-is-released.html</guid>
	<link>http://rajdavies.blogspot.com/2012/05/apache-activemq-56-is-released.html</link>
	<description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;div style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;a href=&quot;http://activemq.apache.org/&quot; target=&quot;_blank&quot;&gt;Apache ActiveMQ&lt;/a&gt; is the most widely used open source messaging solution, with many organizations  using it for the reliable integration of applications across there enterprise infrastructure.&lt;br /&gt;&lt;br /&gt;Today, &lt;a href=&quot;http://activemq.apache.org/activemq-560-release.html&quot; target=&quot;_blank&quot;&gt;Apache ActiveMQ 5.6&lt;/a&gt; has been released - its been more than a year since the last point release. This release has over 370 issues resolved, with 130 improvements including:&lt;/div&gt;&lt;div style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;/div&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://activemq.apache.org/activemq-500-release.data/activemq-5.x-box-reflection.png&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;200&quot; src=&quot;http://activemq.apache.org/activemq-500-release.data/activemq-5.x-box-reflection.png&quot; style=&quot;border-bottom-color: black; border-bottom-style: solid; border-bottom-width: 0px; border-left-color: black; border-left-style: solid; border-left-width: 0px; border-right-color: black; border-right-style: solid; border-right-width: 0px; border-top-color: black; border-top-style: solid; border-top-width: 0px;&quot; width=&quot;178&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;li style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://github.com/fusesource/fuse-extra/tree/master/fusemq-leveldb&quot; target=&quot;_blank&quot;&gt;LevelDB &lt;/a&gt;message store. &lt;a href=&quot;http://code.google.com/p/leveldb/&quot; target=&quot;_blank&quot;&gt;LevelDB&lt;/a&gt; is a fast key-value library written by google, but the message store implementation that combines LevelDB with persistent message logs can be found in &lt;a href=&quot;https://github.com/fusesource/fuse-extra/tree/master/fusemq-leveldb&quot; target=&quot;_blank&quot;&gt;fuse-extras&lt;/a&gt;. This message store implementation can be five times faster than the default message store implementation - KahaDB.&lt;/li&gt;&lt;li&gt;MQTT support - MQTT is an extremely light weight messaging transport designed for machine to machine devices - I described this in more detail in an &lt;a href=&quot;http://rajdavies.blogspot.co.uk/2012/04/mqtt-support-added-to-upcoming-apache.html&quot; target=&quot;_blank&quot;&gt;earlier post&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://stomp.github.com/stomp-specification-1.1.html&quot; target=&quot;_blank&quot;&gt;Stomp 1.1 support&lt;/a&gt;  - which adds heartbeats, NACK frames and support for virtual hosting.  &lt;/li&gt;&lt;li&gt;Configuration checks - providing warnings about incorrectly configured brokers&lt;/li&gt;&lt;li&gt;Prevention of denial of services attacks                &lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;div style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img alt=&quot;&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/16885284-4011754020169667820?l=rajdavies.blogspot.com&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Mon, 07 May 2012 16:07:36 +0000</pubDate>
</item>

</channel>
</rss>

