Digg tracking clicks like Adobe with Omniture’s 2o7.net

Remember when everyone got worked up over Adobe tracking access to upgrades using Omniture’s deceptively-named 192.168.112.2o7.net URL?

Go to Digg’s front page and keep an eye on your browser’s status bar when you click a story. Before you see the messages normally associated with loading a page, did you catch “Looking up digg.112.2o7.net”?

2o7.net

Why wouldn’t Digg want to track users’ clicks? Collecting data on Continue reading Digg tracking clicks like Adobe with Omniture’s 2o7.net

Yakuza Elvis Dance Party

We saw the Japanese Elvises this Sunday at Yoyogi. They dance all over Tokyo, and apparently the large tattoos are a good indication they’re Yakuza — Japan’s equivalent of the mafia.

One of ’em sure likes to start trouble. Check it out.

Stay tuned for hilarious video of the Japanese pop lip-synchers who performed for our Hanami party.

Hidden Vintage Guitar Shop in Tokyo

I miss my guitar. It’s the only thing I would’ve liked to bring but couldn’t.

Fortunately, these universal symbols of awesomeness are sold everywhere, so now and then I get to duck into a music store and play a little.

The sign for the shop across the street from our current place reads, “Premium guitars. Vintage, used, and brand new,” which usually means they have a full supply of cheapos and a couple decent Martins.

Woodman Instruments - Shibuya, Tokyo

It’s a reasonable assumption. When I sold one of my guitars on a Martin forum, every single person who inquired was international. The cost of importing American guitars is astronomical — the Irish buyer would have paid twice as much for a new one!

But this little store, tucked away in a residential area of Shibuya, turned out to have a selection that would be impressive anywhere.

Little Martin parlor guitars from the ’30s. Big Gibson J-45s from the ’60s. A 1956 Stratocaster that would set you back $68,000.00!

Gibsons

I’ve always stuck to Martins, but the wall of Gibson dreadnoughts seemed much cooler. A dark-stained J-45 with a white pickguard was the James Dean of the group, but after trying a few I settled on a golden 1964 J-45CS.

Martins sound much better to me, but there’s something that made playing the Gibsons more fun. They look like they have more character… maybe that translates into a feeling?

Playing a 1964 J-45CS

They probably had 30-40 vintage Gibson acoustics and archtops, 30 or so Martins from 0-18s to an 000-45 custom, a handful of Guilds, and some vintage Fenders.

Their inventory is online here.

If you’re around Tokyo and looking for lots of awesome acoustics and some special electrics, pay a visit to Katsuyuki Sakai at Woodman Instruments, just behind the Cerulean Hotel in Shibuya.

And don’t forget me if you get a free J-45CS with your purchase. 🙂

Woodman Instruments

Optimizing lighttpd with YSlow

Yahoo may trail Google where it counts, but they’ve been very cool about sharing information on optimizing their site.

When your site gets 10 visitors a day, it’s not worth your time to worry about how fast your pages load; but if you’re serving millions of people, every millisecond counts. So Yahoo created a team dedicated to improving user experience via performance.

Yahoo!

Though more companies are getting savvy as online presence becomes increasingly essential, it’s still easy to find offenders. Notice how long it takes to load MSN vs. Yahoo. Yahoo is almost Continue reading Optimizing lighttpd with YSlow

FF Tartine Script – choosing logotype for Font Whore

I bought the fontwhore.com domain a while ago with the intention of putting up a typography-oriented journal. Though the more fonts I see, the fewer I respect, it’s a pretty apt description.

Tartine Script is an understated script with personality, like a more-connected, heavier Cutiful. I’ve got the normal and heavy weights… went with normal for the logo.

Tartine Script

Quite elegant… not something I’d want to use for body text, but as a display font it works great. Very legible, a little embellishment on the capitals lends it some flair, and great for offsetting the small contemporary fonts in the WordPress theme I selected.

FF Tartine Script

Permalinks with WordPress and lighttpd

It’s really simple to get great permalinks with WordPress and lighttpd.

The default permalink format leaves you with URLs like http://myblog.com/?p=3. This isn’t great for SEO (showing up as high as possible in Google’s search rankings).

Instead, you want your URL to contain something about the content of your post. We’ll use the title.

Google also favors information closer to the domain name, so http://myblog.com/how-to-eat-figs is better than http://myblog.com/2008/03/18/how-to-eat-figs.

