Archive for the 'technology' Category


I Have Cupcake 2

After saying it was coming, then delaying it, then people claiming to have gotten it, then those claims being debunked, then some people installing the UK version, TMobile has apparently finally begun shipping the Android 1.5 “Cupcake” update to US G1 owners.

This afternoon, I downloaded and installed the update by hand, a process that took maybe 5 minutes (tops). The instructions claim that there’s a risk of causing damage to your phone (bricking it, most likely); I followed them verbatim and didn’t have any issues.

So far, it’s really good. I doubt I could live without the hardware keyboard, but I was also really annoyed that I had to open the phone to be able to type even the simplest “ok”. The soft-keyboard completely solves that, and while I’m still in the process of calibrating my fingers, it’s worked well enough so far. The suggestions seemed accurate and have already saved me some pecking time.

Other than that, there seem to be a lot of spit and polish updates, and a few new features. The T-Mobile forums have a full list of changes. Since I have iPhone envy, I immediately turned on the screen transitions. I also played briefly with the video recorder, and also just made sure that I can play music through my Bluetooth headphones. I also turned on the auto-rotations, but I’m not sure I’ll keep them.

In short, if you have a G1, I’d say you check out the update now — don’t wait! (But, then, I’m impatient.)

Instant Storage 1

Here’s one of my favorite PHP ‘hacks’: when I’m whipping up a quick script that needs a place to stash some persistent data, but don’t feel like coming up with a database structure, or doing anything remotely approaching a real solution, I instead stuff it into a “static” session. By static, I just mean that I set the session ID to a static value, so I’m always pulling the same session. Instant data store.

session_id('stash-stuff-here');
session_start();
$_SESSION['stuff'] = $w00tz;

(Another quick and dirty approach would be serializing an array into a local file… oh, wait, I just recreated the default PHP session handler. ;))

Sansa C200, Linux, and Rockbox 0

A few weeks ago, I purchased a refurbished Sansa C2xx series MP3 player. It’s a small, 1GB “gumstick” player with a microSD slot and supports Rockbox, an alternative, open-source firmware. When running Rockbox, it’s rumored to support MicroSDHC, giving it a total capacity of (currently) ~17GB. In addition, it seemed to support both Windows and Linux pretty well, making it a good fit for someone who, like me, jumps between both.

For the most part, things work pretty well. Up until tonight I’d been running the default firmware, when I tried to install Rockbox. Here’s a collection of my experiences with the player.

  • In the default firmware, the volume level is not saved when the device powers off. I use a set of earbuds that seal very well to my ears: a little volume goes a long way. Whenever I turn the player on, I have to immediately crank the volume down. I’ve heard that Rockbox will fix this.
  • When resuming a previous playback position, forward/back functionality works inconsistently from how it works at all other times. If you resume partway through a song and press back, you expect it to rewind to the beginning. Instead, it skips to a random song. If you then press forward, you skip to another random song — not back to the song you were listening to.
  • It’s a hybrid MTP and MSC device (in that order), picking whichever is supported by your operating system. On Windows you’re most likely stuck with MTP, while unless you specifically install MTP software on Linux, you’ll be given MSC. Unfortunately, the files you can see in MTP mode are not visible in MSC mode, and vice versa — and there’s no way to choose one mode or the other. In practice, that means there’s a big wall between your Windows and Linux music (until playing it).
  • Linux apparently doesn’t play with the FAT(32) partition nicely enough to use it as a disk — I could not get the songs I copied onto the device via Linux to show up in the player’s database. In addition, just trying to use the device routinely caused file-system panics (to be honest, I didn’t even know they existed) which took down my whole box. I was also unable to get Rockbox installed via my Linux box.
  • I experimented with MTP support in Rythmbox (granted, very quickly), and couldn’t see everything I’d loaded onto it (complained about a codec..?). I didn’t try adding new files.
  • Given the problems I had getting files loaded from Linux into the database under the default firmware, Rockbox seems to be the way to go, as it supports browsing the actual file system for music.
  • I finally installed Rockbox via an older XP install (which saw it as an MSC device), and confirmed that it did recognize a 4GB MicroSDHC card. But the default firmware always handles USB communication, so you have to copy things onto SDHC cards externally.
  • None of the SD readers in my house support SDHC, again leaving me without a way to load music from Linux.

