Goodbye Al

Albandel

I’ve known Al Bandel for many years, and I was deeply saddened to hear he’d died on Sunday. He was passionate about trailwork, not only going to most scheduled work-days, but even organizing his own expeditions out to the Channel Islands, where he was well-known and well-loved.

I always looked forward to seeing him, he was a live wire, always full of stories about his life both recent and from when he was a young man. I particularly remember his tussles with big consumer firms, where he was unfailing polite but determined to get what he was promised. He never took himself too seriously, and loved to tell of the day he bought some cans of Guinness, and discovered there was something rattling at the bottom of the first can he drank. Worried there was a foreign object contaminating it, he phoned up their customer service line, who explained it was just the widget that gave it an on-tap fizz. He was full of apologies once he understood, but the girl on the other end insisted on sending him a free 6-pack, no doubt as charmed by him as we all were!

The photo above is from a 2006 trailwork trip we took with Al to Santa Cruz Island. After a hard day’s work, he loved to crack open a bottle of wine and cook up something wonderful. Me and Liz soon learnt to pack less food ourselves on these expeditions, because Al was sure to make enough for all of us, and roll his eyes if he saw us heating up anything pre-made. "It only takes a minute to make something from scratch!" You can tell from his clothes in that picture that he worked just as hard during the day, usually leaving the rest of the party panting while he powered on.

Albandel2

He specialized in the really heavy work, never happier than when he was dragging a boulder into place for a step, or dragging a post-pounder up the side of a mountain to set in a sign. He built to last, always digging the deepest hole and finding the heaviest rocks. He was a keen-eyed and good-natured collaborator, always vocal ("What did you go and do that for?!?") but ready to listen and compromise.

I’m going to miss him a lot, his determination, his laughter, and his spirit of fun. Life was never dull when Al was nearby, and everyone who knew him loved him. I’ve put together a memorial page up for the Trails Council website, and his family have asked that instead of flowers, people donate to the SMMTC if they want to remember him.

Goodbye Al, we’ll miss you!

Albandel3

Escape from the world at Windrush House

Bannabeach_2

If you want to get away from it all, I can’t imagine anywhere better than Windrush House on the coast of County Kerry in Ireland. I just returned from a week there with my family, and it gave us a true home-from-home.

Just yards from the miles-long Banna Beach, it’s sheltered by dunes from the wild weather that rolls in from the Atlantic. We walked there early every morning, and it was always like the first day of creation. We saw rainbows daily, the wet sand and clouds glowed in the sun, with patches of blue sky alongside dark banks of rain moving in. There was often howling wind and rain beating against the windows, but we were snug and warm inside.

The place is so comfortable because for many years it was the owner’s home, built on a corner of the family farm. Cows in the surrounding fields kept a careful eye on all the visitors, and we had a morning serenade from the local donkey. Another great bonus for us was a kitten that lived in the garden. It might be grown by the time you make it, but the mother was pregnant again, so it may be a recurring feature!

Windrushhouse_2

The house is enormous, with 6 bedrooms, a big, well-stocked kitchen, a games room complete with pool table, a couple of living rooms, and a conservatory to watch the rain from. We only had 8 people, but 12 would have still had plenty of elbow room. It was remodeled last year, with a crisp modern design, and great craftsmanship on all the work.

Windrushhousekitchen

The owners, Pat and Liz Lawlor, went overboard in welcoming us with bottles of wine, milk, bread and dessert waiting for us when we arrived. They book up fast for the summer, but to my mind going off-season is a grand idea. There were no crowds, still had some great warm days of sun between the showers, and everything was glowing green.

Aside from the coast, you’re near the ancient village of Ardfert, with an enormous medieval monastery being restored, and some atmospheric local pubs. The area’s full of history, practically next to the house is the memorial to Roger Casement. He was a leader of the 1916 uprising, landed there by German submarine and quickly caught and killed by the British troops nearby in the first phase of the fight. Despite the grim history of violence between our islands, with local graffiti demanding justice for the H blocks, I never felt anything but a warm welcome from the people around us. Liz Lawlor was even diplomatic enough to describe Casement’s execution as ‘a little misunderstanding’!

