Camping in the Santa Monicas – Santa Cruz Island


In this installment of my guide to local camping, I’m going to cheat. The Channel Islands, just off the Ventura coast, are geologically part of the Santa Monicas, but not geographically. Tomorrow, me, Liz and some friends are off to Santa Cruz Island for a long weekend, so here’s the rundown.

The islands themselves are amazing. If you’ve never been, or have only visited Catalina, you really should head down to Ventura Harbor and catch a boat over, even if it’s just a day trip. Only Catalina is inhabited, the rest just have a few rangers, and it’s like going back in time. IslandPackers are the only regular boat service out there, they run daily trips out to most of the islands, and as a bonus you’ll often see dolphins and whales on the way.

Anacapa Island is the smallest, with an old lighthouse, and less than a mile of hiking trails on the top. There’s no access to the beach because it’s surrounded by steep cliffs, but you do get some great views of the sea-lions basking at their base. There’s also a massive population of very tame gulls, when I visited I was literally tripping over their chicks as they happily wandered in front of me! There’s a small campground, but I’ve never been tempted to stay, since the island itself is so tiny. It’s part of the Channel Islands National Park, so you can go to if you want to get a reservation.

Santa Cruz Island is my favorite. It’s the largest island, and is divided into two halves, with the east side part of the National Park, who allow unsupervised hiking. The western half is owned by the Nature Conservancy, and you need permission and a guide before hiking on their trails. The west has been public land for longer than the east, so the vegetation has had more time to recover from the sheep farming, and is a lot more typical of the chaparral, with lots of sage bushes and other shrubs.

For the eastern side, you’ll land at Scorpion Harbor, site of the old ranch house. There’s a trail you can take to Canyon Point right by the landing, and you can continue on along the cliff-top to Potato Harbor, which is where Liz took the picture at the top. The campground is half a mile up a fireroad from the beach, at the bottom of a gentle canyon, surrounded by eucalyptus trees planted by the ranchers.

It’s divided into two sections, upper and lower, which are only separated by a few hundred feet. There’s drinking water and pit toilets in both, but no showers. I prefer the upper campground, but most of the spaces there are for groups of 11 or more. During the summer, it’s heavily booked, so you’ll need to get in early, but you may have more luck with some of the group spots. One enduring memory from a previous trip is a large group of local Chinese families arriving, complete with a video karaoke system and portable generator! Luckily, the rangers preserved the tranquility by confiscating the generator for the duration. As part of the National Park, you go to to reserve.

Here’s another great photo Liz took showing the campground in the early morning:


On the Nature Conservancy side of the island, there’s a campground called Del Norte. It’s for hard-core backpackers only, since it’s a tough 3.5 mile hike from Prisoner’s Harbor landing to get there, and there’s no water available. The trail was in very poor shape on our last visit too, it was so overgrown the rangers actually got lost trying to mark its location so we could work on it! We spent a couple of days with weed-wackers destroying the fennel and clearing it out, but that was over a year ago. You can see some of the pictures from that trip, including the campground, here. You’ll need to reserve with if you do want to camp there. One option is camping at Del Norte for a day or two, and then hiking over Montagnon Ridge to Scorpion, but that’s a rugged 12 mile walk with lots of elevation gain.

There’s several other islands open to visitors with camping available, including Santa Rosa, San Miguel and Santa Barbara, but I’ve not made it out to any of them yet.  They’re all part of the National Park too.

Funhouse Photo User Count: 966 total, 55 active. Still creeping upwards at a slow rate.
Event Connector User Count: 7 total. My adwords campaign was just disabled by Google, because my keywords, "Facebook event promotion", included a trademarked term. This took me by surprise, but wasn’t too much of a loss since I wasn’t able to get much of a click-through or conversion rate on this attempt. Luckily, it only cost me around $2 to experiment, so I count that as a good investment. I’m waiting on the app directory listing, to see how that affects things, and I’ll be thinking about other approaches to try.

“No Vision, All Drive” Review


No Vision, All Drive is the story of Pinpoint Technologies, from its origins as a startup, through to its sale to ZOLL. One of the founders, David Brown, wrote it, but it includes some great sections from the other founder, David Cohen, as well as many of the long-time employees.

The employee’s stories are a great reminder that creating good jobs is not just an abstract statistic, it can make a real difference to people’s lives. Al Thompson (aka Weird Al the Tattooed Freak) describes how he was determined not to get another coffee-shop job, and got his only interview at Pinpoint, and was offered the job even though he didn’t have any experience. Six years later he’s a highly-skilled, highly-valued old-timer, and met his fiancee there too!

