Revisiting my crappy predictions

Last year I’d made a prediction about Quicken developing an online version which, a year later, still hasn’t happened. Mint, the startup that just won the TechCrunch 40 competition did hop into this space, and they started by tackling one of the two things I’d highlighted as the most important topics for a startup to handle: automatically connecting to the various financial institutions to download your data.

The second thing I wanted the startup to tackle was importing one’s existing Quicken data, which Mint doesn’t do. It really can’t until it matches Quicken’s feature set to a reasonable extent, which it may never do. I want to do “crazy” things like enter my own transactions to manage cash, and track stocks/investments. Little details like that.

I’m not sure if that’s where Mint is heading, but it certainly could if it wanted to. Coming up with the base infrastructure, data syncing, and the scaling/security around all of that are the hardest parts, I would think. Adding features like the ability to create a cash account, which is just a check register that’s fully editable, are probably not hard. Neither is adding some rudimentary investment tools and growing those features.

I’ve used Quicken consistently for 6-7 years and am perhaps currently spoiled by it’s feature set. A good rule of thumb for whether or not something is a serious competitor to Quicken is whether or not they can tell you your Net Worth. To get an accurate count for that, it would have to include all of your cash accounts (checking/savings/cash in wallet) plus investment accounts (401k/IRA/other investment accounts) plus your liabilities (mortgage/car loans/school loans) plus your assets (car/house/boat/etc). It is becoming clear that building such a feature set is no small feat, and as such there seems to be no end in sight for me as a Quicken user.

Death of the "extended network" in MySpace…

This is old news (July of this year) but I didn’t see this post until now. Tom from MySpace explains what the idea was behind the phrase “extended network” on MySpace, and why they eventually got rid of it.

if dave knows john and john knows amy, then dave could see amy in the network. when you’d view someone’s profile it’d show if you were friends, or how you were connected to a person … within a week (or maybe even less time, hard to remember), we realized that this ‘network’ concept was really hard to scale .. the site was slowing down trying to process this relationship each time you viewed a profile. in fact, i later heard from a friendster developer that this is what slowed them down for the first year.

I thought it was pretty interesting, especially when he goes on to explain that people preferred simpler controls anyhow (public, private, friends only) and didn’t see the value in the “extended network” concept. This is in obvious contrast to LinkedIn, where the degrees of separation are an important aspect of the site (obviously, the sites serve different purposes). My gut feel is that it wouldn’t be hard to get that to scale (memcached hashtable with extended friend ids?) although MySpace’s userbase is roughly ten times larger than LinkedIn’s.

Thank you Spam Karma 2

If you have a wordpress blog, and have the usual comment spam issues, I’d recommend checking out Spam Karma 2.

I don’t get a lot of spam on my personal blog because I have comments automatically disable after a few days, however that’s not an option on the wishlisting blog, especially for technical posts that people sometimes stumble upon months later via Google.

Spam Karma is free on commercial blogs (unlike Akismet) and uses a number of cool tricks to figure out whether a post is coming from a legitimate person, including:

  1. How long they spent on the page before submitting a comment
  2. Whether or not they’re using an actual browser (javascript test)
  3. How many links are in the comment and the ratio of links to text
  4. A few other things

It then gives the post a “karma” score. If the karma score is too low (looks like spam) it will give the person a captcha so they have one last shot at proving they’re a human. It’s a pretty sweet idea. Rather than hitting everyone with a captcha, they just use it on particularly suspicious comments which is far less intrusive.

Posts with low karma and a failed captcha get marked as spam, and don’t end up in your moderation queue (although you can get a regular spam report).

myth2ipod on Ubuntu

If you want to get myth2ipod working on Ubuntu (assuming you have both MythTV and Ubuntu installed) there aren’t any instructions to my knowledge. I found the currently posted set of instructions to be outdated (last update 3/5/06). The following, updated instructions are actually much simpler (everything is in apt).

