austin entrepreneur

Big Next Step: Mass Relevance

Posted in Uncategorized by efalcao on December 20, 2010

About two years ago I had a simple idea: that businesses want to leverage social media content that is relevant. 19 months ago, right after my twins were born, we were kicked into action by a tweet from Doug Williams at Twitter that said (paraphrasing): “Is anyone working on Twitter moderation, we have customers.” It was crude, but we had our first product written by the end of the weekend.

Over the next 19 months we worked on Tuesday nights and when we had time. We iterated, found customers and revenue. Fast forward to today and we now have a seasoned executive in Sam Decker to lead the company, a new name (Mass Relevance) and nearly $2 million in venture capital funding from FLOODGATE and Austin Ventures.

So after 19 months, I’m very happy to be saying that the adventure is just beginning.

Here are some articles about our funding:


Thirsty for Financial Skills

Posted in Uncategorized by efalcao on April 20, 2010

I’m passionate about coding but lately I have been spending a lot of free time studying money. First, Fred Wilson’s MBA Mondays turned me on to some of the financial fundamentals of business. Next, I had to cope with TweetRiver‘s taxes, which is extremely frustrating since I know almost nothing about accounting or corporate taxes (thankfully, I learned I could file an extension on the 1120, whew).

The switch in my brain really flipped when I read The Big Short by Michael Lewis, which mentioned You Can Be a Stock Market Genius a few times. I was intrigued and bought the book billed as “the great investing book with a terrible name.”

I couldn’t put either book down. I am very intrigued with the analysis of special situation and value investing. I would really love nothing more than a great education on how to value a company, not only by its financials but also by understanding what makes a business a great business (Warren Buffett style).

There is one quality about financial/business analysis that is really new to me relative to my skills as a developer: the uncertainty of it all. The reason why I loved Computer Science in college was that I knew if my answer to a problem was right or wrong, period. Contrast that with making trades or deciding what idea to pursue as an entrepreneur – I just can’t ever feel fully confident. Maybe it’s healthy self doubt or maybe I’m just too much of a novice.

I guess we’ll see what happens as I start to explore this field more.

On another note, I’m just plain thirsty lately. I need to drink more water….

Real Time Storage and Search Fun

Posted in Uncategorized by efalcao on March 25, 2010

I have been toying with interesting methods for improving how we store and make searchable streaming content inside of TweetRiver and something else I am prototyping.

Today we have mysql+sphinx. Things work ok, although writes to mysql are starting to take a bit since we’re trying to make sure that no duplicate tweets are inserted. Also, sphinx delta indexing (done every minute) is not available for search as quickly as we’d like.

Attempt #1: Build it like Facebook inbox search

Store a reverse index in cassandra, where the customer_id is the key, the term is the super column, and a time-sorted list of columns points to tweet ids. Raw tweets are stored in cassandra in another column family.

Pros: Excellent write speed, Worked extremely well for single-term searches

Cons: I don’t feel like building a search server for complex searches (multiple words, etc). Also, SuperColumns are currently only practical up to a few thousand terms.

Attempt #2: Lucandra!

Lucandra makes Cassandra the back-end for Lucene. This gives you the write performance of Cassandra and fancy Lucene queries that read from Cassandra insertions in real time. The big drawback here is that Solr support is not here yet (big frown) and I don’t really want to muck with finding ways to talk to Lucene from Ruby.

Attempt #3: Zoie Solr Plugin

I tried to detach myself from the hotness of cassandra and focus on near real time Solr, after all, I just want to be able to query as tweets are being inserted, period. I found the Zoie Solr plugin, which appears to have been released just a few days ago by the SNA team at LinkedIn. Basically, the Zoie plugin replaces the Solr index reader and update handler and promises to make things available to search immediately. This was fairly easy to get going and seemed to work quite well. I was very excited to hear that the Zoie team is looking towards “forward rolling indexes” next, which is ideal for logs and tweets since only the most recent N documents are kept in the index…awesome stuff.

Is there a winner?

I don’t really know where to go from here at this point because I have a feeling that Solr integration will be coming to Lucandra very soon. I want to wait until then to see which performs best. I’m looking for ease of setup, convenient storage of original document terms, great search performance regardless of quantity and rate of insertion, and decently powerful querying.

Tagged with: , ,

Speaking at Innotech Austin Tomorrow

Posted in Uncategorized by efalcao on October 15, 2008

I’ll be presenting on “Commercial Advantages of Ruby and Rails” tomorrow (10/16) 2:30pm at the Innotech Austin conference.

See you there!

FiveRuns releases Rails App Health Dashboard

Posted in Uncategorized by efalcao on July 25, 2008

FiveRuns just announced a great feature added to Manage 2.0 that allows users to have a one-page look at the health of their Rail’s app.

Check it out

Tagged with: ,

clientperf v0.1.6 Released

Posted in Uncategorized by efalcao on June 29, 2008

Spent a few minutes getting some bugfixes into clientperf today.

How to upgrade:

gem install clientperf
clientperf /path/to/rails/app
rake db:migrate

What is fixed:

  • Don’t choke on SafeERB
  • Added indexes (indices? can you say indexes when you’re talking about databases?)
  • Graphs don’t choke when there is no data.


Tagged with: , ,

Slides From My Austin on Rails Talk

Posted in Uncategorized by efalcao on June 25, 2008

Here are the slides from my talk last night:

Announcing Clientperf: Simple Client-Side Rails Performance

Posted in Uncategorized by efalcao on June 21, 2008

I’m giving a talk at Austin on Rails next Tuesday on applying the 14 rules of high-performance websites in the typical rails mongrel/nginx stack, the main idea being to focus on some of the important implementation details when it comes to client-side performance optimization.

As I was planning, I realized that there was no simple as in the we’re-all-spoiled-with-rails simple way to measure client download times in production. Now, there is clientperf. It’s just a start, but decent enough to benchmark the actual client performance impact of any optimizations you make:

How it works

It injects javascript into the page that takes a timestamp at the top of the page and at the bottom of the page. Once the browser is done downloading, evaluating and rendering all assets, clientperf makes one last image request to your server with the start time, end time and the URL. Piece of cake.

How to install

gem install clientperf
clientperf /path/to/rails/app
rake db:migrate

and that’s it!



Thanks to Howard Rauscher for the javascript. Thanks to FiveRuns dev team for helping me learn neat things.

Enjoy and please let me know about bugs.

Turning off RJS debugging on a per controller/action basis

Posted in Uncategorized by efalcao on June 10, 2008

FiveRuns TuneUp is a neat profiling tool for developers. Developing this tool also has brought up some interesting challenges. Here is one that I encountered today:

TuneUp injects into the head of the page and does an AJAX call to fill up the actual run data. We noticed that it was running slow and one of the reasons is that in development mode rails wraps RJS in a javascript try/catch block that produces an alert message with the RJS if there is an exception. On a random run, AJAX response size without RJS debug: 82k, with debug: 386k. That’s quite a bit of overhead.

We can’t tell all TuneUp users to manually turn off RJS debugging, so here is how we disable it solely for our one heavy AJAX action in rails version 2 or greater:

def action_name
  debug_rjs = response.template.debug_rjs
  response.template.debug_rjs = false
  response.template.debug_rjs = debug_rjs

It’s trivial, but it took a little bit of digging through the rails source to find out how to get to this from inside the controller, so I hope it’ll save others some time

FiveRuns 2.0 is Now in Beta

Posted in Uncategorized by efalcao on May 13, 2008