Marcie Cary got started as a receptionist, and went on to become marketing manager. She really gives an insight into how humiliating she felt the admin work could be, faxing and mailing packages. I’m no stranger to low-status jobs, having spent five years stacking shelves in supermarkets, but it was a good reminder. She also acknowledges the other side of the coin, that it can be really tough for the rest of the team to cope with someone avoiding all that work, when it’s their job to get it done. I don’t know what the solution is, but it’s a scenario I’ve seen play out many times. Maybe the combination of training and advancement, together with an insistence on keeping on top of the boring stuff is the right way to go.

My favorite part of this book is all the anecdotes, they really give you a flavor of the startup life, from the brown shag carpeting in their first office, to their receptionist being afraid to be left alone in the office with their first programmer!

It’s a great read, it keeps you turning the page, and is focused on the nuts and bolts of growing the business. I’d highly recommend it if you’re interested in an honest and informative account of a startup that succeeded.

Funhouse Photo User Count
: 958 total, 55 active. Much as before.
Event Connector User Count: 5 total. AdWords isn’t showing any conversions at all, so I’ll need to rethink my tactics there. It’s in the queue for the applications directory, I’ll see how that helps the totals.

A practical implicit web example


It took me a while to warm to the term implicit web, but I’ve realized it is a good container for a lot of the improvements in browsing I want to see. I always find concrete examples better than abstract definitions, so I’ll outline a user experience I’d like to build, and how that ties in with the definition.

I have a handful of sites that I visit very often, because they contain trusted information in areas I work on.  I use the term local neighborhood to describe this set of sites. When I do a search, I want these sites ranked very highly, because their results are very relevant to me.

A lot of my friend’s interests overlap mine, and I am more likely to find relevant results in sites they visit frequently. I’d like my searches to rank sites in my friends local neighborhoods more highly too.

This is an implicit web process because the local neighborhood is built implicitly, from monitoring my browsing history, rather than some explicit method such as bookmarking. This is important because almost all users will not take explicit actions, even if they will produce some long-term gain. Technologies that rely on users doing something that feels like work end up stuck in a geek ghetto.  Nobody I know who works outside IT, uses

General users are more willing than us to surrender some privacy in return for improved features. me.dium relies on this. I’m trusting them with my entire browsing history, and in return they give me information and communication about other users in my current local neighborhood.

Google is moving in the direction I want with its search history feature, but that only biases sites that you find through searching. I go to my local sites through typing the first few letters in the address bar, so they won’t be included. Flock has a search history feature too, that looks through the pages you’ve browsed recently. This is closer, but your history is kept locally, so you easily lose it if you move machines, reinstall, etc.

Neither of these approaches work with my friends’ local neighborhoods. There’s a serious obstacle to this happening; the information about my social graph is stored in a database owned by a different company than the one I use for searching. At the moment, information like this is only ever shared within an organization, since it’s treated as valuable and proprietary. This sucks for users, since they created a lot of the information themselves, and they can see it all, so why can’t their software?

Aggregators try to get around this by having users give them their passwords and user names, and screen-scraping using a central server. This is both fiddly for users to set up, and easy for the providers to block if they want. A few services also offer a web API, but these are fairly limited in the information they provide, and subject to being blocked by the providers at any time. The fundamental conflict is that the value of these companies is largely based on their data, and they aren’t about to give it away to a competitor.

A better way to solve this is with the semantic web. The idea is you make web-pages understandable by software, not just human readable. As you browsed Myspace, client-side software would interpret each page and discover who your friends are, and the more important ones whose profiles you visit, or who you exchange messages with.

Sounds great, but so far it’s been a pipe-dream, because it’s like web APIs, there hasn’t been a good reason to make your pages easily understandable by third-party software.

One of my big research efforts is finding some simple, practical ways of jump-starting this process, by using simple rules to reliably work out semantic information about a web page. Google Hot Keys is one result of this work; it analyzes pages to work out which are search results, what the search terms are, which links are the pages associated with those terms, and what the ‘next page’ link is. It’s promising to see that the rules are robust enough that they work with over 40 different foreign language Google sites, as well as Ask and Live.

It seems to me that the only way to fulfill the promise of the implicit web is to combine client-side technologies that have access to all the information a user does, and software that can pull data directly from the web-pages as they browse.

Funhouse Photo User Count: 944 total, 63 active. A bit of a larger total increase, still not very exciting.
Event Connector User Count: 5 total. The adwords campaign has gained me one user, got 16 clicks, and cost $1.13 so far. Probably time to change tactics!

Facebook debugging in PHP