A couple of miles down the road is Tralee golf course, designed by Arnold Palmer. I don’t know much about the game, but it was a gorgeous location, and the fact that some people landed in a private helicopter to play while we were there gave me the idea it’s a highly regarded club. The nearest big town is Tralee itself, packed with pubs and shops. It took around two hours to drive from Shannon airport, but the much smaller Kerry one looks to be less than an hour from the house.

If you’re interested in going yourself, contact Pat and Liz directly or check out http://windrushouse.net/. I can’t imagine anywhere better for a week of quality time with friends and family.

Heading back to Blighty

747
Photo by Caribb

Tomorrow me and Liz are flying to Heathrow, and the first couple of days we’ll be exploring London. During the day I’ll be introducing her to Kew Gardens, one of my favorite places on the globe, full of the most wonderful plants that the British Empire could plunder. We’ll be returning to London Walks in the evening, we’ve now done pretty much every tour they offer on previous visits, so we’ll be trying some for the second time. If you have a ghoulish streak, I highly recommend the Jack the Ripper walk, it’s pretty chilling to visit the sites of the murders, and even the pubs the victims were picked up from.

After that I’ll be in a happy whirlwind of family gatherings in my Cambridgeshire village, followed by a week in a cottage on the south-west coast of Ireland. Our main goal is to see some rain, after the last 6 months of SoCal heat. I just want to see some green grass that doesn’t rely on sprinklers.

I’ll be checking my email when I can, and probably squeezing in some development while we’re traveling, but there won’t be many updates here for a couple of weeks. My twitter account may get a bit more use if I’m able to SMS, but we’ll see if that’s too much of a technical challenge for me.

Come to Defrag!

Defrag08header_01

I’ve had a lot of new visitors recently interested in my browsing history experiments. If you’re seriously excited about the possibilities of this sort of implicit data analysis, you really need to join me at the Defrag conference at the start of November. I’ve already blogged about how much I got out of last year, but it’s the only place I’ve found where everyone just gets the possibilities of this stuff. You’ll be rubbing shoulder with everyone from technologists and journalists, to potential customers and investors, all very into figuring out where we can take these ideas.

Eric has just extended the early bird pricing until the end of August, and with my ‘pete1’ code you’ll get an extra $100 [Now with an extra $200 thanks to my speaker’s code and with no time limit, thanks Eric!] off on top. I hope to see you there.

How to pull browsing history from the image cache

Tracks
Photo by PigDump

I was trying to think of ways to make the browser history hack more useful. One of the limitations is that you can only tell if a user has been to an exact URL. So you can tell if someone’s recently been to the main New York Times page at http://nytimes.com/ but that won’t match if they went directly to http://nytimes.com/somestory.html . You can partially work around this by testing a lot of popular internal links (eg all the stories from the front page) but this is a lot harder.

That got me wondering if there was some common property that all the pages on a site are likely to share, something that leaves a trace I can test for. Most websites have a logo image that’s used on most of their pages, and I realized that if I could tell if an image was cached by the browser, I’d have proof that the user had visited some page there recently. How could I tell if an image was cached? Well, if it is in the cache, it should take a lot less time to create it than if it has to be fetched from the network. I gave this idea a quick test, and found that cached images were indeed created synchronously in Javascript, whereas uncached ones took some time. Rather than doing any complex callbacks, I checked the .complete property of each image immediately after creation, and rather to my surprise, this seemed reliable. Here’s an example of it in action, checking for a few common sites:

You can download the full example from http://funhousepicture.com/imagecachetest/imagecachetest.html, but here’s the heart of the test:

function isImageLoaded(image)
{
    return !((image.naturalHeight == 0 || image.naturalWidth == 0 || image.complete == false));
}

function isImageInCache(url)
{
    var image = new Image();
    image.src = url;
    return isImageLoaded(image);
}

