<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/" version="2.0">
  <channel>
    <title>No Fluff Just Stuff</title>
    <link>http://www.nofluffjuststuff.com</link>
    <description>No Fluff Just Stuff</description>
    <item>
      <title>How toxic is your code?</title>
      <link>http://www.nofluffjuststuff.com/blog/eric_doernenburg/2008/11/how_toxic_is_your_code_.html</link>
      <description>&lt;p&gt;If you are somebody who writes code you probably know that moment when you look at some code you didn&amp;#8217;t write, or some code you wrote a long time ago, and you think &amp;#8220;that doesn&amp;#8217;t look good.&amp;#8221; Ok, more realistically, you probably think &amp;#8220;WTF? I wouldn&amp;#8217;t want to touch that with a barge-pole!&amp;#8221; It is not even so much about whether the code does what it should do&amp;#8212;that takes a bit longer to figure out&amp;#8212;or whether the code is too slow. Even if it&amp;#8217;s perfectly bug free and performs well, there&amp;#8217;s something to the way it&amp;#8217;s written. This is part of the internal quality of a software system, something that the users and development managers can&amp;#8217;t observe directly; yet, it still affects them because code with poor internal quality is hard to maintain and extend.&lt;/p&gt;
&lt;p&gt;Now, as a developer, how do you help managers and business people understand the internal quality of code? They generally want a bit more than &amp;#8220;it&amp;#8217;s horrible&amp;#8221; before they prioritise cleaning up the code over implementing new features that directly deliver business value. Or even: how do you figure out for yourself how bad some code actually is in relation to some other code? These were questions that &lt;a href="http://jroller.com/zoonabar/"&gt;Chris Brown&lt;/a&gt;, &lt;a href="http://darrenhobbs.com/"&gt;Darren Hobbs&lt;/a&gt;, and myself were asking ourselves a couple of years ago.&lt;/p&gt;
&lt;p&gt;The answer came in the form of a simple bar chart, arguably not the most sophisticated visualisation but a very effective one. And our colleague &lt;a href="http://www.alphaitjournal.com/"&gt;Ross Pettit&lt;/a&gt; had the perfect name for it: The &lt;strong&gt;Toxicity Chart&lt;/strong&gt;. Read on to see what it is and how it&amp;#8217;s created.&lt;/p&gt;
&lt;p&gt;&lt;span id="more-133"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;As usual, let&amp;#8217;s start with an example. What follows is the toxicity chart for a version of the Hibernate framework.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://erik.doernenburg.com/wp-content/uploads/2008/11/toxicity_hibernate.png"&gt;&lt;img src="http://erik.doernenburg.com/wp-content/uploads/2008/11/toxicity_hibernate-600x331.png" alt="Toxicity Chart for Hibernate" title="toxicity_hibernate" width="600" height="331" class="size-medium wp-image-143" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;In a toxicity chart each bar represents a class and the height of the bar shows the toxicity score for that class. The score is based on several metrics (more on that below) and the higher the score the more toxic the class. The individual components of the score are coloured. For example, the contribution of the method length metric to the overall score is shown in orange. This makes it possible to see at a glance not only how toxic a codebase is but also how the problems are distributed. If there is a lot of purple and orange in the chart, this indicates long and complex methods, which means that the code is probably hard to test on a unit level. Lastly, classes that score zero points are left off the chart.&lt;/p&gt;
&lt;p&gt;The calculation of the toxicity score is based on metrics and thresholds. For example, the method length metric has a threshold of 30. If a class contains a method that is longer it gets points proportional to the length of the method in relation to the threshold, e.g. a method with 45 lines of code would get 1.5 points because its length is 1.5 times the threshold. The score for all elements is added up. So, if a class comprises two methods, one that is 45 lines and another that is 60 lines long, the method length component of the score for the class will be 3.5 points. This means that elements are not just classified as toxic but the score reflects how toxic the element is.&lt;/p&gt;
&lt;p&gt;The following table shows the metrics that make up the toxicity score and the corresponding base threshold on which the multipliers are based.&lt;/p&gt;
&lt;table border="0" cellpadding="2"&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;Level&lt;/th&gt;
&lt;th&gt;Threshold&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;File Length&lt;/td&gt;
&lt;td&gt;file&lt;/td&gt;
&lt;td&gt;500&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Class Fan-Out Complexity&lt;/td&gt;
&lt;td&gt;class&lt;/td&gt;
&lt;td&gt;30&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Class Data Abstraction Coupling&lt;/td&gt;
&lt;td&gt;class&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Anon Inner Length&lt;/td&gt;
&lt;td&gt;inner class&lt;/td&gt;
&lt;td&gt;35&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Method Length&lt;/td&gt;
&lt;td&gt;method&lt;/td&gt;
&lt;td&gt;30&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Parameter Number&lt;/td&gt;
&lt;td&gt;method&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cyclomatic Complexity&lt;/td&gt;
&lt;td&gt;method&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Nested If Depth&lt;/td&gt;
&lt;td&gt;statement&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Nested Try Depth&lt;/td&gt;
&lt;td&gt;statement&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Boolean Expression Complexity&lt;/td&gt;
&lt;td&gt;statement&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Missing Switch Default&lt;/td&gt;
&lt;td&gt;statement&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;p&gt;At this point you might wonder where the selection of metrics and thresholds comes from. Well, we made them up. When we designed the toxicity chart we made a call on what constitutes &amp;#8220;toxic&amp;#8221; as opposed to just bad. Of course, staying with the method length metric, we normally wouldn&amp;#8217;t want to see a 15-line method but that might be disputed. However, we hope that nobody thinks that a 30-line method is acceptable. And in case you&amp;#8217;re really uncomfortable with the thresholds, you can obviously change them to build your own toxicity score. We do suggest, though, that you try the values presented here first.&lt;/p&gt;
&lt;p&gt;Like many visualisations the creation of the toxicity chart falls into two steps: data acquisition and rendering.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 1:&lt;/strong&gt; For Java projects &lt;a href="http://checkstyle.sourceforge.net/"&gt;Checkstyle&lt;/a&gt; is the easiest way to get the metrics. The  score table above easily translates into a Checkstyle configuration file, which, by the way, is included in the Zip archive attached to this page. Assuming this file is named &amp;#8220;metrics.xml&amp;#8221; Checkstyle can be invoked like this:  &lt;/p&gt;
&lt;pre&gt;&lt;code&gt;java -jar checkstyle.jar -c metrics.xml -r &lt;em&gt;&amp;lt;source dir&amp;gt;&lt;/em&gt; -f xml -o toxicity.xml&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Afterwards, the file &amp;#8220;toxicity.xml&amp;#8221; contains a list of all components for the toxicity score in an XML format.&lt;/p&gt;
&lt;p&gt;Similar tools for other languages should be able to create similar output. It is not a huge problem if the output is somewhat different as it&amp;#8217;s always possible to change step 2 to handle different input formats.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 2:&lt;/strong&gt; What is required next is to read the data from XML, aggregate it on a per-class level, and then render the bar chart. Microsoft Excel is good at the latter two but it needs a bit of help to read the XML file. This help comes in the form of a small piece of VBA code. The attached Excel workbook contains a sheet to load the data, an &amp;#8220;Open XML&amp;#8221; button backed by said VBA code, a pivot table to do the aggregation, and the chart based on the table. So, step 2, really is to open the Excel workbook and load the XML file. That&amp;#8217;s all.&lt;/p&gt;
&lt;p&gt;Now, if you know me you know that I&amp;#8217;ve been working with Macs for a very long time. So, naturally, I&amp;#8217;d like to use Excel on the Mac but, alas, in its current version it &lt;a href="http://www.schwieb.com/blog/2006/08/08/saying-goodbye-to-visual-basic/"&gt;does not support VBA&lt;/a&gt; anymore. So, unfortunately, it&amp;#8217;s VMWare Fusion for this one.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;This &lt;a href="http://erik.doernenburg.com/wp-content/uploads/2008/11/toxicitychart.zip"&gt;Zip archive&lt;/a&gt; contains everything needed to create a toxicity chart for Java. The spreadsheet can be adapted to read input file formats created by tools for different languages; just edit the VBA behind the &amp;#8220;Data&amp;#8221; sheet.&lt;/strong&gt;&lt;/p&gt;</description>
      <pubDate>Thu, 20 Nov 2008 18:54:00 CST</pubDate>
      <guid isPermaLink="true">http://erik.doernenburg.com/?p=133</guid>
      <dc:creator>Erik Doernenburg</dc:creator>
    </item>
    <item>
      <title>Podjango</title>
      <link>http://www.nofluffjuststuff.com/blog/mike_levin/2008/11/podjango.html</link>
      <description>&lt;p&gt;&lt;p&gt;&lt;img src="http://media.djangoproject.com/img/site/hdr_logo.gif"&gt;&lt;a href="http://www.softwarefreedom.org/blog/2008/nov/20/podjango/"&gt;podjango: A Minimalist Django Application for Podcast Publishing: &lt;a href="http://code.softwarefreedom.org/projects/podjango/"&gt;Podjango&lt;/a&gt; is a &lt;a href="http://www.djangoproject.com/"&gt;Django-based&lt;/a&gt; podcasting tool. Anybody taken a look? Of course, since we roll our own here at Swampcast, we're all ears!&lt;br/&gt;&lt;br /&gt;