I’m using PHP to develop my facebook apps. I’ve never done server-side development before, and one of the more awkward aspects is debugging. Luckily, I have done plenty of other remote debugging before, and a lot of the general techniques cross over. Here’s what I use at the moment:

Error logging to a file

PHP writes out a message to /etc/httpd/logs/error_log whenever it hits a syntax error. I generally run this command line to see the latest errors:
tail -n 500 /etc/httpd/logs/error_log

You can also insert your own logging messages into the file using the error_log() function.

Error logging to the HTML output

Sometimes it’s quicker to see the errors right in the browser as you try to load the page. I don’t use this much for syntax errors, but I do often add print() statements to show debugging information. One of the most useful tools is the print_r() function, which displays all the internal elements of arrays and objects.

You can enable inline error reporting by changing the php_flag display_errors line in your php.ini file to ‘on’ if you want to see syntax errors too.

Ajax errors

Debugging Ajax-style server requests was very tricky. One way I found in Facebook was setting the response type to RAW, and then setting that response text directly into a div. Even better was using FireBug, a great extension for Firefox that gives you a lot of information about what the browser is up to.

Choose Tools->Firebug->Open Firebug from the main menu, and click the checkbox in the lower pane that appears to turn it on. Navigate to your ajax page, and click on the Console tab in the FireBug pane. You should now see a POST entry appear for every ajax call you make, with the time it took to get a response. Twirling that open shows a complete description of what you sent, and what the server returned, in Headers, Post and Response tabs.

Advanced debugging

My needs are simple enough that I haven’t moved beyond these basic logging techniques, but you can check out this page if you’re interested in stepping through code and inspecting variables using a traditional debugger with PHP.

Facebook App User Counts:
Funhouse Photo – 917 total, 57 active. Still very unimpressive growth.
Event Connector – 4 total. I’m giving Google adwords a try, to see if I can reach event organizers with he keywords ‘facebook event promotion’, and a very low budget.

Event Connector launched


I’ve just finished a follow-up to Defrag Connector, Event Connector. It’s got the same functionality for guests, showing who in their social graph is going. The main improvement is that you can now do this for any Facebook event, with a main page that lets you pick from the ones you’re attending. It also lets you add an event button, with a link to the connector, to TypePad and Blogger blogs.

My strategy is to appeal to event organizers, and let them drive the distribution to their guests. That just pushes the distribution problem up a level of course, now I have to reach organizers rather than attendees.

I’m counting on organizers being a lot more motivated than guests to search out promotional tools.  If that’s true, then even fairly passive marketing tools like appearing in the apps directory and word-of-mouth should be effective in reaching them. I’m starting the ball rolling by reaching out to some of my own friends who do a lot of event promotion, and we’ll see where it goes from there.

Here’s the pain-points I’m trying to address:

  • Organizers: Persuades people to attend by supplying the social proof that others they know are going
  • Organizers: Lets people know that the event is happening, by spreading buttons on people’s profiles and blogs
  • Guests: Answers the question ‘who do I know that’s going?’
  • Guests: A simple way to advertise their support and attendance at an event

Funhouse Photo User Count: 917 total, 57 active. Still the same growth as the last week. I don’t have any ideas for making it more involving yet, at least not any that I can do in the time I have available. The statistical usage analysis definitely has to be the next step here, I need to understand what’s working, and what isn’t.

Defrag Connector reaction


I’ve had a great response from Defrag attendees to the Connector. Eric sent out a message and put up a blog post, and Brad Feld and Jeff Nolan both had good things to say about it on their blogs. I’m very proud to see some of the people I read daily giving it a thumbs-up.

The app has 95 users, even though there’s only 63 confirmed guests at the event, which is interesting! I wrote it in a generic way, so it will work with any Facebook event if you supply the id in the URL parameters, and it will pull the attendee information, name and logo from the API. I will see about putting up another app that’s not restricted to Defrag, using the same code with some UI added to let you pick and event.

Defrag is going to be a lot of fun. Liz will be joining me after the conference, and we’ll be exploring Colorado for the rest of the week, since neither of us have been before. Liz’s cousin used to live there, and recommended a road-trip, staying in Boulder and then doing a loop through the mountains. It’s a shame we won’t be bringing our mountain bikes, but hopefully we can manage some cross-country skiing and hiking.

Funhouse Photo User Count: 903 total, 57 active daily. Still the same slow growth pattern of the last week. I won’t be making any changes this weekend, since I want to concentrate on some of my other projects.

The Entrepreneur Mentor Society


