CAPTCHA. reCAPTCHA.

Finally installed the very excellent reCAPTCHA plugin for WordPress. I like it when my posts get comments, I don’t like it when the comments are spam. So, if you look at the comment field on this blog, it’s got the reCAPTCHA interface hanging out, keeping us safe. Also, reCAPTCHA helps decode books. Awesome!

You should post a comment — try it out! 🙂

Gnip comes a-gnocking

I wanted to cover a nifty-looking service that’s just launched — Gnip.

It’s a simple premise: instead of asking every social networking service what’s going on, Gnip will tell you what’s up (they’ll even POST it to your website). They’re going to be — Atlas-style — lifting a huge weight off of social networking providers. I hope they do well.

Of course, in the interests of disclosure, I know Eric.

It’s not the same as it was.

I came across an article on BBC talking about advances in health care in the past 60 years. Honestly, 60 years isn’t that long, considering the changes that have occurred were previously unknown to humanity. So, a lot of assumptions about things have to change. Getting in a car accident; getting shot; damage to organs; lots of things are becoming undoable. This increases risk taking, and as every investor knows, increases rewards.
60 years ago, you didn’t have people jumping the Great Wall of China on a skateboard. It’s not that it wasn’t physically possible. They had the wood and bits of plastic back then. No laws of physics have changed. But 60 years ago, no one was able to get to this level without killing themselves.

Athletes have always pushed their bodies to the edge. But it used to be that if you crossed the line, there was no going back. You don’t really get a second chance if you break your neck. Or, at least, you didn’t. Now we routinely have people rehabilitating after a broken neck. We’ve given athletes the ability to take bigger risks, make bigger mistakes, and come back smarter and stronger.

And all these because some doctors figured out a few neat tricks. It’s amazing to see how growth in one area improves performance in another.

I can’t wait to see what’s next. It never was like this before.

Effects are caused.

In my eyes, this is a good article about Bill Gates. It’s a little suck-up-y to Gates in a lot of areas, but I really enjoyed one particular quote about halfway through.

Then I met Warren, and I thought, “Oh, wow, this guy isn’t just about buying and selling stocks and businesses. He is thinking about how the world works.” And he asked me questions that I always wanted somebody to ask me, about why hadn’t IBM been able to do what we had done, and how software gets priced, and why does one company have a defensible position. He wanted to understand the dynamics of the industry. To me it was way far away from, “What is your company worth?”

Then he explained to me about how Wal-Mart had not only changed things in its business, but how it had an effect on newspapers because they thought of their advertising differently than individual local stores had. And he talked about how banking really worked in terms of credit risk. The whole time all I could think was, “Hey, I’ll be smarter about running Microsoft after I talk to this guy.” And so I stayed the whole day.

I can think of several ways that this story demonstrates why Warren Buffett is where he is.

  • He meets smart people
  • He asks good questions
  • He listens
  • He helps others understand things better; he gives great knowledge for free
  • He thinks things through at multiple levels

I don’t know how much of Buffett’s image is genuine, and how much is PR fluff. But he certainly seems to often demonstrate specific qualities that are good.

Are you with me?

If you’re talking to someone, you have to pay attention to make sure they’re understanding you. This goes one-on-one, as well as speaking to a group. Communication is two-way.

Saw a nifty feature of meetup.com, a site that gets helps manage group meetings, from programmers to political rallies. I go to a PHP meetup in Orlando that organizes through them. Kevin is presenting the Zend Framework tomorrow, and I wondered what happened, since I usually get reminder emails about the meetings.

I logged into meetup.com, and was immediately greeted with a message saying that they’d had problems delivering mail to me recently. It asked if I’d changed my email address, or marked something as spam; as well as options to change my email address, or confirm that I was still using the same one.

Given the number of apps that just spamjaculate messages from a “no reply” address, it’s nice to see that at least one is listening back.

The tortoise was right.

lol.

But oh no. Show them one bullshit-laden presentation and the entire Rails community is champing at the bit and selling both kidneys to ditch all previous Ruby implementations and everything they thought they knew about the persistence layer and embrace some questionable closed-source vapourware, from the guys who brought you that previous world-storming web framework Seaside. What’s that, you’ve never heard of Seaside? I wonder why.

I think a great point is made in this post about the level of speedup that can be achieved. There’s some group claiming they can speed up Ruby by 60x. That’s a ridiculous level of improvement, and Sho is calling them on it.

Lots of developers think they’re brilliant, and want to be that one genius that finds this amazing breakthrough that no one else thinks of; but it doesn’t happen that way. When there’s a lot of smart people working on something, mind-blowing breakthroughs are incredibly rare. A 3-5x speed increase is a massive improvement, and certainly a clever code artist could make it happen; it’s rare to have 3-5x, but possible. Doing something 60x better than anyone else is borderline unimaginable, and as Sho says, “requires extraordinary proof”.

Most real progress is slow and steady over time. And boring. But that’s the nature of real progress.

Thanks to Michael for the link.

Finding text from a Firefox Extension

OK. Because this was confusing the hell out of me, I had to post about figuring it out.

Let’s say you’re a developer writing a Mozilla Firefox Extension that searches for text on a page (or rather, in a browser window). If you have a button that has the following functionality attached onclick:

var webBrowserFind = getBrowser().selectedBrowser.webBrowserFind;
webBrowserFind.searchString = TEXT_TO_SEARCH_FOR;
var result = webBrowserFind.findNext();

So, every time you click the button, it will search for the text in the current browser tab. Cool.

I did this, and it was working fine, until I wanted to find the second instance of the string on the page. I’d click it twice. Sometimes it would highlight the first instance again. Sometimes it would highlight the second instance. No real sign as to why, and as a kicker, it would never find past the first two instances of the string on the page.

Turns out that after a certain timeout, the nsIWebBrowserFind interface is going to reset which find instance it was at. This means that on the second click, it will find the first occurrence again. If you click twice within the timeout, you’ll get the second result. I didn’t see any mention of this in the documentation, and it’s not clear what the mechanism is that’s resetting the instance.

If you click really fast, you’ll get the third and fourth results. For once, getting frustrated and repeatedly clicking fast was the solution.

Hat tip to mfinkle and johnm of irc.mozilla.org#extdev for helping me find the nsIWebBrowserInterface in Seamonkey

Patent invalidity is hilarious!

Found at: http://www.feld.com/blog/archives/2008/05/all_decisions_o.html

Turns out all patent decisions since 2000 might be invalid. Patent judges have been appointed by an agency with no constitutional rights to do so. So, everything they’ve decided isn’t legally binding.

There’s going to be some bill passed by Congress to uphold these decisions. How many billions of dollars have traded hands since 2000 with respect to patent decisions?

On the other hand, maybe this will be what finally gets them to revisit the sorry state of the patent system in the US.

Quicksilver + Adium

I’ve had a MacBook Pro for about 3 days now, and I’m loving it. One really sweet program is Quicksilver, which is like the Windows Run dialog on steroids. There’s a great script I’ve just started using that lets you send Adium IMs from Quicksilver

It’d be even sweeter if as you type the username, it would display a dropdown of which user will actually receive the message. Right now it sort of “guesses” which the corrent name is.

Also, it seems to open a new tab everytime. But I’ll go with it for now.