Camping in LA: Hoegees Campground


I just got back from an overnight camping trip in the Angeles mountains north of Pasadena. We stayed in a small hike-in campground called Hoegees, about three miles in from the parking lot. I’d never been there before, but we were looking for somewhere that would allow dogs so Thor could come, and locally that means National Forest land since both State Parks and National Parks are very restrictive about pets.

It turned out to be a real find. The trail up to the campground is in really good shape, with around a 1000 foot gain over the 3 miles, and some great views down the canyons. It’s placed at the bottom of a small gully alongside a seasonal creek, in the middle of a grove of bay trees. For most local camping there’s a lot of fire restrictions, with only small gas stoves allowed. Here they not only had fire pits and stoves at each site, they even let you burn fallen wood so you didn’t have to pack in your fuel. We had a wonderful evening around the roaring fire, and some fun hunting down extra wood in the dark when we ran low.

The area used to be a hiking resort, and there’s still a whole lot of cabins nearby that people lease from the Forest Service. These are pretty interesting places, with no power or water, mostly dating back to the 30’s. There’s even a ruin in the campground you can pitch your tent in if you want a spooky experience.

It’s first-come, first-served with 15 sites and no reservations or fees at all. We were there on a Saturday night, and though there was a group of Boy Scouts, most of the sites were empty. You’ll need a Forest Adventure Pass to park at the Chantry Flats trailhead parking lot, but since that was full we used the nearby Adams Pack Station lot for $5 a day. We stopped and chatted to the owner Rich Conforti on the way out, and he told us about the work they’d been involved in to keep the trails maintained, which explained the great shape they’re in.

If you want to do this hike and camping, I’d recommend getting both Tom Harrison’s Angeles Front Country map, and John Robinson’s Trails of the Angeles which describes the hike in along Upper Winter Creek trail, and an alternate lower route we took out which went alongside the creek.

More camping posts

Need a custom Internet Explorer or Outlook plugin?

Wisconsin photo by James Jordan

I recently came across Gigasoft Development, a small firm that specializes in writing IE and Outlook plugins. This is the first group I’ve come across that is solely focused on these, and whilst I’ve never used them myself, their work seems impressive.

If there’s any part of your software development you’d want to contract out, it’s writing extensions for Microsoft products. I know from my own explorations that it’s an incredibly deep field, with undocumented gotchas everywhere you turn. It’s a waste to devote months of your own engineering schedule relearning all those lessons if it’s not part of your core technology. It’s pretty rare to have good web developers who can also handle the hard-core Win32 hacking too. Contracting out to a good team of people who already know where the booby-traps are means much quicker and cheaper development.

You can often follow a pattern where the plugin itself is just a thin shim that fetches and renders HTML from a URL you control. That gives you the flexibility and ease of web development for the UI aspects, and means you can update the application logic without touching all those installed plugins.

I also have a soft spot for Gigasoft after looking through their site and spotting that Tom’s a Packers fan from Wisconsin, and they’re based in Illinois. I always love visiting Chicago and Wisconsin when we fly back to see Liz’s family.

You can create beautiful charts with PHP/SWF



I’m getting to the point where I need to display some of the information I’m analysing visually, as part of a web service. I’d looked at jpgraph, which seems to be the best known server-side graph creation tool, and their gallery of example charts made me feel very sad. Here’s an example:

I knew there had to be other alternatives out there, and I was over the moon when I discovered PHP/SWF charts. It’s a flash-based charting system, and it’s got antialiasing, good-looking fonts, transparency, 3D, shadows, animation, interactivity and a very simple API. You can see three examples from their gallery above. It’s letting me create visuals that I can be proud of. The only downside is that it requires a browser capable of running flash, which excludes my iPhone. It’s free for the basic version, and you can get a single-domain license for $45 which lets you do a bit more customization. It’s designed for PHP, but actually internally converts the PHP array arguments to XML before handing them to the flash movie, so you can use it with any scripting language.

How to set up Linux for web development through Parallels on OS X

