Running on empty

Filed under: biking, so. cal — jlm @ 12:08

Biking from Union Station to Pasadena at 1:30 at night when you’ve already biked 30 miles that day is like an hour of some kind of Greek hell. Not painful, but dark, and cold, and lonely, and tiring, block after block after block gradually uphill, with no sign of progress.

The MTA ticket machines are pretty cheeky letting you buy a ticket after the last train has left due to the holiday schedule, with no signs up saying the last train will leave at 11:50.

Encountering a Winchell’s on the final leg up Fair Oaks was welcome, though I could have used it earlier.

Jacob’s route from getting from Union Station to Pasadena when you’re bone tired and don’t want any big hills:

  • Union Station is on Alameda. Take this north a couple blocks to where Main St. veers off to the right.
  • Take Main through the industrial area into Lincoln Park. This goes through a pass in the Lincoln Park hills, so you avoid climbs like you’d get taking say Broadway.
  • Main turns into Valley at Mission St. Turn left (north) here.
  • When Mission meets up with Huntington, get on Huntington and ride it through El Sereno into South Pasadena.

If these directions make any sense to you, you already know how to get from South Pas to whatever part of Pasadena you live in. For me, this was taking Fair Oaks in. These directions are poor at encountering all-night victuals depots, so could use some refinement here. (Maybe Broadway to get some food, then cut down to Main St. for the pass?)

My legs and butt still hurt.

More upbeat post coming soon…


suphp and WordPress

Filed under: linux, web — jlm @ 13:14

Okay, so I now have WordPress working with suphp, which allows for the use of Unix user accounts in php scripts. Steps:

  • I made a dedicated jlmphp account, so php won’t have access to my main account.
  • The hosting server (ofb.net) runs Debian, so I installed suphp with
    apt-get install libapache-mod-suphp
  • In the Apache config, I put the lines:

    LoadModule suphp_module /usr/lib/apache/1.3/mod_suphp.so
    suPHP_Engine on


    <VirtualHost *>
    ServerName php.mandelson.org
    DocumentRoot /home/jlmphp/www/data/

    The first set turns suphp on, the second set makes a virtual host “php.mandelson.org” with its own www directiory in jlmphp’s homedir.

  • Made a CNAME aliasing php.mandelson.org to mandelson.org, so that when you look up php.mandelson.org you get this server.
  • Changed the blog address to be http://php.mandelson.org/wordpress/
  • In the .htaccess file for jlmphp, put

    AddHandler x-httpd-php .php

    (which tells Apache to use suphp for .php files in this directory), and put in redirects from the old blog address to the new.

  • Made wp-config.php user-readable-only and change the passwords. (Which is the whole point!)


Make your own robot

Filed under: misc — jlm @ 21:15

Someone has done something creative with that Flash engine which is used to make all those insipid dress-up “games”.
Newgrounds link

It won’t let you really make a robot. But you can make an image of one:

[image of robot]


Information theory applied to word puzzles

Filed under: math — jlm @ 19:12

You know those coin weighing puzzles? For the most part they can all be solved easily by using elementary information theory: At each step just make the weighing which maximizes your expected information gain. But what about word puzzles, can the math help us here?

Well, lately I’ve been playing this word game sometimes called “Jotto”. The idea is you pick a six letter word, and the person you’re playing against also picks a word. Then you each try to guess the other’s word. You do this by selecting a word, then they tell you how many letters match their secret word.

For example, if my word is “spaces” and you guess “guests”, I’d tell you that 1 letter was right. Then I’d get a chance to guess your word.

But what’s a good strategy? Well, I often try “throw out a lot of vowels” then once I think I have those pegged I play hot-and-cold with the rest of the word. But more ideally, you’d pick a word which divides up the word space as evenly as possible so you’ll get to small sets of possibilities quickly. Or put another way, you want to maximize the amount of information you acquire at each guess. Now, estimating information content is hard to do (how many words are one-letter matches of “spaces” as compared to zero-letter matches? Now take the logarithm…) but it’s easy enough for a computer to calculate, so I built a “Jotto Bot” which does just that. It plays pretty well — sometimes amazingly, but it doesn’t learn, so once you’ve found a word in the information boondocks, it’ll always do poorly on it… for now.

Friendly interface here and to see what’s going on behind the scenes look here.



Filed under: programming, web — jlm @ 17:00

One of the sessions I attended at OSCon was about the upcoming CalDAV standard. As calendaring is a weak spot in the Linux/Free Software application space, advances here are particularly welcome.