In WordPress, go to Options -> Permalinks and select “Custom.” Enter this.

/%postname%.html

In your /etc/lighttpd/lighttpd.conf, here’s the section for your blog host. The url.rewrite and server.error-handler-404 sections are the important ones.


$HTTP["host"] =~ "myblog\.com$" {
$HTTP["host"] !~ "^www\.myblog\.com$" {
url.redirect = ("^/(.*)$" => "http://www.myblog.com/$1")
}
url.rewrite = ("\.html$" => "/index.php")
server.document-root = "/web/myblog/public_html/"
server.error-handler-404 = "/index.php?error=404"
}

This way, your permalinks end in “.html” so they’re right off your domain and they look like static content. Then your lighttpd.conf takes anything ending in “.html” and routes it to WordPress.

And now this blog is rolling…

Lighttpd 1.5 and PHP (Uber-Uploader too)

Lighttpd is awesome, but 1.4.18 broke the upload progress bar on my file-sending site. After extensive research, I figured out that moving to the unreleased 1.5 version was the solution.

There’s no centralized documentation for getting PHP working with 1.5, so read below to find out how to do it. I’ll also include my experience with Uber-Uploader.

Apache played nicely with UU, but it chokes (hits MaxClients and stops responding) on huge file downloads sent by PHP. Lighttpd solves my problem in two places — it doesn’t choke and it comes with a very smart way to send downloads from scripts.

Unfortunately, since it uses fcgi, it breaks Uber-Uploader. UU’s perl upload script accepts the file in chunks and writes to a status file, which is read by an AJAX-y progress bar. Lighttpd waits for the entire file before passing any to UU.

I figured I’d proxy to Apache for the perl script, then when that didn’t work I tried running everything through Apache and proxying the downloads to lighttpd. Don’t bother. Very frustrating.

So, setting up 1.5 with PHP…

The example lighttpd.conf file included with the source uses a deprecated key that will give you an error on startup.

Here’s how the fastcgi section of your /etc/lighttpd/lighttpd.conf should look.


#### fastcgi module
## read fastcgi.txt for more info
## for PHP don't forget to set cgi.fix_pathinfo = 1 in the php.ini
$PHYSICAL["existing-path"] =~ "\.php$" {
proxy-core.balancer = "round-robin"
proxy-core.allow-x-sendfile = "enable"
# proxy-core.check-local = "enable"
proxy-core.protocol = "fastcgi"
proxy-core.backends = ( "unix:/tmp/php-fastcgi.sock" )
proxy-core.max-pool-size = 16
# proxy-core.rewrite-request = (
# "_pathinfo" => ( "\.php(/.*)" => "$1" )
# )
}

The “check-local” line gives me an error when uncommented. The rewrite-request line is presumably to ensure that GET requests work, but everything works for me with these lines commented.

And like they say in the comment there, don’t forget to add the cgi.fix_pathinfo key to your php.ini.

Here’s the big one. No one tells you to set up fcgi-spawn. You have to run this command before you start lighttpd.

# /usr/bin/spawn-fcgi -s /tmp/php-fastcgi.sock -f /usr/bin/php-cgi -u lighttpd -g lighttpd -C 5 -P /var/run/spawn-fcgi.pid

You can do it manually to try it out, or modify your /etc/init.d/lighttpd like this.


start() {
echo -n $"Starting $prog: "
daemon $lighttpd -f $LIGHTTPD_CONF_PATH
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog
/usr/bin/spawn-fcgi -s /tmp/php-fastcgi.sock -f /usr/bin/php-cgi -u lighttpd -g lighttpd -C 5 -P /var/run/spawn-fcgi.pid
return $RETVAL
}
stop() {
echo -n $"Stopping $prog: "
killproc $lighttpd
killproc php-cgi
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog
[ -f /tmp/php-fastcgi.sock ] && /bin/rm -f /tmp/php-fastcgi.sock || :
[ -f /var/run/spawn-fcgi.pid ] && /bin/rm -f /var/run/spawn-fcgi.pid || :
return $RETVAL
}

Maybe because I’m running CentOS, spawn-fcgi is in /usr/local/bin/spawn-fcgi. If you’re getting an error, try typing “which spawn-fcgi” to see where it is on your server. Check for Ubuntu, Red Hat, Debian, Gentoo, etc.

