Beetlejuice, Beetlejuice, Beetlejuice

Beetlejuice

When I was 16, I’d sneak into a University of Cambridge computer lab, with the desire to download Amiga mods and demos from ftp sites. This was pre-web, but I owned The New Hacker’s Dictionary (aka the Jargon File), and had been very excited by the concepts of email and Usenet. What blew me away when I actually tried them was that the person who wrote my assembler reference was on the ARM newsgroup and answering questions from mere mortals like me!

I was reminded of that yesterday when Matt Brezina from Xobni left a comment here after I reviewed their product. I’m old enough to remember a time before the internet, when people just couldn’t connect like that. Now there’s services that let you know when someone talks about something you’re tracking, and start a conversation. That’s what I find really interesting about working with a social graph, building tools that help people build relationships.

That computer lab also led to me living in an Alaskan treehouse for three months, but that’s a story for another post!

Funhouse Photo User Count: 2,003 total, 73 active. Broke 2000!

Event Connector User Count: 100 total, 5 active. Broke 100, which isn’t quite as exciting.

Competing mail graph services

Wrestler
My idea of deriving a social graph from your email messages isn’t new. In a simple form, sites like Facebook already pull your contacts from webmail sites to build a first draft of your friends list. Unfortunately, your contacts list is a poor map of your actual relationships.

SNARF is a Microsoft project from 2005 which analyzes your email in a much more sophisticated way, and uses this information to help you triage your messages. It has a flexible system of metrics, for example the number of emails you’d sent someone, to calculate an importance score for each contact. Emails from important people are displayed in a top priority area of the UI, away from the less important bacn.

Xobni is a more recent Outlook add-in that analyzes your messages. The slick UI gives you a lot of interesting ways to drill down into the relationships it finds. It gives you fast searching, raw stats on each contact’s mailing patterns, and lots more. Its automatic phone number extraction from messages and the display of attachments by sender look particularly useful.

Looking further afield, there’s some overlap with spam protection services. Spam guards attempt to exclude a particular class of email by analyzing messages. I don’t know of any that go beyond checking if you’ve sent someone an email before in their social analysis, but it seems like a natural direction for some of those companies to head in.

Yahoo and Google both have access to the raw information from millions of mail users, so if they see an advantage in this sort of mail-based social graph, they could create something really compelling. One interesting area is the APIs they offer, which might be enough for a third-party developer to at least show a proof-of-concept demo, though it would no doubt be against the ToS.

What I’ve yet to see if a really painful problem that is solved by any of these services. Xobni is the closest, but it still feels like a great set of additional features for Outlook, not a make-the-pain-stop solution that people will pay for.

I’m certain there are some great ways to solve problems using a mail-based social graph, I just need to find them!

Funhouse Photo User Count: 1,998 total, 73 active. Almost up to 2000 total,  with no work on it for the last month.

Event Connector User Count: 91 total, 5 active. A few new users still coming in through the directory, but no conference sign-ups.

Take a walk on the client-side

Desktop

I’ve been following Mozilla’s Prism launch with a lot of interest. One comment that caught my eye was from  Ryan Stewart, who believes "that the desktop isn’t dead, and that a hybrid approach is a successful way to go". There’s a lot of opportunities for really useful services that need a client-side component, and that’s key to my strategy. It’s the reason I’ve worked on Java Applets, Firefox and Internet Explorer extensions and now an Outlook plugin.

Web-based apps have a lot of advantages over traditional desktop apps:
No install needed! It’s an incredible advantage to be able to go to a URL and instantly start using the service. The installation process is a big barrier to people even trying your app, since they’ve been trained to know it takes minutes, involves answering questions they may not know the answer to, and worrying about their configuration.
Complete safety. There’s no worries about viruses or spyware, the only information it has access to is what you type in.
Use anywhere. You can use the app from any machine in the world, regardless of OS or configuration.
Up-to-date and comprehensive information. Since the information you’re accessing is pulled live from a server, it can be updated instantly, along with the application itself.
Easy to develop. You have a lot fewer variables to worry about with a server-based app. You know exactly what hardware and software the main code is running on. Keeping the output HTML cross-platform is a couple of orders-of-magnitude easier than doing the same for executable code.

There are some obstacles that I think will prevent pure web-based services from taking over the app world:
A limiting sandbox. To achieve security, web-pages can only pull data from their own servers, and can’t use any of the information already on the user’s machine, or any other web-services the user is signed onto, without an explicit agreement with the provider. This effectively stovepipes all information, and is the reason I’ve entered my list of friends on at least a dozen different services. I don’t see this changing, because it would require a majority of the browser vendors to implement a more subtle security policy than the current blanket same-domain-policy. Loosening security like that doesn’t seem likely.
Poor UI. Google has done an astonishing job with their mail interface, but for power users the experience still doesn’t match Outlook or Apple Mail. Running within a web-browser makes it tough to offer a rich interface, and you can’t use the standard OS metaphors. This is where Prism is interesting, because XUL actually offers some of the UI that HTML is missing, like sliders.