So, while I like the player overall, it hasn’t proved as Linux friendly as I’d like. Once I get an SD reader that supports SDHC, things should improve markedly.

An Eye for an Eye 0

The La Fonera wireless router shares part of your home broadband with the world — potentially earning you some money, but also giving you free access to all other La Fonera access points.

Unfortunately, according to their map, there aren’t a ton of access points in my area. Yet I’m still tempted to give this a go.

Digital Cloaks 0

Not too long ago, Matt talked a bit about p0f and it’s ability to distinguish your operating system based on the packets its sending.

Today, Hack a Day highlighted a project that can help you overcome some of the fingerprinting in p0f (and other tools, like nmap) by emulating the characteristics of other OSs.

“High-Def” Webcams 3

(The term High-Definition appears to be able to be applied to anything these days, so why not webcams?)

For the past few days I’ve been obsessing watching this webcam over at the Red Rock visitor center, and just now I wrote a quick script to fetch the latest image and update my desktop background with it. It’s almost like having my desk near the window back. (OK, not even close.) But, truth is, it makes a pretty crappy background at 1920×1200. Look at this other one in comparison — now that’s a webcam.

Then I remembered. Since buying a used 20D, I have an old D30 just sitting around. With a bit of Canon software magic, that can easily be setup to take a shot at any interval and automatically transfer it to the PC. I just have to write a little plumbing to get it up on the web.

I want to do this!

Jack & Jill 3

Not too long ago I was dragged into trying out Twitter. It’s interesting — like a glorified Facebook status; I’m sure they cringe every time someone makes that comparison — but I didn’t really catch on to it.

Now I’ve decided to give Tumblr a try. So far, I like it: it has the main component of Twitter — quick, short blogish entries — but also lets you easily post pictures, videos, quotes, chat transcripts, etc. The icing on the cake would have been posting code snippets complete with syntax highlighting. Ah, one can dream.

Pharmacists 5

Tonight I installed dnsmasq as a caching DNS forwarder on our home network (under a VM, no less). Additionally, I changed our primary DNS servers to those hosted by OpenDNS. To double-check that things were working, I figured I’d whip up a quick script to make a bunch of DNS requests and give an average time. First round, I faced the OpenDNS server against Cox’s own. I’d never really benchmarked the Cox DNS servers, so this was quite enlightening:

andrew@ubuntu-server-vm:~$ php ./dns_bench.php dothedrew.net 208.67.222.222
Average response time: 27.53
andrew@ubuntu-server-vm:~$ php ./dns_bench.php dothedrew.net 68.105.28.11
Average response time: 158.58

This only serves to strengthen my belief that all cable ISPs are run by pharmacists.

To satisfy morbid curiosity, here are the results against the local dnsmasq daemon:

andrew@ubuntu-server-vm:~$ php ./dns_bench.php dothedrew.net 127.0.0.1
Average response time: 0.21

That’s only about, oh, a 755x improvement. Hopefully that’ll sufficiently speed things up.

MoGo the Renegades 0

Interestingly, MoGo‘s online commercial shows their Bluetooth mouse being used on an airplane… Isn’t that illegal or something?

Back from the dead! 1

A bit over a month ago, my trusty old 12″ laptop went dead. Just out of the blue. I think I’d booted up the Ubuntu live CD, then I shut down, and then the laptop did nothing. If I plugged the power cord in, I’d get a charging light, but pressing the power button resulted in absolutely zilch.

Scouting around Google, this appeared to be a semi-common problem with my specific model, and the best guess was that it was somehow related to some ACPI bug in the BIOS that resulted in some weird state in the CMOS (enough acronyms for you?). Some people reported success after holding the power button down. No luck here.

The only other options were:

  1. Cutting the CMOS battery off the motherboard
  2. Leaving the main battery out until the CMOS battery died

Not wanting to harm my laptop, I opted for the latter. And so my laptop sat. Every few days, I’d pop the battery in and give the power button a go, but it was the always the same disappointing void. I began to seriously doubt that the laptop would ever recover.

Until tonight. I popped the battery in like normal and hit the button. And there was a little blue light.

How you say… w00t.

So here’s some hope for you Averatec 2370 owners with inexplicably dead machines on your hands: give them a rest without their batteries. It just might change your world.

Next Page »