A few months ago, I was lucky enough to attend a session of the Entrepreneur Mentor Society. Shaun Tan set up the organization to help LA college students learn about starting businesses by meeting experienced entrepreneurs. It’s built around a semester of Saturday sessions, where two or three speakers will stand in front of a few dozen students, and just tell their stories. They always get a great set of folks up front, some famous, but all fascinating. Even better, the students are all busy starting their own businesses, with experienced mentors to offer advice.

LA traditionally hasn’t had the entrepreneurial infrastructure of the tech hubs like the Valley, Austin or Colorado, so the EMS is a big step forward. I started some on-going relationships there with both some of the students and speakers, like Gary Kosman of AmericaLearns. Most of all, I left feeling uplifted and energized by the enthusiasm that everyone radiated!

If you’re ever in LA on a Saturday, and you’re interested in meeting the next generation of entrepreneurs, check out the schedule and contact Shaun.

The Planning Fallacy and Software


The Overcoming Bias blog had a great post on the Planning Fallacy a few days ago. They’ve got some great psych experiments to back the term up, but it boils down to people being inherently bad at figuring out how long a task will take. We always underestimate!

This may sound familiar to anyone who’s worked in software. Guy Kawasaki’s rule of thumb is add six months to the worst case shipping date you’re given, and that sounds right to me. What’s interesting about the post is it not only documents the problem, they also offer a solution.

They describe the normal way people create time estimates as inside planning. This is where you look at the tasks you need to do, create estimates for each of them, and total them to get the final estimate. There’s no time for the tasks you forget, or anything unexpected. What’s interesting is that even when asked to produce a worst-case estimate, people don’t allow enough time.

Their solution is to use outside planning. For this you ignore the unique aspects of the project, and instead try to find a similar completed project, and look at how long that actually took. This usually produces a far more realistic estimate.

This sounds right to me, one of the strengths of an experienced team is that they have a lot of previous projects to compare against. It’s a very strong argument to say ‘well, we’re barely at alpha, and it took us six months to get from here to shipping on project X, so we need to rethink releasing in two months’. If both the team and management were involved in project X, it’s hard to ignore that.

Of course, one of the strengths of a greenhorn team is that they aren’t as cautious! They’re likely to over-commit, but with smart management scaling back the tasks once reality kicks in, they might still produce a better project overall.

Occasionally too, the Captain Kirk/Scotty management/engineering dynamic actually works; "Captain, it will take two weeks to fix!" / "Scotty, get it done in the next thirty minutes." Sometimes that pressure will force a rethink on the engineering side about how to fix something. Maybe there’s a quick hack that will solve 80% of the problem?

Funhouse Photo User Count: 885 total, 72 active daily. I think growth’s actually slowed since my recent changes, so I’ll definitely need to instrument and analyze some usage statistics to try and work out why, and also take a fresh look at the user experience.

Google Hot Keys Download Count: I’ll be occasionally showing my GHK download numbers too, since they’re growing pretty well. I’m up to 4894 total so far on the main Mozilla site. I’m not seeing many IE downloads from my own site, it’s not been approved for CNET downloads yet, and isn’t in any other distribution channels.

Defrag Connector done


I finished off Defrag Connector. You can now search for friends who are going, any mutual friends you share with those attending, and add a button to your profile.

It’s all unofficial at the moment, but I’m checking with Eric Norlin to make sure he’s ok with me publicizing it a bit more. I wrote it to scratch an itch, but I think it could be handy for other attendees too.

Technically, it wasn’t too hard. The biggest hurdle was doing the mutual friends check, since the Facebook API doesn’t offer a direct method for that. Instead, I’m checking every attendee against every friend of the current user, one attendee at a time. This needs an API call per attendee, so it can take many seconds. Since Facebook will show an error screen if you take too long returning a page, I had to implement an ajax callbacks to deal with a few attendees at a time, and update the page. It’s the same technique I used for to solve Funhouse Photo’s loading time problems. It works well with my few dozen friends, I hope it will scale to some of the monster friend counts some of the attendees have!

I also discovered that you can’t add images directly hosted by facebook to the user’s profile, so instead I had to automatically copy the logo onto my server, and then link to my copy.

One nice bonus of creating this was hearing from Rob Johnson of EventVue, a tech stars company that’s got some great ideas on how to create kick-ass conference networking tools. It’s great to see how many good companies are emerging from the program. Rob told me the secret was how clued-in and involved their mentors are. I’m looking forward to continuing the conversation over a beer at Defrag.

Funhouse Photo User Count: 871 total, 54 active. Still not showing any increase in the growth rate. I think my next step should be to add a lot more instrumentation to the app, so I can tell how people are using it, and try to identify parts of the user experience that aren’t clicking. Incidentally, the total now seems to be updated daily, like the active count. I miss the addictive thrill of seeing that tick up through the day!