Why do geeks love the wilderness?

Alaska

Tom Christiansen, a Perl guru whose documentation has helped me out more times than I can remember, recently shared his personal photo site with me. There's some beautiful shots in it, like the one above from Alaska, some from Crested Butte or this fearless fox. It got me wondering about the connection between hackers and the outdoors. Maybe it's the circles I move in, or the demographic of most techies, but most of the really good programmers I know are crazy about getting out into the wild.

I guess what really surprises me is that comparatively few Los Angeles residents even know they're surrounded by a massive wilderness, but it seems like geeks are much more clued in. For myself it opens up different ways of thinking. Biking or hiking hard, surrounded by beauty, empties my mind and brings a sense of wonder. That often leads to insights on problems I've been staring at for too long. I notice the quality of my decisions dropping when I've been stuck indoors too long.

Easily sort and share emails with Taglocity, and goodbye Sandy

Taglocity

I was recently shown Taglocity, a new Outlook add-in that lets you search, organize and share your mail messages. I haven't used it in depth, so far I have been impressed by their well-crafted interface. While some of the features have appeared before in other tools like Clear Context, their focus on collaboration leads to a very smooth workflow.  I'll be posting more once I've dug further into it, but it's great to see another innovative email tool appear.

On a sadder note, I Want Sandy is shutting down as Rael Dornfest will be joining Twitter. I'm sorry to see the service disappear, it was a fresh and quirky approach to calendars and to-do lists. It's great news for Twitter of course, I was lucky enough to share sushi with Rael a few months back, and he's bursting with interface smarts. I look forward to seeing Twitter heading in some interesting directions under his guidance.

Where’s the best place to buy cross-country skis?

Crosscountryskis

Photo by PÄsketur

Liz has been teaching me to cross-country ski, and we decided it was time we bought our own equipment. No stores in LA had them stocked, and we didn't want to order online since we needed help finding the right type and sizes. As it happened, we had an upcoming family visit to Liz's home town of Hayward, Wisconsin, home of the Birkie and the US capital of Nordic skiing.

We headed to the New Moon ski and bike store once we arrived, and were greeted by Joel Harrison. Like me he fell for a Hayward siren, and moved from Idaho to join her, and has a lot of cross-country experience. He was very knowledgeable and helpful, spending a lot of time helping us pick out the right equipment. We tend to prefer ungroomed but not too gnarly trails, so he steered us toward some intermediate skis that would still fit in groomed tracks, but still had enough width to float in wilder snow.

Once we'd picked, New Moon runs a thriving mail-order business, and was able to post them off, so we didn't have to struggle with them on the plane. Joel couldn't have been more helpful, their customer service was top-notch. Even if you can't make it to Wisconsin, I'd recommend buying online from them.

How to check PHP syntax from a shell script

Shells

Photo by 500CPM

I really like the philosophy of making small incremental investments by solving frequent problems, and Eric Ries' article on the five whys inspired me to look at my development process afresh.

I edit my PHP code on my MacBook, and then upload it to my EC2 server to test, since there's a lot of data I can't replicate locally. Often there will be a typo in my code, but I don't find out about it until I have uploaded all the files, refreshed the browser, and then checked the server error log. Catching simple typos early would save me a lot of time, so I looked around for an automated solution.

The shell script below is what I ended up with. It runs php -l on all my source files to look for syntax errors, and then runs the upload process if that check passes. I've only tested it on OS X, and you'll need PHP installed locally. You can either cut and paste the code, or download it here.

#!/bin/sh
#
# Pete- Script to upload the PHP source code to the server, checking for syntax errors first
#

# Insert the path to your source directory here
SOURCE_DIRECTORY=
# The path to your ssh key. If you don't have one, remove the -i argument to ssh
SSH_KEY=~/.ec2/id_rsa-pstam-keypair
# Put the username, domain name and path to the remote server's folder
SERVER_PATH=user@yourserver.com:/www/html/

