The Oracle of Apollo Snippets from the life of Apollo Lee

Keep WordPress Updated

This website has been loading quite slow lately. I found some weird stuff in the code from before I recently upgraded to WordPress 2.5. In the header of this blog was <div id=”_wp-footer”> and a bunch of stuff I didn’t put there.

I started googling around and found a couple of interesting blog posts, one of which was posted in December. Roberto Galoppini reports on the WordPress Spam Injection exploit.

Decoding it with base64_decode came out that such code calls an external javascript that pastes on the fly some spam links in the page, writing also in the option field strings of this form rss_*…

<gulp />

I checked my database:
SELECT option_value FROM wp_options WHERE option_name LIKE "rss%";

2271 lines match.

I’ve removed all of those and upgraded this blog to WordPress 2.5.1. Naturally, since I was scheduled to run 5 km tonight and since I wanted to get this taken care of while I was thinking about it, my Google ping times were over 2500 ms the whole night and it took about 90 minutes to upload the five megabytes that comprise WP 2.5.1. Thanks, Comcast.

Since it’s already after 10, I might as well get the rest of my blogs updated as well. Better to catch the ones nobody reads before they get removed from Technorati and Google Blogsearch like this one did.

Moral of the story:

KEEP YOUR SOFTWARE UPDATED


How Brightkite Flunks at Mobile Usability

Yesterday, my friend, Daniel, invited me to try out a new mobile messaging / microblogging service called BrightKite. With a writeup on Webware and a shiny new closed beta, BrightKite is teeming in buzz. I was excited to try it out.

I’ve been using Dodgeball since August 2006. Dodgeball is now owned by Google and many of my friends are on there, although a number of them have me blocked, primarily because I like to check in from all over the Bay Area. Lots of people who live in San Francisco feel like “San Francisco” means the City of San Francisco only (and not the Bay Area). I like Dodgeball because I can add locations in it, add an alias to make it easy for me to check in, and use it to remember what I should Yelp.

In January of 2007, I signed up on Plazes as soon as it opened for public beta. I don’t really use Plazes that much, although I do like the fact that I can check in anywhere in the world. This makes it handy for me to track where I visit when I’m on vacation, so I don’t check in from Boise, Idaho (and irritate the four or five Dodgeballers who still follow me). The syntax is simple and I can go back and edit my check ins. Although the UI is a little clunky, it’s easy to check in with Plazes. If more than one of my friends was on there, I’d probably use it more than Dodgeball.

Enter BrightKite. It has a pretty web 2.0 user interface and behaves like a combination of Twitter and Plazes. Very nice. Unfortunately, I can’t use it. Let’s see why.


Dodgeball

me: @ bayside market

db: OK! We just sent a message to your 17 friends in SF letting them know you’re at Bayside Market.

Plazes

me: at bayside market in san francisco

pl: You’ve been plazed at Bayside Market on 120 BRANNAN ST.

BrightKite

me: ?bayside market, san francisco, ca

bk: Pick one:
1) San Francisco Soup Company (1950 University Ave)
2) more

me: ?bayside market

bk: Pick one:
1) Bayside Design Incorporated (846 N Hillview Dr)
2) Bayside Equipment Company (3562 Haven Ave)
3) more

me: @san francisco, ca (evidently, bk thinks I’m still in the South Bay).

bk: Are you sure that you want to check in @ San Francisco, CA, US? Reply with Y to confirm, or try again.

me, not stomping my Blackberry Pearl into the Embarcadero: STOP


With SIX SMS messages back and forth from my phone to BrightKite, I gave up. That’s a usability flunk right there. Yesterday, when I attempted to check in from Trader Joe’s in Sunnyvale, it took nine tries before success was mine. Any time I have to reply to an “Are you sure?” SMS message, you get a D-. If I can check into Dodgeball, which seems to be limited by locale and mainly abandoned, or Plazes, which is so European that the ZIP code is before the city name on their website (i.e.: 94107 San Francisco, USA), why does BrightKite give me so much frustration?

I’m giving the developers the benefit of the doubt, because their product is still in private beta, but it really needs to solve this simple problem. If it’s this much of a pain in the neck to check in (reply with 1, really? seriously?), everyone will use BrightKite for about three weeks.

I hope sending a photo to the service isn’t this much of a pain. I don’t have time to play footsie with a mobile service.

Here’s how I should check into BrightKite: @ bayside market in san francisco, ca or @ bayside market on brannan st in san francisco (having a different symbol than @ to check in somewhere (it’s ? for a business) breaks standard conventions). If there are multiple locations, let me come back later on the web and fix it.

Good luck with this, BrightKite. I’d really like to be able to use your service, but it required too much willpower not to hurl my phone in the bay. Sorry.