What I think is really interesting is the idea of combining the strengths of the two approaches. To start off, there needs to be a pure web interface to build up enough interest and trust for people to download a client extension that offers more features. That extension can then offer some tools to the app, like cross-domain access and native UI, but still keeping the bulk of the application running on the server. That keeps the big advantages of SAAS, such as ease of development, and online access to information, but allows a whole range of applications that aren’t possible now.

Funhouse Photo User Count
: 1,975 total, 77 active.

Event Connector User Count: 89 total, 1 active.

La Jolla Valley hike-in campground

Lizwithscrabble

Liz and I just got back from an overnight backpacking trip in the local mountains. We had a new tent and other gear we wanted to test-drive, and didn’t want to be too stuck if some of it didn’t work. With this in mind, we chose the La Jolla Valley campground, since the trailhead’s less than an hour from our house, and it’s only a 2.5 mile hike in.

As I mentioned in a previous post, this campground is the only one I know of in the Santa Monicas that doesn’t require reservations, and it’s rare to see anybody using it, so we felt pretty confident we would get a spot. The recent wildfires to the east probably kept people away too. We’d checked the weather and the red-flag status before-hand, along with asking a friendly wildland firefighter friend, and it looked like there was no danger.

We stopped by the booth at Thornhill Broome Beach when we arrived, paid $3 per-person to camp and picked up a parking pass. We then drove across the street to the day-use parking lot, where the trail starts. There’s two trails leading off the lot, the Ray Miller section of the Backbone, and La Jolla Canyon trail. To get to the campground, we had to hike 2.5 miles up the La Jolla trail, which is the one behind the yellow gate, that starts off like a fire-road.

You start off with a moderate uphill grade going along the canyon floor. After about half a mile you cross over the wash, and start heading towards a waterfall. Sadly, with the drought, there was no water left when we got there, but it’s still a nice spot to catch your breath. The trail heads up the side of the waterfall, and then starts switchbacking up the canyon wall. The next half-mile is probably the toughest part of the hike, with poor footing and some steep grades.

At around 1.2 miles, you’ll reach a fork in the trail. Keep to the right/eastern side at this fork to get to the campground. The left/western trail heads towards Mugu peak, and connects with some of the other trails criss-crossing the valley to form some fun loops.

The trail is still uphill, but with a decent grade, and goes through some nice shady brush archways. 1.8 miles in, you get to another fork, this one with a new sign:
Lajollasign

It’s hard to tell from the sign, but you actually want to head left/west for the quickest route to the campground. It’s a short connector that skirts a pond, and the first camping spots are just off to the west of it. We didn’t investigate these, we knew there were some more further on, and the way to them looked a bit rough. The trail reaches a fire-road, and there’s camp spots just off this road, a short distance west. There’s no map of the camping spots, so you’ll just need to look for the numbered signs and explore.

We went to site 5, which was secluded, in a small oak grove. There’s no camp-fires or water, but they do have a pit-toilet nearby, and gas-stoves are allowed. Slightly further west along the fire-road is a group camp site, that looks like it could handle up to ten tents comfortably. We did notice the restroom had been knocked off its foundation by a fallen tree, so you’ll need to use the toilet that’s near the individual sites instead.

It was a pretty gruelling hike, we’d brought too much water, and there’s about 600 feet of elevation gain, so we were very happy to sit down at the picnic table and rest our feet. It was actually raining for once, so we got our new tent up as quickly as we could, to keep our stuff dry. I’m very happy with the REI Half Dome tent we got to replace our heavier car-camping one. It was only $99 on sale, but it weighs less than 5 pounds, was easy to put up and kept us dry, which is pretty much all I could ask for.

I saved money on the tent, but more than made up for it with the stove. I fell for the Jetboil a few weeks ago when a friend showed me his on Santa Cruz, and it was so worth it’s $130 price tag. Very light and compact, it heats water up incredibly fast and efficiently, has electric ignition, and is almost immune to wind.

With everything set up , we sat down to a meal and a serious game of Scrabble, as you can see in the lead photo. After some nice instant miso soup and an entree from Mountain House, we closed off the night with some martinis, served in genuine camping martini glasses:
Campingmartini

During the night we were serenaded by coyotes, some very close, and there were smaller varmints snuffling in the nearby bushes. There was nobody else camping in La Jolla, so it was a bit spooky to be the only people for miles, especially with a full-moon a few nights before Halloween, but we both slept well.

It was a wonderful trip, topped off with a 5 mile hike to Mugu Peak the next morning. If you’re looking for a beautiful camping spot only 45 minutes from LA, I highly recommend La Jolla Valley. Call Point Mugu State Park on
805-488-5223 for more information, and for other Santa Monica Mountains campgrounds, check out these posts:
La Jolla Valley
Sycamore Canyon
Circle X
Santa Cruz Island

Funhouse Photo User Count: 1.954 total, 77 active. Still slowly but steadily growing.

Event Connector User Count: 88 total, 1 active. I haven’t been focusing on selling this idea to any organizers for the last week, and it needs some time and effort to persuade promoters to consider it.

PNG loading made simple