SYNTAX_RE='No syntax errors*'
PHP_FILES=$SOURCE_DIRECTORY/*.php

echo "**Checking PHP syntax**"

ls $PHP_FILES  1>/dev/null  2>/dev/null
case $? in
0)
   set `ls $PHP_FILES`
   for args
    do
     SYNTAX_OUTPUT=`php -l $args`
     if [[ "$SYNTAX_OUTPUT" != $SYNTAX_RE ]]
     then echo "$SYNTAX_OUTPUT"
     exit 1
     fi
    done
    ;;
* ) echo "No files found"
    ;;
esac

echo "**Uploading files**"

scp -i $SSH_KEY $PHP_FILES $SERVER_PATH

Staring into the Goretex vortex

Athlete

Photo by Finneye

I'm considering a move to Boulder, and I'm thankful to Stan James for pointing me to this Outside magazine article for mental preparation. No matter how hard I'm training, there's always some friend who runs 67 miles through the mountains in a day. Out here that's just a warm-up.

On that topic, me and Stan are planning to stretch our flabby sea-level lungs with a hike near Boulder on Sunday. We'll probably tackle part of the Eldorado Canyon trail that heads up toward Walker Ranch, scene of my near-death biking experience a few months back. Drop me a mail or add a comment if you're interested.

If you like this blog, you’ll love…

Fogwalk

Photo by mdezemery

Startup Lessons Learned. Eric Ries only started blogging a few months ago, but he's already written some cracking posts, like SEM for $5 a day, using the 5 whys to focus your development investment, and when not to listen to your users. These are all obviously tales from the trenches. He's able to dig into the subtleties of tricky topics like agile programming and give advice based on experience.

His focus on building a lean startup is especially useful these days, and I love his focus on the engineering nitty-gritty, I can relate to The Engineering Manager's Lament especially. Go subscribe and make sure he keeps up the good work!

Oblong now means ‘blog on’, not ‘no blog’

Oblonglogo

I'm extremely happy that my friends over at Oblong have finally decloaked and publicly revealed what they're up to. I was introduced to Kwin and John several years ago, and was instantly blown away by the potential of their technology, their infectious enthusiasm, and their scarily large brains. It's wonderful to see them reach this milestone.

Check out their videos to see for yourself, but they're offering a seductively easy but powerful new way of interacting with computers. They're building a system capable of precisely capturing mid-air hand gestures, with no data-gloves needed. Use it once and you'll be hooked.

On a personal level, they've been incredibly supportive of my own startup dreams, even though that's left me less time than I'd like to help them technically. At every step of the way, they've been cheering me on, they are utter mensches, and I'll be cheering them right back as g-speak conquers the world!

Has Microsoft really opened up?

Nowopen

Photo by Mag3737

I've been closely following Microsoft's Open Specification initiative. A lot of people were sceptical, based on MS's long history of using its closed platform to block competitors and the fact that the move was driven by EU legal action. I had hope, mostly because the company has superb third-party developer support in its DNA. Since July I've been actively using the Exchange and Outlook documentation, and it has lived up to its promise. There's been errors and oddities, but no big gaps or censorship that I could detect.

I've only been scratching at the surface though, in comparison the folks on Samba have been battling the Beast of Redmond for secret API information for over a decade. That makes Andrew Bartlett's description of their team's week-long visit to the Microsoft campus all the more astonishing:


We were very surprised by the extraordinary degree of effort that
Microsoft put into this single vendor plug fest. We were given direct
access to the Active Directory product team in Microsoft, plus we had
a team of 6 Microsoft engineers working with us full time for the
whole week

They knew the protocols in great detail, and were extremely
helpful in working through test cases (both in their own test suites
and ours) and suggesting testing and debugging strategies.


Some of the Microsoft engineers have been actively working with the
Samba code base, particularly our test tools, and had prepared for the
plug fest by doing extensive testing of Microsoft tools against
development versions of Samba4

Microsoft's motivations may not be pure, but this is still massive news. They're offering serious help to any third-party developers who need to interact with their server products. This makes a whole set of products suddenly move from engineering fantasy land to a real possibility. If you've ever had an idea that could benefit from working closely Exchange or Active Directory, dig it out from the back of the drawer and re-examine it. You might find it's more feasible than you think.

Why VCs don’t trust you

Hucksters

Photo by Shazz Mack

I'm a trusting person at heart. That's meant I've had to work hard on the second part of 'trust but verify' to make sure I don't get ripped off. It's also made me (possibly too) sensitive to anything that seems like sharp practice. I ripped into Rick Segal when he joked about a trick question he'd throw at entrepreneurs. I'd overreacted, apologized, and noted that VCs have a tough job dealing with hundreds of people a year wanting money and figuring out who's genuine.

It didn't sink in quite how tough until I saw Rick's last post. He received an unsolicited email with a deck attached. The email was an obvious spammed form letter, but what was really mind-blowing was the extra slides at the end of the powerpoint presentation. Clearly intended to be used only for live talks, they were entirely different versions of the business plan for different audiences, with completely different facts about the team, market sizes and objectives. Dealing with a constant barrage of similar folks queuing up to deceive you would be enough to make Gandi turn cynical.

I often feel like a country cousin when I wander around the Valley, not really understanding how the game should be played. There was a Gaping Void I can't find that had a VC and founder; "What's your business model?" – "You are, rich boy". I like money as much as the next guy, but a startup seems a really hard route to riches unless you're strangely obsessed with building a company. If there's one silver lining to the current funding crunch, I'm hoping it will at least cut down the number of hucksters like these sucking up the investment oxygen.

How to connect to Exchange from Linux

Change

Photo by Bellah

The OpenChange project has produced libmapi, a framework to allow Linux developers to connect to Exchange using the same MAPI/RPC protocol that Outlook uses. This potentially gives you access to the full range of data held on an Exchange server, so I've been experimenting with it for Mailana.

It's very much still in development, so you'll likely have to build it yourself from source, along with Samba which it heavily relies on. That Samba dependence also means any code you link libmapi against also has to be released under the full GPL. In practice, you'll probably want to build a simple command-line tool or some other thin interface to hide the MAPI nastiness anyway, so the rest of your system doesn't have to go GNU.

Initially I downloaded the April 08 'phaser' stable release of the code, but subsequently moved to the top-of-tree to get some of the calls that have been added recently. A new stable release is due within a few days, the code is frozen and waiting for the official release of the Samba version it relies on.

The best place to get started is to browse a few of the example utilities included. If you're interested in mail messages, openchangeclient and exchange2mbox are good demonstrations. For appointments and meetings, check out exchange2ical. There's definitely still parts remaining to be implemented, but in my tests it worked flawlessly grabbing the basic information for all messages on an Exchange server. There were some bugs I had to work around, like the recipient's email addresses and display names showing up in the wrong members of a structure, but overall it was very impressive.

I'm going to keep hacking on libmapi, putting together some issue reports and hopefully finding some possible fixes. Julien Kerihuel and the other developers deserve a lot of credit for tackling such a painful API, I'm looking forward to seeing a lot of interesting projects taking advantage of their work.