&lt;p&gt;&lt;br/&gt;&lt;br /&gt;
&lt;i&gt;Thanks to Jim White, semantic aficionado extraordinaire at &lt;a href="http://ifcx.org/"&gt;Internet Foundation Classes eXtreme!&lt;/a&gt; for the shout-out&lt;/i&gt;&lt;/p&gt;&lt;/p&gt;</description>
      <pubDate>Thu, 20 Nov 2008 12:42:00 CST</pubDate>
      <guid isPermaLink="true">http://www.jroller.com/Sandymountster/entry/podjango</guid>
      <dc:creator>Mike Levin</dc:creator>
    </item>
    <item>
      <title>JarAnalyzer in Google Code</title>
      <link>http://www.nofluffjuststuff.com/blog/kirk_knoernschild/2008/11/jaranalyzer_in_google_code.html</link>
      <description>&lt;p&gt;&lt;a href="http://www.kirkk.com/main/Main/JarAnalyzer"&gt;&lt;a href="http://code.google.com/p/jaranalyzer/"&gt;&lt;img style="max-width: 800px;" src="http://techdistrict.kirkk.com/wp-content/uploads/2008/11/jargcode.jpg" width="361" height="158" /&gt;&lt;/a&gt;JarAnalyzer&lt;/a&gt; now has it&amp;#8217;s own &lt;a href="http://code.google.com/p/jaranalyzer/"&gt;Google Code location&lt;/a&gt;. You can browse the source code online, check the source code out, and do all of the other exciting things that you can do with a subversion repository. The source in the google code repository is the same as can be found at the &lt;a href="http://www.kirkk.com/main/Main/JarAnalyzer"&gt;JarAnalyzer homepage&lt;/a&gt; (which is also where the binary is still found), except that the Google Code location also contains the &lt;a href="http://techdistrict.kirkk.com/2007/09/07/new-jaranalyzer-xsl/"&gt;JarAnalyzer XSLT&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;Eventually, I hope to move the documentation over to the Google repository. Yeah&amp;#8230;right! Update the documentation? I don&amp;#8217;t think so!&lt;/p&gt;</description>
      <pubDate>Thu, 20 Nov 2008 11:01:00 CST</pubDate>
      <guid isPermaLink="true">http://techdistrict.kirkk.com/2008/11/20/jaranalyzer-in-google-code/</guid>
      <dc:creator>Kirk Knoernschild</dc:creator>
    </item>
    <item>
      <title>Children and Microsoft Surface</title>
      <link>http://www.nofluffjuststuff.com/blog/richard_monson-haefel/2008/11/children_and_microsoft_surface.html</link>
      <description>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_HOfY71whEUc/SSWFS0M9eHI/AAAAAAAAAKE/dGw4cpSlo10/s1600-h/child.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 150px; height: 87px;" src="http://4.bp.blogspot.com/_HOfY71whEUc/SSWFS0M9eHI/AAAAAAAAAKE/dGw4cpSlo10/s320/child.gif" alt="" id="BLOGGER_PHOTO_ID_5270765497204177010" border="0" /&gt;&lt;/a&gt;My wife is home schooling our 4 children - the oldest is 7.  Although there is probably little or no market for Microsoft Surface applications for children I've recently become interested in the idea of using Surface for home education.&lt;br /&gt;&lt;br /&gt;The idea of using Surface in this way really hit home when I started teaching my two oldest how to use a Mac to practice their spelling and for painting. I'm using an old G3 laptop so I don't care much if they break it.&lt;br /&gt;&lt;br /&gt;Watching the children interact with the G3 has been interesting. The trackpad is challenging for them and clicking on small menu bars and icons is also difficult. They have gotten better, but the act of launching applications is still a mystery.  Actually, the children have sort of lost interest in the computer and don't play with much now.&lt;br /&gt;&lt;br /&gt;The loss of interest may be because of a couple of reasons.  We have not exposed them to computers (other than an occasional session with my iPhone) until I gave them the G3. We also don't have a TV or video games so our kids are not used to interacting with a screen. The second reason is that its too tedious and the reward to low when working with the traditional keyboard and track pad.  I'm convinced that a Microsoft Surface device would be a much easier and rewarding experience.&lt;br /&gt;&lt;br /&gt;I was really pleased this morning to discover a &lt;a href="http://blogs.conchango.com/richardwand/archive/2008/11/19/breaking-down-traditional-barriers.aspx"&gt;blog entry&lt;/a&gt; by Richard Wand (a.k.a. Wandy) of &lt;a href="http://www.conchango.com/"&gt;Conchango&lt;/a&gt; who introduced his 4 year old, Bel, to the Surface this week.  It turns out that Wandy had observed the same difficulty with his little girl when using tradition GUI applications.  But when his daughter Bel started working with the Surface unit at Wandy's work she had a much easier experience.  Wandy does a great job of documenting the experience and its worth reading.&lt;br /&gt;&lt;br /&gt;Bel's experience illuminates a couple areas where Surface would need to be modified for children the first being the attract screen.  I would imagine that its difficult to children to figure out that the corner access points did anything interesting. Also even if discovered I doubt kids that age would make the connection without accidentally hitting it a couple of times.&lt;br /&gt;&lt;br /&gt;I'm excited about the prospect of using Surface to teach children and I plan to start designing applications for children as my first forays into Surface application development.  After all, if you can design applications that are easy for small children to use than most adults would be able to use them too.&lt;br /&gt;&lt;span style=";font-family:'Arial','sans-serif';font-size:10;"  &gt;&lt;/span&gt;</description>
      <pubDate>Thu, 20 Nov 2008 10:06:20 CST</pubDate>
      <guid isPermaLink="true">tag:blogger.com,1999:blog-7867849070722123199.post-9143211466978880470</guid>
      <dc:creator>Richard Monson-Haefel</dc:creator>
    </item>
    <item>
      <title>JavaOne 2009 Call for Papers Open!</title>
      <link>http://www.nofluffjuststuff.com/blog/alex_miller/2008/11/javaone_2009_call_for_papers_open_.html</link>
      <description>&lt;p&gt;Start your engines kids - the &lt;a href="http://java.sun.com/javaone/"&gt;JavaOne 2009&lt;/a&gt; &lt;a href="http://www28.cplan.com/cfp_prod/CFPLogin.jsp?wId=69MQ81"&gt;call for papers&lt;/a&gt; is open&amp;#8230;&lt;/p&gt;
