<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>

<channel>
	<title>manalang</title>
	<atom:link href="http://manalang.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://manalang.com</link>
	<description>enhancing your experience since 2003.</description>
	<pubDate>Wed, 19 Nov 2008 17:59:44 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.3</generator>
	<language>en</language>
			<item>
		<title>&#8220;Looks Good, Works Well&#8221;</title>
		<link>http://manalang.com/archives/2008/11/19/looks-good-works-well/</link>
		<comments>http://manalang.com/archives/2008/11/19/looks-good-works-well/#comments</comments>
		<pubDate>Wed, 19 Nov 2008 17:58:57 +0000</pubDate>
		<dc:creator>manalang</dc:creator>
		
		<category><![CDATA[general]]></category>

		<category><![CDATA[consumer]]></category>

		<category><![CDATA[design]]></category>

		<category><![CDATA[enterprise]]></category>

		<category><![CDATA[ui]]></category>

		<category><![CDATA[ux]]></category>

		<guid isPermaLink="false">http://manalang.com/?p=1306</guid>
		<description><![CDATA[[cross posted from http://theappslab.com/2008/11/19/looks-good-works-well/]
Last night, I was lucky enough to see Bill Scott (of Yahoo Design Pattern Library, YUI, OpenRico, Netflix fame) present at my local Ruby user group.  He shared his thoughts about the successful design patterns that have defined today&#8217;s web.  As someone who enjoys brilliantly designed &#8220;things&#8221; including web apps [...]]]></description>
			<content:encoded><![CDATA[<p>[cross posted from <a href="http://theappslab.com/2008/11/19/looks-good-works-well/">http://theappslab.com/2008/11/19/looks-good-works-well/</a>]</p>
<p>Last night, I was lucky enough to see <a href="http://looksgoodworkswell.blogspot.com/">Bill Scott</a> (of <a href="http://developer.yahoo.com/ypatterns/">Yahoo Design Pattern Library</a>, <a href="http://developer.yahoo.com/yui/">YUI</a>, <a href="http://openrico.org">OpenRico</a>, <a href="http://netflix.com">Netflix</a> fame) present at my local Ruby user group.  He shared his thoughts about the successful design patterns that have defined today&#8217;s web.  As someone who enjoys brilliantly designed &#8220;things&#8221; including web apps and sites, I found his talk very interesting.</p>
<div id="__ss_676167" style="width: 425px; text-align: left;"><a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" title="Designing Web Interfaces" href="http://www.slideshare.net/billwscott/designing-web-interfaces-presentation?type=powerpoint">Designing Web Interfaces</a><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="355" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=designingwebinterfaces-1224606662700341-8&amp;stripped_title=designing-web-interfaces-presentation" /><embed type="application/x-shockwave-flash" width="425" height="355" src="http://static.slideshare.net/swf/ssplayer2.swf?doc=designingwebinterfaces-1224606662700341-8&amp;stripped_title=designing-web-interfaces-presentation" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<div style="font-size: 11px; font-family: tahoma,arial; height: 26px; padding-top: 2px;">View SlideShare <a style="text-decoration:underline;" title="View Designing Web Interfaces on SlideShare" href="http://www.slideshare.net/billwscott/designing-web-interfaces-presentation?type=powerpoint">presentation</a> or <a style="text-decoration:underline;" href="http://www.slideshare.net/upload?type=powerpoint">Upload</a> your own. (tags: <a style="text-decoration:underline;" href="http://slideshare.net/tag/rich">rich</a> <a style="text-decoration:underline;" href="http://slideshare.net/tag/ajax">ajax</a>)</div>
</div>
<p>Most (actually, all) of his talk was devoted to the consumer web.  My head is almost always focused on how to take the good stuff coming from the consumer web back into the enterprise web.  Bill&#8217;s ideas made me realize how little we (as enterprise web app developers) pay attention to the minute details that go into producing web apps that customers love.  Bill is currently the Director of UI Engineering at Netflix.  If you&#8217;re a Netflix <span style="text-decoration: line-through;">customer</span>fan, you&#8217;ll know that <a href="http://netflix.com">Netflix.com</a> is a superb site.  Netflix&#8217; business depends entirely on the success of its site.  Very small incremental changes could drastically affect their business.  All of the changes they make to the site go through rigorous testing with real users and are carefully measured.<span id="more-1306"></span></p>
<p>With the enterprise products I&#8217;ve been a part of building, we&#8217;ve spent some time on usability tests.  However, they&#8217;re usually done before the product is even passed over to development.  They&#8217;re usually done during the visual design phase.  Once the UX teams have finalized their product designs, they&#8217;re approved and passed over to the developers to start building.  However, most of the time, the product doesn&#8217;t end up matching what was designed by UX.</p>
<p>This process wasn&#8217;t always this way.  I remember back in the PeopleSoft client-server days, most products didn&#8217;t go through any usability tests.  I suppose the reasoning is that back then, most of the &#8220;ERP&#8221; apps were focused on back-end users who were trained to use the software so usability wasn&#8217;t that big of an issue.  Today&#8217;s focus is in building apps that anyone can use without training. Aside from testing usability, I don&#8217;t know if we focus enough on learnability.  In order for software to be easy enough for anyone to use, it needs to provide enough queues for users to be able to learn how to use it.  Bill provides a lot of examples in his presentation above of how to do this.</p>
<p>The problem with the the visual design process in the enterprise today (as I see it) is that it doesn&#8217;t follow good software<a href="http://en.wikipedia.org/wiki/Agile_software_development"></a> development practices like  <a href="http://en.wikipedia.org/wiki/Agile_software_development">agile</a>.  Once a visual design is finalized, it&#8217;s passed on and never really iterated for improvements.  Some enterprise software development cycles could take over a year or two from concept to design to build to release.  Over that time, new UI patterns could have emerged as well as totally new ways to solve the same problem that the software originally sought out to solve.  This is the reason why agile methodologies exists.</p>
<p>What Bill described as his overall process for building good looking web sites that work can be reduced down to an agile process for visual design.  It doesn&#8217;t make sense to design once then move on.  The process needs to be iterative.  Feedback from real users with real data need to be used as a way of testing ideas and measuring success rates iteratively.  I&#8217;m no expert with UX, but this process makes a lot of sense to me.</p>
<p>Anyone out there in Oracle UX land care to comment?  Are you guys already doing this?  If so, how&#8217;s it working?</p>
<p>BTW, Bill&#8217;s got a <a href="http://looksgoodworkswell.blogspot.com/2008/07/upcoming-oreilly-book-designing-web.html">book</a> coming out on this topic&#8230; added to my wishlist.</p>]]></content:encoded>
			<wfw:commentRss>http://manalang.com/archives/2008/11/19/looks-good-works-well/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Multi-Model Solr Search in Rails</title>
		<link>http://manalang.com/archives/2008/11/14/multi-model-solr-search-in-rails/</link>
		<comments>http://manalang.com/archives/2008/11/14/multi-model-solr-search-in-rails/#comments</comments>
		<pubDate>Fri, 14 Nov 2008 18:35:00 +0000</pubDate>
		<dc:creator>manalang</dc:creator>
		
		<category><![CDATA[general]]></category>

		<category><![CDATA[acts_as_solr]]></category>

		<category><![CDATA[rails]]></category>

		<category><![CDATA[ruby]]></category>

		<category><![CDATA[search]]></category>

		<category><![CDATA[solr]]></category>

		<guid isPermaLink="false">http://manalang.com/?p=1304</guid>
		<description><![CDATA[A few of the JRuby on Rails apps I run use acts_as_solr.  Turns out that the prefered search solutions in Rails today are Thinking Sphinx and Xapian, neither of which I&#8217;ve ever tried before&#8230; maybe on my next project.  Anyway, acts_as_solr is pretty useable, however, I&#8217;ve always been stumped with how to perform queries across [...]]]></description>
			<content:encoded><![CDATA[<p>A few of the JRuby on Rails apps I run use <a href="http://acts-as-solr.rubyforge.org/">acts_as_solr</a>.  Turns out that the prefered search solutions in Rails today are <a href="http://ts.freelancing-gods.com/">Thinking Sphinx</a> and <a href="http://locomotivation.com/2008/07/23/simple-ruby-on-rails-full-text-search-using-xapian">Xapian</a>, neither of which I&#8217;ve ever tried before&#8230; maybe on my next project.  Anyway, acts_as_solr is pretty useable, however, I&#8217;ve always been stumped with how to perform queries across ActiveRecord models.  Turns out that acts_as_solr has a method called &#8220;<a href="http://acts-as-solr.rubyforge.org/classes/ActsAsSolr/ClassMethods.html#M000004">multi_solr_search</a>&#8221; which performs queries across models.  However, it&#8217;s not very well documented and there&#8217;s not a whole lot of information in the intertubes.  So, here&#8217;s how I got my unified site search to work:</p>
<pre class="syntax-highlight:ruby">
  # search_controller.rb: default execution searches multiple models.  If a scope param is provided
  # it will search only that model.  multi_solr_search can return two two different formats, the object
  # name and id, or the actual object.  If you&#039;re query returns a lot of results, you don&#039;t want to load
  # up every single object.  The code below loads the object name and id then just loads the object
  # for the current paginated group.  This is using will_paginate.
  def all
    if params[:scope] and [&quot;UserProfile&quot;, &quot;Idea&quot;, &quot;Question&quot;, &quot;Group&quot;].include?(params[:scope].classify)
      scope = params[:scope].classify
      models = [scope]
    else
      scope = &quot;UserProfile&quot;
      models = [Idea, Question, Group]
    end

    # execute solr multi model search based on the scope selected above
    solr_results = scope.constantize.multi_solr_search(params[:q],
                                                 :models =&gt; models,
                                                 :results_format =&gt; :ids,
                                                 :limit =&gt; 1000).docs.compact
    @total = solr_results.size
    solr_results = solr_results.map {|m| r = m.fetch(&quot;id&quot;).split(&quot;:&quot;)}
    per_page = 10
    page = params[:page] || 1

    # determine array indices that are to be included in the current paginated group
    first_idx = (page.to_i &gt; 1) ? ((page.to_i - 1) * per_page) : 0
    last_idx =  (first_idx + per_page.to_i - 1)
    last_idx = last_idx &lt;= (@total - 1) ? last_idx : @total - 1

    # only load the objects in the current paginated group
    offset = 0
    first_idx.step(last_idx,1) do |idx|
      begin
        solr_results[idx + offset] = solr_results[idx + offset][0].constantize.find(solr_results[idx][1])
      rescue # make sure we don&#039;t blow up if an object doesn&#039;t exist
        @total -= 1
        offset += 1
      rescue
      end
    end
    @results = solr_results.paginate(:page =&gt; page, :per_page =&gt; per_page)
  end
</pre>
<p>I&#8217;d love to see if someone could clean this up more.  Any takers?</p>]]></content:encoded>
			<wfw:commentRss>http://manalang.com/archives/2008/11/14/multi-model-solr-search-in-rails/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Rails: Excluding plugins from loading</title>
		<link>http://manalang.com/archives/2008/11/04/rails-excluding-plugins-from-loading/</link>
		<comments>http://manalang.com/archives/2008/11/04/rails-excluding-plugins-from-loading/#comments</comments>
		<pubDate>Tue, 04 Nov 2008 19:36:15 +0000</pubDate>
		<dc:creator>manalang</dc:creator>
		
		<category><![CDATA[general]]></category>

		<category><![CDATA[configuration]]></category>

		<category><![CDATA[plugins]]></category>

		<category><![CDATA[rails]]></category>

		<category><![CDATA[ruby]]></category>

		<category><![CDATA[testing]]></category>

		<guid isPermaLink="false">http://manalang.com/?p=1301</guid>
		<description><![CDATA[I&#8217;m doing some refactoring of one of our Rails apps and saw something like this:

  if RAILS_ENV == &#039;test&#039;
    config.load_paths &#60;&#60; &#34;#{RAILS_ROOT}/vendor/mocha-0.5.4/lib&#34;
    config.load_paths &#60;&#60; &#34;#{RAILS_ROOT}/vendor/dust-0.1.4/lib&#34;
    config.load_paths &#60;&#60; &#34;#{RAILS_ROOT}/vendor/unit_record-0.3.0/lib&#34;
    config.plugins =
      Dir[ &#34;#{RAILS_ROOT}/vendor/plugins/*&#34; ].map { &#124;p&#124; File.basename p [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m doing some refactoring of one of our Rails apps and saw something like this:</p>
<pre class="syntax-highlight:ruby">
  if RAILS_ENV == &#039;test&#039;
    config.load_paths &lt;&lt; &quot;#{RAILS_ROOT}/vendor/mocha-0.5.4/lib&quot;
    config.load_paths &lt;&lt; &quot;#{RAILS_ROOT}/vendor/dust-0.1.4/lib&quot;
    config.load_paths &lt;&lt; &quot;#{RAILS_ROOT}/vendor/unit_record-0.3.0/lib&quot;
    config.plugins =
      Dir[ &quot;#{RAILS_ROOT}/vendor/plugins/*&quot; ].map { |p| File.basename p } -
      %w{ acts_as_solr }
  end

  unless RAILS_ENV == &#039;development&#039;
    config.plugins =
      Dir[ &quot;#{RAILS_ROOT}/vendor/plugins/*&quot; ].map { |p| File.basename p } -
      %w{ query_trace migration_buddy }
  end
</pre>
<p>Aside from the static references to different gems that are to be loaded, there&#8217;s a flaw in how the plugins are loaded&#8230; can you see it?  Hint, the second conditional (unless RAILS_ENV == &#8216;development&#8217;), recreates the config.plugins array which would overwrite the &#8220;test&#8221; environment&#8217;s setting before it.</p>
<p>This made me seek out a better way of excluding plugins.  I found <a href="http://www.dcmanges.com/blog/15">two</a> <a href="http://www.jjbarrett.net/archives/plugin-ordering-and-exclusion-in-rails-20">different</a> solutions, but neither of them worked on Rails 2.1.x.  So, here&#8217;s what I came up with:</p>
<pre class="syntax-highlight:ruby">
  # Load all plugins with init.rb... :all does the same thing, but doesn&#039;t allow
  # us to exclude plugins from different environments.
  config.plugins = Dir[ &quot;#{RAILS_ROOT}/vendor/plugins/*&quot; ].map { |p|
    File.basename(p) if File.exist?(File.join(p,&quot;init.rb&quot;))}.compact

  if RAILS_ENV == &quot;test&quot;
    config.load_paths += Dir[ &quot;#{RAILS_ROOT}/vendor/testing_gems/**&quot;].map do |dir|
      File.directory?( lib = &quot;#{dir}/lib&quot; ) ? lib : dir
    end
    config.plugins -= [ :acts_as_solr, :&quot;rails-footnotes&quot; ]
  end
</pre>
<p>Notice how I also separate out the gems we use for testing &#8212; no need to load those in other environments.</p>]]></content:encoded>
			<wfw:commentRss>http://manalang.com/archives/2008/11/04/rails-excluding-plugins-from-loading/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Job scheduling with JRuby and Rails</title>
		<link>http://manalang.com/archives/2008/10/24/job-scheduling-with-jruby-and-rails/</link>
		<comments>http://manalang.com/archives/2008/10/24/job-scheduling-with-jruby-and-rails/#comments</comments>
		<pubDate>Fri, 24 Oct 2008 17:19:44 +0000</pubDate>
		<dc:creator>manalang</dc:creator>
		
		<category><![CDATA[general]]></category>

		<category><![CDATA[jruby]]></category>

		<category><![CDATA[scheduling]]></category>

		<guid isPermaLink="false">http://manalang.com/archives/2008/10/24/job-scheduling-with-jruby-and-rails/</guid>
		<description><![CDATA[Job scheduling with JRuby and Rails. For the past year, I&#8217;ve looked at several background schedulers for JRuby on Rails apps (Bj, BackgroundRB, Rufus Scheduler, etc.) and have come up with solutions that have been sub-optimal.  Looks like I missed this post from Jens Krämer running down some other options including using the popular Quartz [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.jkraemer.net/tags/quartz">Job scheduling with JRuby and Rails</a>. For the past year, I&#8217;ve looked at several background schedulers for JRuby on Rails apps (Bj, BackgroundRB, Rufus Scheduler, etc.) and have come up with solutions that have been sub-optimal.  Looks like I missed this post from Jens Krämer running down some other options including using the popular <a href="http://www.opensymphony.com/quartz/">Quartz scheduler</a> in Java.  I also didn&#8217;t know that Goldspike had it&#8217;s own built in servlet for handling simple background tasks.</p>]]></content:encoded>
			<wfw:commentRss>http://manalang.com/archives/2008/10/24/job-scheduling-with-jruby-and-rails/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Twine: “We Organize That Shit.”</title>
		<link>http://manalang.com/archives/2008/10/22/twine-%e2%80%9cwe-organize-that-shit%e2%80%9d/</link>
		<comments>http://manalang.com/archives/2008/10/22/twine-%e2%80%9cwe-organize-that-shit%e2%80%9d/#comments</comments>
		<pubDate>Thu, 23 Oct 2008 01:51:20 +0000</pubDate>
		<dc:creator>manalang</dc:creator>
		
		<category><![CDATA[general]]></category>

		<category><![CDATA[marketing]]></category>

		<guid isPermaLink="false">http://manalang.com/archives/2008/10/22/twine-%e2%80%9cwe-organize-that-shit%e2%80%9d/</guid>
		<description><![CDATA[Twine: “We Organize That Shit.” &#8220;You use Twine to collect, find some shit, and share that shit with people you know. Twine ties it all together by topic, so you can have that shit in one place and it is easy for you to find it. You know what I’m sayin’?&#8221;]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.techcrunch.com/2008/10/21/twine-we-organize-that-shit/">Twine: “We Organize That Shit.”</a> &#8220;You use Twine to collect, find some shit, and share that shit with people you know. Twine ties it all together by topic, so you can have that shit in one place and it is easy for you to find it. You know what I’m sayin’?&#8221;</p>]]></content:encoded>
			<wfw:commentRss>http://manalang.com/archives/2008/10/22/twine-%e2%80%9cwe-organize-that-shit%e2%80%9d/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Jason Fried&#8217;s talk at the Business of Software conference (September 2008) - (37signals)</title>
		<link>http://manalang.com/archives/2008/10/21/my-talk-at-the-business-of-software-conference-september-2008-37signals/</link>
		<comments>http://manalang.com/archives/2008/10/21/my-talk-at-the-business-of-software-conference-september-2008-37signals/#comments</comments>
		<pubDate>Tue, 21 Oct 2008 17:44:04 +0000</pubDate>
		<dc:creator>manalang</dc:creator>
		
		<category><![CDATA[general]]></category>

		<category><![CDATA[brand]]></category>

		<category><![CDATA[productivity]]></category>

		<category><![CDATA[web2.0]]></category>

		<guid isPermaLink="false">http://manalang.com/archives/2008/10/21/my-talk-at-the-business-of-software-conference-september-2008-37signals/</guid>
		<description><![CDATA[Jason Fried&#8217;s talk at the Business of Software conference (September 2008) - (37signals). Excellent talk about how to build apps, a strong brand, and a good company from Jason Fried at 37Signals.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.37signals.com/svn/posts/1329-my-talk-at-the-business-of-software-conference-september-2008">Jason Fried&#8217;s talk at the Business of Software conference (September 2008) - (37signals)</a>. Excellent talk about how to build apps, a strong brand, and a good company from Jason Fried at 37Signals.</p>]]></content:encoded>
			<wfw:commentRss>http://manalang.com/archives/2008/10/21/my-talk-at-the-business-of-software-conference-september-2008-37signals/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Washington Wire - WSJ.com : Joe the Plumber’s 15 Minutes of Fame</title>
		<link>http://manalang.com/archives/2008/10/16/washington-wire-wsjcom-joe-the-plumber%e2%80%99s-15-minutes-of-fame/</link>
		<comments>http://manalang.com/archives/2008/10/16/washington-wire-wsjcom-joe-the-plumber%e2%80%99s-15-minutes-of-fame/#comments</comments>
		<pubDate>Thu, 16 Oct 2008 23:54:53 +0000</pubDate>
		<dc:creator>manalang</dc:creator>
		
		<category><![CDATA[general]]></category>

		<category><![CDATA[mccain]]></category>

		<category><![CDATA[obama]]></category>

		<category><![CDATA[politics]]></category>

		<guid isPermaLink="false">http://manalang.com/?p=1291</guid>
		<description><![CDATA[Washington Wire - WSJ.com : Joe the Plumber’s 15 Minutes of Fame.
But things weren’t all sunny for Joe as the national press began digging into the details of his life. It turns out he owes taxes to the state of Ohio amounting to $1,182.98. He’s not licensed as a plumber and has been working without [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blogs.wsj.com/washwire/2008/10/16/joe-the-plumbers-15-minutes-of-fame/">Washington Wire - WSJ.com : Joe the Plumber’s 15 Minutes of Fame</a>.</p>
<blockquote><p>But things weren’t all sunny for Joe as the national press began digging into the details of his life. It turns out he owes taxes to the state of Ohio amounting to $1,182.98. He’s not licensed as a plumber and has been working without one.</p>
<p>Not to mention, his name’s not even Joe! (Full name: Samuel Joseph Wurzelbacher.) His name is apparently misspelled on the Lucas County Board of Elections database, which raised questions over whether he may be disqualified to vote in November anyway.</p>
<p>Further, even if he buys the plumbing company as he wants to do, he still wouldn’t earn anywhere near enough money to face a tax hike under the Obama plan. In fact, he’d qualify for a variety of tax cuts.</p></blockquote>
<p>Hilarious&#8230; so much for McCain &#8220;going to work for Joe&#8221; campaign.</p>]]></content:encoded>
			<wfw:commentRss>http://manalang.com/archives/2008/10/16/washington-wire-wsjcom-joe-the-plumber%e2%80%99s-15-minutes-of-fame/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Integrating Applications With OpenSSO</title>
		<link>http://manalang.com/archives/2008/10/15/integrating-applications-with-opensso/</link>
		<comments>http://manalang.com/archives/2008/10/15/integrating-applications-with-opensso/#comments</comments>
		<pubDate>Wed, 15 Oct 2008 20:49:18 +0000</pubDate>
		<dc:creator>manalang</dc:creator>
		
		<category><![CDATA[general]]></category>

		<category><![CDATA[rails]]></category>

		<category><![CDATA[sso]]></category>

		<guid isPermaLink="false">http://manalang.com/archives/2008/10/15/integrating-applications-with-opensso/</guid>
		<description><![CDATA[Integrating Applications With OpenSSO. Good overview of how OpenSSO works (hint: pretty much the same way other web based SSO systems work).  Includes an example of a Rails app using OpenSSO.]]></description>
			<content:encoded><![CDATA[<p><a href="http://developers.sun.com/identity/reference/techart/app-integration.html">Integrating Applications With OpenSSO</a>. Good overview of how OpenSSO works (hint: pretty much the same way other web based SSO systems work).  Includes an example of a Rails app using OpenSSO.</p>]]></content:encoded>
			<wfw:commentRss>http://manalang.com/archives/2008/10/15/integrating-applications-with-opensso/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Les Misbarack</title>
		<link>http://manalang.com/archives/2008/10/15/les-misbarack/</link>
		<comments>http://manalang.com/archives/2008/10/15/les-misbarack/#comments</comments>
		<pubDate>Wed, 15 Oct 2008 16:32:39 +0000</pubDate>
		<dc:creator>manalang</dc:creator>
		
		<category><![CDATA[general]]></category>

		<category><![CDATA[obama]]></category>

		<guid isPermaLink="false">http://manalang.com/archives/2008/10/15/les-misbarack/</guid>
		<description><![CDATA[Must see&#8230; classic&#8230; Les Misbarack]]></description>
			<content:encoded><![CDATA[<p>Must see&#8230; classic&#8230; <a href="http://andrewsullivan.theatlantic.com/the_daily_dish/2008/09/les-misbarack.html"><em>Les Misbarack</em></a></p>]]></content:encoded>
			<wfw:commentRss>http://manalang.com/archives/2008/10/15/les-misbarack/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Drooling all over my MBP looking at the  &#8230;</title>
		<link>http://manalang.com/archives/2008/10/14/drooling-all-over-my-mbp-looking-at-the/</link>
		<comments>http://manalang.com/archives/2008/10/14/drooling-all-over-my-mbp-looking-at-the/#comments</comments>
		<pubDate>Tue, 14 Oct 2008 18:27:30 +0000</pubDate>
		<dc:creator>manalang</dc:creator>
		
		<category><![CDATA[general]]></category>

		<category><![CDATA[apple]]></category>

		<category><![CDATA[macbook]]></category>

		<guid isPermaLink="false">http://manalang.com/archives/2008/10/14/drooling-all-over-my-mbp-looking-at-the/</guid>
		<description><![CDATA[Drooling all over my MBP looking at the new MacBook line up. Sadly, can&#8217;t justify the expense right now.]]></description>
			<content:encoded><![CDATA[<p>Drooling all over my MBP looking at the new MacBook line up. Sadly, can&#8217;t justify the expense right now.</p>]]></content:encoded>
			<wfw:commentRss>http://manalang.com/archives/2008/10/14/drooling-all-over-my-mbp-looking-at-the/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Have a need to compile your Rails app (o &#8230;</title>
		<link>http://manalang.com/archives/2008/10/13/have-a-need-to-compile-your-rails-app-o/</link>
		<comments>http://manalang.com/archives/2008/10/13/have-a-need-to-compile-your-rails-app-o/#comments</comments>
		<pubDate>Tue, 14 Oct 2008 04:43:42 +0000</pubDate>
		<dc:creator>manalang</dc:creator>
		
		<category><![CDATA[general]]></category>

		<category><![CDATA[code]]></category>

		<category><![CDATA[jruby]]></category>

		<category><![CDATA[rails]]></category>

		<guid isPermaLink="false">http://manalang.com/archives/2008/10/13/have-a-need-to-compile-your-rails-app-o/</guid>
		<description><![CDATA[Have a need to compile your Rails app (on JRuby)? If you&#8217;re shipping a Rails app as a product and need to protect your IP, JRuby can compile your *.rb files to first class Java class files&#8230; but you&#8217;ll need this patch.
After applying that, you can simply do this:

jrubyc app/ lib/
rm `find app/ lib/ -name [...]]]></description>
			<content:encoded><![CDATA[<p>Have a need to compile your Rails app (on JRuby)? If you&#8217;re shipping a Rails app as a product and need to <a href="http://osdir.com/ml/lang.jruby.user/2006-02/msg00060.html">protect your IP</a>, JRuby can compile your *.rb files to first class Java class files&#8230; but you&#8217;ll need this <a href="http://github.com/manalang/rails/commit/29de7f2746e4809e8f1e010bda558ab32c522f43">patch</a>.</p>
<p>After applying that, you can simply do this:</p>
<pre class="syntax-highlight:ruby">
jrubyc app/ lib/
rm `find app/ lib/ -name &#039;*.rb&#039;`
</pre>]]></content:encoded>
			<wfw:commentRss>http://manalang.com/archives/2008/10/13/have-a-need-to-compile-your-rails-app-o/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Textmate user (but used to use Vim)?  Yo &#8230;</title>
		<link>http://manalang.com/archives/2008/10/10/textmate-user-but-used-to-use-vim-yo/</link>
		<comments>http://manalang.com/archives/2008/10/10/textmate-user-but-used-to-use-vim-yo/#comments</comments>
		<pubDate>Fri, 10 Oct 2008 18:48:00 +0000</pubDate>
		<dc:creator>manalang</dc:creator>
		
		<category><![CDATA[general]]></category>

		<category><![CDATA[code]]></category>

		<category><![CDATA[plugins]]></category>

		<category><![CDATA[programming]]></category>

		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://manalang.com/archives/2008/10/10/textmate-user-but-used-to-use-vim-yo/</guid>
		<description><![CDATA[Textmate user (but used to use Vim)?  You&#8217;re free to come back home to Vim now&#8230; http://weblog.jamisbuck.org/2008/10/10/coming-home-to-vim]]></description>
			<content:encoded><![CDATA[<p>Textmate user (but used to use Vim)?  You&#8217;re free to come back home to Vim now&#8230; <a href="http://weblog.jamisbuck.org/2008/10/10/coming-home-to-vim" rel="nofollow">http://weblog.jamisbuck.org/2008/10/10/coming-home-to-vim</a></p>]]></content:encoded>
			<wfw:commentRss>http://manalang.com/archives/2008/10/10/textmate-user-but-used-to-use-vim-yo/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Kevin Marks on the Future of Enterprise  &#8230;</title>
		<link>http://manalang.com/archives/2008/10/10/kevin-marks-on-the-future-of-enterprise/</link>
		<comments>http://manalang.com/archives/2008/10/10/kevin-marks-on-the-future-of-enterprise/#comments</comments>
		<pubDate>Fri, 10 Oct 2008 16:40:56 +0000</pubDate>
		<dc:creator>manalang</dc:creator>
		
		<category><![CDATA[general]]></category>

		<category><![CDATA[enterprise]]></category>

		<category><![CDATA[opensocial]]></category>

		<guid isPermaLink="false">http://manalang.com/archives/2008/10/10/kevin-marks-on-the-future-of-enterprise/</guid>
		<description><![CDATA[Kevin Marks on the Future of Enterprise Web Apps&#8230; guess what, it&#8217;s about Open Social http://events.carsonified.com/fowa/2008/london/highlights/kevin-marks/]]></description>
			<content:encoded><![CDATA[<p>Kevin Marks on the Future of Enterprise Web Apps&#8230; guess what, it&#8217;s about Open Social <a href="http://events.carsonified.com/fowa/2008/london/highlights/kevin-marks/" rel="nofollow">http://events.carsonified.com/fowa/2008/london/highlights/kevin-marks/</a></p>]]></content:encoded>
			<wfw:commentRss>http://manalang.com/archives/2008/10/10/kevin-marks-on-the-future-of-enterprise/feed/</wfw:commentRss>
		</item>
		<item>
		<title>I think I&#8217;m finally going to get around &#8230;</title>
		<link>http://manalang.com/archives/2008/10/09/i-think-im-finally-going-to-get-around/</link>
		<comments>http://manalang.com/archives/2008/10/09/i-think-im-finally-going-to-get-around/#comments</comments>
		<pubDate>Thu, 09 Oct 2008 16:55:49 +0000</pubDate>
		<dc:creator>manalang</dc:creator>
		
		<category><![CDATA[general]]></category>

		<category><![CDATA[blogging]]></category>

		<guid isPermaLink="false">http://manalang.com/archives/2008/10/09/i-think-im-finally-going-to-get-around/</guid>
		<description><![CDATA[I think I&#8217;m finally going to get around to blogging again.]]></description>
			<content:encoded><![CDATA[<p>I think I&#8217;m finally going to get around to blogging again.</p>]]></content:encoded>
			<wfw:commentRss>http://manalang.com/archives/2008/10/09/i-think-im-finally-going-to-get-around/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Waiting for GitHub to come back online.. &#8230;</title>
		<link>http://manalang.com/archives/2008/10/08/waiting-for-github-to-come-back-online/</link>
		<comments>http://manalang.com/archives/2008/10/08/waiting-for-github-to-come-back-online/#comments</comments>
		<pubDate>Wed, 08 Oct 2008 19:10:24 +0000</pubDate>
		<dc:creator>manalang</dc:creator>
		
		<category><![CDATA[general]]></category>

		<category><![CDATA[github]]></category>

		<guid isPermaLink="false">http://manalang.com/archives/2008/10/08/waiting-for-github-to-come-back-online/</guid>
		<description><![CDATA[Waiting for GitHub to come back online&#8230; how can you build a business off of source hosting if you&#8217;re gonna be down this long?]]></description>
			<content:encoded><![CDATA[<p>Waiting for GitHub to come back online&#8230; how can you build a business off of source hosting if you&#8217;re gonna be down this long?</p>]]></content:encoded>
			<wfw:commentRss>http://manalang.com/archives/2008/10/08/waiting-for-github-to-come-back-online/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Work or Life?</title>
		<link>http://manalang.com/archives/2008/04/30/work-o-life/</link>
		<comments>http://manalang.com/archives/2008/04/30/work-o-life/#comments</comments>
		<pubDate>Wed, 30 Apr 2008 18:43:22 +0000</pubDate>
		<dc:creator>manalang</dc:creator>
		
		<category><![CDATA[general]]></category>

		<category><![CDATA[balance]]></category>

		<category><![CDATA[gtd]]></category>

		<category><![CDATA[life]]></category>

		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://manalang.com/archives/2008/04/30/work-of-life/</guid>
		<description><![CDATA[DHH wrote an insightful post recently that highlights the importance of a work/life balance.  I feel exactly the same way as David.  I spent many years burning the midnight oil constantly and tirelessly working on &#8220;being 90% done for 90% of the time.&#8221;  For me, it&#8217;s work to get out of that [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://en.wikipedia.org/wiki/David_Heinemeier_Hansson"><img style="max-width: 800px; float: right; margin-top: 10px; margin-bottom: 10px; margin-left: 10px;" src="http://manalang.com/wp-content/uploads/2008/04/work-life-balance-sign1.jpg" alt="" />DHH</a> wrote an insightful post recently that highlights the importance of a work/life balance.  I feel exactly the same way as David.  I spent many years burning the midnight oil constantly and tirelessly working on &#8220;being 90% done for 90% of the time.&#8221;  For me, it&#8217;s work to get out of that mode, but when I do, I do seem to accomplish more.</p>
<p><a href="http://www.37signals.com/svn/posts/996-why-i-love-working-with-family-people">Why I love working with family people - (37signals)</a></p>
<blockquote><p>From the experience I&#8217;ve had working with family people, I&#8217;ve found an amazing ability to get stuff done when the objectives are reasonably clear, the work appears to have meaning, and if it can be done within the scope of what should constitute a work week. When there are real constraints on your time, like you have to pickup the kids or make them dinner or put them to bed, it appears to bring a serenity of focus to the specific hours dedicated to work.</p>
<p>This is what companies need, startups or not. They need constraints and especially constraints on how often you can play the hero card to Get This Very Important Project Done. Most projects are just not that important and most things just shouldn&#8217;t be done anyway, despite how good of an idea you feel it is in the heat of the moment.</p></blockquote>]]></content:encoded>
			<wfw:commentRss>http://manalang.com/archives/2008/04/30/work-o-life/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Truman: November 2, 2001 - April 18, 2008</title>
		<link>http://manalang.com/archives/2008/04/18/truman-november-2-2001-april-18-2008/</link>
		<comments>http://manalang.com/archives/2008/04/18/truman-november-2-2001-april-18-2008/#comments</comments>
		<pubDate>Fri, 18 Apr 2008 23:30:29 +0000</pubDate>
		<dc:creator>manalang</dc:creator>
		
		<category><![CDATA[general]]></category>

		<category><![CDATA[dog]]></category>

		<category><![CDATA[friend]]></category>

		<category><![CDATA[pets]]></category>

		<category><![CDATA[truman]]></category>

		<guid isPermaLink="false">http://manalang.com/?p=1267</guid>
		<description><![CDATA[


We  who choose to surround ourselves with lives even more temporary than our own, live  within a fragile circle, easily and often breached.  Unable to accept its  awful gaps, we still  would live no other way.  We cherish memory as the only certain  immortality, never  fully understanding the necessary plan&#8230;.
 &#8211; &#8220;The  [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://manalang.com/wp-content/uploads/2008/04/tahoe-summer-2004-063.jpg"><img class="alignnone size-full wp-image-1268" title="tahoe-summer-2004-063" src="http://manalang.com/wp-content/uploads/2008/04/tahoe-summer-2004-063.jpg" alt="" width="500" height="375" /></a></p>
<p style="text-align: center;"><span style="font-family: Arial; color: #000000; font-size: x-small;"></p>
<blockquote>
<div style="text-align: left;">We  who choose to surround ourselves with lives even more temporary than our own, live  within a fragile circle, easily and often breached.  Unable to accept its  awful gaps, we still  would live no other way.  We cherish memory as the only certain  immortality, never  fully understanding the necessary plan&#8230;.</div>
<div style="text-align: left;"> &#8211; &#8220;The  Once Again Prince&#8221;, Irving Townsend</div>
</blockquote>
<p></span></p>]]></content:encoded>
			<wfw:commentRss>http://manalang.com/archives/2008/04/18/truman-november-2-2001-april-18-2008/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Man, this blog sucks!</title>
		<link>http://manalang.com/archives/2008/03/26/man-this-blog-sucks/</link>
		<comments>http://manalang.com/archives/2008/03/26/man-this-blog-sucks/#comments</comments>
		<pubDate>Wed, 26 Mar 2008 18:44:54 +0000</pubDate>
		<dc:creator>manalang</dc:creator>
		
		<category><![CDATA[general]]></category>

		<category><![CDATA[blogging]]></category>

		<guid isPermaLink="false">http://manalang.wordpress.com/?p=241</guid>
		<description><![CDATA[Blogging is work.  And I already have a lot of it.  That&#8217;s why this blog is stale, stale, stale.  Is there a chance I can freshen it up?  I suppose.  I am looking for an independent place (i.e., not my work blog) to write about stuff&#8230; and FriendFeed isn&#8217;t enough.  I need to be able [...]]]></description>
			<content:encoded><![CDATA[<p>Blogging is work.  And I already have a lot of it.  That&#8217;s why this blog is stale, stale, stale.  Is there a chance I can freshen it up?  I suppose.  I am looking for an independent place (i.e., not <a href="http://oracleappslab.com">my work blog</a>) to write about stuff&#8230; and <a href="http://friendfeed.com/manalang">FriendFeed</a> isn&#8217;t enough.  I need to be able to publish code like so&#8230;</p>
<pre class="syntax-highlight:ruby">
class Feeds::PeopleController &lt; Feeds::BaseController
  before_filter :person_in_context, :only =&gt; [:show, :friends]

  # GET /feeds_peoples/1/friends
  # GET /feeds_peoples/1/friends.xml
  def friends
    @friends = @person.friends

    respond_to do |format|
      format.xml
    end
  end

  # GET /feeds_peoples/1
  # GET /feeds_peoples/1.xml
  def show
    respond_to do |format|
      format.xml
    end
  end
end
</pre>
<p>Anyway, I suppose I should start being productive with my blog again.</p>]]></content:encoded>
			<wfw:commentRss>http://manalang.com/archives/2008/03/26/man-this-blog-sucks/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Oracle AppsLab</title>
		<link>http://manalang.com/archives/2007/06/04/oracle-appslab/</link>
		<comments>http://manalang.com/archives/2007/06/04/oracle-appslab/#comments</comments>
		<pubDate>Tue, 05 Jun 2007 00:43:06 +0000</pubDate>
		<dc:creator>manalang</dc:creator>
		
		<category><![CDATA[general]]></category>

		<category><![CDATA[apps2.0]]></category>

		<category><![CDATA[enterprise]]></category>

		<category><![CDATA[web2.0]]></category>

		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://manalang.wordpress.com/2007/06/04/oracle-appslab/</guid>
		<description><![CDATA[The cat is out of the hat.  On Monday (June 11th), I start at my new job&#8230; here.  I&#8217;ll be blogging a lot here.  Here&#8217;s the feed.]]></description>
			<content:encoded><![CDATA[<p>The cat is out of the hat.  On Monday (June 11th), I start at my new job&#8230; <a href="http://oracleappslab.com">here</a>.  I&#8217;ll be blogging a lot <a href="http://oracleappslab.com/">here</a>.  Here&#8217;s the <a href="http://oracleappslab.com/feed">feed</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://manalang.com/archives/2007/06/04/oracle-appslab/feed/</wfw:commentRss>
		</item>
		<item>
		<title>What&#8217;s on Al Gore&#8217;s desktop?</title>
		<link>http://manalang.com/archives/2007/05/22/whats-on-al-gores-desktop/</link>
		<comments>http://manalang.com/archives/2007/05/22/whats-on-al-gores-desktop/#comments</comments>
		<pubDate>Tue, 22 May 2007 17:13:31 +0000</pubDate>
		<dc:creator>manalang</dc:creator>
		
		<category><![CDATA[general]]></category>

		<category><![CDATA[amusing]]></category>

		<category><![CDATA[green]]></category>

		<guid isPermaLink="false">http://manalang.wordpress.com/2007/05/22/whats-on-al-gores-desktop/</guid>
		<description><![CDATA[[via Lifehacker]
]]></description>
			<content:encoded><![CDATA[<p>[via <a href="http://www.lifehacker.com/software/workspace/al-gore-rocks-multiple-monitors-could-stand-an-inbox-262333.php">Lifehacker]</a></p>
<p><a href="http://www.lifehacker.com/software/workspace/al-gore-rocks-multiple-monitors-could-stand-an-inbox-262333.php"></a><a href="http://manalang.com/wp-content/uploads/2007/05/algore-resized.jpg" title="Al Gore rocking out on extended desktops"><img src="http://manalang.com/wp-content/uploads/2007/05/algore-resized.jpg" alt="Al Gore rocking out on extended desktops" border="0" /></a></p>]]></content:encoded>
			<wfw:commentRss>http://manalang.com/archives/2007/05/22/whats-on-al-gores-desktop/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
