A icon to save your ass

I just forwarded an email asking for an RFP around to the team at Cloudspace, and since I use address book autocomplete, I checked the email addresses very carefully before sending the email. I’ve heard of (and seen) too many instances where someone quickly sent an email, and addressed it to the wrong person. Funny how it seems to happen most when the person who actually receives the message is the one person who it should definitely have not gone to.

Ideally, my email client would have pictures of everyone, automatically grabbed from their Facebook/Myspace/Interblag Networking accounts. Humans are so visual that it would be immediately noticed if an email wasn’t going to who I wanted it to.

I think the next best thing — at least from a corporate email perspective — would be an highly noticeable icon in the mail window that would only display if all recipient email addresses matched a set of criteria. Some obvious ideas are:

  • All domains match each other
  • All domains are on a whitelist
  • All domains match the sender’s domain

It should be easy enough to hack together an extension for Thunderbird to implement the “highly noticable icon,” but I know that the photos of everyone is the killer of the two. I think it’ll be another few years before we have good enough pictures of everyone (in terms of being auto-grabbable, and not having to take their picture deliberately), but I think the concept will show up soon.

Bayes, and the Mythical Viagra Spam

OK. I’ve been running a test where I’ve been attempting to gather Viagra spam into a Gmail mailbox, viagraspamtest@gmail.com

I started the test in mid-May, posting the email address to questionable and shady mailing lists, as well as linking the address in plain text on my blog.

And 6 weeks in, how is it going? Well…it’s not. There’s not even a hint of Viagra spam. Nothing in the spam folder, nothing in the Inbox. Just all legitimate mailings from newsletters.

Possibly, it takes time to get onto shady mailing lists. I imagine lists of emails get hacked and resold to spammers, but that it takes a while for a given email list to work its way down to the spammers.

Also possible — there’s no more Viagra spam. As in, spam mentioning Viagra by name. They are either advertising whole pharmacies, a class of drugs (blood pressure, E.D.), or the ad is in an image that gets embedded into the email.

Maybe I should retry this project with the word “pharmacy”. Viagra spam is *sooo* 2002, anyways.

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 answer is Simple.

Let’s take the average person. They want to go into Burger King and order a Whopper. They don’t want to order 4 oz of ground beef (precooked weight, tolerance of +/- .2 oz, stored above 140F for no more than 2 hours); a bun with sesame seeds (gross weight 5 oz, between 50-70 sesame seeds evenly distributed across the top of the bun); a slice of tomato no thicker than a quarter inch, but no thinner than an eighth of an inch… They don’t care about the process, only the result. Is it tasty enough? Is it filling enough? Does it meet the requirements of a burger?

The exception, of course, is the builder, or the engineer. The person who is designing the burger (not the employee cooking it; the person at corporate who actually formulates the blueprint for the company’s food) wants the burger consistent. They want to know all of the details. They care.

So, when dealing with “I don’t care”, the answer is simple. Yes, or no (with a simple reason why not). Handle everything for them, and they’ll love you for it.

When dealing with “I care” — jump in the deep end, and pull them in too. Show them everything you’re handling, and they’ll love you for it.

Of course, the trick is telling the two apart.

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.

Restaurants, and Not Getting Poisoned

I read an article about a Checkers fast food restaurant being cited for keeping bread in the men’s bathroom, and they were nice enough to link out to a site — myfloridalicense.com

I checked out the site and found a fantastic search engine. Florida keeps records online of all restaurant inspections, and what the restaurants were cited for. I’ve been enjoying checking up on the local eateries. My buddy Corey was telling me how North Carolina requires the inspection score to be visibly posted to diners, and I think that’s a great idea. Some places that you’d think are dirty and disgusting actually have incentives to keep their kitchen very clean. Other restaurants, where you think they have their act together are actually horrible places. Being able to see the score is a useful piece of info when answering the question “How likely am I to get food poisioning?”

Also, bonus link: The dirtiest restaurants in Central Florida