&lt;p&gt;Interesting new &lt;a href="http://java.sun.com/javaone/2009/topics.jsp"&gt;focus areas&lt;/a&gt; this year:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://java.sun.com/javaone/2009/topics.jsp#1"&gt;Rich Media Applications and Interactive Content&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://java.sun.com/javaone/2009/topics.jsp#2"&gt;Mobility&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://java.sun.com/javaone/2009/topics.jsp#3"&gt;Services&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://java.sun.com/javaone/2009/topics.jsp#4"&gt;Core Technologies&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;And here&amp;#8217;s some good advice from previous years to keep in mind:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://blogs.sun.com/tor/entry/why_your_javaone_submission_was"&gt;Tor Norbye&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blogs.sun.com/caseyc/date/20050103#how_not_to_have_your"&gt;Casey Cameron&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Last year was my first time both attending and &lt;a href="http://tech.puredanger.com/presentations/design-patterns-reconsidered"&gt;speaking&lt;/a&gt; at JavaOne and while speaking to 1000 people was high on my list of terrifying life experiences, it was also a thrill and something I&amp;#8217;d like to do again.  &lt;/p&gt;
&lt;p&gt;I suspect we&amp;#8217;ll see a strong &lt;a href="http://tech.puredanger.com/java7"&gt;Java SE 7&lt;/a&gt; focus this year as well, so should be fun.  I was expecting to see the Java SE 7 platform JSR show up for &lt;em&gt;last&lt;/em&gt; year&amp;#8217;s show - I certainly hope it&amp;#8217;s there in &amp;#8216;09.  Keep an eye out for my Java 7 preview article in an upcoming &lt;a href="http://javaworld.com"&gt;JavaWorld&lt;/a&gt;&amp;#8230;.
&lt;/p&gt;</description>
      <pubDate>Thu, 20 Nov 2008 08:58:00 CST</pubDate>
      <guid isPermaLink="true">http://tech.puredanger.com/2008/11/20/javaone-2009-papers/</guid>
      <dc:creator>Alex Miller</dc:creator>
    </item>
    <item>
      <title>I’m on Twitter</title>
      <link>http://www.nofluffjuststuff.com/blog/kirk_knoernschild/2008/11/i_m_on_twitter.html</link>
      <description>&lt;p&gt;&lt;a href="http://www.twitter.com/pragkirk"&gt;&lt;img style="max-width: 800px;" src="http://techdistrict.kirkk.com/wp-content/uploads/2008/11/twitter.gif" alt="" width="142" height="91" /&gt;&lt;/a&gt;I&amp;#8217;ve jumped on the &lt;a href="http://www.twitter.com"&gt;Twitter&lt;/a&gt; bandwagon. Possibly a little slow, but better late than never. I&amp;#8217;ve started following a few people, and so far I find it fun and interesting. I intend to post mostly on tech stuff. I&amp;#8217;ve also included my tweet feed on the right sidebar of this blog. Or you can subscribe to my &lt;a href="http://twitter.com/statuses/user_timeline/17481654.rss"&gt;tweet feed&lt;/a&gt; separately. Or you can start &lt;a href="http://www.twitter.com/pragkirk"&gt;following me now&lt;/a&gt;! You decide.&lt;/p&gt;</description>
      <pubDate>Wed, 19 Nov 2008 21:06:00 CST</pubDate>
      <guid isPermaLink="true">http://techdistrict.kirkk.com/2008/11/20/im-on-twitter/</guid>
      <dc:creator>Kirk Knoernschild</dc:creator>
    </item>
    <item>
      <title>Initial iPhone experience — disappointing</title>
      <link>http://www.nofluffjuststuff.com/blog/brian_goetz/2008/11/initial_iphone_experience__disappointing.html</link>
      <description>&lt;p&gt;I live in an AT&amp;#038;T-free state, so I have not had access to the cult that is iPhone.  But recently, in preparation for AT&amp;#038;T moving into the state (through an asset swap that involves AT&amp;#038;T acquiring the VT GSM assets that Verizon bought in acquiring Rural Cellular), they are now willing to open accounts with VT addresses.  So when in CA this week, I went to an AT&amp;#038;T store to plunk down my money so I could be cool like all my friends.  I purchased a 16GB iPhone 3G.  &lt;/p&gt;
&lt;p&gt;I got out of the store and into my car, and noticed that the edge where the front metal rim meets the plastic case was extremely rough &amp;#8212; almost sharp enough to cut.  This was not the seamless tactile experience I was expecting from Apple.  So I went back in the store, and asked for an exchange.  I was told that &amp;#8220;Apple prevents AT&amp;#038;T from making exchanges&amp;#8221; and was sent to the Apple Store.   When I arrived at the Apple Store, the rep informed me that they could make an exchange, but it would be a refurb unit, not a new one, even though mine was clearly new, because I&amp;#8217;d bought it at an AT&amp;#038;T store and not an apple store.  &lt;/p&gt;
&lt;p&gt;So I went back to the AT&amp;#038;T store and argued with the manager.  He tried to send me back to Apple.  He ended up calling the Apple store, who must have told him to take the exchange, so in the end I got a new, non-defective phone.  All was made right, but the experience was none too pleasant, involving three store visits.&lt;/p&gt;
&lt;p&gt;While in the Apple store, which had many iPhones on display, I took the opportunity to do some sampling.  I discovered that many iPhones had rough or sharp spots, and not all in the same places.  Seems that in reducing the cost of the 3G, perhaps some quality-control corners were cut as well, since many were not very pleasing to the touch and there were significant variations in perceivable quality.&lt;/p&gt;</description>
      <pubDate>Wed, 19 Nov 2008 19:51:00 CST</pubDate>
      <guid isPermaLink="true">http://www.briangoetz.com/blog/?p=69</guid>
      <dc:creator>Brian Goetz</dc:creator>
    </item>
    <item>
      <title>Ready for 5.0.17?</title>
      <link>http://www.nofluffjuststuff.com/blog/howard_lewis_ship/2008/11/ready_for_5_0_17_.html</link>
      <description>&lt;p&gt;Looks like 5.0.16 will not be the final release, there will be a very modest 5.0.l7 that addresses a couple of annoyances that didn't have good work-arounds.&lt;img src="http://feeds.feedburner.com/~r/TapestryCentral/~4/459029764" height="1" width="1"/&gt;</description>
      <pubDate>Wed, 19 Nov 2008 19:15:53 CST</pubDate>
      <guid isPermaLink="true">tag:blogger.com,1999:blog-4110180.post-10236432226019337</guid>
      <dc:creator>Howard Lewis Ship</dc:creator>
    </item>
    <item>
      <title>Android, G1 and Java</title>
      <link>http://www.nofluffjuststuff.com/blog/mike_levin/2008/11/android_g1_and_java.html</link>
      <description>&lt;p&gt;&lt;p&gt;&lt;img src="http://www.jroller.com/Sandymountster/resource/pushbutton_logo.png"&gt;&lt;/p&gt;&lt;/p&gt;

	&lt;p&gt;&lt;p&gt;Tonight's GatorLUG topic calls out &lt;a href="http://www.gatorlug.org"&gt;GatorLUG:&lt;/a&gt; "6:40 &lt;del&gt; 7:45: Presentation &lt;/del&gt; The Android G1 Cell Phone - What it does out of the box, How to write custom apps | Allen Rout"&lt;br/&gt;&lt;br /&gt;