I did as follows (Myth .20, Ubuntu 7.04):

  1. Get the appropriate version of ffmpeg (with xvid support). To do that, add this line to your /etc/apt/sources.list file:
    deb http://packages.medibuntu.org/ feisty free non-free
    and then run
    wget -q http://packages.medibuntu.org/medibuntu-key.gpg -O- | sudo apt-key add - && sudo apt-get update
    Then install your brand new version of ffmpeg:
    sudo apt-get install ffmpeg
    (found that tip linked from here)
  2. To test what you did in step 1, run ffmpeg -version and make sure you see ‘enable-xvid’ and ‘enable-faac’ in the output.
  3. Install the codec library, which is required to make sure you can encode aac audio.
    sudo apt-get install libavcodec0d
    To test that you can, run ffmpeg -formats and make sure you see DEA aac listed under “Codecs”.
  4. Install mp4box, which is available in apt under ‘gpac’ sudo apt-get install gpac
  5. Grab nuvexport:
    cd /tmp
    wget http://forevermore.net/files/nuvexport-latest.tar.bz2
    tar -xjvf nuvexport-latest.tar.bz2
    sudo mv nuvexport-0.4 /usr/local/share/nuvexport

  6. Copy down the scripts and put them in the right places:
    cd /tmp
    wget http://myth2ipod.com/myth2ipod.txt
    wget http://myth2ipod.com/iPod.pm
    sudo mv myth2ipod.txt /usr/local/bin/myth2ipod
    sudo chmod +x /usr/local/bin/myth2ipod
    sudo mv iPod.pm /usr/local/share/nuvexport/export/ffmpeg/iPod.pm
    sudo ln -s /usr/local/share/nuvexport/nuvexport /usr/local/bin/nuvexport
  7. At this point you can follow the rest of the instructions at the site for editing /usr/local/bin/myth2ipod , etc. The rest of it is not distribution-specific. The slight change I had to make was the path to MP4Box which is hard-coded in the script to point to /usr/local/bin but on Ubuntu it gets put into /usr/bin.

Safari on Windows… why?

A few of us at work were trying to figure out why Apple released Safari for Windows yesterday. We came up with a number of reasons against it:

  • It doesn’t (directly) make them any money.
  • It does cost them money. Aside from the up front costs of producing it, they’ll now enter the (endless) cycle of patching holes that allow people to exploit Windows.
  • Firefox is the most popular competitor to Internet Explorer, and it seems to have been stuck at the 15% penetration mark for some time now.
  • If you think there’s room for a browser that touts itself as being “really fast” but has lackluster support for 3rd party extensions, maybe you should have taken a look at Opera‘s success on the desktop. (below 1%)

But, of course, Apple also announced the the “API” for building iPhone applications will be Safari. So, that changed the game a little bit. Some reasons for putting Safari on Windows:

  • Legitimize the iPhone’s development platform. If it works in Safari, it doesn’t just work on the Mac, it also works on Windows, and on the iPhone.
  • Allow iPhone developers to develop on Windows. It’s a theory, although if that’s all they wanted, they wouldn’t need to bundle Safari with iTunes – they could just offer it as a download from their developer site.
  • Foster “the switch.” If I’m on a Windows PC and I use iTunes for my music, and Safari to surf the web and use a variety of web apps, maybe next time I buy a computer I’ll just get a Mac which has those familiar things on it.
  • Give them an avenue for pushing web standards. If they’re looking to extend web standards to provide for things like, perhaps, special mobile-based extensions, this again gives them a more legitimate/widespread platform for doing so.

I’m not thrilled, being a web developer, at having yet another browser-OS combination to have to test on. I also don’t think that it will be a successful/popular browser on Windows. I hardly even use it on my Mac (I prefer Firefox, in large part due to extensions). But, I’m interested to see what happens with it. Anyone else have some good theories?

Basing an architecture on plugins

I’m a bit concerned at the fact that the Rails community is relying more heavily on plugins to deliver functionality than building that functionality into Rails. It’s a good idea on paper, but in practice you’ll find that it’s not uncommon for two plugins to stomp on each other. The asset_packager and distributed_assets plugins both override the compute_public_path method in Rails, and step on each other. There’s a similar story with the conditional_cache plugin and the caching-plugin.

Fortunately for me, in all of these cases, Rails core decided the features that these plugins provide are worth including in core and some form of them will be in Rails 2.0. I can only imagine that the proliferation of plugins is going to bring up this problem again and again, however. Because Ruby is a dynamic language, you practically get a plugin architecture for free. The problem is that it’s totally unstructured, and people can clobber one another’s methods at will.