<?xml version='1.0' encoding='utf-8' ?>
<!--  If you are running a bot please visit this policy page outlining rules you must respect. http://www.livejournal.com/bots/  -->
<rss version='2.0' xmlns:lj='http://www.livejournal.org/rss/lj/1.0/' xmlns:media='http://search.yahoo.com/mrss/'>
<channel>
  <title>astral projections</title>
  <link>http://myranti.livejournal.com/</link>
  <description>astral projections - LiveJournal.com</description>
  <lastBuildDate>Tue, 16 Jun 2009 17:42:49 GMT</lastBuildDate>
  <generator>LiveJournal / LiveJournal.com</generator>
  <lj:journal>myranti</lj:journal>
  <lj:journalid>2480895</lj:journalid>
  <lj:journaltype>personal</lj:journaltype>
  <image>
    <url>http://l-userpic.livejournal.com/35227494/2480895</url>
    <title>astral projections</title>
    <link>http://myranti.livejournal.com/</link>
    <width>89</width>
    <height>100</height>
  </image>

<item>
  <guid isPermaLink='true'>http://myranti.livejournal.com/102386.html</guid>
  <pubDate>Tue, 16 Jun 2009 17:42:49 GMT</pubDate>
  <title>This blog is dead, long live this blog.</title>
  <link>http://myranti.livejournal.com/102386.html</link>
  <description>Actually, long live the idea of this blog broken up into many tiny pieces. This has always been a way for me to post my random thoughts about things but lately I&apos;ve been able to find other outlets for them - Twitter and Facebook.  If you&apos;d like to have a more scattered, but at least semi interactive view into my world, you can &lt;a href=&quot;http://www.facebook.com/bfioca&quot;&gt;friend me on Facebook&lt;/a&gt; (if I&apos;ve met you in person) and/or &lt;a href=&quot;http://www.twitter.com/bfioca&quot;&gt;follow me on Twitter&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;And with that I likely conclude my broadcast here (at least, in public).&lt;br /&gt;&lt;br /&gt;Edit: Ok, Maybe I won&apos;t conclude, but I had to put something up since I haven&apos;t posted in FOREVER. :P</description>
  <comments>http://myranti.livejournal.com/102386.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>3</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://myranti.livejournal.com/101926.html</guid>
  <pubDate>Thu, 22 Jan 2009 03:09:25 GMT</pubDate>
  <title>Productivity Porn</title>
  <link>http://myranti.livejournal.com/101926.html</link>
  <description>Random:&lt;br /&gt;&lt;br /&gt;Here&apos;s a look at my top 5 applications from 2008 and how much time I spent in them by week.&lt;br /&gt;(from an alpha version of an upcoming version of RescueTime)&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;http://fioca.com/pub/year_chart.png&quot; /&gt;&lt;br /&gt;&lt;br /&gt;TextMate is the app I use to do all my coding.  It was a rough summer for writing code, it seems...</description>
  <comments>http://myranti.livejournal.com/101926.html</comments>
  <category>rescuetime</category>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://myranti.livejournal.com/101633.html</guid>
  <pubDate>Fri, 07 Nov 2008 05:29:42 GMT</pubDate>
  <title>This is just ..... so cool</title>
  <link>http://myranti.livejournal.com/101633.html</link>
  <description>&lt;a href=&quot;http://www.change.gov/&quot;&gt;Check this out.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Our next president has a &lt;a href=&quot;http://www.change.gov/newsroom/blog/&quot;&gt;blog&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The entire website makes me giddy.  If this is what we can expect from our new administration when it comes to information access and interaction, I&apos;m going to feel so at home.&lt;br /&gt;&lt;br /&gt;From the page source:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;    document.write(unescape(&quot;%3Cscript src=&apos;&quot; + gaJsHost + &quot;google-analytics.com/ga.js&apos;   &lt;br /&gt;&lt;/code&gt;&lt;br /&gt;They use google analytics.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.change.gov/agenda/economy/&quot;&gt;This is a really interesting page&lt;/a&gt;.  I love that they essentially have a feedback/submit ideas form.   &lt;br /&gt;&lt;br /&gt;Based on this and the &lt;a href=&quot;http://barackobama.com&quot;&gt;barackobama.com&lt;/a&gt; site (on which I made a &lt;a href=&quot;http://my.barackobama.com/page/dashboard/public/CNdS&quot;&gt;profile&lt;/a&gt; in Feb 2007, btw ha), you can tell the people in charge are on top of the latest in internet application development best practices.  Their entire site is pretty state of the art.  I can&apos;t wait to see where they&apos;re going to take this.&lt;br /&gt;&lt;br /&gt;Government 2.0 is coming.&lt;br /&gt;&lt;br /&gt;Edit: I forgot he also twitters: &lt;a href=&quot;http://twitter.com/barackobama&quot;&gt;http://twitter.com/barackobama&lt;/a&gt;</description>
  <comments>http://myranti.livejournal.com/101633.html</comments>
  <lj:mood>cheerful</lj:mood>
  <lj:security>public</lj:security>
  <lj:reply-count>3</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://myranti.livejournal.com/101627.html</guid>
  <pubDate>Thu, 23 Oct 2008 22:59:40 GMT</pubDate>
  <title>Fix for psyco in Django 1.0 query module</title>
  <link>http://myranti.livejournal.com/101627.html</link>
  <description>Today I enabled threaded (mpm worker) mod_python to try to boost performance of the RescueTime back end and started noticing the following error showing up in the logs:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;File &quot;/opt/lib/python2.5/site-packages/django/db/models/query.py&quot;, line 497, in _filter_or_exclude&lt;br /&gt;    clone = self._clone()&lt;br /&gt;File &quot;/opt/lib/python2.5/site-packages/django/db/models/query.py&quot;, line 595, in _clone&lt;br /&gt;    query = self.query.clone()&lt;br /&gt;File &quot;/opt/lib/python2.5/site-packages/django/db/models/sql/query.py&quot;, line 195, in clone&lt;br /&gt;    obj.__dict__.update(kwargs)&lt;br /&gt;TypeError: descriptor &apos;__dict__&apos; for &apos;Empty&apos; objects doesn&apos;t apply to &apos;Query&apos; object&apos;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;The problem appears to be due to the magic that function does of &lt;br /&gt;changing the runtime class of an object (which is explicitly listed as a known bug with using psyco on &lt;a href=&quot;http://psyco.sourceforge.net/psycoguide/bugs.html&quot;&gt;their site&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;To fix it, I figured I&apos;d just prevent that particular method from getting optimized by psyco, so I added this to the top of my models.py file:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;from django.db import models&lt;br /&gt;import psyco&lt;br /&gt;psyco.cannotcompile(models.sql.query.Query.clone) &lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;So far so good...</description>
  <comments>http://myranti.livejournal.com/101627.html</comments>
  <category>rescuetime</category>
  <category>django</category>
  <lj:security>public</lj:security>
  <lj:reply-count>2</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://myranti.livejournal.com/101294.html</guid>
  <pubDate>Tue, 23 Sep 2008 02:13:08 GMT</pubDate>
  <title>RescueTime Raises Funding</title>
  <link>http://myranti.livejournal.com/101294.html</link>
  <description>&lt;a href=&quot;http://www.techcrunch.com/2008/09/22/rescuetime-proving-useful-for-the-enterprise-raises-900k/&quot;&gt;RescueTime Proving Useful For The Enterprise, Raises $900k&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Y Combinator startup RescueTime lets users monitor which applications and websites they use/visit the most, and then lets them use that information to try to cut down on inefficient uses of time. It’s useful on an individual basis, and it helps businesses (who pay $4-$8/user/month) monitor what applications are being used, and where time is being wasted.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Not even a year old, our work is just getting started - but we have a lot more time and resources to help us now.</description>
  <comments>http://myranti.livejournal.com/101294.html</comments>
  <category>rescuetime</category>
  <lj:security>public</lj:security>
  <lj:reply-count>1</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://myranti.livejournal.com/97297.html</guid>
  <pubDate>Sat, 19 Jul 2008 02:23:58 GMT</pubDate>
  <title>Tony on FastCompany.tv</title>
  <link>http://myranti.livejournal.com/97297.html</link>
  <description>Tony talks to Scoble about RescueTime, and uses my computer to show it off.  Oh he mentions my work habits too (ha!).  It was filmed at the old Jobster offices in Pioneer Square.&lt;br /&gt;&lt;br /&gt;&lt;lj-embed id=&quot;4&quot; /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.fastcompany.tv/video/see-how-much-tme-you-are-wasting-with-rescuetime&quot;&gt;http://www.fastcompany.tv/video/see-how-much-tme-you-are-wasting-with-rescuetime&lt;/a&gt;</description>
  <comments>http://myranti.livejournal.com/97297.html</comments>
  <category>rescuetime</category>
  <category>random</category>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://myranti.livejournal.com/97018.html</guid>
  <pubDate>Tue, 08 Jul 2008 23:08:16 GMT</pubDate>
  <title>This one is cool - RescueTime on NPR</title>
  <link>http://myranti.livejournal.com/97018.html</link>
  <description>&lt;a href=&quot;http://www.npr.org/templates/story/story.php?storyId=92329278&quot;&gt;Listen here&lt;/a&gt; (we&apos;re mentioned at 01:10)&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;Day to Day, July 8, 2008 · Outsource your daily tasks, stop making to-do lists in favor of to-don&apos;t lists. Timothy Ferriss, author of The 4-Hour Workweek: Escape 9-5, Live Anywhere, and Join the New Rich, offers guidelines for a plusher life, without a Blackberry. Hard-working Madeleine Brand considers how she could adapt them to her life.&lt;br /&gt;&lt;/blockquote&gt;</description>
  <comments>http://myranti.livejournal.com/97018.html</comments>
  <category>npr</category>
  <category>rescuetime</category>
  <lj:security>public</lj:security>
  <lj:reply-count>1</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://myranti.livejournal.com/96481.html</guid>
  <pubDate>Sat, 14 Jun 2008 02:49:55 GMT</pubDate>
  <title>Obligatory NY Times Braggery</title>
  <link>http://myranti.livejournal.com/96481.html</link>
  <description>Article: &lt;a href=&quot;http://www.nytimes.com/2008/06/14/technology/14email.html?hp&quot;&gt;Creators of E-Mail Monster Now Try to Tame It&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;This will supposedly be on the front page of tomorrow&apos;s print edition.</description>
  <comments>http://myranti.livejournal.com/96481.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>2</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://myranti.livejournal.com/94211.html</guid>
  <pubDate>Thu, 24 Apr 2008 17:51:26 GMT</pubDate>
  <title>This little robot box has stolen my heart</title>
  <link>http://myranti.livejournal.com/94211.html</link>
  <description>&lt;lj-embed id=&quot;3&quot; /&gt;</description>
  <comments>http://myranti.livejournal.com/94211.html</comments>
  <category>random</category>
  <lj:security>public</lj:security>
  <lj:reply-count>4</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://myranti.livejournal.com/93883.html</guid>
  <pubDate>Thu, 27 Mar 2008 17:05:59 GMT</pubDate>
  <title>RescueTime in U.S. News and World Report</title>
  <link>http://myranti.livejournal.com/93883.html</link>
  <description>&lt;a href=&quot;http://www.usnews.com/articles/business/small-business-entrepreneurs/2008/03/25/4-questions-for-productivity-guru-tim-ferriss.html&quot;&gt;This article interviewing Tim Ferriss&lt;/a&gt;, productivity guru and author of &lt;a href=&quot;http://www.fourhourworkweek.com/&quot;&gt;The 4-Hour Work Week&lt;/a&gt;, is on the front page of &lt;a href=&quot;http://usnews.com&quot;&gt;U.S. News and World Report&lt;/a&gt;&apos;s website today.&lt;br /&gt;&lt;br /&gt;This is my favorite part:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;That leads me to the importance of becoming aware of how you are spending or misspending time while you&apos;re on a computer. Do a time audit. Rescuetime.com will tell you how much time you spent on different websites and pages. It creates graphs and charts and tells you how you&apos;re wasting your time.&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;- Tim Ferriss&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Thanks, Tim!  That&apos;s a great plug!</description>
  <comments>http://myranti.livejournal.com/93883.html</comments>
  <category>rescuetime</category>
  <lj:security>public</lj:security>
  <lj:reply-count>3</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://myranti.livejournal.com/92200.html</guid>
  <pubDate>Mon, 10 Mar 2008 06:24:26 GMT</pubDate>
  <title>I love this trend</title>
  <link>http://myranti.livejournal.com/92200.html</link>
  <description>Here&apos;s a snippet from our google analytics for the web traffic of &lt;a href=&quot;rescuetime.com&quot;&gt;rescuetime.com&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;http://fioca.com/pub/rt_graph.png&quot; /&gt;&lt;br /&gt;&lt;br /&gt;The spike in the beginning is TechCrunch/LifeHacker coverage.  The rest is word of mouth.&lt;br /&gt;&lt;br /&gt;Our user signup graph is starting to look exponential.&lt;br /&gt;&lt;br /&gt;Awesome.</description>
  <comments>http://myranti.livejournal.com/92200.html</comments>
  <category>rescuetime</category>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://myranti.livejournal.com/91477.html</guid>
  <pubDate>Wed, 13 Feb 2008 17:28:39 GMT</pubDate>
  <title>Rails Wisdom of the Day</title>
  <link>http://myranti.livejournal.com/91477.html</link>
  <description>We&apos;re going through the guts of RescueTime this week doing our monthly optimization of the database and all of the queries we use to generate and visualize our time management data.&lt;br /&gt;&lt;br /&gt;One of the things we turned up that happens whenever a user client pushes data to our api servers is that this is the first thing that happens:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;User Load (0.044165)  SELECT * FROM users WHERE (email = &apos;blah@blah.com&apos;) LIMIT 1&lt;br /&gt;User Columns (0.023302)  SHOW FIELDS FROM users&lt;br /&gt;User Load (0.612006)  SELECT * FROM users WHERE (LOWER(users.email) = &apos;blah@blah.com&apos; AND users.id &amp;lt;&amp;gt; 323224212) LIMIT 1&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Notice the 0.6 second select call.  That happens when we update the last_data_sent field on the user object and save it using ActiveRecord&apos;s save! method.  The reason is because it&apos;s validating uniqueness of the user&apos;s email address (in case it happened to have been changed) - even though it clearly hasn&apos;t changed.  Why isn&apos;t there a dirty flag there?  Anyway, that&apos;s beside the point.  This is going to continue to get worse for us as we grow our user table size.&lt;br /&gt;&lt;br /&gt;The solution is to do this:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;User.update_all([&quot;last_data_sent = ?&quot;, Time.now], [&quot;id = ?&quot;, 323224212])&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;which doesn&apos;t perform any validations (which we don&apos;t need here) and is appropriately fast.  This is an example of how Rails is super great for getting things up and running quickly, but forgetting to go back and optimize can really hurt you.  In our case we&apos;re shaving off more than 1/2 a second from every api call.  &lt;br /&gt;&lt;br /&gt;We&apos;ve also already made changes to our database which have cut it in size from 20GB to 2GB... but I won&apos;t go into those here.</description>
  <comments>http://myranti.livejournal.com/91477.html</comments>
  <category>rails</category>
  <category>rescuetime</category>
  <lj:security>public</lj:security>
  <lj:reply-count>4</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://myranti.livejournal.com/90897.html</guid>
  <pubDate>Fri, 01 Feb 2008 21:58:09 GMT</pubDate>
  <title>Well gee...</title>
  <link>http://myranti.livejournal.com/90897.html</link>
  <description>I&apos;m an optimist, which sometimes makes me give people too much of the benefit of the doubt.  Case in point: I&apos;m an &lt;a href=&quot;http://blag.xkcd.com/2008/01/28/obama/&quot;&gt;Obama&lt;/a&gt; supporter (I&apos;ve been for a long while, back before it was cool) but lately I&apos;d been thinking that if one of the worst case scenarios happens in the next election, namely McCain being elected, that it wouldn&apos;t be all that terrible.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://seattlepi.nwsource.com/opinion/348434_mccainonline24.html?source=mypi&quot;&gt;This makes me wanna kinda change my mind.&lt;/a&gt;  Can we please not elect any of these crazy Republican guys?  Please?  I&apos;m tired of watching my homeland turn into a crazy-town.</description>
  <comments>http://myranti.livejournal.com/90897.html</comments>
  <category>politics</category>
  <lj:security>public</lj:security>
  <lj:reply-count>4</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://myranti.livejournal.com/90771.html</guid>
  <pubDate>Thu, 31 Jan 2008 22:58:46 GMT</pubDate>
  <title>I guess my computer says something about me</title>
  <link>http://myranti.livejournal.com/90771.html</link>
  <description>I don&apos;t have much time to blog these days, but I just had to post this:

&lt;blockquote&gt;
Those who claimed a Mac as their primary computer were found to be &quot;more liberal, less modest, and more assured of their superiority than the population at large.&quot;
&lt;/blockquote&gt;

&lt;a href=&quot;http://advice.cio.com/diann_daniel/are_mac_lovers_better_than_everyone_else&quot;&gt;from here&lt;/a&gt;</description>
  <comments>http://myranti.livejournal.com/90771.html</comments>
  <category>random</category>
  <lj:mood>amused</lj:mood>
  <lj:security>public</lj:security>
  <lj:reply-count>2</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://myranti.livejournal.com/90470.html</guid>
  <pubDate>Mon, 21 Jan 2008 19:40:53 GMT</pubDate>
  <title>7 Tips for Managing Your Releases Without a QA Department</title>
  <link>http://myranti.livejournal.com/90470.html</link>
  <description>I&apos;ve gone back and forth through my career from jobs where I was writing code behind the safety net of a QA department to jobs where I was the only gateway between my code and the wild world of users.  At the end of last year I quit my job and started working on &lt;a href=&quot;http://www.rescuetime.com&quot;&gt;RescueTime&lt;/a&gt; full-time, once again switching from the world of QA-ed code to what amounts to the seat of my pants.  While the details of this jump are fresh in my head, I figured I&apos;d share some of the things that I&apos;ve learned that should help when you are the only one you&apos;re relying on to protect your users from bugs, crashes, and downtime.&lt;br /&gt;&lt;ol&gt;	&lt;br /&gt;&lt;li&gt; When you think you&apos;re ready to release a significant batch of new features, wait a couple of days before you deploy to production.  The temptation for me is always to release immediately (OMG our users are going to love this!  They need it now!), but I&apos;ve found that by waiting a day or two I always come up with some scenarios, use cases, boundary cases, and bugs that I hadn&apos;t thought of.  It isn&apos;t until you start to get bored with the new features you&apos;ve written that you really understand what their limits are.  It doesn&apos;t cost much to take the extra time to let the dust settle in your mind before pushing something out that&apos;s not quite ready.  Your users who will almost always immediately find what&apos;s wrong.&lt;/li&gt;	&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Deploy to a staging environment first.  This seems obvious but when it&apos;s just you, it&apos;s very tempting to feel like your code is golden and just push it right from your laptop to production.  Make sure your staging environment runs on its own database (preferably a reasonably recent copy of production) and test out any database migrations on the staging database.  A lot of times I make last minute changes to my code on my machine and think they look good enough to not have to test them again.  Staging is your sanity check.  Use it to your advantage, because nothing drives you more insane than struggling to fix a botched deploy on the live site.&lt;/li&gt;	&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Write tests.  It&apos;s difficult to justify a huge number of tests in the early phases of a new project (are people even going to use this?) but for features that have been especially tricky to nail down or that just are essential to your product working correctly, it really helps to have tests that you can use as a baseline when you need to refactor.  RescueTime just went through a significant architecture change and I could&apos;ve used a few more tests around to make sure we covered our bases.&lt;/li&gt;	&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Have someone else verify that everything works.  Get your other co-founders to use it for a day or, if you have to, contact one of your power users and invite them to use the staging server.  You need to have someone use it other than you before launching.  There will inevitably be something that breaks caused by doing something you just hadn&apos;t thought of doing.&lt;/li&gt;	&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Branch, tag, then deploy.  Don&apos;t deploy from trunk.  Srsly.  You&apos;re going to have issues if you do. Take this scenario:  You spend a week coding up features for a new release.  The day before the deploy there&apos;s a bug in the existing code that needs to be fixed immediately.  In a rush, you submit a fix to a source file from your trunk enlistment on your machine and deploy it to production.  Whoops!  Now you have added code from features that haven&apos;t been released yet.  Not only that, but you&apos;ve only been using trunk, so you have to go back and back-merge all of your changes.  I branch every release that will be deployed to production, and only deploy tags from that release.  This makes it easy to roll back, and forces you to have separate code enlistments for each release of the code you&apos;re working on.  It also forces you to be disciplined with your checkins since each production deploy requires a new tag.  Here&apos;s &lt;a href=&quot;http://groups.google.com/group/capistrano/browse_thread/thread/b2024d79676412e6/0a6fa0b4e6637848?lnk=gst&amp;amp;&quot;&gt;a link to a discussion&lt;/a&gt; on how to add this functionality to your capistrano deploy configuration.&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Don&apos;t push new bits at peak usage.  Find a time, usually late at night (7-9PM PST is usually a good bet) when there aren&apos;t a huge number of users on your site.  That way, if you need an outage (or worse - you have a big problem), it won&apos;t affect too many users. &lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;If you do have a problem - don&apos;t panic!  Users are grinding away on a gnarly bug on your production server? Oh well, you tried as hard as you could (presuming you followed the previous advice) to release smoothly.  Your code is still &quot;beta&quot; after all.  Put up an outage page and calmly debug and fix the problem.  If you can&apos;t in a reasonable amount of time, roll back and fix it tomorrow.  The worst thing to do is to panic and turn a small issue into a larger one (like accidentally dropping your DB for example).&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;That&apos;s all the advice I have for now.  This week we&apos;ll be launching a new release of &lt;a href=&quot;http://www.rescuetime.com&quot;&gt;RescueTime&lt;/a&gt; with some nifty (and complex) new features.  I&apos;ll let you know how it goes, and will amend this list accordingly. :)</description>
  <comments>http://myranti.livejournal.com/90470.html</comments>
  <category>rescuetime</category>
  <lj:security>public</lj:security>
  <lj:reply-count>1</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://myranti.livejournal.com/88781.html</guid>
  <pubDate>Wed, 26 Dec 2007 19:46:36 GMT</pubDate>
  <title>End of Year Post</title>
  <link>http://myranti.livejournal.com/88781.html</link>
  <description>It&apos;s not quite the end of the year, but there&apos;s not much more I&apos;ll be doing before it arrives, so I might as well post now.&lt;br /&gt;&lt;br /&gt;I usually dislike odd numbered years, but this was a good one!  I&apos;ve had a string of them lately, so it seems like maybe that&apos;s a silly perception that I have.&lt;br /&gt;&lt;br /&gt;Here&apos;s what I did in 2007:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Got re-admitted to college, completed 3 courses to finish my degree, graduated with a BS in CS&lt;/li&gt;&lt;li&gt;Lost ~40 lbs and generally got back into good aerobic shape (resting heart rate &amp;lt; 60 bpm)&lt;/li&gt;&lt;li&gt;Advanced my career, worked under several great mentors, gained enormous amounts of experience in areas that had been lacking&lt;/li&gt;&lt;li&gt;Began, took a break from, and resumed work on fledgling startup company&lt;/li&gt;&lt;li&gt;Helped pitch and raise Y Combinator funding for said fledgling startup&lt;/li&gt;&lt;li&gt;Saved enough money to be able to self-fund myself while working on the new company next year&lt;/li&gt;&lt;li&gt;Re-injured my knee, had ACL surgery, rehabilitated it&lt;/li&gt;&lt;li&gt;Somehow managed to visit family and keep my wonderful wife reasonably happy through all the above&lt;/li&gt;&lt;/ol&gt;I still feel like I&apos;m missing some things.&amp;nbsp; This has been one of the busiest years I&apos;ve ever had.&amp;nbsp; I can&apos;t wait to see the payoff in 2008.</description>
  <comments>http://myranti.livejournal.com/88781.html</comments>
  <category>profound</category>
  <lj:security>public</lj:security>
  <lj:reply-count>1</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://myranti.livejournal.com/88378.html</guid>
  <pubDate>Tue, 25 Dec 2007 09:21:42 GMT</pubDate>
  <title>Yes</title>
  <link>http://myranti.livejournal.com/88378.html</link>
  <description>&lt;a href=&quot;http://www.isitchristmas.com/&quot;&gt;Is it Christmas?&lt;/a&gt;</description>
  <comments>http://myranti.livejournal.com/88378.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>1</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://myranti.livejournal.com/87616.html</guid>
  <pubDate>Wed, 19 Dec 2007 19:23:44 GMT</pubDate>
  <title>Transistions!  (Oh teh profundity)</title>
  <link>http://myranti.livejournal.com/87616.html</link>
  <description>On Saturday I finally accomplished the goal I set out to complete in October of 1996.  In reality, it was a goal I set for myself when I was somewhere around 7 years old.  I &lt;a href=&quot;http://advancement.spsu.edu/news/index.html&quot;&gt;completed my BS in Computer Science&lt;/a&gt;.  I&apos;m glad I attended the commencement ceremony, it really put a period at the end of the 11 year trail I took to get here.  I &lt;a href=&quot;http://cse.spsu.edu/newsletter/newsreleases/rescuetime.html&quot;&gt;was even a minor celebrity at the event&lt;/a&gt;. So now I&apos;m officially a scientist!  I even get to &lt;a href=&quot;http://www.rescuetime.com/about&quot;&gt;include it on my corporate profile&lt;/a&gt;.  Not having my degree was never something that got in my way, since I had taken almost all of my courses before I left school the first time.  It really does feel like my career is more grounded now, though.  It&apos;s somewhat hard to describe.&lt;br /&gt;&lt;br /&gt;At the end of the year I&apos;ll be leaving my favorite company to work for (up until this point) - &lt;a href=&quot;http://www.jobster.com&quot;&gt;Jobster&lt;/a&gt;.  I&apos;ll be cutting the strings to go full time and full speed ahead on &lt;a href=&quot;http://www.rescuetime.com&quot;&gt;RescueTime&lt;/a&gt;.  I feel like I&apos;ve learned so much in the last &amp;lt;2 years - enough that I&apos;m ready to go at it for real this time.  With Jobby, I was in a little over my head.  Now, I&apos;m extremely confident that I can help to start and run a company at this point in my career.  RescueTime is already building up a lot of good traction and interest without any real market prodding.  It speaks to the fact that people really seem to have the problems we&apos;re trying to help solve, and are very much in need of a good product to help them.&lt;br /&gt;&lt;br /&gt;So, next year should be exciting!  I&apos;ll be focused on only one thing (effort-wise) for the first time in years.    While the road ahead will be very energy-consuming, I&apos;ll actually be less burdened than I have in a while, and it should go quite smoothly.  2007 was a year of learning, branching out, refactoring, and accomplishment.  2008 will hopefully be the beginning of a whole new phase in my life and career.  Wow, does that sound sappy.</description>
  <comments>http://myranti.livejournal.com/87616.html</comments>
  <category>profound</category>
  <category>jobster</category>
  <category>rescuetime</category>
  <category>school</category>
  <lj:mood>hopeful</lj:mood>
  <lj:security>public</lj:security>
  <lj:reply-count>4</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://myranti.livejournal.com/87145.html</guid>
  <pubDate>Sun, 02 Dec 2007 01:03:22 GMT</pubDate>
  <title>Final Math Grade</title>
  <link>http://myranti.livejournal.com/87145.html</link>
  <description>Midterm Exam:    100/100&lt;br /&gt;Final Exam: 	 282/300  	   	 &lt;br /&gt;Midterm Average: (97.0)&lt;br /&gt;Final Average: 	 (94.20) 	&lt;br /&gt;Course grade:  	 A</description>
  <comments>http://myranti.livejournal.com/87145.html</comments>
  <category>school</category>
  <lj:security>public</lj:security>
  <lj:reply-count>3</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://myranti.livejournal.com/86752.html</guid>
  <pubDate>Wed, 28 Nov 2007 06:24:52 GMT</pubDate>
  <title>So I guess I&apos;m done with school.</title>
  <link>http://myranti.livejournal.com/86752.html</link>
  <description>Just finished my final exam in discrete math.&lt;br /&gt;&lt;br /&gt;Earlier this week I finished my work for algorithms.  &lt;br /&gt;&lt;br /&gt;That&apos;s it, I guess.  What a weird feeling.&lt;br /&gt;&lt;br /&gt;Graduation is Dec 15th.</description>
  <comments>http://myranti.livejournal.com/86752.html</comments>
  <category>school</category>
  <lj:mood>weird</lj:mood>
  <lj:security>public</lj:security>
  <lj:reply-count>13</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://myranti.livejournal.com/83404.html</guid>
  <pubDate>Fri, 14 Sep 2007 17:19:19 GMT</pubDate>
  <title>How busy is too busy?</title>
  <link>http://myranti.livejournal.com/83404.html</link>
  <description>I&apos;m so busy that when you see me not doing work, I&apos;m actually putting something else I should be doing off until later.  I imagine I&apos;ll have a day where everything is due at once and I&apos;ll explode.&lt;br /&gt;&lt;br /&gt;This is only until December, though.  I can take it.</description>
  <comments>http://myranti.livejournal.com/83404.html</comments>
  <category>work</category>
  <lj:security>public</lj:security>
  <lj:reply-count>5</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://myranti.livejournal.com/82906.html</guid>
  <pubDate>Wed, 22 Aug 2007 05:32:08 GMT</pubDate>
  <title>Started my first class this week</title>
  <link>http://myranti.livejournal.com/82906.html</link>
  <description>I just finished a bank of &lt;a href=&quot;http://en.wikipedia.org/wiki/Discrete_mathematics&quot;&gt;discrete math&lt;/a&gt; homework.&lt;br /&gt;&lt;br /&gt;I actually am enjoying this!  I certainly didn&apos;t enjoy it the last time around.  I used to really really fear math - not so much the difficulty, just the complexity.  There&apos;s something nice about this math, though, it&apos;s very much like solving puzzles, so far.  Oh, and it&apos;s also like analyzing and arguing.  I&apos;m good at that.  I suppose I&apos;ll get better after this course.  :)&lt;br /&gt;&lt;br /&gt;I also used to hate doing homework.  I guess I&apos;m not as sick of it anymore as I was when I started out in college 11 years ago.  There&apos;s one thing that I learned quickly in college (and it&apos;s probably the most important thing for my brother who just entered college to remember - write this down, Aaron!).  I&apos;ll even make use of what I just learned and put it in the form of a proposition:&lt;br /&gt;&lt;br /&gt;&lt;a name=&quot;cutid1&quot;&gt;&lt;/a&gt;Let p be the statement &quot;You do your homework.&quot;&lt;br /&gt;Let q be the statement &quot;You do well in your courses.&quot;&lt;br /&gt;&lt;br /&gt;p -&amp;gt; q&lt;br /&gt;&lt;br /&gt;Which reads: &quot;If you do your homework then you do well in your courses.&quot;&lt;br /&gt;&lt;br /&gt;The truth value of this statement can be analyzed using the following 4 cases:&lt;br /&gt;1) You do your homework and you do well in your courses.  - This is true&lt;br /&gt;2) You do your homework and you do not do well in your courses.  This is false, This means that if you can provide an example of someone doing their homework and not doing well in their courses, chances are either p does not imply q (in which case I&apos;m wrong), or you&apos;re just at a sucky school.&lt;br /&gt;3) You do not do your homework and you do well in your courses.  This is true, because p can still imply q, it&apos;s just that in this case you happened to get lucky, or already knew much of the material and didn&apos;t need to do your homework.  I wouldn&apos;t rely on this, though.  Case 1 is still your best bet, especially if it turns out that p &amp;lt;-&amp;gt; q.&lt;br /&gt;4) You do not do your homework and do not do well in your courses.  This is true.  See, you should&apos;ve done your homework.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I suppose I don&apos;t have as many distractions from homework this time around.  I&apos;m less inclined to watch a lot of TV or play a lot of video games these days.  It probably just happens when you get older.  I&apos;ve also been listening to a lot of lecture podcasts lately, so maybe I&apos;m just craving the experience of learning new things again.  Either way, it&apos;s great.  I&apos;m much less stressed about the prospect of taking these last two classes now.  &lt;br /&gt;&lt;br /&gt;But make no mistake, I&apos;ll also be incredibly relieved when it&apos;s all over.</description>
  <comments>http://myranti.livejournal.com/82906.html</comments>
  <category>school</category>
  <lj:mood>accomplished</lj:mood>
  <lj:security>public</lj:security>
  <lj:reply-count>2</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://myranti.livejournal.com/82558.html</guid>
  <pubDate>Wed, 15 Aug 2007 22:46:49 GMT</pubDate>
  <title>Nevermind: Facebook isn&apos;t evil</title>
  <link>http://myranti.livejournal.com/82558.html</link>
  <description>... at least in the way I previously described.&lt;br /&gt;&lt;br /&gt;They just created a feature today where you can specify the owner of Facebook application API keys.  &lt;br /&gt;&lt;br /&gt;So much for my theory. :)</description>
  <comments>http://myranti.livejournal.com/82558.html</comments>
  <category>facebook</category>
  <lj:mood>amused</lj:mood>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://myranti.livejournal.com/82399.html</guid>
  <pubDate>Wed, 08 Aug 2007 16:06:25 GMT</pubDate>
  <title>Facebook&apos;s (Evil?) Application Strategy</title>
  <link>http://myranti.livejournal.com/82399.html</link>
  <description>As many of the people who read this journal already know, I&apos;m pretty active in several areas of Facebook application development - with a project I&apos;m doing at my job (&lt;a href=&quot;http://apps.facebook.com/jobster&quot;&gt;the Jobster app&lt;/a&gt;) and some projects I&apos;m doing on my own for fun (&lt;a href=&quot;http://apps.facebook.com/favoritegames&quot;&gt;Favorite Games&lt;/a&gt; and some others I haven&apos;t launched yet).  During the time I&apos;ve spent working in and around Facebook, both as a developer and as an observer of a full-fledged &lt;a href=&quot;http://gigaom.com/2007/01/29/jobster-hooking-up-with-facebook/&quot;&gt;business partnership&lt;/a&gt;, I feel like I&apos;ve gained quite a bit of insight into their operating practices and strategies.  The jury is out about whether or not Facebook itself will break out of it&apos;s current classification as probably-just-another-social-network and launch into something entirely new (my gut says it will), but I feel like making a prediction about a new business model that the folks there will likely soon introduce.  This article is mostly meant to be a brain dump for me more than anything else.  I&apos;m not a practiced market analyst or web prognosticator, I&apos;m just exploring some ideas that have recently struck me as interesting.&lt;br /&gt;&lt;br /&gt;&lt;a name=&quot;cutid1&quot;&gt;&lt;/a&gt;&lt;br /&gt;Let me start off by saying that the Facebook application platform is quite slick.  Whether or not you agree with the way it opens up the Facebook user base to a never ending stream of product shills and bandwagons and fads, you have to admit that it provides a very robust way to tap into an existing social network and build a user-powered product.  The FBML and FQL APIs are nicely feature complete, decently documented (although the API tends to change often, with little warning), and have become reasonably stable and fast.  Using 3rd party libraries, a developer can go from zero to fledgling Facebook application in just a few hours, and work toward building a feature set that could reach millions of users.&lt;br /&gt;&lt;br /&gt;That last part is the interesting thing.  &lt;a href=&quot;http://www.techcrunch.com/2007/07/27/how-much-is-a-facebook-user-worth-at-least-030/&quot;&gt;Depending on who you ask&lt;/a&gt;, Facebook applications can be valued by the number of users who have them installed, up to $.30 per user for large applications, and maybe even lots more for particularly interesting ones who may have a smaller but growing audience.  Over the past few weeks I&apos;ve seen numerous posts on the Facebook Developer&apos;s message board offering applications for sale, and offers to buy.  There have been an emergence of speculator companies like &lt;a href=&quot;http://www.slide.com/&quot;&gt;Slide&lt;/a&gt; who are buying up the biggest and most popular applications, and there are even individual entrepreneurs who are hiring developers and buying up batches of promising applications.  I&apos;ve even heard rumblings of VC firms and angel investors seeding bits of money into the space.  It&apos;s pretty obvious that &lt;b&gt;there is an emerging marketplace for Facebook users and applications that reach them&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;There&apos;s a problem with all of this buying activity, though.  One feature that is blatantly missing from the Facebook developer platform is the ability to transfer API keys for applications.  Let me explain.  An API key is given to a Facebook user when they first submit an application on Facebook.  This key is then used throughout the application, tying Facebook users to the application when they choose to install it.  Users of an application are bound to the API key they agree to accept when they install it, and API keys are bound to the developers who provision them.  Therefore, if a Facebook application developer decides to sell his application, there&apos;s no way to transfer the API key to the purchaser of the app without losing all of the application&apos;s users.  &lt;br /&gt;&lt;br /&gt;To put it simply, API keys, and with them the users of the application, are non-transferrable.  Since the value of the application is in its users, what must usually happen is the API key remains with the person who created it, and a contractual obligation is included in the sale that gives the purchaser access to the key through the originator&apos;s account.  This is risky, though, because if that user deletes the API key (by accident or on purpose) all of the users of the application are lost, with no recourse by the company who buys the application.  &lt;b&gt;In essence, there&apos;s no good way to transfer the control of a Facebook app without losing its value.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Facebook&apos;s official stance on this seems to be that if a user sells an application, the purchaser should create a new API key and transfer the code, database, and user information collected into a new application of the same name.  The problem with this is there&apos;s no guarantee that you will be able to regain all of your user base, since there&apos;s no way (other than them returning to your application&apos;s specific URL) to reach them to let them know that they need to accept a new API key and re-install it to continue to use the app (and thus get counted in the application&apos;s numbers).  I can be said that they have a reasonable argument against this kind of thing predicated on the idea of protecting the privacy and user experience of their members; but that&apos;s a weak argument at best, especially in the case when a larger group can take over the application and provide more useful features. When you consider that along side of the fact that Facebook actively deletes accounts that are clearly not actual people, and explicitly does not allow companies to make corporate accounts, &lt;b&gt;it really seems likely that they&apos;re planning on taking a piece of the action of the marketplace of applications they&apos;re creating&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;I don&apos;t believe that the complexity of the process of transferring an API key is a preventative factor, either.  There doesn&apos;t seem to be any serious security or architectural reasons I can think of that would make an API key transfer feature difficult.  Facebook isn&apos;t a small organization engineering-wise.  When I visited them early in the year I believe they had over 50 software developers - more than enough to undergo some pretty daunting architectural gymnastics.  &lt;br /&gt;&lt;br /&gt;What seems to make the most sense is that &lt;b&gt;Facebook is probably working on creating a way to sell applications which requires a fee payout to Facebook&lt;/b&gt; (for an amount which would most likely be tied to the number of active users).  This idea doesn&apos;t seem too big of a stretch when you consider &lt;a href=&quot;http://www.techcrunch.com/2007/07/19/breaking-facebook-has-acquired-parakey/&quot;&gt;the steps they&apos;ve been taking&lt;/a&gt; to move toward a &quot;web operating system,&quot; or a &quot;google of people,&quot; as well as &lt;a href=&quot;http://developers.facebook.com/news.php?blog=1&amp;amp;story=24&quot;&gt;their own internal promotions&lt;/a&gt; encouraging developers to replace popular features of Facebook with their own applications.  If successful, the value in having this kind of a marketplace would be quite significant, especially as the larger companies begin to dip their toes in the Facebook application space.&lt;br /&gt;&lt;br /&gt;It&apos;ll be interesting to see how this plays out.  You can find plenty of horror stories of developer accounts getting disabled for &quot;misuse,&quot; completely orphaning the applications they&apos;ve created, as well as their users.  There&apos;s a specific way Facebook wants you to develop applications on their platform and they are unforgiving about it, to the point of account termination for non-compliance. It&apos;s worth the while of everyone who&apos;s interested in entering this space to read the terms of service and understand them fully.  Facebook sometimes seems merciless about enforcing their policies.  It&apos;s easy for them to hide behind their &quot;just protecting our users&quot; stance.&lt;br /&gt;&lt;br /&gt;One thing&apos;s for sure, the folks at Facebook hold all the keys to this emerging marketplace.  You can bet that they&apos;re going to find a way to monetize it, and keep it under their tight control.  I just hope that they&apos;re not evil about it.&lt;br /&gt;&lt;br /&gt;</description>
  <comments>http://myranti.livejournal.com/82399.html</comments>
  <category>jobster</category>
  <category>facebook</category>
  <lj:mood>contemplative</lj:mood>
  <lj:security>public</lj:security>
  <lj:reply-count>2</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://myranti.livejournal.com/82115.html</guid>
  <pubDate>Wed, 08 Aug 2007 03:09:26 GMT</pubDate>
  <title>Exciting work update!</title>
  <link>http://myranti.livejournal.com/82115.html</link>
  <description>&lt;a href=&quot;http://www.seattlerecruiting.com/2007/08/jobster-and-fac.html&quot;&gt;Here&apos;s the latest article&lt;/a&gt; about the new Jobster Facebook app I worked on.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://jobmatchbox.com/2007/07/30/jobsters-new-facebook-app-is-fantastic/&quot;&gt;There&apos;ve&lt;/a&gt; &lt;a href=&quot;http://www.missiontuition.com/find-a-job-on-facebook-with-jobster/&quot;&gt;been&lt;/a&gt; &lt;a href=&quot;http://facereviews.com/2007/07/30/networking-plus-job-search-equals-jobster/&quot;&gt;several&lt;/a&gt; articles lately, all of them with great things to say.&lt;br /&gt;&lt;br /&gt;The &lt;a href=&quot;http://apps.facebook.com/jobster&quot;&gt;application&lt;/a&gt; has over 42,000 users now.  I&apos;m getting to work on a new feature that will launch soon that brings back some of the spirit of &lt;a href=&quot;http://www.techcrunch.com/2006/03/27/the-jobby-experiment/&quot;&gt;Jobby&lt;/a&gt;, which should only increase our adoption numbers.  &lt;br /&gt;&lt;br /&gt;Here&apos;s hoping this Facebook thing takes off.  ;)  I should say, though, that I&apos;m currently working on an article about some Facebook application fishiness I&apos;ve been uncovering.  I think it&apos;s interesting how they&apos;re positioning their application ownership.  I don&apos;t think people quite understand the leverage Facebook has in this space.  More on that soon.&lt;br /&gt;&lt;br /&gt;EDIT:  &lt;a href=&quot;http://myranti.livejournal.com/82399.html&quot;&gt;Here&apos;s the article I was talking about&lt;/a&gt;.</description>
  <comments>http://myranti.livejournal.com/82115.html</comments>
  <category>jobster</category>
  <lj:mood>happy</lj:mood>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
</channel>
</rss>
