My medium can beat up your medium

Scarybloke
Scary bloke by AphasiaFilms

I recently indulged in some arm-waving about how email is the Big Daddy of message systems, despite all the glamorous alternatives taking the spotlight. To back this up with some data, I set out to get some rough global usage figures for the top text-based mediums out there; email, SMS, Facebook, IM, blogs and Twitter.

  • Facebook has over 70 million active users. As a closed system, it’s hard to work out the message frequency, but around 2 a day seems plausible to me. That would mean around 50 billion sent each year.
  • The comScore global IM user count is 800 million. Guessing again an average of 2 messages a day, that’s 600 billion messages a year.
  • SenderBase indicates that there’s around 3 billion non-spam emails a day. That’s around 1 trillion messages annually.

Email, SMS and IM are the clear winners in raw volume. It does lead me to wonder about the driving forces behind choosing which system to use.

Privacy is obviously important. Tomi Ahonen has a great comment on this story where he talks about kids using SMS to friends in the same room, not for convenience but because a clandestine communication channel is a powerful social bonding tool. There’s a widespread assumption that openness is both good and inevitable, but we’re just primates at heart, and sharing secrets is one equivalent of picking fleas off each others backs.

Using the raw numbers like this is obviously unfair. I put a lot more time into an average blog post than an email, my Facebook messages have more content than my IMs, and I seldom use anything but email for business communications. Even so, the statistics make a strong case that despite their growth, other systems will take a long time to pass email.

How to write an Ajax update function with PHP

Fetch
Photo by Bored-Now

I’ve been writing a lot of Ajax code to request some information from a server, and then update an element on the page with the returned HTML. The basic XMLHttpRequest code to do this is pretty simple, but I’ve specialized the code to do a couple of common things. First, it always replaces the HTML of the element with the ID given in $replacename, and it takes in a Javascript variable name so you can dynamically alter the URL parameters that are passed in. The second part is really useful when you want a client-side event to trigger the fetch, you can write <select onchange="yourajaxfunction(this.value);"> in a menu, and then define the values in each menu item. Here’s the PHP code for the function body:

function add_ajax_fetch_script($fetchurl, $parametersjsvar, $replacename)
{
?>
    var xhr;
    try
    {
        xhr = new ActiveXObject(‘Msxml2.XMLHTTP’);
    }
    catch (e)
    {
        try
        {
            xhr = new ActiveXObject(‘Microsoft.XMLHTTP’);
        }
        catch (e2)
        {
            try
            {
                xhr = new XMLHttpRequest();
            }
            catch (e3)
            {
                xhr = false;
            }
        }
    }

    xhr.onreadystatechange  = function()
    {
        if(xhr.readyState  == 4)
        {
            if(xhr.status  == 200)
                document.getElementById("<?=$replacename?>").innerHTML = xhr.responseText;
            else
                document.getElementById("<?=$replacename?>").innerHTML = "Error code " + xhr.status;
        }
    };

    xhr.open("GET", "<?=$fetchurl?>"+<?=$parametersjsvar?>,  true);
    xhr.send(null);

<?php
}

To use this code, you’d write out the signature and name of your Javascript function, call add_ajax_fetch_script() and then terminate the JS function with a closing curly brace. Eg:

