Crossloop launches their marketplace

Photo by Walsh

A couple of years ago I first ran across Crossloop, a free and easy-to-use PC screen sharing tool. I liked it so much I wrote up a review, and ended up spending a lot of time talking with and eventually meeting Mrinal Desai, the man with the vision behind the product.

Technically there’s a lot that attracted me to the application. They’ve done a great job of simplifying the user experience to the bare minimum, rather than overwhelming them with the space shuttle control panel like most previous sharing tools. They also run their business with a heavy focus on user statistics, so they can tell you exactly how many minutes have been spent on Crossloop, 31 million at the last count with 600,000 users!

Another thing I liked was that they always had a business model in mind that wasn’t advertising. Today they’ve finally gone live with their help marketplace. This allows people in search of technical help to connect with someone who can give them a hand. It’s initially free, but the plan is to charge a fee to thos who need help, and pass that on to the helpers. This makes a lot of sense to me, there’s a big pool of people out there with time and technical know-how who can answer questions, and a lot of people with simple computer problems who’d be willing to pay a small amount for help. If the system takes off, the world will end up with a lot of poor but tech-savvy folks (eg students) having a new income, and a lot of users with problems solved. There’s already a lot of companies using Crossloop for technical support, this seems a good way to make it easy for individuals to get involved, rather like eBay for services.

Trying to sell a release with no new features

"There’s really nothing to it. There’s no story, so it’s really hard to say anything."

This video of a friend-of-a-friend desperately trying to find something good to say about the latest release of his software brought back memories of trade shows past. When the powers-that-be want to bump up the version number, but don’t synchronize that with any actual development schedules, you end up trying to find something, anything, to demonstrate.

Are your emails too robotic?


I love the random email conversations my blogging spawns, which have involved everything from why hedgehogs hibernate to arcane technical details of COM dll registration. I recently received an email from a young entrepreneur asking me to check out their site. Then, a few days later I had a another email saying basically "I noticed you read the last email we sent you, why didn’t you reply?". Checking the source of the original mail, he’d embedded an image bug to work like a read receipt.

I had to admire his enthusiasm and drive, but was definitely creeped out by the way he was tracking me. I wish I understood why my marketing sometimes fails, so to try and turn this into something positive, I thought I’d discuss what didn’t work for me with his original message:


Subject: Blog Question

I came across your blog and thought you might be interested in trying out my product X.  We help you solve common problems with creating your blog from placing in text links, placing pictures and videos, and more.

Check us out at , use the invite code: X

If you have problems understanding what we do on the site please let me know, we are a young company with a great product.  We have a new site coming out in the next few days that will make everything more clear.
Thanks for your time, I look forward to hearing what you have to say.

Robert X
Forward email
This email was sent to, by
Update Profile/Email Address | Instant removal with SafeUnsubscribe™ | Privacy Policy.

Email Marketing by
X | 142 South X | San Francisco | CA | 94103


I came across your blog and thought you might be interested in
trying out my product X.

For a start, there’s no "Hi Pete", or any other personalization that demonstrates he’s an actual reader of my blog. Mentioning a recent article is a quick way to show you’ve spent a little time learning about your recipient.

We help you solve common problems with
creating your blog from placing in text links, placing pictures and
videos, and more.

This sentence is pretty vague and unclear. You have a few seconds of someone’s attention, you need to make a clear and concrete promise about the benefit to them of investing more time on your proposal.

If you have problems understanding what we do on the site please let me know, we are a young company with a great product.

I actually quite like this part, it’s projecting a good attitude and wanting to start a conversation.

We have a new site coming out in the next few days that will make everything more clear.

This, not so much. That made me think, "well, maybe I’ll just wait a few days and look then, rather than spending time now on something unclear".

Thanks for your time, I look forward to hearing what you have to say.

The double thanks adds to the assembled-by-robots feel.

This is a screenshot of the actual footer to the message. The mentions of email marketing and unsubscribe options made it seem even more like this was a mass-mailing. The tracking bug is hidden in there too, though I didn’t know it until I checked.

I will now be replying to Robert, and I hope he takes this in the spirit it’s intended. I spend plenty of time trying to get people interested in my projects, so I know it’s not easy. One thing I have learnt is that there’s no short-cut to getting someone’s attention. You have to put in the time to understand what your recipient wants, and highlight what you’re offering that fits in with that. A form letter like this is unlikely to get the response you want.

An easy way to install your Firefox extension


Firefox’s biggest selling point is its security. Unfortunately for third-party developers, this means that users have to do several awkward steps before they can install a Firefox extension from an internet site, to protect them against malicious code. The best way to avoid this is to get your extension on the main add-ons site,, since that’s trusted by default and your users won’t have to navigate any tricky security dialogs. There are some issues with this though. Since it requires a vetting process it can take weeks to months to get an extension added. It’s also possible that your extension doesn’t meet the criteria for inclusion if it’s specific to a particular product or niche market, rather than something that’s appropriate for the general public.

