Last night I left my Droid sitting on my desk, at about 80% charge. An hour later I picked it up and it wouldn’t turn on. No response to pressing or holding the power button, and even replacing the battery didn’t get it to turn on. I figured the battery was drained and plugged it in this morning–whereupon it booted up and showed 75% charged!

The Verizon store was disappointing. They told me I had installed too many apps and should run advanced task killer frequently. Really, guys? You think I ran out of battery and recharged to 70% in a matter of seconds this morning? No suggestions as to how to hard-reset the device. They also disavowed the autofocus bug… which neatly explains why the camera focuses in under two minutes as of this morning. I guess I should have expected the runaround to begin with.

Other than that, I love the device. It’s easily the most responsive UI out of all the phones I’ve played with, including the iPhone. There are some software oversights–I can’t move emails between folders, for example–but by and large it’s been pretty solid.

Continue reading (191 words)

$ adb devices
List of devices attached 
????????????	no permissions

A few things have changed since the Android docs were written. If you want to talk to your Motorola Droid via ADB in Ubuntu 9.10 Karmic, I recommend the following udev rule.

# /etc/udev/rules.d/99-android.rules
SUBSYSTEM=="usb", ATTRS{idVendor}=="22b8", SYMLINK+="android_adb", MODE="0666" GROUP="plugdev"

Continue reading (107 words)

Yamr Yamr

Sometime in the last couple of weeks, the Yammer AIR client stopped fetching new messages. I’ve grown to really like the service, especially since it delivers a running stream of commits to the Git repos I’m interested in, so I broke down and wrote my own client.

Yamr is a little ruby/gtk app built on top of jstewart’s yammer4r and the awesome danlucraft’s Ruby Webkit-GTK+ bindings. No seriously, Dan, you rock.

Continue reading (164 words)

A bit of context, in case you haven’t been keeping up with the real-time web craze:

RSSCloud is an… idea* for getting updates on RSS feeds to clients faster, while decreasing network load. In traditional RSS models, subscribers make an HTTP request every 10 minutes or so to a publisher to check for updates. In RSSCloud, a cloud server aggregates several feeds from authors. When feeds are changed, their authors send an HTTP request to the cloud server notifying them of the update. The cloud server contacts one or more subscribers of the feed, sending them a notice that the feed has changed. The subscribers then request the feed from the authors. Everyone gets their updates faster, and with fewer requests across the network.

The Problem

Continue reading (710 words)

I’ve been working a lot on Cortex Reaver lately, with several new features in the pipe. I’m using Vim for awesome syntax highlighting, refining the plugins/sidebar infrastructure, creating improved admin tools for long-running tasks (like rebuilding all the photo sizes) and fixing several bugs in the CRUD lifecycle. All that comes in a slick new visual style, including a new stylesheet/js compiler which makes page loads much faster (eliminating something like 20 external HTTP requests in the non-cached case). Finding time to really sit down and hack on CR has been tough lately with all the grad school/work stuff going on, but as new users are coming on board I’m motivated to keep improving.

Continue reading (115 words)

I just found out that after six months of fighting with the insurance legal teams, they actually paid almost all of my implant surgery bills! That still leaves the initial dental work and however much for the crown, but I’m $4500 less in the hole for the whole debacle! Wooo!

Oh, and San Francisco is great. I’ll post about that in a bit.

Continue reading (63 words)

Rails, what were you thinking? You went and wrote your own ridiculous JSON serializer in pure Ruby, when a perfectly good C-extension gem already does the job 20 times faster. What’s worse, you gave your to_json method (which clobbers every innocent object it can get its grubby little hands on) a completely incompatible method signature from the standard gem version. You just can’t mix the two, which is ALL KINDS OF FUN for those of us who need to push more than 10 reqs/sec.

Then there’s awesome behavior like this:

<cr:code lang=“ruby”> puts {:rails => /fail/x}.to_json #=> {“rails” => /fail/x} </cr:code>

Continue reading (146 words)