<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
  <channel>
    <title>The Spot Blog</title>
    <description>The Official Blog of the LimeSpot Development Team</description>
    <link>http://blog.limespot.com</link>
    <lastBuildDate>Wed, 06 Aug 2008 11:03:00 GMT</lastBuildDate>
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/limespot" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
      <title>Productivity and my Increasingly Poor Short-Term Memory </title>
      <author>Tieg</author>
      <link>http://feedproxy.google.com/~r/limespot/~3/S12zU-yRq_Y/3263-Productivity-and-my-Increasingly-Poor-Short-Term-Memory-</link>
      <guid isPermaLink="false">http://blog.limespot.com/posts/3263-Productivity-and-my-Increasingly-Poor-Short-Term-Memory-</guid>
      <comments>http://blog.limespot.com/posts/3263-Productivity-and-my-Increasingly-Poor-Short-Term-Memory-#comment_list</comments>
      <pubDate>Wed, 06 Aug 2008 11:03:00 GMT</pubDate>
      <description>&lt;p&gt;Here's a little shortcut I use courtesy of Mac OSX; I'm sure others do something like this, but I think it's worth sharing.&lt;/p&gt;&lt;p&gt;When I first started doing development for work I needed to keep track of what I did everyday and all my hours (ahhh, contracting). So I kept a steno notepad for the first couple years and had an embarrassingly epic record of everything I'd done. &lt;/p&gt;&lt;p&gt;Nowadays I don't have to deal with invoicing very often anymore, but it's still nice to know what I did yesterday or the last couple of days. There are a bunch of great ticketing systems out there that can help you keep track of your long-term goals and what you've been working on day-to-day. But sometimes I just need a quick reference of what I'm doing this week to use for stand-up meetings, to remind me of what I was working on when I left work yesteraday, etc. After scrapping the clutter of hand-written notes, I have fully migrated to... STICKIES. &lt;/p&gt;&lt;p&gt; Yes, those little notes that you use and then forget about have finally proved useful. I keep one Stickie for every day of the week and write shorthand for what I'm doing. The best part is that it's about 1 second and a mouseclick away. I definitely recommend this system for reference and staying &lt;span class="Apple-style-span" style="text-decoration: line-through;"&gt;on task&lt;/span&gt; with it. &lt;/p&gt;&lt;p&gt;&lt;img src="http://assets.limespot.com/fs/media/73186/251136,550,550,p,n.png" alt="dashboard_notes.png" /&gt; &lt;/p&gt;&lt;p&gt;(and the bright colors are pretty to look at)&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/limespot/~4/S12zU-yRq_Y" height="1" width="1"/&gt;</description>
    <feedburner:origLink>http://blog.limespot.com/posts/3263-Productivity-and-my-Increasingly-Poor-Short-Term-Memory-</feedburner:origLink></item>
    <item>
      <title>Rails' named_scope: Picking Up Where Associations Leave Off</title>
      <author>Tieg</author>
      <link>http://feedproxy.google.com/~r/limespot/~3/iDsrIfMysgw/3092-Rails-named-scope-Picking-Up-Where-Associations-Leave-Off</link>
      <guid isPermaLink="false">http://blog.limespot.com/posts/3092-Rails-named-scope-Picking-Up-Where-Associations-Leave-Off</guid>
      <comments>http://blog.limespot.com/posts/3092-Rails-named-scope-Picking-Up-Where-Associations-Leave-Off#comment_list</comments>
      <pubDate>Tue, 22 Jul 2008 15:52:00 GMT</pubDate>
      <description>&lt;p&gt;With the &lt;a href="http://ryandaigle.com/articles/2008/3/24/what-s-new-in-edge-rails-has-finder-functionality"&gt;addition of named_scope&lt;/a&gt; to Edge Rails a while ago (merged from the has_finder plugin), many doors were opened and many codes were DRY'd up (presumably). Fast-forward to today when I was faced with an interesting situation… &lt;/p&gt;&lt;span class="Apple-style-span" style="white-space: normal;"&gt; &lt;/span&gt;In my scenario I have Account, Document, and DocumentFilter classes:&lt;br /&gt;&lt;pre&gt;class Account &amp;lt; ActiveRecord::Base&lt;br /&gt;&lt;/pre&gt;&lt;pre&gt;  has_many :documents&lt;br /&gt;&lt;/pre&gt;&lt;pre&gt;  has_many :document_filters&lt;br /&gt;&lt;/pre&gt;&lt;pre&gt;end&lt;br /&gt;&lt;/pre&gt;&lt;pre&gt;class Document &amp;lt; ActiveRecord::Base&lt;br /&gt;&lt;/pre&gt;&lt;pre&gt;  belongs_to :account&lt;br /&gt;&lt;/pre&gt;&lt;pre&gt;end&lt;br /&gt;&lt;/pre&gt;&lt;pre&gt;class DocumentFilter &amp;lt; ActiveRecord::Base&lt;br /&gt;&lt;/pre&gt;&lt;pre&gt;  belongs_to :account &lt;br /&gt;&lt;/pre&gt;&lt;pre&gt;  has_many :rules &lt;br /&gt;&lt;/pre&gt;&lt;pre&gt;  def to_sql()&lt;br /&gt;&lt;/pre&gt;&lt;pre&gt;    ... produces a string for the WHERE clause based on its rules ...&lt;br /&gt;&lt;/pre&gt;&lt;pre&gt;  end&lt;br /&gt;&lt;/pre&gt;&lt;pre&gt;end &lt;br /&gt;&lt;/pre&gt;&lt;p&gt;The DocumentFilter can easily be changed to add/remove rules like "document type is Spreadsheet" (SQL: "type = 'Spreadsheet').  Given that, I needed to create a method called DocumentFilter#documents that would:&lt;/p&gt;&lt;p&gt;  a) return all its account's documents&lt;/p&gt;&lt;p&gt;  b) filter the documents based on its rules&lt;/p&gt;&lt;p&gt;One might consider creating a join table called DocumentFiltersDocuments, which would create a "has_many :documents, :through =&amp;gt; :document_filters_documents" on the DocumentFilter class. But we really don't want to keep an extra table row for each match between a Document and a DocumentFilter. &lt;/p&gt;&lt;p&gt;Both Document and DocumentFilter share no foreign_key relationship in the database besides that they might both belong to the same Account, so my first idea was that I could do a has_many :documents, :through =&amp;gt; :account (based on the "DocumentFilter#belongs_to :account" relationship). This would not work though, since has_many :through doesn't work with a belongs_to in the middle (and was really meant to work with join tables, afaik). &lt;/p&gt;&lt;p&gt; There are &lt;a href="http://dev.rubyonrails.org/ticket/11587"&gt;traces&lt;/a&gt; of &lt;a href="http://dev.rubyonrails.org/ticket/9851"&gt;attempts&lt;/a&gt; to change this, but I didn't want to rely on a hack or try to rewrite a new AssociationCollection class for ActiveRecord. So here's my solution (which required just a few more lines of code than a has_many):&lt;/p&gt;&lt;pre&gt;&lt;span class="Apple-style-span" style="white-space: normal;"&gt;c&lt;/span&gt;lass Document &amp;lt; ActiveRecord::Base&lt;br /&gt;&lt;/pre&gt;&lt;pre&gt;  belongs_to :account&lt;br /&gt;&lt;/pre&gt;&lt;pre&gt;  named_scope :for_document_filter, lambda { {|df| :conditions =&amp;gt; df.to_sql]} }&lt;br /&gt;&lt;/pre&gt;&lt;pre&gt;end&lt;span class="Apple-style-span" style="white-space: normal;"&gt; &lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;class DocumentFilter &amp;lt; ActiveRecord::Base&lt;br /&gt;&lt;/pre&gt;&lt;pre&gt;  belongs_to :account&lt;br /&gt;&lt;/pre&gt;&lt;pre&gt;  def documents(force_reload=false)&lt;br /&gt;&lt;/pre&gt;&lt;pre&gt;    @documents = account.documents.for_document_filter(self) if @documents.nil? || force_reload&lt;br /&gt;&lt;/pre&gt;&lt;pre&gt;  end&lt;br /&gt;&lt;/pre&gt;&lt;pre&gt;end &lt;br /&gt;&lt;/pre&gt;&lt;p&gt;And if you're on the &lt;span class="Apple-style-span" style="font-style: italic;"&gt;latest&lt;/span&gt; Edge Rails, you can also shorten it further with &lt;a href="http://ryandaigle.com/articles/2008/7/16/what-s-new-in-edge-rails-memoization"&gt;memoize()&lt;/a&gt;:&lt;/p&gt;&lt;pre&gt;def documents&lt;br /&gt;&lt;/pre&gt;&lt;pre&gt;  account.documents.for_document_filter(self)&lt;br /&gt;&lt;/pre&gt;&lt;pre&gt;end&lt;br /&gt;&lt;/pre&gt;&lt;pre&gt;memoize :documents &lt;br /&gt;&lt;/pre&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;Now you can almost treat DocumentFilter#documents as you would a has_many.&lt;/p&gt;&lt;pre&gt;&lt;span class="Apple-style-span" style="white-space: normal;"&gt;d&lt;/span&gt;f = DocumentFilter.first # account_id is 1 and df.to_sql() returns "type = 'Spreadsheet'"&lt;/pre&gt;&lt;pre&gt;df.documents&lt;br /&gt;&lt;/pre&gt;&lt;pre&gt;#=&amp;gt; SELECT * FROM `documents` WHERE (`documents`.account_id = 1 AND (type = 'Spreadsheet') &lt;br /&gt;&lt;/pre&gt;&lt;pre&gt;df.documents&lt;br /&gt;&lt;/pre&gt;&lt;pre&gt;#=&amp;gt; same results, but cached in @documents, so there is no SQL &lt;br /&gt;&lt;/pre&gt;&lt;pre&gt;df.documents(true)&lt;br /&gt;&lt;/pre&gt;&lt;pre&gt;#=&amp;gt; SELECT * FROM `documents` WHERE (`documents`.account_id = 1 AND (type = 'Spreadsheet') &lt;br /&gt;&lt;/pre&gt;&lt;pre&gt;df.documents.find(:all, :conditions =&amp;gt; "true", :limit =&amp;gt; 5)&lt;br /&gt;&lt;/pre&gt;&lt;pre&gt;#=&amp;gt; SELECT * FROM `documents` WHERE (`documents`.account_id = 1 AND (true)) AND (type = 'Spreadsheet') LIMIT 5 &lt;br /&gt;&lt;/pre&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;Conclusion: named_scope is rule. &lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/limespot/~4/iDsrIfMysgw" height="1" width="1"/&gt;</description>
    <feedburner:origLink>http://blog.limespot.com/posts/3092-Rails-named-scope-Picking-Up-Where-Associations-Leave-Off</feedburner:origLink></item>
    <item>
      <title>Summer reading</title>
      <author>dave</author>
      <link>http://feedproxy.google.com/~r/limespot/~3/AiZ0jml11Uc/3028-Summer-reading</link>
      <guid isPermaLink="false">http://blog.limespot.com/posts/3028-Summer-reading</guid>
      <comments>http://blog.limespot.com/posts/3028-Summer-reading#comment_list</comments>
      <pubDate>Fri, 18 Jul 2008 11:48:00 GMT</pubDate>
      <description>&lt;p&gt;Like any tech shop, we send around interesting links and reading material.  From the past week:&lt;/p&gt;&lt;h3&gt;&lt;a href="http://weblogs.mozillazine.org/roadmap/archives/2007/02/threads_suck.html"&gt;&lt;strong&gt;Threads Suck&lt;/strong&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;&lt;a href="http://blogs.intel.com/research/2008/06/unwelcome_advice.php"&gt;Intel's declared the hyper-core future&lt;/a&gt;, throwing the gauntlet firmly in the direction of programmers everywhere.  It's natural to start thinking about multithreading, lock-related pain and synchronized blocks, but Eich of JavaScript fame lays out some ground rules for the future of that language.  Seems that even web developers will need to deal with parallel processing in some form.&lt;/p&gt;&lt;h3&gt;&lt;a href="http://omnipotent.net/jquery.sparkline/"&gt;&lt;strong&gt;jQuery Sparklines&lt;/strong&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;Nifty.  We're currently writing with Prototype/Scriptaculous, but the entire team's pretty impressed with jQuery.  There was an aborted mootools conversion attempt in the past, but perhaps that won't stop us from trying again.  In any case, supplementing activity logs with some sparkline graphs may be a nice touch in LimeSpot.&lt;/p&gt;&lt;h3&gt;&lt;a href="http://rubypond.com/articles/2008/07/16/sexy-forms-in-rails/"&gt;&lt;strong&gt;Sexy Forms in Rails&lt;/strong&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;It's arguable that Rails's greatest benefit is simplifying form building.  Here's a step further.&lt;/p&gt;&lt;h3&gt;&lt;a href="http://wordpress.org/development/2008/07/wordpress-26-tyner/"&gt;&lt;strong&gt;Wordpress 2.6&lt;/strong&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;The best keeps getting better.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/limespot/~4/AiZ0jml11Uc" height="1" width="1"/&gt;</description>
    <feedburner:origLink>http://blog.limespot.com/posts/3028-Summer-reading</feedburner:origLink></item>
    <item>
      <title>Well Into a Lot of Changes</title>
      <author>Andrew Fischler</author>
      <link>http://feedproxy.google.com/~r/limespot/~3/9wgAktyf258/2057-Well-Into-a-Lot-of-Changes</link>
      <guid isPermaLink="false">http://blog.limespot.com/posts/2057-Well-Into-a-Lot-of-Changes</guid>
      <comments>http://blog.limespot.com/posts/2057-Well-Into-a-Lot-of-Changes#comment_list</comments>
      <pubDate>Wed, 07 May 2008 09:00:00 GMT</pubDate>
      <description>&lt;p style="margin: 0pt 0pt 20px 20px; float: right;"&gt;&lt;img src="http://assets.limespot.com/fs/media/72/247339,300,300,p,n.png" alt="New 9th Floor Digs" /&gt;&lt;/lime&gt;&lt;/p&gt;&lt;p&gt;This has been a fairly eventful release cycle for LimeSpot, though in ways you probably won't see in the release notes.&lt;/p&gt;&lt;p style="text-align: left;"&gt;The photo is from the first day in our new digs within the 9th floor of Lime offices, which we moved into a few weeks ago.  Pretty nice space, but what's nicer is the fact that we'll be in the same general area as the rest of the Lime Wire teams for the first time in the history of our project.  All that creative energy and light has seemed to do us well already. &lt;/p&gt;&lt;p&gt;We've also added three new team members -- Ari, Derek, and Tieg -- which has almost doubled the size of the LimeSpot team overnight.  They've already been contributing a lot or hard work and new ideas, and I'm excited to see what the future holds for with all this new muscle to flex.&lt;/p&gt;&lt;p&gt;Finally, on the interface side of things, we're just about to conduct our second round of usability testing.  You can see some of the results of the first round of testing in the interface tweaks debuting in today's update to LimeSpot.  We already know that we have a good looking web app here, but we want it to be as easy to use as it is easy on the eyes.&lt;/p&gt;&lt;p&gt;By the way, this usability testing is slated to be an ongoing thing, so if anyone out there in the New York City area would be interested in helping us, then by all means &lt;a href="mailto:thisisawesome@limespot.com?subject=Usability%20Testing"&gt;drop us a line&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/limespot/~4/9wgAktyf258" height="1" width="1"/&gt;</description>
    <feedburner:origLink>http://blog.limespot.com/posts/2057-Well-Into-a-Lot-of-Changes</feedburner:origLink></item>
    <item>
      <title>Not Too Lazy</title>
      <author>dave</author>
      <link>http://feedproxy.google.com/~r/limespot/~3/4s187asXc_A/1823-Not-Too-Lazy</link>
      <guid isPermaLink="false">http://blog.limespot.com/posts/1823-Not-Too-Lazy</guid>
      <comments>http://blog.limespot.com/posts/1823-Not-Too-Lazy#comment_list</comments>
      <pubDate>Wed, 16 Apr 2008 13:37:00 GMT</pubDate>
      <description>&lt;p&gt;The blog has been quiet, but LimeSpot's been busy, picking up steam and returning to form after a raucous SXSW.  There's been a lot of work done over the past few weeks, and I'd like to highlight a few changes.&lt;/p&gt;&lt;p&gt;First, the covers have finally come off and LimeSpot Beta is now fully open to the public.  After a brief private beta period, we're ready to allow anybody to register and begin publishing using sites and apps.  Have at it.&lt;/p&gt;&lt;p&gt;One of our short term goals is to improve LimeSpot's interface, making its functionality intuitive.  In that regards, &lt;a href="http://limespot.com/feedback"&gt;feedback&lt;/a&gt; is always welcome. &lt;/p&gt;&lt;p&gt;&lt;img class="embedded-img-right" src="http://assets.limespot.com/fs/media/4/246049,328,59,p,n.png" alt="notification.png" /&gt;&lt;/lime&gt; Some visual changes have also been added recently.  For example, notifications now appear in a pop-over on the lower left of the page, and we're using the same widget for both AJAX and non-AJAX messages.  We think this is a big improvement over our previous notifications, which were anchored to the top of the page and moved content when they appeared or disappeared. &lt;/p&gt;&lt;p&gt;&lt;img class="embedded-img-right" src="http://assets.limespot.com/fs/media/4/246048,300,300,p,n.png" alt="mutual_friends.png" /&gt;&lt;/lime&gt; Finally, we also added mutual friend badges to the user cards on the Friends page.  Now it's easy to tell if a friend has been kind enough to return the favor.&lt;/p&gt;&lt;p&gt;What's in store for the future?  Continue to expect UI improvements that will make LimeSpot even simpler to use.  We also want to highlight the social side by adding a Followers page (users who have friended you) and a user search tool.  &lt;/p&gt;&lt;p&gt;A bit further out... well, we have some big plans.  LimeSpot is marked for some serious growth and change, so stay tuned.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/limespot/~4/4s187asXc_A" height="1" width="1"/&gt;</description>
    <feedburner:origLink>http://blog.limespot.com/posts/1823-Not-Too-Lazy</feedburner:origLink></item>
    <item>
      <title>Javascript, the minefield</title>
      <author>michael</author>
      <link>http://feedproxy.google.com/~r/limespot/~3/-DDWaVnGzs0/1629-Javascript-the-minefield</link>
      <guid isPermaLink="false">http://blog.limespot.com/posts/1629-Javascript-the-minefield</guid>
      <comments>http://blog.limespot.com/posts/1629-Javascript-the-minefield#comment_list</comments>
      <pubDate>Mon, 31 Mar 2008 10:26:00 GMT</pubDate>
      <description>&lt;p&gt;When a few of us from the LimeSpot team began using LimeSpot for our own blogs, we quickly realized that content scrubbing is a real pain.  We had been whitelisting tags, which meant that any time we discovered we needed a new tag we'd have to add it to the LimeSpot codebase.  Furthermore, there are some tags that we can't add because malicious users can do bad things with them.&lt;/p&gt;&lt;p&gt;User-generated javascript is one of those things that presents so many opportunities but is so dangerous that most sites remove it completely. One of the main dangers of user-generated javascript is cookie theft—malicious users can embed javascript that steals other users' cookies and thus gain access to the users' accounts.  Another danger is the possibility of user-generated javascript executing an AJAX post request to do something malicious such as deleting the user's own account.&lt;/p&gt;&lt;p&gt;Because of these vulnerabilities, users usually have to have their own hosting in order to use Javascript.  For LimeSpot we wanted something a bit more.&lt;/p&gt;&lt;p&gt;Our first approach was to try and protect the cookies.  Several browsers now have support for HTTP-only cookies, but there are still too many browsers that do not.   Also, javascript allows too many methods for evaluating code for us to simply remove the methods for retrieving cookies.  What we ended up doing was moving all user-generated content into separate subdomains, leaving limespot.com for administrative tasks.  By putting users' sites on separate domains, javascript that is executed there cannot access the cookies on limespot.com.  We split our cookies into trusted cookies and untrusted cookies.  Trusted cookies are set for limespot.com and allow users to do anything they please, whereas untrusted cookies are set for (your site).limespot.com and only allow a few actions, such as leaving comments for that particular site.&lt;/p&gt;&lt;p&gt;Each untrusted site cookie needs to be linked with a trusted limespot cookie, so we used &amp;lt;script&amp;gt; tags register the untrusted cookie: (it conveniently renders our lime bar as well)&lt;/p&gt;&lt;pre id="line40"&gt;&amp;lt;&lt;span class="start-tag"&gt;script&lt;/span&gt;&lt;span class="attribute-name"&gt; src&lt;/span&gt;=&lt;span class="attribute-value"&gt;&amp;quot;http://limespot.com/sessions/lime_bar?app_id=3 &lt;br /&gt;      &amp;amp;app_session_id=123456789abcde&amp;amp;site_id=1&amp;quot; &lt;/span&gt;&lt;span class="attribute-name"&gt;type&lt;/span&gt;=&lt;span class="attribute-value"&gt;&amp;quot;text/javascript&amp;quot;&lt;/span&gt;&amp;gt;&amp;lt;/&lt;span class="end-tag"&gt;script&lt;/span&gt;&amp;gt;&lt;/pre&gt;&lt;p&gt;When we receive this on limespot.com, we go ahead and set up an app_session that is linked with the user's real (trusted) session. This way we can always tell who a user is, but we know to limit their privileges when they are on user-generated sites.&lt;/p&gt;&lt;p&gt;There are still a few kinks to be worked out, but we think this is a pretty good way to mix trusted and untrusted markup in the same web application. &lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/limespot/~4/-DDWaVnGzs0" height="1" width="1"/&gt;</description>
    <feedburner:origLink>http://blog.limespot.com/posts/1629-Javascript-the-minefield</feedburner:origLink></item>
    <item>
      <title>Winding down to wind up</title>
      <author>Andrew Fischler</author>
      <link>http://feedproxy.google.com/~r/limespot/~3/jWLRv766VHA/1434-Winding-down-to-wind-up</link>
      <guid isPermaLink="false">http://blog.limespot.com/posts/1434-Winding-down-to-wind-up</guid>
      <comments>http://blog.limespot.com/posts/1434-Winding-down-to-wind-up#comment_list</comments>
      <pubDate>Wed, 05 Mar 2008 15:48:00 GMT</pubDate>
      <description>&lt;p&gt;Its been a long, strange trip for us to get to this point, but after weeks and weeks of frantic work and feverish discussion, things have finally begun to draw down into a relative, quiet calm.  And yes, this is the proverbial calm before the storm.&lt;/p&gt;&lt;p&gt;Austin, TX is the place this storm will be centered, because that's where we finally get to open our fledgling site to the public at large as part of &lt;a href="http://sxsw.limespot.com/"&gt;Lime Wire's attack on SXSW&lt;/a&gt;.  But we sure hope its effects will be felt far and wide shortly thereafter.&lt;/p&gt;&lt;p&gt;While this is a big moment in our short and stormy existence, it's also very exciting for one huge reason: this is only the beginning.  It might sound cliched, but its true.  Up until now, it's been a monumental task just getting the gates opened.  But now we can start actually building on the platform we've worked so hard to create -- adding new apps and tweaking the ones we have as the feedback starts rolling in.&lt;/p&gt;&lt;p&gt;Welcome to the starting line.  ^_^ &lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/limespot/~4/jWLRv766VHA" height="1" width="1"/&gt;</description>
    <feedburner:origLink>http://blog.limespot.com/posts/1434-Winding-down-to-wind-up</feedburner:origLink></item>
    <item>
      <title>Update and Apology</title>
      <author>dave</author>
      <link>http://feedproxy.google.com/~r/limespot/~3/ChW0aI6iyzs/1241-Update-and-Apology</link>
      <guid isPermaLink="false">http://blog.limespot.com/posts/1241-Update-and-Apology</guid>
      <comments>http://blog.limespot.com/posts/1241-Update-and-Apology#comment_list</comments>
      <pubDate>Fri, 15 Feb 2008 04:12:00 GMT</pubDate>
      <description>&lt;p&gt;LimeSpot was updated again yesterday evening, with only a minor outage.  Another week, another spate of backend fixes that aren't readily apparent -- we've overhauled much of the admin UI and begun to split off asset serving and thumbnailing to dedicated processes.  Exciting work!&lt;/p&gt;&lt;p&gt;Unfortunately, the update introduced a slight misconfiguration and emails weren't being sent out starting at 6:00PM EST yesterday.  My apologies for the error.  To users who registered after that time: confirmation messages have been resent, so please check your inbox.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/limespot/~4/ChW0aI6iyzs" height="1" width="1"/&gt;</description>
    <feedburner:origLink>http://blog.limespot.com/posts/1241-Update-and-Apology</feedburner:origLink></item>
    <item>
      <title>Friday Update</title>
      <author>dave</author>
      <link>http://feedproxy.google.com/~r/limespot/~3/KdXn9B8T4_4/1206-Friday-Update</link>
      <guid isPermaLink="false">http://blog.limespot.com/posts/1206-Friday-Update</guid>
      <comments>http://blog.limespot.com/posts/1206-Friday-Update#comment_list</comments>
      <pubDate>Fri, 08 Feb 2008 20:02:00 GMT</pubDate>
      <description>&lt;p&gt;This was supposed to be a Thursday Update, since we've moved our weekly deployment back in order to give ourselves a working day to fix any immediate issues.  A series of mishaps, however, delayed the actual release until today.  It was also another &amp;quot;disruptive&amp;quot; update, so I apologize for the outage, but these sorts of things should become far more infrequent.&lt;/p&gt;&lt;p&gt;The big change this week: we've moved LimeSpot onto &lt;a href="http://engineyard.com/"&gt;Engine Yard&lt;/a&gt;, and we're thrilled to be backed by such a responsive, savvy crew.  Scaling up should be a lot easier with a dedicated Rails host supporting us, and it's nice to leave the anxiety of managing your own servers behind.&lt;/p&gt;&lt;p&gt;Otherwise, we're continuing towards the public unveiling of LimeSpot's publishing features, and in fact, I'd like to announce that we'll be lifting the curtain prior to SXSW in early March.  Stay tuned for more news about that as we approach the date.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/limespot/~4/KdXn9B8T4_4" height="1" width="1"/&gt;</description>
    <feedburner:origLink>http://blog.limespot.com/posts/1206-Friday-Update</feedburner:origLink></item>
    <item>
      <title>The Joys of Beta Software</title>
      <author>Josh Knowles</author>
      <link>http://feedproxy.google.com/~r/limespot/~3/8RSrGsZBY1Y/1125-The-Joys-of-Beta-Software</link>
      <guid isPermaLink="false">http://blog.limespot.com/posts/1125-The-Joys-of-Beta-Software</guid>
      <comments>http://blog.limespot.com/posts/1125-The-Joys-of-Beta-Software#comment_list</comments>
      <pubDate>Mon, 28 Jan 2008 07:06:00 GMT</pubDate>
      <description>&lt;p&gt;So we came in on this lovely Monday morning to find 14,000 emails in our inbox notifying us of failures in the latest build.&lt;/p&gt;&lt;p&gt;On one hand this means that our exception notification system works, which is a good thing as it allows us to be notified of problems in the field without you having to send us feedback.  On the other hand each of these emails represents a user who didn't get the content which they were searching for meaning that the latest build has a few problems to say the least.&lt;/p&gt;&lt;p&gt;Oh the joys of beta software.... &lt;/p&gt;&lt;p&gt;To everyone who experienced the random and unexpected &amp;quot;500 Error&amp;quot; page over the weekend we apologize.  We have identified the problem and will be pushing out a bug-fix release this afternoon.  &lt;/p&gt;&lt;p&gt;Thank you for your patience and support through this roller coaster of a beta! &lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/limespot/~4/8RSrGsZBY1Y" height="1" width="1"/&gt;</description>
    <feedburner:origLink>http://blog.limespot.com/posts/1125-The-Joys-of-Beta-Software</feedburner:origLink></item>
    <item>
      <title>Friday Update from the UI point of view</title>
      <author>Andrew Fischler</author>
      <link>http://feedproxy.google.com/~r/limespot/~3/zSAWNcs5_VQ/1121-Friday-Update-from-the-UI-point-of-view</link>
      <guid isPermaLink="false">http://blog.limespot.com/posts/1121-Friday-Update-from-the-UI-point-of-view</guid>
      <comments>http://blog.limespot.com/posts/1121-Friday-Update-from-the-UI-point-of-view#comment_list</comments>
      <pubDate>Sat, 26 Jan 2008 08:00:00 GMT</pubDate>
      <description>&lt;p&gt;For those of you who have been captivated by our posts of progress here, bless your hearts.  But honestly, there hasn't been a whole lot of &lt;span class="Apple-style-span" style="font-style: italic"&gt;visible&lt;/span&gt; changes at LimeSpot unless you've been lucky enough to have a site here.  With this past Friday's release, that has started to change.&lt;/p&gt;&lt;p&gt;There's been a long ongoing dialog inside our offices about updating and refining the user interface, and the first bits of that can be seen in the new navigation menu.  Of course, this is just the tip of the iceberg, but Jorge did a nice job of making it the prettiest looking iceberg he could.&lt;/p&gt;&lt;p&gt;This is along with all our normal bug fixes, code revisions, etc.  But hip-hip-hooray!  UI is in the house! &lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/limespot/~4/zSAWNcs5_VQ" height="1" width="1"/&gt;</description>
    <feedburner:origLink>http://blog.limespot.com/posts/1121-Friday-Update-from-the-UI-point-of-view</feedburner:origLink></item>
    <item>
      <title>Yet Another Friday Update</title>
      <author>Josh Knowles</author>
      <link>http://feedproxy.google.com/~r/limespot/~3/449hvPVPDpU/1091-Yet-Another-Friday-Update</link>
      <guid isPermaLink="false">http://blog.limespot.com/posts/1091-Yet-Another-Friday-Update</guid>
      <comments>http://blog.limespot.com/posts/1091-Yet-Another-Friday-Update#comment_list</comments>
      <pubDate>Mon, 21 Jan 2008 13:35:00 GMT</pubDate>
      <description>&lt;p&gt;Nothing major to report this week.  We tweaked the UI a bit in preparation for a major face lift that Jorge and Andrew have been working on.  In addition we enabled user confirmations, which were mistakenly broken.&lt;/p&gt;&lt;p&gt;As always if you run into any problems, or have any suggestions, please let us know.  Contact details are over on the &lt;a href="http://limespot.com/feedback"&gt;feedback page&lt;/a&gt;. &lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/limespot/~4/449hvPVPDpU" height="1" width="1"/&gt;</description>
    <feedburner:origLink>http://blog.limespot.com/posts/1091-Yet-Another-Friday-Update</feedburner:origLink></item>
    <item>
      <title>Friday Update</title>
      <author>dave</author>
      <link>http://feedproxy.google.com/~r/limespot/~3/t4NuKfazy2Q/1049-Friday-Update</link>
      <guid isPermaLink="false">http://blog.limespot.com/posts/1049-Friday-Update</guid>
      <comments>http://blog.limespot.com/posts/1049-Friday-Update#comment_list</comments>
      <pubDate>Fri, 11 Jan 2008 18:50:00 GMT</pubDate>
      <description>&lt;p&gt;As I mentioned in the last post, LimeSpot's moving to a weekly update cycle, which we've scheduled for Friday evenings.  It's nice to start with a clean slate every Monday, and we also happen to have the kind of hubris that lets us introduce potential show-stoppers when absolutely nobody will be at the office.&lt;/p&gt;&lt;p&gt;For this release, we've fixed a few bugs, primarily within the admin section, but we've also introduced a very important public feature -- &lt;span class="Apple-style-span" style="font-style: italic"&gt;feedback&lt;/span&gt;.  In the footer of LimeSpot pages and in the bar at the top of the blogs you should now see links to the &lt;a href="http://limespot.com/feedback/"&gt;feedback page&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;We hope you'll share your comments, questions, well-wishes, bugs and annoyances with us as LimeSpot grows.  So speak up, we'll do our utmost to keep our ears open, and help us make LimeSpot truly yours.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/limespot/~4/t4NuKfazy2Q" height="1" width="1"/&gt;</description>
    <feedburner:origLink>http://blog.limespot.com/posts/1049-Friday-Update</feedburner:origLink></item>
    <item>
      <title>21 times more powerful!</title>
      <author>dave</author>
      <link>http://feedproxy.google.com/~r/limespot/~3/vorlIu8-QKQ/1025-21-times-more-powerful-</link>
      <guid isPermaLink="false">http://blog.limespot.com/posts/1025-21-times-more-powerful-</guid>
      <comments>http://blog.limespot.com/posts/1025-21-times-more-powerful-#comment_list</comments>
      <pubDate>Wed, 09 Jan 2008 05:36:00 GMT</pubDate>
      <description>&lt;p&gt;Last night, we completed a massive upgrade of Limespot, one that was a long time coming.  Many of the changes, however, are under the scenes -- architecture shifts that should help us grow out and become the community of communities we so desire.&lt;/p&gt;&lt;p&gt;Nevertheless, you may notice some small changes.  In-place editing on the profile page has been temporarily abandoned in favor of a traditional form under the Settings tab.  This was done largely as a convenience, and since we still prefer the old way of doing things, we'll probably re-implement the &amp;quot;cooler&amp;quot; way soon.&lt;/p&gt;&lt;p&gt;There's also this mysterious &amp;quot;Sites&amp;quot; tab that may beckon to you and present an empty vista.  It's a stub but also a promise -- soon enough, the full features of Limespot shall be unleashed, and the power that's been granted to the LimeWire music team shall be available to all.  We hope you'll stick around for that.&lt;/p&gt;&lt;p&gt;Future updates should come at a faster pace from here on out, as we experiment with a weekly release cycle.  Keep your eyes peeled, and we'll be sure to inform you of the changes, big or small, right here. &lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/limespot/~4/vorlIu8-QKQ" height="1" width="1"/&gt;</description>
    <feedburner:origLink>http://blog.limespot.com/posts/1025-21-times-more-powerful-</feedburner:origLink></item>
    <item>
      <title>Humanized Messages</title>
      <author>michael</author>
      <link>http://feedproxy.google.com/~r/limespot/~3/17hdBq89Ggo/655-Humanized-Messages</link>
      <guid isPermaLink="false">http://blog.limespot.com/posts/655-Humanized-Messages</guid>
      <comments>http://blog.limespot.com/posts/655-Humanized-Messages#comment_list</comments>
      <pubDate>Wed, 24 Oct 2007 17:40:00 GMT</pubDate>
      <description>&lt;p&gt;&lt;img class="embedded-img-right" src="http://assets.limespot.com/fs/media/2/71157,291,106,p,n.png" alt="humanized_messages.jpg" /&gt; &lt;a href="http://www.binarybonsai.com"&gt;Michael Heilemann&lt;/a&gt; of &lt;a href="http://getk2.com"&gt;K2&lt;/a&gt; fame recently released a jQuery script called &lt;a href="http://binarybonsai.com/archives/2007/10/15/humanized-messages-for-jquery/"&gt;Humanized Messages&lt;/a&gt; that implements an idea by Humanized Software.  It is a notification system that displays notices in the middle of the screen for a short time until the mouse is moved, at which point they fade away. &lt;a href="http://binarybonsai.com/misc/humanmsg/"&gt;Demo here&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Upon seeing it, my first thought was "I don't see how this is any less obtrusive than any notification other than a javascript alert box", and my second thought was "this would make a &lt;em&gt;really cool&lt;/em&gt; visualization!" Set up a machine just to show off to visitors and every time a new user registers or a member creates a new post, flash a message up on the screen for a few seconds before fading away.  If we're going to be a Web 2.0 startup, we at least need some bling, right? &lt;/p&gt;&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; Here's a &lt;a href="http://hypomodern.com/sandbox/prototype_transparent_messages"&gt;Script.aculo.us version&lt;/a&gt;. &lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/limespot/~4/17hdBq89Ggo" height="1" width="1"/&gt;</description>
    <feedburner:origLink>http://blog.limespot.com/posts/655-Humanized-Messages</feedburner:origLink></item>
    <item>
      <title>Naughty or Nice?</title>
      <author>dave</author>
      <link>http://feedproxy.google.com/~r/limespot/~3/g0sbfmlhmA4/614-Naughty-or-Nice-</link>
      <guid isPermaLink="false">http://blog.limespot.com/posts/614-Naughty-or-Nice-</guid>
      <comments>http://blog.limespot.com/posts/614-Naughty-or-Nice-#comment_list</comments>
      <pubDate>Mon, 15 Oct 2007 08:39:00 GMT</pubDate>
      <description>&lt;p&gt;Christmas is just around the corner (no, really), and LimeSpot has a pretty ambitious wish-list.  We've been nice, however, so we expect Santa to drop off a pretty hefty sack of goodies, including:&lt;/p&gt;&lt;p&gt;&lt;strong&gt;More Content:&lt;/strong&gt; Besides user profiles, there's currently two things to look at on LimeSpot -- the &lt;a href="http://blog.limewire.com/"&gt;LimeWire Music Blog&lt;/a&gt; and the &lt;a href="http://blog.limespot.com"&gt;LimeSpot Team Blog&lt;/a&gt;, which you are reading at this very second.  Not enough, I say.  By the year's end, we hope to grow the content by allowing a small number of users to begin kicking the tires on this thing.  Hopefully, we'll see some diverse and interesting stuff beginning to emerge.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;More Visitors:&lt;/strong&gt; The &lt;em&gt;LimeWire Music Blog&lt;/em&gt; has been a boon to us, driving traffic our way and acting as our flagship site.  But we're hungry for more.  We want to see traffic steadily rising as we add more content and more features, keeping us busy on the back-end to make sure it all goes smoothly.  In short, we want to be the biggest Rails app in the world.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;More Interactivity:&lt;/strong&gt; Leaving comments, fleshing out a profile... it's all well and good, but the real power of LimeSpot lies in its group collaborative and web publishing abilities.  To date, however, such power has been reserved for a select few.  But the day draws ever nearer, when we shall unleash this unto the world, allowing anyone and everyone to create their own web presence.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;More Feedback:&lt;/strong&gt; We think it's important to listen to our users, adapt and flow with their needs as much as our own internal vision.  Unfortunately, the feedback loop is currently non-existent, and this is something we need to fix.  A forum?  Custom feedback forms?  Open ticketing system?  They're all up for debate, but we hope to roll out something soon.&lt;/p&gt;&lt;p&gt;There's so much more, but Santa, if you start with this we'll be mighty pleased.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/limespot/~4/g0sbfmlhmA4" height="1" width="1"/&gt;</description>
    <feedburner:origLink>http://blog.limespot.com/posts/614-Naughty-or-Nice-</feedburner:origLink></item>
    <item>
      <title>Smash</title>
      <author>dave</author>
      <link>http://feedproxy.google.com/~r/limespot/~3/qgbK9wRJ1zI/583-Smash</link>
      <guid isPermaLink="false">http://blog.limespot.com/posts/583-Smash</guid>
      <comments>http://blog.limespot.com/posts/583-Smash#comment_list</comments>
      <pubDate>Fri, 05 Oct 2007 20:29:00 GMT</pubDate>
      <description>&lt;p&gt;Here at Lime Spot, we have a &lt;em&gt;culture of Smash&lt;/em&gt;.  In the projector room (we once had videographers... don't ask) sits Michael's Wii, and for as long as I remember, only a single game has graced its presence -- &lt;em&gt;Super Smash Bros. Melee&lt;/em&gt;.&lt;/p&gt;&lt;p&gt;Penny Arcade has its ping-pong, Googlers probably play Segway polo or some nonsense, and we simply Smash the hell out of each other.  And laugh all the while.&lt;/p&gt;&lt;p&gt;Over time, team members have naturally gravitated towards a preferred character, and since I think our on-screen doppelgangers have something to say about us, I'm going to dive into an impromptu team biography.  Here's hoping wily traps do not await my return...&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;a href="http://limespot.com/users/dave"&gt;Dave&lt;/a&gt; as Link&lt;/strong&gt;:&lt;em&gt; Full disclaimer, this is actually me&lt;/em&gt;.  Link can't really hit you with any really powerful moves, and he's out-sworded by Marth and Roy, but that spinny thing is damn effective.  Likewise, I can't characterize myself as an uber-developer, but with my head down and with a lot of nail-biting, I can usually get the job done.  And I can pull bombs out of my ass.  Really.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;a href="http://limespot.com/users/jorge"&gt;Jorge&lt;/a&gt; as Kirby&lt;/strong&gt;: Kirby seems like a nice guy, someone you'd want to have lunch with, talk about last night's Heroes episode with... like Jorge.  Except when he decides to swallow you up into his gaping, sucking jaw and then walks off the stage, taking the suicide just to watch you die.  Jorge has that dark side, I just know it.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;a href="http://limespot.com/users/michael"&gt;Michael&lt;/a&gt; as Marth&lt;/strong&gt;: Michael is effective.  Marth is effective.  Not much more really needs to be said.  On a small confined stage, Marth's ability to sweep the air around makes him truly deadly.  That doesn't really apply to Michael, but he kind of looks like him.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;a href="http://limespot.com/users/josh"&gt;Josh&lt;/a&gt; as ???&lt;/strong&gt;: I haven't played with Josh yet, so he'll stand in as the random character feature that Nintendo left out by accident.  And then you randomly get Mewtwo and curse out loud.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;a href="http://limespot.com/users/ajfischler"&gt;Andrew&lt;/a&gt; as Fox&lt;/strong&gt;: Last but not least, my nemesis, the Fox.  For a long time I was completely owned by Andrew's deft control of Fox.  But a slight miscalculation or a tremor, and Fox is out-of-control, plunging himself to his own death.  So I learned to wait for those opportunities and take advantage of them.  I guess trying to compare laid-back, easy-going Andrew as a twitchy, fashion-impaired, cartoon fox doesn't really work.&lt;/p&gt;&lt;p&gt;In the coming weeks and months, we'll talk a lot about LimeSpot here -- more features, fixes and improvements that will transform your life.  But expect a bit of a respite... &lt;a href="http://www.smashbros.com/en_us/index.html"&gt;around December 3rd&lt;/a&gt;. &lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/limespot/~4/qgbK9wRJ1zI" height="1" width="1"/&gt;</description>
    <feedburner:origLink>http://blog.limespot.com/posts/583-Smash</feedburner:origLink></item>
    <item>
      <title>LimeSpot.</title>
      <author>michael</author>
      <link>http://feedproxy.google.com/~r/limespot/~3/4M9DqKAmZG4/566-LimeSpot-</link>
      <guid isPermaLink="false">http://blog.limespot.com/posts/566-LimeSpot-</guid>
      <comments>http://blog.limespot.com/posts/566-LimeSpot-#comment_list</comments>
      <pubDate>Tue, 02 Oct 2007 21:53:00 GMT</pubDate>
      <description>&lt;p&gt;Provide people with the tools, and they will build something better than you can ever imagine.  On the web nothing ever goes quite according to plans and at Lime Spot we hope to harness that randomness into something people will enjoy using.  The product of many months of blood, sweat and tears, LimeSpot aims to provide a platform on which anybody can build anything.&lt;/p&gt;&lt;p&gt;Over the coming months we plan to roll out many new applications and features.  Collaborative content creation will allow both regular users and groups to create awesome community-centered websites.  Our &amp;quot;apps&amp;quot; will enable users to quickly deploy many themed applications, such as blogs, wikis, and events calendars.  Once people have chosen apps they can deploy them to their own domain name.&lt;/p&gt;&lt;p&gt;We'll be blogging regularly about feature updates and other issues surrounding LimeSpot.  Check back soon. &lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/limespot/~4/4M9DqKAmZG4" height="1" width="1"/&gt;</description>
    <feedburner:origLink>http://blog.limespot.com/posts/566-LimeSpot-</feedburner:origLink></item>
  </channel>
</rss>