If you do need to install from your own site instead, you’ll need a way of guiding your users through the security process, and I’ll cover a technique I’ve found effective. Firefox extensions are packaged in .xpi files, which under the hood are just zip files with a special layout. To start installation, you just need to create a link to the .xpi file on your site, and Firefox will recognize the type when the user clicks on it. Because the site won’t have the right security privileges, the first thing the user sees will be this security warning at the top of their window, and installation will be blocked:


To restart installation, the user has to click on edit options, which brings up this dialog:


They then have to click on ‘Allow’, and click on the install link again once the dialog has closed. As you can imagine, it’s easy to lose users along the way with this multi-step process. I’ve found that providing a visual aid to guide them through it seems to help, using Javascript to draw an arrow pointing to the ‘Edit options’ button and providing brief instructions next to it:


I can’t claim credit for the idea, I first saw it with me.dium‘s extension, but I ended up writing my own version for GoogleHotKeys before it was accepted onto the official Mozilla site. It works by intercepting the install link mouse-click, revealing the guide at the top of the page and then trying to install the extension through scripting, which brings up the security warning it points to. Here’s a link to an example page showing the code in action
(you’ll need an image like this
for it too), and I’ve included the code below. You’re free to reuse this for your own projects.


<meta http-equiv="content-type" content="text/html; charset=UTF-8"><title>PeteSearch</title></head><body bgcolor="#eeeeee">

<script type="application/x-javascript">
function installInitialTry (aEvent)

    return attemptInstall(aEvent);