&lt;p&gt; &lt;br/&gt;&lt;br /&gt;
&lt;img src="http://www.jroller.com/Sandymountster/resource/logo_android.gif"&gt;&lt;/p&gt;&lt;/p&gt;

	&lt;p&gt;&lt;p&gt;A response: "To add,&lt;br/&gt;&lt;br /&gt;
&lt;p&gt;&lt;br/&gt;&lt;br /&gt;
I think Allen will be demonstrating using some Java programming skills&lt;br/&gt;&lt;br /&gt;
to make the G1 do new things (not unlike Brad Fitzpatrick, the creator&lt;br/&gt;&lt;br /&gt;
of LiveJournal, recently using his &lt;span class="caps"&gt;G1 &lt;/span&gt;+ some Java to make a garage door&lt;br/&gt;&lt;br /&gt;
opener: &lt;a href="http://brad.livejournal.com/2394707.html"&gt;http://brad.livejournal.com/2394707.html).&lt;/a&gt;&lt;br/&gt;&lt;br /&gt;
&lt;p&gt;&lt;br/&gt;&lt;br /&gt;
Cheers,&lt;/p&gt;&lt;/p&gt;

	&lt;p&gt;&lt;p&gt;&lt;p&gt;&lt;/p&gt;&lt;/p&gt;

	&lt;p&gt;&lt;p&gt;Martin Smith, Systems Developer"&lt;br/&gt;&lt;br /&gt;
&lt;p&gt;&lt;br/&gt;&lt;br /&gt;
&lt;img src="http://www.jroller.com/Sandymountster/resource/brad.jpg"&gt;&lt;/p&gt;&lt;/p&gt;

	&lt;p&gt;&lt;p&gt;So, Brad &lt;a href="http://brad.livejournal.com/2394707.html"&gt;writes:&lt;/a&gt;&lt;/p&gt;&lt;/p&gt;

	&lt;p&gt;&lt;p&gt;&lt;p&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;"This is a follow-up to my previous post to say:

&lt;p&gt;

SO. &lt;strong&gt;*&lt;/strong&gt;*ING. AWESOME.

&lt;p&gt;

I got it all working. I now have an Android &lt;a href="http://code.google.com/android/reference/android/app/Activity.html"&gt;Activity&lt;/a&gt; (GarageDoorActivity) which interacts with an Android Service I wrote (InRangeService), letting me start and stop the service's wifi scanning task. The service gets the system WifiManager, holds a WifiLock to keep the radio active, and then does a Wifi scan every couple seconds, looking for my house..."

&lt;p&gt;

&lt;p&gt;

Since my garage door opener is bigger than an Android phone, this appeals to me.  You gotta read the whole &lt;a href="http://brad.livejournal.com/2394707.html"&gt;post...&lt;/a&gt;

&lt;p&gt;

Yep, &lt;i&gt;the times, they are a changin'.&lt;/i&gt;

&lt;p&gt;

&lt;b&gt;&lt;strong&gt;UPDATE&lt;/b&gt;&lt;/strong&gt;

Allen reports he can&amp;#8216;t make it tonight, but here&amp;#8216;s a summary of his presentation:

&lt;p&gt;

&lt;pre&gt;

+ Android is keen!&lt;/p&gt;

&lt;p&gt;+ You can download eclipse and code for it directly
 &amp;#8211; eclipse is keen too, and has emacs keybindings.
 &amp;#8211; and svn integration. Woot!&lt;/p&gt;

&lt;p&gt;+ let's code an app
 &amp;#8211; hello world
 &amp;#8211; make a button say hello world
 &amp;#8211; make a button play a noise
 &amp;#8211; read from the accelerometers, and display the output.
 &amp;#8211; Whee, lightsaber! 
 &amp;#8211; coding model (callbacks)&lt;/p&gt;

&lt;p&gt;+ rough spots in the developer universe
 &amp;#8211; Docs not very introductory
 &amp;#8211; Inconsistent APIs
 &amp;#8211; Tasty looking APIs marked &amp;#8220;Not ready for use&amp;#8221; mostly by empty

documentation.
 &amp;#8211; Google seems to be swamped with code donations. (silver lining,

that)&lt;/p&gt;

&lt;p&gt;+ Conclusion: A great start. Not as kewl as Iphone, but profoundly

more open.&lt;/p&gt;

&lt;p&gt;- Allen S. Rout

&lt;/pre&gt;&lt;/p&gt;</description>
      <pubDate>Wed, 19 Nov 2008 09:27:00 CST</pubDate>
      <guid isPermaLink="true">http://www.jroller.com/Sandymountster/entry/android_g1_and_java</guid>
      <dc:creator>Mike Levin</dc:creator>
    </item>
    <item>
      <title>Fast Sphinx indexing with foxy fixtures</title>
      <link>http://www.nofluffjuststuff.com/blog/matthew_bass/2008/11/fast_sphinx_indexing_with_foxy_fixtures.html</link>
      <description>&lt;p&gt;Can Sphinx and foxy fixtures place nicely together? Due to the way Sphinx indexing works, foxy fixtures will often slow down the indexing process drastically. &lt;a href="http://blog.insoshi.com/2008/07/17/searching-a-ruby-on-rails-application-with-sphinx-and-ultrasphinx/" onclick="javascript:urchinTracker ('/outbound/article/blog.insoshi.com');"&gt;This article&lt;/a&gt; explains how to overcome this limitation.
&lt;/p&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/pelargir?a=xmohN"&gt;&lt;img src="http://feeds.feedburner.com/~f/pelargir?i=xmohN" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/pelargir?a=Aw2vn"&gt;&lt;img src="http://feeds.feedburner.com/~f/pelargir?i=Aw2vn" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/pelargir?a=N82Rn"&gt;&lt;img src="http://feeds.feedburner.com/~f/pelargir?i=N82Rn" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
      <pubDate>Wed, 19 Nov 2008 09:24:00 CST</pubDate>
      <guid isPermaLink="true">http://matthewbass.com/2008/11/19/fast-sphinx-indexing-with-foxy-fixtures/</guid>
      <dc:creator>Matthew Bass</dc:creator>
    </item>
    <item>
      <title>Printing an array in multiple table columns</title>
      <link>http://www.nofluffjuststuff.com/blog/matthew_bass/2008/11/printing_an_array_in_multiple_table_columns.html</link>
      <description>&lt;pre&gt;