To get Uber-Uploader working again, just add this to your /etc/lighttpd/lighttpd.conf.

server.network-backend = "writev"

As for the super-smart way to send downloads…

Running a file-hosting site, you can’t just use direct links. Then any popular file could bankrupt you. However tight or loose, you need control over the downloads.

I had a PHP script that would load the file and send it to a user authorized to download. It was presumably memory-efficient, sending the file in chunks, but in reality it killed Apache. That’s because each prefork process can serve a huge PHP request and get bloated, then serve a tiny image while another process serves a monster PHP request and gets bloated. Rinse and repeat.

Instead, you can have PHP send a header with the local filename and user-facing filename that will be intercepted by lighttpd. Then, as long as it can access the file, it’ll send it. As they put it, why use PHP to send static files when that’s lighttpd’s specialty? It’s called X-Sendfile.

Hope you find this useful. I struggled for a few hours to find all this info, but it’s worth it.

Lighttpd slaughters Apache for my purposes, and probably for yours.

Spawn-fcgi
Uber-Uploader forum thread on lighttpd
Lighttpd download headers: X-Sendfile

How to get there when you can’t read the map

I take location for granted. MapQuest predates my driver’s license, so getting from point A to point B has NEVER involved getting out a map. These days, I don’t even think about directions until I’m already in the car, where I fire up Google Maps on my phone.

Panama slowed me down a bit. Though you can find whole streets easily, plugging in an address doesn’t yield any kind of useful result. And with addresses like ours — “España Way, next to Hotel Via España” — what more could you expect?

Now we’re in Japan. Why didn’t I anticipate this?!

Google Maps - Japanese

Though in retrospect it seems pretty silly to think we’d get English over here, every mapping tool I’d ever come across used the Latin alphabet, so I just assumed…

It turns out there’s NO decent Japanese map labeled in English. Even if we’re able to pull a restaurant up on Google Maps, we can’t read the street names or tell which subway stations are nearby.

But we CAN get latitude and longitude coordinates.

Google Maps - lat-long

We bought our GPS watches with this very situation in mind. We’ve used them tracking down restaurants, going to grocery stores, and finding our way home.

Today we’re just the exception, but GPS is fast becoming the rule. Remember back when a camera phone was a big deal?

We’re about to see a consumer GPS explosion as everyone scrambles to include it. In fact, we’re already well on the way.

Thanks to the FCC, every single Verizon and Sprint phone sold since 2005 has it, and as AT&T and T-Mobile modernize their networks they’ll have to include it too. Nokia says they’ll offer “tens” of GPS-enabled handsets by the end of 2008, and they’re domainating the scene with a 40% global market share.

Not only is the system is so simple Tynan can master it, but it’s ideally suited for international use.

All you need are two data points, and they just happen to be in Arabic numerals, the most universally-recognized format on earth. That’s why so many Asian sites use numeric domains.

Numeric domains

What does this mean for you? Expect to see GPS coordinates making their way into everyday navigation tools.

Destinations will provide latitude and longitude in addition to street addresses. Fitness sites will include downloadable waypoints for running and biking routes. Friends meeting up will be able to share their exact locations.

It won’t be long before you see Lonely Planet supplementing their listing for Brown Rice Cafe with 35.665863, 139.710058.

Online mapping took over because it’s SIMPLER. Now we’re going a step further. Google Maps shows you which streets to take, but GPS eliminates your dependency on street signs.

Soon, using only the phone in your pocket, you’ll be able to navigate to any location on the planet with only two numbers. That’s pretty powerful.

If you’re in Tokyo, come visit us at 35.656, 139.699. 🙂

Carnaval in Las Tablas

Jorge, who we’re pretty sure is all but deaf, handed Ty a piece of paper. We’ve been eating at Mireya’s every day for a month now, and since he’s there just as often, we end up exchanging a lot of gestures and platitudes.

Nothing’s ever been important enough to write down, so we read it eagerly.

Jorge’s note

Back home we have Mardi Gras. The rest of the Americas have Carnaval. Since fun is strictly prohibited during Lent, quick-thinking folk all over the planet have arrived at the same solution… have an all-you-can-eat sin buffet in the 5 days preceding!

We read that Panama City’s celebration was one of the best in the world, right behind Rio de Janeiro and Gualeguaychú. No one mentioned Las Tablas.