function attemptInstall(aEvent)
    var params = {
        "PeteSearch": {
            toString: function () { return this.URL; }

    return false;

function showInstallEnable()
    if ((document==null)||(document.getElementById==null))

    var content = document.getElementById("click_here_content")
    if (content!=null)

    var placeholder = document.getElementById("click_here_placeholder");

    placeholder.innerHTML =
    "<table align=\"center\" bgcolor=\"#ffffff\" border=\"0\" width=\"100%\" id=\"click_here_content\"><tbody>"+
    "<td align=\"right\"><p><font size=\"+2\"><b>Click here to enable installation<br>"+
    "and then click <a href=\"\" iconurl=\"iconsmall.png\" onclick=\"return attemptInstall(event);\">here</a> to install"+
    "<td width=\"116\" align=\"right\">"+
    "<img width=\"116\" height=\"165\" src=\"clickhere.png\"></td>"+
    "<td align=\"right\"><p><font size=\"+2\"><b></p></td>"+


<div id="click_here_placeholder">


<div align="center">
<a href="; iconurl="iconsmall.png" onclick="return installInitialTry(event);">


Slinky companies and public transport

Yesterday, Brad posted an article talking about bubble times in Boulder, and quoted a great line from Bill Perry about how they spawned ‘slinky companies’ that "aren’t very useful but they are fun to watch as they tumble down the stairs".

Rick Segal had a post about why he took the train to work, and how people-watching there was a great reality check to a lot of the grand technology ideas he was presented with.

And via Execupundit, I came across a column discussing whether people were really dissatisfied with their jobs, or just liked to gripe and fantasize. One employee who’d been involved in two start-ups that didn’t take off said "Most dreams aren’t market researched."

These all seemed to speak to the tough balance between keeping your feet on the ground and your eyes on the stars. As Tom Evlin’s tagline goes, "Nothing great has ever been accomplished without irrational exuberance." I’ve been wrestling with how to avoid creating a slinky with technology that sounds neat enough to be funded, but will never amount to anything. To do that, I’ve focused on solving a painful problem, and validating both the widespread existence of the problem, and that people like my solution.

I’ve turned my ideas into concrete services, and got them into the wild as quickly as possible. Google Hot Keys has proved that it’s possible to robustly extract data from screen-scraping within both Firefox and IE, but its slow take-up suggests there isn’t a massive demand for a swankier search interface. Defrag Connector shows that being able to connect with friends before a conference is really popular, but the lack of interest so far in Event Connector from conference promoters I’ve contacted shows me it won’t just sell itself. Funhouse Photo’s lack of viral growth tells me that I need to provide a compelling reason for people to contact their friends about the app, and not just rely on offering them tools to do so.

I really believe in all of these projects, but I want to know how to take them forward by testing them against the real world. All my career, I’ve avoided grand projects that take years before they show results. I’ve been lucky enough that all of the dozen or so major applications I’ve worked on have shipped, none were cancelled. Part of that is down to my choice of working on services that have tangible benefits to users, and can be prototyped and iteratively tested against that user need from an early stage. Whether it’s formal market research, watching people on trains, or just releasing an early version and seeing what happens, you have to test against reality.

I’m happy to take the risk of failing, there’s a lot of factors I can’t control. What I can control is the risk of creating something useless!

Funhouse Photo User Count: 1,746 total, 70 active. Much the same as before, I haven’t made any changes yet.

Event Connector User Count: 73 total, 9 active. Still no conference takeup. I did experiment with a post to PodCamp Boston’s forum to see if I could reach guests directly, but I think the only way to get good distribution is through the organizers.

The joy of localization


One of the under-appreciated trends of the last few years is the internationalization of the web. Looking through today’s logs for GoogleHotKeys, I see India, Australia, Brazil, Portugal, Russia, Poland, the Czech Republic, Romania, Hungary, and a few more top-level-domains I don’t even recognize. In total, these usually outnumber the plain-old US hits.

The localization in GHK is rudimentary, I don’t even have the help translated yet, but it does recognize and work with around 80 different localized Google search sites (including the Dominican Republic in the next release, thanks Omar). But it’s still doubled my user-base!

Now I just need to figure out how to properly translate and encode the right characters to support Chinese…

Funhouse Photo User Count: 306, 114 active. This is pretty much in line with growth over the last few days, with the number of active users remaining steady at around 40% (since the active count is against the previous day’s total).

GoogleHotKeys version 1.01 released


I’ve just uploaded the latest version of GoogleHotKeys for both IE and Firefox. The main site links to the site for Firefox, and that may take a day or two to be updated. You can download it directly here until then. Changes include:

  • Pressing N takes you to the next page of search results
  • I’ve disabled the arrow keys from moving you between highlighting terms, since that sometimes was unhelpful
  • Fixed a few assorted bugs, such as the IE version forgetting which link was selected when you returned to a results page, and FF not correctly ignoring the Desktop search link in results pages.

It went very smoothly, apart from the final step of persuading WIX to create an upgrade installer for the IE addon. I assumed that this would just involve updating the version number, but it turned out to be a bit of a rabbit hole. I ended up cheating, and changing the installer GUID, which will result in some duplicate files on disk for upgraders, and a duplicate entry in add/remove programs, but seems to work.

Facebook app statistics


One of the things I really like about having an app on Facebook is that I can easily see how many people are using it. This may sound trivial, but for my Firefox and IE extensions, I’m stuck trying to estimate usage based on downloads. Now I’m on the main Firefox add-on site, I can get stats on downloads from there, but they’re a bit opaque:

It’s good to see I’m approaching 4000 downloads in the past few weeks, but until recently that total had stayed at 867 for a long time. And that per-week total has always shown 1. So I’m not convinced they’re very up-to-date, though I’m pretty sure they aren’t over-counting downloads, just slow in showing them.

As an aside, these stats indicate that focusing my message really paid off. PeteSearch had only around 200 downloads after several weeks, on the same site.

For my IE plugin, I have to go off my web site logs. I’ve used some of the built-in traffic-monitoring tools, but they all seem geared towards overall site statistics rather than the particular measure I want: "How many people with agents you recognize (eg not robots) downloaded this file over a particular period of time? How many since the beginning of time, and were they repeat customers (ie upgrading)?"

What I end up doing is just looking at the raw latest visitors log, and getting a qualitative impression of downloads. What I see is that Firefox users outnumber IE by at least ten to one. There are several possible explanations for this:

  • My promotion’s been a lot more effective in the Firefox market.
  • People who are early-adopters interested in something like GoogleHotKeys are also more likely to have adopted Firefox.
  • IE users don’t have much of an add-on selection, so they’re unused to installing extensions, and are probably more wary of the security risks.

Even once you know the download totals, unless you build in an unpopular phoning-home capability, it’s hard to know how many people are actually using it. I have a help link added to every Google page that users are free to click on, so that is at least an existence proof for usage; if I see it showing up, I know somebody’s gone ahead and installed it.

Facebook gives both the developer and the rest of the world a simple and up-to-date view of how many people are using an app. This should help me understand what’s working and what isn’t, and learn from my customers very quickly. It’s also a good motivating score-card!

To provide some edutainment, I’ll include the current number of Funhouse Photo users in every post, along with a short explanation of anything that’s happened to explain them. Here’s the first report:

5 users – This includes my sister! I’ve sent out links to a few people to test it, but it’s not in the directory, and I haven’t tried to promote it in any other ways yet, since there’s still some bugs to iron out.

Welcome hackszine readers!


Jason Striegel over at hackszine, the blog of Maker magazine, has been a big supporter of my hacking with Google, and has just published an update on my IE porting work. He mentions the wiki I’ve set up to shed light on the obscure world of IE plugins, and you can look forward to lots of other fun stuff on the Facebook API here as I learn more about it. Thanks for the mention Jason!

Take that, Google!


Mike Gunderloy over at WebWorker Daily included GoogleHotKeys in their weekend roundup, and I got a real kick out of his "Take that, Google!" title! Thanks too to Anne Zelenka for passing that on to Mike. Her blog has some really thoughtful articles on a wide range of subjects, including whether to focus on a niche for your blog or just post about everything that interests you. That’s definitely a struggle I can sympathize with!

The photo’s one I discovered through Stock Exchange, by Linden Laserna. Check out his Deviant Art page for more eye-catching photography.