Photo by CarlosLuis

I wanted a setup for web development that matched my production server, but let me do local development on my MacBook Pro. I’m a big fan of Parallels running Windows, so I set out to get Red Hat Fedora server running too. My requirements were that I should easily be able to install extensions that aren’t standard on OS X PHP like IMAP and GD, and that I could save files to my local drive and immediately run them through the server without having to copy anything.

Getting started with Fedora was painless thanks to this ready-made Parallels disk image. I downloaded that and it loaded immediately with no setup required. I then ran yum to update the system to the latest patches, and I was in business. I had to remove yum-updatesd before I could open any of the desktop software installer applications, but once that was working I could run the Add Software application. There I chose the parts I needed, like mysql PHP and other random web development additions.

After that was going, I created a test.php file containing <?php phpinfo(); ?> and placed it in /var/www/html/. Loading up Firefox inside Fedora and pointing it to http://localhost/test.php gave me the expected information dump. Everything was going smoothly, so I should have known there was trouble in store.

The only remaining part was adding a link back to my OS X filesystem within Linux, so that Apache could access my files without having to do any copying. Parallels offers a great bridge between the Windows and mac file stores, but I couldn’t find anything that easy for Fedora. What I did run across was sshfs, which uses fuse and ssh to create a virtual folder inside Linux that points back to a directory on a system accessed through the network.

I went through all the steps to get that set up, but spent a very long time getting 403 Permission Denied errors every time I tried to access OS X files through Apache. After a lot of hair-pulling, I figured out how to make everything play nicely together. It involves loosening the permissions model, so I don’t recommend doing this on a production server for security reasons, but it should be fine for local development. Here’s the steps:

  • On Linux, make sure you have sshfs, and you’ve added your current Linux user to the fuse group with su -c ‘gpasswd -a <username> fuse’
  • Again on Fedora, get fuse running with service fuse start and add it to the startup sequence with echo ‘service fuse start’ >> /etc/rc.local
  • On OS X, go to Preferences->Sharing and turn on remote login. Make a note of the IP number it displays on that window.
  • To test the remote login, in a Linux terminal window do ssh <mac user name>@<mac IP number>, eg ssh petewarden@ . If this doesn’t work, you’ll need to stop and check the IP number and your Parallels network setup.
  • Now you can try to set up the filesystem connection through SSH. On your Fedora terminal, type sshfs -o allow_other,default_permissions <mac user name>@<mac IP number>:<Path to your mac folder> /var/www/html/testbed , eg sshfs -o allow_other,default_permissions petewarden@ /var/www/html/testbed . The magic bit here are the extra options for allowing other users to access the folder. Without these, the apache user won’t be able to read the files and you’ll get the 403 errors. Be warned though, this is necessary to fix them, but you’ll need to follow the steps below to remove all the permission problems.
  • Because the files show up with a user ID and group ID that’s unknown to the Linux filesystem, Apache’s strict security settings will refuse to display them. To get around this, you need to make the security settings less restrictive. First you’ll need to disable Security Enhanced Linux, aka SELinux. To do this through the GUI, go to the Security preferences and click the SELinux tab. Then choose "Disabled" from the dropdown menu. You could also do this on a per-program basis, but I wanted to keep it simple.
  • Next you need to remove suEXEC, another security feature of Apache. To do this just move the file itself, on my system at /usr/sbin/suexec to another location eg mv /usr/sbin/suexec /usr/bin/suexec_disabled
  • Finally restart apache with service restart httpd and try navigating to one of your pages. With any luck you’ll now be able to save from OS X and immediately see them in Firefox within Fedora.

One of my main reasons for this setup was to easily install extensions. After going through these steps I was able to just run yum install php-gd to get the gd graphics library, a project that had previously taken me hours of fiddling on OS X even with fink.

Update: I’m now using the Parallels Linux instance directly from OS X. To do that I had to enable HTTP in the firewall settings on Fedora, and then ran ifconfig to work out the IP address that it had acquired. After that I can navigate to http://x.x.x.x/ in my OS X copy of Firefox and access my files, without having to ever switch to the Linux desktop.