&amp;lt;% @categories.in_groups_of(2).each do |group| %&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;lt;tr&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;lt;% group.each do |category| %&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;td&amp;gt;&amp;lt;%=h category.name %&amp;gt;&amp;lt;/td&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;lt;% end %&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;lt;/tr&amp;gt;
&amp;lt;% end %&amp;gt;
&lt;/pre&gt;
&lt;p&gt;What are you staring at? Move along, move along.
&lt;/p&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/pelargir?a=FuQZN"&gt;&lt;img src="http://feeds.feedburner.com/~f/pelargir?i=FuQZN" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/pelargir?a=NEkPn"&gt;&lt;img src="http://feeds.feedburner.com/~f/pelargir?i=NEkPn" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/pelargir?a=zr8cn"&gt;&lt;img src="http://feeds.feedburner.com/~f/pelargir?i=zr8cn" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
      <pubDate>Wed, 19 Nov 2008 09:21:00 CST</pubDate>
      <guid isPermaLink="true">http://matthewbass.com/2008/11/19/printing-an-array-in-multiple-table-columns/</guid>
      <dc:creator>Matthew Bass</dc:creator>
    </item>
    <item>
      <title>OSGi interest via MarkMail</title>
      <link>http://www.nofluffjuststuff.com/blog/kirk_knoernschild/2008/11/osgi_interest_via_markmail.html</link>
      <description>&lt;p&gt;&lt;img style="max-width: 800px;" src="http://techdistrict.kirkk.com/wp-content/uploads/2008/11/markmailosgi.jpg" alt="" width="523" height="269" /&gt; An image I swiped from &lt;a href="http://markmail.org"&gt;MarkMail&lt;/a&gt; showing the increase in &lt;a href="http://www.osgi.org"&gt;OSGi&lt;/a&gt; related posts on various mailing lists. No surprise that the most popular lists are &lt;a href="http://markmail.org/search/?q=osgi#query:osgi%20list%3Aorg.apache.felix.dev+page:1+state:facets"&gt;Felix Dev&lt;/a&gt; and &lt;a href="http://markmail.org/search/?q=osgi#query:osgi%20list%3Acom.googlegroups.spring-osgi+page:1+state:facets"&gt;Spring-OSGi&lt;/a&gt;. The traffic shows the rise in interest in OSGi the past couple of years. Again, no surprise. It does appear, however, that most of the posts are closely tied to development of OSGi products (like &lt;a href="http://felix.apache.org"&gt;Felix&lt;/a&gt; and &lt;a href="http://springframework.org/osgi"&gt;Spring dm&lt;/a&gt;) and not from developers leveraging OSGi within their applications. OSGi hasn&amp;#8217;t achieved deep enterprise penetration yet, and won&amp;#8217;t until we get support from product vendors along with better tooling.&lt;/p&gt;</description>
      <pubDate>Wed, 19 Nov 2008 08:39:00 CST</pubDate>
      <guid isPermaLink="true">http://techdistrict.kirkk.com/2008/11/19/osgi-interest-via-markmail/</guid>
      <dc:creator>Kirk Knoernschild</dc:creator>
    </item>
    <item>
      <title>Centering images and text inside an li or div</title>
      <link>http://www.nofluffjuststuff.com/blog/brian_pontarelli/2008/11/centering_images_and_text_inside_an_li_or_div.html</link>
      <description>&lt;p&gt;Found a good fix for this one as well. This will work on LIs or DIVs. Here&amp;#8217;s how to do this in IE and FireFox:&lt;/p&gt;
&lt;pre&gt;
li {
  display: inline;
  text-align: center;
}

li img {
  display: block;
  margin: auto;
}
&lt;/pre&gt;
&lt;p&gt;The HTML looks like this:&lt;/p&gt;
&lt;pre&gt;
&amp;lt;ul&gt;
  &amp;lt;li&gt;&amp;lt;img src="..."/&gt;Some text&amp;lt;/li&gt;
  &amp;lt;li&gt;&amp;lt;img src="..."/&gt;Some text&amp;lt;/li&gt;
&amp;lt;/ul&gt;
&lt;/pre&gt;</description>
      <pubDate>Tue, 18 Nov 2008 19:23:00 CST</pubDate>
      <guid isPermaLink="true">http://brian.pontarelli.com/?p=229</guid>
      <dc:creator>Brian Pontarelli</dc:creator>
    </item>
    <item>
      <title>Getting rid of spaces between LIs in IE</title>
      <link>http://www.nofluffjuststuff.com/blog/brian_pontarelli/2008/11/getting_rid_of_spaces_between_lis_in_ie.html</link>
      <description>&lt;p&gt;Took a bit of research, but the only way I could get rid of all the space between LIs in IE was to make the LI inline and the anchor tag within the LI a block like this:&lt;/p&gt;
&lt;pre&gt;
.some-class li {
  display: inline;
}

.some-class li a {
  display: block;
}
&lt;/pre&gt;</description>
      <pubDate>Tue, 18 Nov 2008 19:01:00 CST</pubDate>
      <guid isPermaLink="true">http://brian.pontarelli.com/?p=226</guid>
      <dc:creator>Brian Pontarelli</dc:creator>
    </item>
    <item>
      <title>Grails vs. Rails: Are we seriously still talking about this?!</title>
      <link>http://www.nofluffjuststuff.com/blog/jason_rudolph/2008/11/grails_vs_rails_are_we_seriously_still_talking_about_this_.html</link>
      <description>&lt;p&gt;I had the &lt;a href="http://twitter.com/jasonrudolph/status/1010492093" title="Twitter / Jason Rudolph: Checking out @robertfischer's Grails presentation at TriJUG"&gt;pleasure of meeting a local Grails enthusiast last night&lt;/a&gt; who was new to the Triangle, but I was disappointed to see the same old argument spoil the show.  The &lt;a href="http://jasonrudolph.com/blog/tag/rails/" title="jasonrudolph.com/blog &amp;raquo; Rails"&gt;Rails&lt;/a&gt; vs. &lt;a href="http://jasonrudolph.com/blog/tag/grails/" title="jasonrudolph.com/blog &amp;raquo; Grails"&gt;Grails&lt;/a&gt; debate is tired, and it&amp;#8217;s curiously - perhaps even &lt;a href="http://enfranchisedmind.com/blog/2008/11/18/intro-to-grails-presentation-slides/#comment-33865" title="Enfranchised Mind &amp;raquo; &amp;#8220;Intro to Grails&amp;#8221; Presentation Slides"&gt;embarrassingly&lt;/a&gt; - unidirectional. I hereby call on the great philosophers to weigh in:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.youtube.com/watch?v=aMfr2CgIPhg" title="YouTube: Rodney King - Can We All Get Along..."&gt;Philosopher, The First&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.vanderburg.org/Blog/Software/Development/koan.blog" title="Glenn Vanderburg: Six of One, a Half Dozen of the Other"&gt;Philosopher, The Second&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now, go in peace.&lt;/p&gt;

&lt;p&gt;&amp;#8211;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Update 2008-11-19&lt;/strong&gt; - Robert has deleted his comment (originally linked to above and &lt;a href="http://jasonrudolph.com/blog/2008/11/18/grails-vs-rails-are-we-seriously-still-talking-about-this/#comment-14775" title="jasonrudolph.com/blog - Comment by Robert Fischer"&gt;referenced by Robert below&lt;/a&gt;) from his blog.  His original blog post remains intact, sans incendiary comment.&lt;/p&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/jasonrudolph?a=Upufn"&gt;&lt;img src="http://feeds.feedburner.com/~f/jasonrudolph?i=Upufn" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/jasonrudolph?a=RlUvN"&gt;&lt;img src="http://feeds.feedburner.com/~f/jasonrudolph?i=RlUvN" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/jasonrudolph?a=ns1On"&gt;&lt;img src="http://feeds.feedburner.com/~f/jasonrudolph?i=ns1On" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/jasonrudolph/~4/457835505" height="1" width="1"/&gt;</description>
      <pubDate>Tue, 18 Nov 2008 14:27:00 CST</pubDate>
      <guid isPermaLink="true">http://jasonrudolph.com/blog/?p=236</guid>
      <dc:creator>Jason Rudolph</dc:creator>
    </item>
    <item>
      <title>Grails at the TampaJUG tonight!</title>
      <link>http://www.nofluffjuststuff.com/blog/mike_levin/2008/11/grails_at_the_tampajug_tonight_.html</link>
      <description>&lt;p&gt;&lt;p&gt;&lt;img src="http://api.ning.com/files/Inj3mLWD8gjI7BCsjYLpc1Dzpp0qrhYdZ5qMHL8*h5k16B11xOe70rTRWYYqc82rnonxbbimehpGBHulGqH8OH6CbFaGyR5B/grailslogo.png?size=180&amp;#38;crop=1:1"&gt;&lt;br/&gt;&lt;br /&gt;