There was a panel of implementers there, representing:

  • Novell / Hula
  • Mozilla Foundation / Sunbird and Lightning
  • RPI / UW Calendar server
  • OSAF / Cosmo and Scoobie and Chandler

(organization) / (programs)

A lot of the session talked about features of their various products, but I’ll ignore those in favor of looking at the protocol.
CalDAV in a nutshell is WebDAV holding iCalendar files and extended to handle calendar-type queries (“when is Joe Blow free?”). The idea is the basic common protocol one: An open spec will let all these products interoperate, so you can use the calendar app which is your favorite without having to bother with which calendar system is at the other end. (Do you know what software your email server is running?)

The IETF tried to standardize calendaring before, with its CAP (“Calendar Access Protocol”), but no one implemented it. Starting from WebDAV means implementers have less work to do, and hey!, it’s working.

Stuff like room / multiparty scheduling is not addressed, they’re leaving that for a later protocol. “Clearly more research is needed.” Conflicting schedule changes are detected using ETags; resolution is unspecified and left to the clients to decide.

If you’re doing any calendaring, you absolutely want to take a look at it. You’re already supporting iCalendar (right?), and there are WebDAV implementations out there you can use (though alas not particularly cleanly), and from there to CalDAV isn’t a big step for an implementer but is a giant leap for interoperability.



Filed under: misc — jlm @ 17:28

[Edit: Link down due to technical problems.]

Pictures from a backyard party I was at in PDX.


Can you find me?


Back from OSCon

Filed under: travel — jlm @ 16:45

I’m back from the O’Reilly Open Source Conference in Portland. The conference was great but surprisingly tiring. There were a huge number of people there. The exhibit hall was pretty small, and there were many (about 10) sessions going on at a time. Contrast this with say the Unicode Conference, which had a much larger exhibit hall, but only three sessions at a time (and a much lower attendance). Or compare to SCALE, which had a small attendance, but a small exhibit hall and many sessions, like OSCon.

I prefer the Unicode Conference model; with the way OSCon is set up, you always feel like you have to give up something you want to attend when you go to another session. With just three sessions at once, you only occasionally have that feeling. But I guess the big problem is that Open Source is such a wide audience that you need a ton of sessions to capture the appeal of enough people.

As my employer paid my way, I’m going to be talking about some of the more interesting sessions on its blog (link forthcoming) instead of here. Some good sessions, good conversations, good people make for good times. And it was very nice to be back visiting the Portland area again. The MAX system has grown and is impressive — too bad Angelinos are so dismissive of public transit, they don’t know what they’re missing (whereas I do, ugh). I finished up with a nice short hike in the Gorge to McCord Creek Falls; I was worried about the heat, but under the forest canopy it was nice and comfortable.


Don’t use Dotster

Filed under: networking — jlm @ 12:55

The airhook and liboop sites are now at http://airhook.ofb.net and http://liboop.ofb.net.
They used to be under .org, but when they expired (and they were set to auto-renew), Dotster transfered them to “DSTR Holdings”. Dotster didn’t update the whois, which still shows Dan Egnor as the domains’ owner, but otherwise are not recognizing his claim to them.

The old airhook site is now a generic parked domain page, with Google Adsense for Domains links. The old liboop is a copy of the old liboop grabbed from archive.org, with some Playboy links thrown in.

Want to register your domains with a company which is using a subsidiary to jack your domains as they expire? I didn’t think so.


President Thai’s back

Filed under: biking, so. cal — jlm @ 13:48


The famous President Thai restraunt is back in operation.
Still have cheap lunch specials. Dining area is about 2½ times its old size, and lots of parking. No bicycle parking, still. (In the kitchen: Employee: “Do you think we should get a bike rack?”
Manager: “We have time, it’s too hot to bike in the summer.”
Employee: “Well, someone has locked their bike to the gate.”
Waiter enters, to refill his water pitcher, “That guy on table 17 has drunk 8 glasses of water!”
Manager: “Probably just some westerner who ordered ‘spicy’.”
Cook: “Curry for table 17 up!”)

If you don’t know where it is, take San Pasqual west. After you cross Rosemead, you’ll crash into a building because San Pasqual ends at Rosemead. That building is President Thai.

My first comment spam

Filed under: web — jlm @ 08:55

[link redacted] – This is the best site that you will ever find with all the best online Forex news, the lates quotes, and the highest currencies

I feel so special. It’s a real grown up blog now. Not.

Powered by WordPress