Kinesis Keyboards – I wish I could quit you

I’m stuck in an abusive relationship with my keyboard. The Kinesis model I use is an RSI sufferers dream, and I’ve been using one for the last 4 years. Unfortunately, I’ve just had to order my fourth, since they’re built to shop class project standards.

The design is perfect, with an amazing amount of programmability and a QWERTY layout where you never need to stretch or strain your fingers from their home positions. There’s even a programmable foot switch, which I have mapped to shift, control and command, since pressing my little fingers for the modifiers seemed to be at the root of a lot of my pain.

They’re pricey, starting at around $300, but look and feel cheap. The silver paint rubs off pretty easily, the cut plastic is uneven and they use a telephone connector to join up the pedal with the main unit. More seriously the lack of quality shows up in the number of times they go wrong. I’ve had to open up and fiddle with all of my keyboards and footswitches. They’re surprisingly low-tech inside, with a small PCB and chips for the keyboard and old-school analog sensors for the foot switch. Because of this I’ve sometimes had luck when the problem turned out to be a loose connector or dirty contacts, but I’ve never had one last more than 18 months before it’s declared dead. Before you blame the victim, I’m pretty careful with my equipment, so I don’t think I’m putting them through anything unusual. They have a 2 year warranty, but I’ve not wanted to lose my keyboard
for the time that would take, and have usually hacked mine so much by
the time I give up that I don’t feel like I could return it.

I still recommend them to anyone who wants a hand-friendly keyboard, Liz now has two, but go into the relationship with your eyes open. I’d love to hear alternative suggestions too from anyone who’s found something better.

Off the grid on Santa Cruz Island

Photo by Kevin Sarayba

Tomorrow morning I’m off for a four day camping trip to Santa Cruz Island, where we’ll be working with the NPS rangers to fix up some of the hiking trails. It’s like a trip back to the 19th century, with no phones, cars, planes, and no permanent inhabitants on a 100 square mile island. I can’t imagine any other way of escaping from my compulsion to check my iphone and RSS reader, and it’s one of the most beautiful places on earth to boot. All that and it’s just an hour’s boat ride from LA!

To keep you busy while I’m away, I recommend checking out the Bombay TV video mashup site. It’s very simple, just placing subtitles on some old bollywood movies, but the clips are perfectly chosen. I guarantee that you’ll wake up everyone in the room if you use this for your next presentation.

Why aren’t we using humans as robots?

Photo by Regolare

Yesterday I had lunch with Stan James of Lijit fame, and it was a blast. One of the topics that’s fascinated both of us is breaking down the walls that companies put up around your data. In the 90’s it was undocumented file formats and this decade it’s EULAs on web services like Facebook. The intent is to keep your data locked in to a service, so that you’ll remain a customer, but what’s interesting is that they don’t have any legal way of enforcing exactly that. Instead they forbid processing the data with automated scripts and giving out your account information to third-party services. It’s pretty simple to detect when somebody’s using a robot to walk your site, and so this is easy to enforce.

The approach I took with Google Hot Keys was to rely on users themselves to visit sites and view pages. I was then able to analyze and extract semantic information on the client side, as a post processing step using a browser extension. It would be pretty straightforward to do the same thing on Facebook, sucking down your friends information every time you visited their profile. I Am Not A Lawyer, but this sort of approach is both impossible to detect from the server side and seems hard to EULA out of existence. You’re inherently running an automated script on the pages you receive just to display them, unless you only read the raw HTTP/HTML responses.

So why isn’t this approach more popular? One thing both me and Stan agreed on is that getting browser plugins distributed is really, really hard. Some days the majority of Google’s site ads seem to be for their very useful toolbar, but based on my experience only a tiny fraction of users have it installed. If Google’s marketing machine can’t persuade people to install client software, it’s obvious you need a very compelling proposition before you can get a lot of uptake.