&lt;p&gt;&lt;/p&gt;&lt;/p&gt;

	&lt;p&gt;&lt;p&gt;Tonight TampaJUG are having a Grails workshop. I'll be helping out with the &lt;a href="http://www.zoobird.com/group/caringzoobirds"&gt;HomeVan&lt;/a&gt; here in Gainesville, so I won't be able to make it. But, it truly looks like a workshop not to be missed. Full details at &lt;a href="http://www.codetown.us/events/tampajug-grails-live-build"&gt;Codetown.&lt;/a&gt;&lt;br/&gt;&lt;br /&gt;
&lt;p&gt;&lt;br/&gt;&lt;br /&gt;
If you make it, we&amp;#8216;d love to hear about it here at Swampcast!&lt;br/&gt;&lt;br /&gt;
&lt;p&gt;&lt;/p&gt;&lt;/p&gt;</description>
      <pubDate>Tue, 18 Nov 2008 12:30:00 CST</pubDate>
      <guid isPermaLink="true">http://www.jroller.com/Sandymountster/entry/grails_at_the_tampajug_tonight</guid>
      <dc:creator>Mike Levin</dc:creator>
    </item>
    <item>
      <title>Be the Change You Seek</title>
      <link>http://www.nofluffjuststuff.com/blog/mike_levin/2008/11/be_the_change_you_seek.html</link>
      <description>&lt;p&gt;&lt;p&gt;&lt;object id="ep_player" name="ep_player" height="390" width="480" data="http://cdn.episodic.com/player/EpisodicPlayer.swf?config=http%3A%2F%2Fcdn.episodic.com%2Fshows%2F13%2F493%2F10%2Fconfig.xml" type="application/x-shockwave-flash"&gt;&lt;param name="movie" value="http://cdn.episodic.com/player/EpisodicPlayer.swf?config=http%3A%2F%2Fcdn.episodic.com%2Fshows%2F13%2F493%2F10%2Fconfig.xml"/&gt;&lt;param name="AllowScriptAccess" value="always"/&gt;&lt;param name="allowfullscreen" value="true"/&gt;&lt;embed src="http://cdn.episodic.com/player/EpisodicPlayer.swf?config=http%3A%2F%2Fcdn.episodic.com%2Fshows%2F13%2F493%2F10%2Fconfig.xml" type="application/x-shockwave-flash" allowfullscreen="true" AllowScriptAccess="always" width="480" height="390" id="ep_player" name="ep_player"/&gt;&lt;/object&gt;&lt;br/&gt;&lt;br /&gt;
&lt;p&gt;&lt;br/&gt;&lt;br /&gt;
I enjoyed meeting some Atlassian folk at the last Java Posse Roundup in Crested Butte, CO, which is about to happen again in March, 2009.  You&amp;#8216;ll enjoy this video about core values, which can translate to many areas of life. Atlassian also have some cool underground advertising. They contributed to the design of the Java Posse Roundup T-Shirt and if you see one untucked, look at the backside on the bottom. That&amp;#8216;s where you&amp;#8216;ll see the Atlassian logo!&lt;/p&gt;&lt;/p&gt;

	&lt;p&gt;&lt;p&gt;&lt;p&gt;&lt;/p&gt;&lt;/p&gt;</description>
      <pubDate>Tue, 18 Nov 2008 12:26:00 CST</pubDate>
      <guid isPermaLink="true">http://www.jroller.com/Sandymountster/entry/be_the_change_you_seek</guid>
      <dc:creator>Mike Levin</dc:creator>
    </item>
    <item>
      <title>The XO Laptop - Give 1, Get 1</title>
      <link>http://www.nofluffjuststuff.com/blog/kirk_knoernschild/2008/11/the_xo_laptop__give_1_get_1.html</link>
      <description>&lt;p&gt;The &lt;a href="http://laptop.org/en/"&gt;OLPC&lt;/a&gt; has instituted their &amp;#8220;Give a laptop. Get a laptop.&amp;#8221; program again this year. If you&amp;#8217;re not familar with the &lt;a href="http://laptop.org/en/laptop/index.shtml"&gt;XO laptop&lt;/a&gt;, it&amp;#8217;s a cool little deviced in a pretty small package. The picture at left shows the XO sitting next to a Dell XPS with a 15&amp;#8243; display (click to enlarge).&lt;/p&gt;
&lt;p&gt;&lt;a href="http://techdistrict.kirkk.com/wp-content/uploads/2008/11/xo.jpg"&gt;&lt;img src="http://techdistrict.kirkk.com/wp-content/uploads/2008/11/xo.jpg" width="145" height="110" /&gt;&lt;/a&gt;The OLPC offered the same deal around the same time last year when I ordered mine, and their was quite a backlog. It took almost six months for them to ship, so if you&amp;#8217;re interested in getting your hands on the XO, it might be wise to place the order soon.&lt;/p&gt;
&lt;p&gt;You can order your XO through &lt;a href="http://www.amazon.com/xo"&gt;Amazon&lt;/a&gt;. For $399, you give a laptop to a child in need, and also get your own laptop.&lt;/p&gt;</description>
      <pubDate>Tue, 18 Nov 2008 09:46:00 CST</pubDate>
      <guid isPermaLink="true">http://techdistrict.kirkk.com/2008/11/18/the-xo-laptop-give-1-get-1/</guid>
      <dc:creator>Kirk Knoernschild</dc:creator>
    </item>
    <item>
      <title>The Role of Architects and Architecture in Agile</title>
      <link>http://www.nofluffjuststuff.com/blog/ryan_shriver/2008/11/the_role_of_architects_and_architecture_in_agile.html</link>
      <description>&lt;a href="http://www.theagileengineer.com/public/Home/Entries/2008/11/17_The_Role_of_Architects_and_Architecture_in_Agile_files/207776872_5a9c33dbc6.jpg"&gt;&lt;img src="http://www.theagileengineer.com/public/Home/Media/207776872_5a9c33dbc6_1.jpg" style="float:left; padding-right:10px; padding-bottom:10px; width:156px; height:105px;"/&gt;&lt;/a&gt;I’ve returned from the Agile Development Practices conference in Orlando, FL and have uploaded my &lt;a href="../Presentations/Entries/2008/11/17_Agile_Engineering_for_Architects.html"&gt;Agile Engineering for Architects slide deck&lt;/a&gt; and also the &lt;a href="../Tools/Entries/2008/11/17_Impact_Estimation_for_Agile_Engineering.html"&gt;Impact Estimation tool&lt;/a&gt; used in the presentation. Thanks to all those that attended, I thought for the first time out this new presentation came off pretty well. We’ll see what the reviews say.&lt;br/&gt;&lt;br/&gt;Some questions I was asked and conversations I had afterwards pertained to the question “What’s the role of Architects and Architecture in Agile?” The context is that in the Waterfall process, the role of Architects and Architecture is fairly well understood. Architects are heavily involved in the design phase and they’re expected to produce an Architecture that can be used in the Development phase. But as companies are moving to Agile, the architects in my session were asking me, “What’s my role now?” and “Where do I fit in?”&lt;br/&gt;&lt;br/&gt;It’s questions that, honestly, I had never thought about before. I could tell by the tone of some of their questions that they had been told there’s not much of a role for them, and this left them a bit miffed. They had been told that agile teams “design on the fly” and continually refactor their system’s design. Better judgement told them this wasn’t right, but they didn’t know.&lt;br/&gt;&lt;br/&gt;I know what’s worked form me when I’ve been the &lt;a href="../Presentations/Entries/2008/4/20_Scaling_Agility.html"&gt;lead architect on a large agile project&lt;/a&gt;, but the thought of putting this into some best practices hadn’t really struck me until I was getting these questions. Maybe this would be something good for a future blog post.&lt;br/&gt;&lt;br/&gt;So, what do you think? Any opinions on the role of Architects and Architecture in Agile?</description>
      <pubDate>Mon, 17 Nov 2008 20:38:00 CST</pubDate>
      <guid isPermaLink="true">aac42915-775a-4d8b-8ed5-e041421ebf03</guid>
      <dc:creator>Ryan Shriver</dc:creator>
    </item>
    <item>
      <title>Smart asset management for Rails plugins</title>
      <link>http://www.nofluffjuststuff.com/blog/matthew_bass/2008/11/smart_asset_management_for_rails_plugins.html</link>
      <description>&lt;p&gt;Many Rails plugins require that certain files like images, CSS, and JavaScript get copied to the public folder during installation. The typical way to do this is add code to install.rb, which then gets executed when you first install the plugin in your Rails project. What happens when the assets in a plugin you’re using change, though? You end up having to manually copy files around anytime the plugin gets updated, which is an extremely error-prone process.&lt;/p&gt;