But if it’s worth Jorge’s effort to let us in on it, we thought, it’s probably worth ours too. “Let’s rent a car and head down there.”   “Yep.”   Done.

Alex Shalman came in for the weekend too, and he was just as excited to see Panama outside the city limits.

I reserved the last car I’ll ever rent with an under-25 surcharge, but I must have been looking good when I went to pick it up. They surprised me with an upgrade to this stately chariot!

Panama rental car

Actually, I was pretty stoked about it. This looks like the average Panamanian car, not the average gringo rental.

After a month without driving, it only took a few seconds behind the wheel to realize why people equate driving to freedom. It’s power! The only thing keeping you from anywhere you want to be is gas money. Good to have the feeling back.

So we plotted our course and drove in circles for a minute, then found our way to the Bridge of the Americas and Highway 1. Aside from the odd watermelon stand or beach/condo development, the area around the highway is pretty raw.

Bridge of the Americas

The road is pretty good, and you can get away with 120 Km/h (75 mph) pretty easily. When you come into populated areas, police like to sit under the walking bridges that cross the highway. With a good radar detector you could go as quickly as you wanted.

About an hour from Las Tablas, we stopped for lunch in Chitre’s town square.

Everyone that passed by our table was completely soaked, less than sober, and carrying a water gun or cooler (or both). A guy who recognized us from karaoke in Panama City also stopped by to say hi!

Hmm… they were all coming from the direction we’d head to continue to Las Tablas.

We hopped in the car and worked our way upstream to get the first taste of crazy. One of the smallest streets in the town was jam-packed with H2O-armed revelers singing, dancing, and harrassing every car that edged its way through the crowd. We got lots of smiles, laughs, and chanting.

With plenty of time before the parades started, we took a little detour to hit our first beach in Panama. Playa Rompio was definitely not a tourist destination… huge, almost empty, and absolutely beautiful.

Playa Rompio

Of course we had to get a little Crossfit in, so we ran on the beach as the sun set.

We arrived in Las Tablas to two groups dancing around the town square with flags and drummers.

Las Tablas’ Carnaval setup is pretty genius. The town has two main streets that compete with each other on every level — festival queens, parades, floats, and fireworks displays. Beef works wonders for rappers — promoting this competition is just as smart.

A few from each group would take turns bearing the flag and leading the procession while the others followed, so naturally Alex suggested Ty take the flag and direct the party. After a little debate as to whether a non-Panamanian could lead, he was in!

Then all of a sudden, all of Panama’s national police force drew their guns and started shooting into the sky! Nah, not really.. but it sounded just like it!

They put 20+ foot strands of thousands of Black Cat-type firecrackers into the street and let ‘er rip. The sound of explosion would be constant for a minute or two! We made the mistake of being downwind once and ended up covered in a fine black dust.

This was closely followed by an aerial assault. Panama must spend an amount somewhere close to its entire GDP on fireworks. In the city, tons of fireworks. In a small town, tons more fireworks! These displays bested what you’d see in an American city for 4th of July, in both quality and quantity.

I felt a hand on my shoulder as I walked back after filming some of the action.

“Hey man, I know you!”

Huh?

“I’ve seen the video of you in the airport doing Crossfit, and I’ve seen your website!”

We’re 3.5 hours away from Panama City, in the middle of a thousands-strong crowd, one month into the first stop of our world tour, and we just got picked out by someone who saw LIFE NOMADIC! What a small world!

Las Tablas friends

We couldn’t have chosen cooler people than Oyden and his friend Oriel. Though their families are from Las Tablas, they live in Panama City and they do Crossfit too. We’re going to get together with them for a workout sometime.

The parade started and we were fortunate to get a bird’s-eye view from the DJ area. The floats were pulled by tractors, but decorated as lavishly as anything you’d see in the US — elaborate sculpture, rich fabrics and gold, young women and girls dancing to the music (the waving dance thing is pretty weird, but anyway).

People followed the floats, especially the ones with bands, dancing and singing. Very cool that you can get up close and participate, vs back home where the police state Homeland Security squad would be ready to pounce if you got within 15 feet.

It seemed like EVERYONE was having a blast all the way until 2:30am — parents, kids, grandparents, everyone! We watched the parade for an hour or two then started making our way back to Panama City.

Jorge was right. Las Tablas was the perfect place to celebrate Carnaval.