There’s plenty of limitations to this approach. For one thing, the test itself pollutes the cache by loading all the images it’s testing, so you can only reliably run this once. All subsequent reloads will show every tested site as having been visited, until you clear your cache. I think I could fix this using cookies to hold the results after the first time, but I haven’t implemented that yet. You also have to identify a common image across the range of pages you’re testing, and with redesigns that URL is likely to change every few months at least. It’s also highly-dependent on how long an image remains in the cache.

It’s exciting to be able to pull out this sort of history information, it’s a good complement to the link style checking, and brings some of the possibilities of the implicit web a little closer to realization.

Santa Monica Mountain trailheads now on Google Maps

Trailheadmap

It took her several days, but Liz has just finished off her map of the trailheads in the Santa Monica mountains. There’s descriptions for each of the locations, describing the trails they lead to, how much parking there is, nearby campsites, which agency owns the land and if bikes or horses are allowed. This was originally going to be just so she could easily link to the meeting points for trailwork from the SMMTC website, but it’s turned into a great resource for anyone who’s interested in getting out into the mountains.

I’m really proud of what she’s accomplished, and it demonstrates how Google’s map-building application opens the door to anyone building rich maps, in a way that just wasn’t possible before. Maybe this will help a few more people discover the beautiful wilderness we have on our doorstep here in LA.

How to speed up the history testing hack

Speedometer
Photo by Abed Dodokh

The original browser history Javascript ran very slowly in Internet Explorer. When it needed to check thousands of sites, like for the gender test or my tag cloud, it could take several minutes. If it was going to be generally useful, I needed to speed it up a lot. The first thing I did was move the test link creation over to the server side, so there was a prebaked html div containing all the links, rather than building it on the fly. This didn’t make much difference though, so I started poking at the testing code. What I found was that switching from array accessing to go through all the links towards grabbing the next sibling of an element seemed to make a massive difference. I’ve included the function below, and it now only takes a couple of seconds to check thousands of URLS:

function getVisitedSites()
{
    var iframe = document.getElementById(‘linktestframe’);

    var visited = [];

    var isIE = iframe.currentStyle;
    if (isIE)
    {
        currentNode = iframe.firstChild;
        while (currentNode!=null)
        {
            if (currentNode.nodeType==1)
            {               
                var displayValue = currentNode.currentStyle["display"];
                if (displayValue != "none")
                    visited.push(currentNode.innerHTML);
            }
            currentNode = currentNode.nextSibling;            
        }
    }
    else
    {
        var defaultView = document.defaultView;
        var functionGetStyle = defaultView.getComputedStyle;

        currentNode = iframe.firstChild;
        while (currentNode!=null)
        {
            if (currentNode.nodeType==1)
            {       
                var displayValue = functionGetStyle(currentNode,null).getPropertyValue("display");
                if (displayValue != "none")
                    visited.push(currentNode.innerHTML);
            }
            currentNode = currentNode.nextSibling;
        }
    }

    return visited;
}

Where to go if you want startup inspiration

Startuptweetlogo
I’m a comparative late-comer to Twitter, but I’ve started to get hooked. One of things that pleasantly surprised me is how useful it can be. You can ask questions, or respond to them, and generally do the flea-picking off each others backs that’s required to keep relationships alive, all through a very zen interface.

As someone who reads the back of cereal packets if there’s nothing else to hand, I try to direct my reading addiction into useful channels, mostly towards sources of startup advice and inspiration over the last few years. This has meant personal blogs like Brad’s, Fred’s, Don’s, or topic-based ones like VentureHacks or AskTheVC. The trouble is blog posts are time-consuming, which means there’s a big barrier to passing on a quick link, so posts only happen occasionally. That’s where Sam Huleatt has stepped in, with a use for Twitter I’d never thought of.

His new startuptweet stream is collecting a massive number of videos, stories and blog posts on things that startups care about, like a Stanford introduction to the VC process or Paul Graham discussing how to motivate great hackers. He’s already posted a large number of high-quality resources in just a few days, and I’m hopeful that the ease of posting will make it possible for him to keep up the pace. Check out the full site, and start following!