&lt;p&gt;I extracted &lt;a href="http://github.com/pelargir/asset_copier/tree/master" onclick="javascript:urchinTracker ('/outbound/article/github.com');"&gt;asset_copier&lt;/a&gt; from an existing Terralien project. It fixes this problem beautifully. Once installed, it keeps the assets in your Rails project synchronized with your plugin. It even deletes assets from the Rails project that have been removed in the plugin.&lt;/p&gt;
&lt;p&gt;To learn more, check out &lt;a href="http://terralien.com/blog/" onclick="javascript:urchinTracker ('/outbound/article/terralien.com');"&gt;this post&lt;/a&gt;. If instant gratification is more your thing, install the gem directly and apply it to your target plugin:&lt;/p&gt;
&lt;pre&gt;
sudo gem install pelargir-asset_copier &amp;#45;-source=http://gems.github.com
cd ~/some_rails_project
script/generate asset_copier some_plugin
&lt;/pre&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/pelargir?a=4pcQN"&gt;&lt;img src="http://feeds.feedburner.com/~f/pelargir?i=4pcQN" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/pelargir?a=JgpQn"&gt;&lt;img src="http://feeds.feedburner.com/~f/pelargir?i=JgpQn" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/pelargir?a=Fu1Mn"&gt;&lt;img src="http://feeds.feedburner.com/~f/pelargir?i=Fu1Mn" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
      <pubDate>Mon, 17 Nov 2008 15:08:00 CST</pubDate>
      <guid isPermaLink="true">http://matthewbass.com/2008/11/17/smart-asset-management-for-rails-plugins/</guid>
      <dc:creator>Matthew Bass</dc:creator>
    </item>
    <item>
      <title>Generative Ambient Music: Bloom</title>
      <link>http://www.nofluffjuststuff.com/blog/neal_ford/2008/11/generative_ambient_music_bloom.html</link>
      <description>&lt;img src="http://bp0.blogger.com/_l5f_7upj9uY/R5l6JTpok4I/AAAAAAAAAAk/qFwG5MJTSg4/s320/NO+PSS.jpg" align="left" hspace="10" /&gt;One of the techniques I describe in &lt;a href="http://rubyurl.com/gmVB"&gt;The Productive Programmer&lt;/a&gt; is &lt;em&gt;focus&lt;/em&gt;, distancing yourself from the all too common distractions in modern office environments. I suggest that you can wear headphones (or earbuds) while coding as an indicator that others shouldn't bother you. Some developers can code to music (in fact, some developers have a hard time &lt;em&gt;not&lt;/em&gt; coding to music), but others fine it distracting. If you are in either group, you should try ambient music. The goal of ambient music is to create non-offensive background music. I find Muzak-style background music incredibly annoying and distracting, partially because they always choose sappy music (or taking good music and sappifying it) and partially because of a personality quirk &lt;a href="http://memeagora.blogspot.com/2007/01/why-i-hate-christmas-music.html"&gt;described here&lt;/a&gt;. Ambient music strives to create a sonic background that not only doesn't distract but qualifies as good music. You can search for ambient music as a category on Amazon. Ambient music frequently uses techniques borrowed from Minimalist music, where you create a melody (which is too stong a term for some minimalist music) that repeats with minor variations.&lt;br /&gt;&lt;p&gt;Brian Eno is one of the pioneers of ambient music. He and Robert Fripp recorded the track &lt;em&gt;The Heavenly Music Corporation&lt;/em&gt; on the album &lt;a href="http://en.wikipedia.org/wiki/No_Pussyfooting_(album"&gt;No Pussyfooting&lt;/a&gt; in 1972 by combining some experimental tape loop techniques from Eno, combined with Fripps guitar loops (called Frippertronics). &lt;em&gt;No Pussyfooting&lt;/em&gt; is still available, and quite enjoyable. But the interesting part about it for this post concerns how it was created. Once Eno and Fripp had all the equipment set up, they started the tape loops and recorders for the background track and retired to Eno's front room and drank tea while the album recorded itself. &lt;em&gt;No Pussyfooting&lt;/em&gt; has some early examples of generated ambient music (they were certainly not the first to experiment with generated music, but the first in a main-stream context). Eno and Fripp created several albums together. Eno has created a large catalog of ambient music (including the classic &lt;a href="http://en.wikipedia.org/wiki/Music_for_Airports"&gt;Music for Airports&lt;/a&gt;, recorded by several ensembles including the incredible &lt;a href="http://cantaloupemusic.com/album.php?catno=ca21045"&gt;Bang on a Can All-stars&lt;/a&gt;), and Fripp expanded the ideas behind Frippertronics using electronics for a stunning collections of recordings called &lt;em&gt;Soundscapes&lt;/em&gt;.&lt;/p&gt;&lt;p&gt;Which brings me finally to &lt;a href="http://www.generativemusic.com/"&gt;&lt;strong&gt;Bloom&lt;/strong&gt;&lt;/a&gt;. Bloom is an iPhone application created by Brian Eno and Peter Chilvers. When you launch Bloom, it starts a gentle drone sound as a background, and gives you the option to create ambient music by tapping the screen. When you tap, a note plays based on the location of your tap. You can tap single notes or chords. After about 5 seconds, the note repeats and continues while it gently decays. Using Bloom, you can create your own ambient music. I can play with Bloom for hours. It is one of the best iPhone applications I've found: a trully innovative application that takes great advantage of the iPhone interface.&lt;/p&gt;&lt;p&gt;The other option when you start Bloom is for it to generate music for you randomly. That brings us back around to &lt;em&gt;focus&lt;/em&gt;. Using Bloom, you can generate unique, non-distracting music for an entire day. Rather than buy a collection of ambient recordings, you can generate your own ambient music. Bloom lets you set several "moods", changing the tonal range and drone sounds to add just enough variety in the music to keep it just interesting enough to not distract. What used to take tons of studio equipment now runs on the iPhone. This makes a great way to help enhance your focus in noisy environments. Allow Bloom to create music for you that doesn't distract yet effectively drowns out all the other distracting sounds in your cube-ridden environment. Bloom is a great example that the iPhone isn't just another mobile device: it's a new platform for software development.&lt;/p&gt;</description>
      <pubDate>Mon, 17 Nov 2008 13:52:00 CST</pubDate>
      <guid isPermaLink="true">tag:blogger.com,1999:blog-9944221.post-3014339976158807931</guid>
      <dc:creator>Neal Ford</dc:creator>
    </item>
    <item>
      <title>Tapestry 5.0.16 (Release Candidate) it OUT!</title>
      <link>http://www.nofluffjuststuff.com/blog/howard_lewis_ship/2008/11/tapestry_5_0_16_release_candidate_it_out_.html</link>
      <description>&lt;p&gt;