Emptyframe
I need to load some images from disk, and use them as OpenGL textures. This is something I’ve reimplemented many times on different systems, and it’s always seemed more complicated than it should be.

The first choice is whether to use the native OS’s image loading libraries, or a cross-platform framework. Native libraries are a lot easier to start using, but make the code harder to port to other systems. Using an open-source framework makes your code much more portable, but it’s often a pain to find or build against the right version of the code, and you also have to deploy it to the end-users’ systems. I lost several hours wrestling with libpng a few weeks ago, since it refused to build on OS X, and I ended up yak-shaving my way down a dependency chain of other libraries it needed.

This seems overkill for most of the tasks I’m trying to accomplish, since I’m usually just trying to load a small, fixed set of images, which I’ve created and so can control their properties. This only uses a tiny part of most image loading libraries, since they’re designed to cope with reading and writing dozens of different formats, and hundreds of combinations of bit-depth, compression and other flags within each of those, along with lots of platform-specific optimizations to improve performance.

Happily, I recently came across the LodePNG project, which offers a simple, dependency-free way of loading PNGs. The PicoPNG module is a standalone C++ file that will load 8 bit, 4 channel PNGs, and is only 500 lines of code. This is perfect for my needs, there’s no extra installation hassles or dependencies, and it’s cross-platform. I also appreciate the elegant way that Lode Vandevenne packed his solution into such a small amount of code. It’s compact, but not obsfucated, very classy work.

Funhouse Photo User Count: 1,933 total, 78 active. Still getting quite a few users from the profile box add link, according to my statistics.

Event Connector User Count: 87 total, 4 active. Very quiet, I haven’t been actively chasing up any leads for a few days.

Jerry Mitcham, trailwork hero

Jerry

Last night was the annual Santa Monica Mountains Trails Council board meeting and dinner. Jerry received the Hank Grateful award for the most time worked this year, with an astonishing 366 hours spent fixing up the trails! For just one project, he hiked miles out into the backcountry with a 30 pound post hammer to install over 70 signs. He’s not only a hard worker, he’s also a leader, both day-to-day as a crew boss, and working with the park agencies to make work trips to Santa Cruz Island happen. A good friend and lovely guy, I always look forward to working with him out in the mountains.

He’s not alone out there, many of the regulars clocked up over 200 hours each. Looking around the room that night, I was thinking about the difference all these volunteers make, even though most trail users will never know about them. They’re not doing it for recognition, money or out of obligation, they just take joy in getting things done, in improving the mountains they love.

The awards had the motto "The reward for work well done is the opportunity to do more". The happiest people I know are those who love what they do. I love being in a team full of them, whether it’s in the mountains or a conference room.

Jerryandal

Implicit web philately

Stamps

With Defrag fast approaching, I’ve been spending some cycles thinking about what the Implicit Web actually is, and where it’s going. When I’m staring at this sort of problem, a technique I find really useful is "stamp collecting". Gather as many examples as possible, list their important properties, group them into clusters and look at what patterns emerge.

Here’s my current list of Implicit Web services currently out there, with a couple that are on the borderline of the term. I’ve not got enough to meaningfully group them, so they’re alphabetical:

Adaptive Blue – More of a semantic web application, but they do offer a Firefox extension. Being client-based is a distinguishing feature of implicit web apps, since that’s the only way I know to get access to the user data needed.

Amazon – Their recommendation system is the grand-daddy of a lot of the apps that take raw information on user’s behavior, run some magic algorithms, and return something useful back to the customer. It’s a hard trick for most startups to repeat, since almost nobody has access to the Amazon’s breadth of data. This is why client-based solutions that can track behavior across many sites seem like the only practical solution.

last.fm – A true implicit web app, they have client-based tracking of the user’s behavior, they piggy-back on other people’s applications to gather their data and use that to return Amazon-style recommendations. It does make me wonder about the ‘web’ part of the term though, since that seems to imply web browsing. Maybe ‘implicit internet’ would be more appropriate?

me.dium – Another app that fully fits the term. A unique feature is that they use the social graph to combine information from multiple users, which I think is a very promising area for implicit web applications. Being able to pool data from your friends is a great way of discovering relevant new content.

MySportsNet.ca – This is one I came across relatively recently. It’s a client-side app that monitors your browsing, and tailors a sports portal site to match your interests based on that data. What’s really interesting is that it’s aimed at a mainstream audience of sports fans, rather than geeky early adopters. I know from my game career that the sports audience is massive, and willing to pay for something ties into their passion, so I’ll be following its progress closely. The only audience I know that’s similar is music, and it’s relevant that the most successful implicit app so far, last.fm, tapped into that demand.

tape failure – This is a service I’ve only read about, but unfortunately their site seems to be down at the moment. They’re not an implicit web app at all, but it does seem like they have a good solution to the browsing data collection problem.

Let me know if you think I’m missing any. I may put together a page tracking new services, since I think we’re going to be getting a lot more over the next year.

Funhouse Photo User Count
: 1,916 total, 92 active. The proportion of profile-box adds was a bit higher this time, which is promising because it scales a bit more virally than the product directory.

Event Connector User Count: 84 total, 9 active. Not much happening on this front.