Down Goes the Oracle

My domain registration service for this domain blinked off today, because somebody (yeah, me) forgot to renew it. If you sent email after about midnight last night, I didn’t get it. If you get bounces, please be patient. None of my other sites are affected. ApolloLee.com is still there, if you’re itching for some ambient music. If you need to email me and the usual address bounces, chop the .com off that domain, plink gmail on the end and try that.

I’d love to be able to blame Network Solutions for this outage. But, it’s my screw up. Hopefully, everything’ll be back to normal by the time you read this.

Note: Yeah, I’m behind on my posting here. I’ll catch up. I have a list.


CrossFit Day 112

Today’s workout was seven rounds of the clean & jerk for a one-rep max. I’m swapping that out for seven rounds for time of 10 dumbbell clean & jerks at 70 pounds (a pair of 35-pounders). I really need to do more upper body work anyway and practicing the dumbbell clean & jerks will work my core, hip extensors, and shoulders.

I started out really fast, but it only took a couple of rounds before I was subdividing the rounds into fives or threes. As I got more and more tired, I started to slow way down. But, I determined to stick out the whole workout, especially since I’m going on vacation next week to visit my family in Idaho. I doubt I’ll get much of a chance to work out while I’m up in the Gem State.

Rounds:

  1. 01:07.87 (01:07.87)
  2. 02:14.70 (03:22.57)
  3. 03:09.13 (06:31.70)
  4. 03:52.75 (10:24.45)
  5. 02:46.78 (13:11.23)
  6. 04:13.00 (17:24.23)
  7. 03:37.95 (21:02.18)

That was a little bit harder than I thought it would be. I spent a bunch of that time starting at the dumbbells and breathing hard. Next time, I hope to knock half that time off.

My HRM: 21:04, 3:38 zone (hard); HR: 172 avg, 189 max; 319 cal


CrossFit Day 111

Today’s workout was “Fight Gone Bad”, a legendary workout that features an amazing barrage of work against the clock in a very short period of time. I’m definitely substituting some of these, due to lack of equipment or strength. But, let’s go after it.

Fight Gone Somewhat Douchey:

Three rounds for max reps:

  1. 60 sec dumbbell thrusters (2×20# DB)
  2. 60 sec sumo deadlift high pulls (53# KB)
  3. 60 sec dumbbell push presses (2×35# DB)
  4. 60s kettlebell swings (53# KB)
  5. 60s rest

The original prescription also includes box jumps which I’d slated for tuck jumps, but in all the excitement I forgot them. Once I got going, I spent more time gasping than throwing the weights around, but I stayed after it as hard as I could. I managed to tangle up my headphones after a warmup and had to stop and restart the tabata music that allowed me to keep track of what I was doing. This workout didn’t like me and beat me up. I’m looking forward to a rematch.

Rounds:

  1. 25 + 23 + 05 + 17 = 70
  2. 21 + 20 + 06 + 21 = 68
  3. 21 + 20 + 04 + 17 = 62

That made my score 200. Obviously, I need to do a lot more push presses with the heavy dumbbells. There’s really no excuse for such a weak showing, but I’ve been a little distracted lately. I need to stop blowing off so many workouts and refocus on my conditioning.

My HRM: 15:08, 3:06 zone (hard); HR: 166 avg, 185 max; 214 cal


Introducing ApolloLee.com

With the beginning of 2008, I made a resolution to get serious about my music. While I didn’t say much about it here, I resolved to attempt to write at least one track per week for the whole year.

At first, I concentrated on writing exactly one track a week, but I’ve been a little more prolific over the last couple of months. In order to keep myself disciplined and on track with this project, I started a brand new blog. But, unlike Digeum, a podcast Jay Def and I started in 2005 that died after the first episode, I wanted to make sure that the “52 Tracks in 52 Weeks” project stayed on focus.

I decided to announce it today with the completion of the 20th track of 2008. Most of the music I’ve written so far this week has been ambient. So far, I’ve written 18 improvised ambient tracks in a row, with a pair of simple house tracks in January. Not all of this music is good, but a baseball player doesn’t hit a home run with every at bat.

In the process of creating big skills in all my software, I also started another project, Osteocephalic, which is a blog that give me a place to try experiments, tutorials, offer my musical insight (mainly to myself and my friends). Sadly, Osteocephalic.com doesn’t have nearly as many articles as ApolloLee.com, but hopefully, I’ll come up with some good tutorials and experiments before long.

Please feel free to listen to my new tracks. A full track list is available. Enjoy!


CrossFit Day 110

Today’s workout was “Nate”, a hero workout that debuted about a month ago. My variation, “Eights for Nate”, features 20 minutes of work for max rounds. My lack of a pullup bar today will have me doing the pullups on a door. Here we go.

Eights for Nate:

Max rounds in 20 minutes of:

  1. 8 door pullups
  2. 8 weighted chair dips (22#)
  3. 8 handstand pushups (knees on table)
  4. 8 kettlebell swings (53#)

I thought that I’d be able to equal my effort from last time and get 8 rounds of the Eights done. Unfortunately, I underestimated the difficulty of doing pullups against a door with a limited range of motion. The pullups took much longer than they do on a bar, just because there’s nowhere to go but up. I’m going to get a pullup bar as soon as possible.

I finished 7 rounds with 15 seconds to spare. Next time, I’m going to get at least 8 rounds. No more door pullups for me. That’s a little bit ridiculous. Let’s try not to break our equipment in the future.

My HRM: 20:12, 7:32 zone (hard); HR: 158 avg, 178 max; 264 cal


CrossFit Day 109

Today’s workout was “Nicole”, a “girl” workout that I’ve done once before, although that time was using assisted jumping pullups. Today, we’re going for the full monty.

Max rounds in 20 minutes of:

  1. 415 m run
  2. Max rep pullups

I decided to set my pullup rounds to 10 pullups plus the run. After a couple of trial pullups to make sure that my horrendously rope-burnt fingers could handle the pullups. Feels okay. Let’s do this thing.

At first, I thought my runs were going to be difficult, because the sprinklers were on until I finished stretching out. Luckily, the sprinklers stopped and the area I was running through was either dirt or non-wet grass. I wanted to get at least five rounds done this time, so my goal per round was 4 minutes, run included. Most of the time, I’d wait about 15 seconds to run after my pullups were done.

I noticed time slipping away from me on the last round, so I decided to do 20 pullups in that round instead of the usual 10. This enabled me to do a little more upper body work and get everything finished with about 10 seconds to spare. I forgot to turn off my heart rate monitor, though, until I was in the car, heading home. Oops.

Rounds:

  1. 3:25
  2. 3:46
  3. 4:00
  4. 4:00
  5. 4:50 (20 pullups)

My HRM: 23:33, 1:16 zone (hard); HR: 171 avg, 188 max; 358 cal
My stopwatch: 19:50


Saying Goodbye to Consumating

This afternoon, around 1:30 in the afternoon, CNET switched off Consumating for the last time. It was announced about six weeks ago, but we all still hoped that there’d be a last minute reprieve. This evening, we were redirected at Help.com, where the foul-mouthed hipsters of Consumating crashed head-on with the heavily-moderated juvenile-friendly help.com.

I’ll avoid romanticizing Consumating, but I mentioned the shutdown before and I’ve made my feelings known to my friends there. We’re all over on Go Team Internet, as well as a couple of other clones.

This evening, my friend, Lady Oracle, and I wandered up to San Francisco to Katie O’Brien’s to gather with some friends and give Consumating a send off that she certainly deserved. Combustible Monkey, Oranges, Ozreiuosn, 18percentgrey, and Machined joined us, but before long we all parted company, except for the five of us that headed over to CNET Headquarters to remember Consumating.

Somehow, Lady Oracle managed to snag the CDF Honor Guard Band, which was roaming around the pubs of San Francisco playing their music, to play “Amazing Grace” as some people held a candlelight vigil. The bagpipers played, the drummers drummed, the security guard at CNET looked baffled, and the honor guard refused all suggestions of tips. Not only did they play several songs and march around in the CNET courtyard, they continued to play for about half an hour. The acoustics in front of that building, bounded by a hotel, are fantastic.

That’s how you send off something that’s been a central part of your life for two years. Thanks for everything, Ben, Adam, Jesse, and the whole crew of Consumating. It’s been a blast.


CrossFit Day 108

Today’s workout was “Michael”, a hero workout we get frequently (previously: Jan 09, Dec 03, Nov 17, Oct 28, Sep 19). Michael was the second CrossFit workout I ever attempted. Today, I’m gonna try to go hard and aggressive. My goal: 27:00 or faster. My January time was 27:42.96.

Three rounds for time of:

  1. 810 m run
  2. 50 situps
  3. 50 back extensions (good mornings), 30# DB

Perhaps accidentally moving the situps and back extensions around in order (the website assigns the extensions first) allowed me to steam through this thing faster, but I’d like to think it’s because I’m significantly stronger than I was two months ago. Not only did I beat my 27 minute goal, but I beat it by more than a minute. This means that I’ve ripped 2 minutes off my previous best. Yeah, baby! Onward!

Rounds:

My HRM: 25:34, 4:50 zone (hard); HR: 171 avg, 192 max; 383 cal
My stopwatch: 25:34.91


← Before After →