The latest release of Tapestry, Tapestry 5.0.16 (Release Candidate), is now available.

&lt;p&gt;Tapestry 5.0.16 is the release candidate; we encourage users to download this version. In about a month, the Tapestry PMC will run a vote to grant it release status, barring any blocker bugs (critical bugs with no workaround).

&lt;p&gt;In the two months since the previous release, we've addressed over 80 issues, including many bugs and a few last minute improvements. New features include a LinkSubmit component (dearly missed from Tapestry 4), new support for reporting Ajax errors on the client side, smarter client-side validation, support for several new locales, and much new documentation.

&lt;p&gt;
Tapestry 5.0.16 is available for &lt;a href="http://tapestry.apache.org/download.html"&gt;download&lt;/a&gt;, or via the central Maven repository.&lt;img src="http://feeds.feedburner.com/~r/TapestryCentral/~4/456077559" height="1" width="1"/&gt;</description>
      <pubDate>Mon, 17 Nov 2008 09:09:32 CST</pubDate>
      <guid isPermaLink="true">tag:blogger.com,1999:blog-4110180.post-8250638576434981922</guid>
      <dc:creator>Howard Lewis Ship</dc:creator>
    </item>
    <item>
      <title>St. Louis Lambda Lounge December meeting</title>
      <link>http://www.nofluffjuststuff.com/blog/alex_miller/2008/11/st_louis_lambda_lounge_december_meeting.html</link>
      <description>&lt;p&gt;The &lt;a href="http://lambdalounge.org"&gt;Lambda Lounge&lt;/a&gt; is a new St. Louis area user group focusing on functional and dynamic languages.  The first &lt;a href="http://lambdalounge.org/meetings/"&gt;meeting&lt;/a&gt; will be December 4th at 6 pm.  &lt;/p&gt;
&lt;p&gt;At this point, I think topics for the first meeting have solidified.  I&amp;#8217;m planning on kicking off the meeting with an open discussion about what functional and dynamic languages are and we can maybe arm wrestle about whether the two have anything to do with each other.  &lt;/p&gt;
&lt;p&gt;Next, &lt;a href="http://weblog.dangertree.net/"&gt;Matt Taylor&lt;/a&gt; of &lt;strike&gt;G2One&lt;/strike&gt; SpringSource will talk about Groovy MetaProgramming with Categories and Mixins.  &lt;/p&gt;
&lt;p&gt;Finally, Ryan Senior of Ferguson Consulting is going to do an overview of &lt;a href="http://en.wikipedia.org/wiki/Ocaml"&gt;OCaml&lt;/a&gt;, of which I know not much, other than that it is a mixture of object and functional styles, derived from a ML-style static type system (but with type inference).  &lt;/p&gt;
&lt;p&gt;Should be a great December meeting.  The tentative plan for January (on Wednesday the 7th due to the holiday) is for &lt;a href="http://marioaquino.blogspot.com/"&gt;Mario Aquino&lt;/a&gt; to talk about functional programming in either Android or Dashboard widget development and for &lt;a href="http://www.ociweb.com/mark/"&gt;Mark Volkmann&lt;/a&gt; to talk about Squeak Smalltalk.  &lt;/p&gt;
&lt;p&gt;Hope to see you there!
&lt;/p&gt;</description>
      <pubDate>Sun, 16 Nov 2008 14:05:00 CST</pubDate>
      <guid isPermaLink="true">http://tech.puredanger.com/2008/11/16/st-louis-lambda-lounge-december-meeting/</guid>
      <dc:creator>Alex Miller</dc:creator>
    </item>
    <item>
      <title>Constraint, Chaos, Collapse</title>
      <link>http://www.nofluffjuststuff.com/blog/michael_nygard/2008/11/constraint_chaos_collapse.html</link>
      <description>&lt;p&gt;&lt;a href="http://pmuellr.blogspot.com" target="_blank"&gt;Patrick Muellr&lt;/a&gt; has an interesting post about being &lt;a href="http://pmuellr.blogspot.com/2008/11/brainwashed.html"&gt;brainwashed&lt;/a&gt; into believing that the outrageous is normal. It's a good read. (Hat tip to Reddit, whence many good things.) As often happens, I wrote such a long comment to his post that I felt it worthwhile to repost here.&lt;/p&gt;&lt;p&gt;My comment revolves around this chart of the Dow Jones Industrial Average over the last eighty years. (For the record, I'm not disputing anything about the rest of Patrick's post. In fact, I agree with most of what he says. This chart and my comments aren't central to his discussion about web development.) Some of you know that I've worked in finance before, and most of you know I have an interest in dynamics and complex systems. It's been an &lt;em&gt;interesting&lt;/em&gt; year.&lt;/p&gt;&lt;p&gt;Here's a snapshot of the chart in question. It's from &lt;a target="_blank" href="http://finance.yahoo.com"&gt;Yahoo! Finance&lt;/a&gt;, and the image links to the live chart. &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://finance.yahoo.com/echarts?s=%5EDJI#chart2:symbol=%5Edji;range=my;indicator=volume;charttype=line;crosshair=on;ohlcvalues=0;logscale=off;source=undefined"&gt;&lt;img width="240" height="131" border="0" src="http://farm4.static.flickr.com/3048/3025398461_1de783eb1f_m.jpg" /&gt;&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;Most of the chart looks like an exponential, which suggests the effect of compound growth. In a functioning capital-based system you'd expect exactly that. Capital invested produces more capital. Any time an output is also a required input, you get exponential growth. One of Patrick's &lt;a target="_blank" href="http://pmuellr.blogspot.com/2008/11/brainwashed.html?showComment=1226556240000#c8274809948738722601"&gt;other commenters&lt;/a&gt; points out that it looks almost linear when plotted on a logarithmic scale... a dead giveaway of an exponential.&lt;br /&gt;&lt;br /&gt;No real system can produce infinite growth. Instead, they always hit a constraint. That could be a physical limitation on the available inputs. It could be a limit on the throughput of the system itself. In a sense, it almost doesn't matter what the constraint itself happens to be. Rather, you should assume that a constraint exists.&lt;br /&gt;&lt;br /&gt;In systems with a chaotic tendency, the system doesn't slow down at all when approaching the constraint. In fact, it may be increasing at it's greatest rate just before the constraint clamps down hardest. In such cases, you'll either see a catastrophic collapse or a chaotic fluctuation.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;I don't know what the true constraint was in the financial system. Plenty of other people believe they know, and I'm happy to let them believe what they like. Just from looking at the chart, though, you could make a strong case that we really hit the constraint in 1999 and the rest has been chaos since then. &lt;br /&gt;&lt;/p&gt;</description>
      <pubDate>Sun, 16 Nov 2008 09:23:00 CST</pubDate>
      <guid isPermaLink="true">http://www.michaelnygard.com/blog/2008/11/constraint_chaos_collapse.html</guid>
      <dc:creator>Michael Nygard</dc:creator>
    </item>
  </channel>
</rss>