function yourajaxfunction(urlsuffix)
{
<?php
add_ajax_fetch_script("http://someurl.com&quot;, "urlsuffix", "someelementid");
?>
}

Chantry Flats is burning

Sierramadrefire
Photo by Moondabor

Just last week I discovered Hoegee’s campground in the mountains above Altadena, and now the whole area is being swept by the Sierra Madre wildfire. I know that the Chantry Flats buildings, and the cabins in the canyon must be at serious risk, though from this map the trail to the campground has burnt, but not the area we stayed in.
The area was full of extremely dense brush when we hiked through, I’ve heard this is the first fire in 30 years, and the hillsides are very steep. The hot, dry Santa Ana winds kicked in on Saturday too, giving us temperatures over a hundred while we were working on the trails. That makes this a very tough fire to fight, and my thoughts go out to the wildland firefighters who are in the middle of it. So far they’ve protected the city at the base of the mountains, but the hills themselves are so hard to access I hope they’re being very careful as they go deeper.
If you want more information, Jae, a city employee in the thick of it has been blogging about the situation. Moondabor has put up a chilling series of photos of the approaching fire, and Flickr has better coverage than any newspaper I’ve seen. Altadenablog gave me some links to other sites with information, like the Crime Scene Blog and the USGS online maps at GeoMac.

Is email dying?

Dummy
Photo by TCMHitchhiker

Technologies die pretty frequently. When I first logged on in 1992, Usenet was the place to be, with thousands of high-quality, high-traffic discussions groups hosted on an open system. It’s very openness destroyed it as a mainstream technology, with first the Eternal September when AOL allowed access to a large group of people unfamiliar with the voluntary netiquette required to keep it functioning, and then the first Green Card Lottery spam that signalled the start of the battle against unsolicited ads on open networks. Usenet retains some bright spots, I still love rec.arts.sf.written for its quality and depth, but the vast majority of discussions now happen on website forums, and most users have never heard of newsgroups.

It’s tempting to see an analogy with internet mail. It’s another open system that suffers from bad actors abusing its lack of restrictions. Even with Gmail’s spam filter I still end up with about an email a month incorrectly marked as spam, and there’s no way to verify anyone’s identity, easily guarantee security or prioritize messages from people you know. This makes Facebook’s system very alluring if everyone you want to talk to is on there. Twitter is in an interesting space between IM and email too, with the potential for interesting consequences as people adapt to its rules.

A lot of the commenters on Seth’s post argue that traditional email isn’t ever going away because it has such a massive network effect advantage over any closed system. I don’t agree. I think that it will remain as the lowest common denominator of internet communication, but a new service like Facebooks that had a large user base could offer a high quality experience for proprietary communications but also fall back to internet mail for talking to anyone who’s not signed up. Even today most company’s Exchange setups offer extra features for internal communications, like a global address book allowing you to just type in a name rather than a full address.

The big reason I’m working in the email area is that writing notes to other people is never going away, but the existing options are very limited. Internet email is by social convention a private medium, and it’s non-realtime. IM is also private but real-time. Twittering is public and real-time. Blogging is public and non-realtime. At their heart they’re all about writing down your thoughts and communicating them to other people. So why can’t I take an interesting email discussion and add it to my blog? Email an IM discussion to someone else who might be interested, and seamlessly continue the conversation through both email and IM?

The need for private, non-realtime electronic messages isn’t going away, and internet mail will remain alive as part of that, but there will be an increasing number of services that offer a higher quality experience.

New version of the Constellation Roamer Flash network visualizer

Constellation
Photo by Don McCrady

I came across Constellation Roamer a few days ago, and was impressed with what Daniel Mclaren had produced. His responsiveness since then has been great, he immediately addressed some of the minor points in my review, like the missing price on the site and expanded documentation. Now he’s released a new version with a lot of extra features. The Javascript support he offers could be very useful for some of my work, it will allow the display of extra information in the main page whenever the user selects a node for example.

It’s great to see him offering this Flash component, and the level of service he’s shown so far makes me very confident you’ll get strong support from him after the purchase. I’m looking forward to using it myself, and I’m sure it will be useful for a lot of other sites too.

Crossloop launches their marketplace

Market
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.

How to visualize networks through Flash

Constellation

I recently came across Constellation Roamer by Asterisq, written by Daniel Mclaren. It’s a very interesting flash-based tool for visualizing connected graphs within a browser. There’s a demo here if you’re interested in checking it out yourself.

I’ve not used it in any real world tests so far, but from my exploration it seems pretty good for getting a visualization up and running. It doesn’t compare with the hard-core scientific graph layout packages obviously, and it probably won’t scale to thousands of connections, but as long as you keep the data sets limited it performs well. There doesn’t seem to be much customization possible, the focus is on simplicity, and I couldn’t find any reference documentation. For example I couldn’t see a way to alter individual edge weights, or tweak the overall simulation parameters like friction and time-steps. That means I can’t use it for the massive simulations of Outlook Graph, but I am able to display a small social network painlessly.

The Asterisq site was a bit vague on the total cost for a single site license, so I had to go through most of the purchase steps to find out the $550 total. All-in-all could be a real time-saver if you want to build a small graph visualization into your site.