I’ve added an Android topic to my site, including listings of apps I use.

Distinctly incomplete, but better published than not.

Everything I’ve read says that the USB tethering facility of Android phones doesn’t work with Macs without installing additional software and possibly going through various moderately elaborate procedures. Imagine my surprise when I accidentally turned it on and it worked perfectly.

It appears that this is an unadvertised feature of Missing Sync for Android, which does use the phone’s tethering function as part of their recently added sync-over-USB feature. Specific evidence: (1) The phone does not appear as a network interface on another Mac with the same OS version. (2) When I unplug the phone or disable tethering, the network interface changes its name momentarily from "USB Ethernet (en3)" to "MissingSync" before disappearing.

I’m using Android 2.2.1 (FRG83D) on a Nexus One, Mac OS X 10.5.6, and Missing Sync 1.5.1 (phone)/1.5.0 (desktop).

I reiterate that this is not documented anywhere I have found, and especially not on Mark/Space, Inc.’s web site.

Got a nice fluid layout on your web site? Annoyed at how mobile browsers like to assume pages need nine hundred virtual horizontal pixels to display properly? Add this to your <head>, as I've just done across my site:

<meta name="viewport" content="width=device-width">

This tells iPhone and Android browsers, at least, to present the page with a virtual window width equal to the device's actual screen width. It was invented and specified by Apple.

(I am not taking up the question of whether these browsers are making the right default choice. I will say, however, that in my technical opinion this is the wrong choice of location for this parameter: whether a layout will work at narrow widths depends largely on the stylesheet, not on the HTML; this parameter therefore ought to be stored in the stylesheet (that is, be a CSS extension); insofar as it does depend on the HTML, you can then put it in a <style> element.)

If you're looking to use media types to provide different styles: These browsers also don't respect the “handheld” media type; but they do support draft CSS3 Media Queries, which allow you to condition on the actual screen width — if you want, even in ems! I've used this on the main switchb.org page to make the Big Text less likely to spill off the screen (could use some further testing; all I've used so far is my desktop and a Nexus One), and also in the Caja Corkboard demo (which I wrote this summer (among other things) and ought to blog about).

I have finished my internship at Google (which I do want to post about eventually).

I am now about to start classes at Clarkson University. Everything's going smoothly, except the network to my room is broken and I'm connecting over my shiny new phone (hooray for Android 2.2's “Portable Wi-Fi hotspot”) and so I'm temporarily off several of my Internet activities due to bandwidth/latency/intermittency.

(On the upside of technical issues, I managed to get Apple Mail and my phone to talk to Clarkson's Exchange server, so no more having to remember to check my college email more than once a day. What wasn't obvious: When setting up the account in Mail, put the Outlook Web Access server name in both the “Incoming Mail Server” and “Outlook Web Access Server” fields. I haven't figured out how to send mail from their server; perhaps I need to upgrade to Mac OS X 10.6 for that.)

I designed the new logo for Tahoe-LAFS.

I find Dasher an interesting input method, and after getting my Android phone I thought it would be nice to try Dasher on it. However, at the time there was no Dasher port or any information on the Web about the possibility, so I looked into writing one. I found several dead projects and miscellaneous repositories and eventually found that the main Dasher repository had a Java port of Dasher. I dabbled in getting it to run on Android, but before I got anywhere I found Dasher was now in the Android Market, though there was still no discussion/announcement/public project info.

I shall now dump the links I collected while I was working on this project, so as to make the matter of Dasher and Java better-indexed. Unfortunately, I don't recall the significance of all of them.

The Dasher port that's currently in the Market is pretty solid. It has a variety of options for input (touch, trackball, tilt); the main thing it's missing is independent control of the X/Y sensitivity of the tilt control.

Yesterday I tried the Android Bluetooth keyboard driver “BlueKeyboard JP” (Market link) again, and got it to work with my Palm Bluetooth Keyboard. The catch is/was that it will only connect to the keyboard if it's discoverable, not if the keyboard is just trying to connect. Once connected, though, it works fine for all ASCII input, though the Shift key acts sticky if not pressed in combination with another key.

Special functions: The arrow keys and Enter act like the phone trackball, throughout the phone (not just in text fields) (update: but not in the menu-button menu!). The keyboard's marked [Fn][`] = [Esc] works as Back and the [Cmd] key works as Menu; I haven't found any other hard-button shortcuts (home/search/camera/volume etc). (The driver's web page is all in Japanese, and I haven't found an English manual, though the settings screen on the phone has English.)

Update 2010-08-27:

Unsurprisingly from the name, this driver is also a Japanese input method; after several times accidentally shifting into Japanese mode I have determined that the toggle for this is [Shift][Space].

[Fn]<number> combinations (which are probably this keyboard's emulation of hard F-keys) have the following functions. No other [Fn] combination that I tried, including other numbers, produced noticeable results, but I may not have been in the right context to see an effect.

[Fn][7] Music: Previous track
[Fn][8] Music: Play/pause
[Fn][9] Music: Next track
[Fn][_-] Volume down
[Fn][=+] Volume up

Things that don't work: The Caps Lock key (but the Shift key acts as does the Android soft keyboard's shift (pressing twice locks)). The forward delete (Del) key. Unsurprisingly, the keyboard's onscreen battery level indicator shortcut — it types garbage — but the keyboard does have a hardware low-battery light.

(End update)

When in use, there is an AdMob ad bar at the bottom of the screen (where a soft keyboard would be). There is a paid version on the Market, but one reviewer said that it just displays the company's own ads instead — which seems odd.

I'm tempted to look into writing a keyboard driver myself, for the sake of having proper reconnection behavior and non-ASCII characters, but for now this seems good enough and there are other things to worry about (e.g. notepad software; Fliq Notes syncs with my existing desktop notes but lacks some features compared to the PalmOS app).

  • A remarkable feature: “Settings → About phone → Battery use” claims to give a breakdown of energy use over the last period the phone was unplugged. It distinguishes between “Display”, “Cell standby”, “Android System”, and applications. Don't know how accurate it is.

  • Bluetooth keyboard driver experiences:

    • “BlueInput” by Teksoft does not work correctly for my Palm Bluetooth Keyboard; as others have reported, some punctuation keys do not work at all (and Shift-2 generates ", making me think that it was written for a different keyboard layout and not tested with US QWERTY).
    • “BlueKeyboard JP” failed to connect to my keyboard — or rather, it immediately says “disconnected”. Also, the install permissions info says it reads GPS location, which makes no sense unless this is one of those ad-supported things, but it doesn't say that and I don’t remember whether it did show ads. Update: It works, but the keyboard must be discoverable. And it is ad-supported.

    So I still don't have a keyboard driver. Perhaps I should look into writing one.

  • I need to learn about how file/application associations work so I can figure out who is at fault (file browser or viewer app) in my failing to open PDF and epub documents stashed on the SD card.

  • USB connection is done right: plugging into a computer does not interrupt usage at all, and if you want to mount the SD card then that's an easily-reached option; neither mandatory nor buried. (Well, it didn't; since system updates it now pops up the do-you-want-to-mount screen immediately, which you have to exit to continue with your previous activity.)

  • The force-Google-Account-to-Gmail thing became considerably less annoying once it occurred to me to find out that it let me change the From address of mail sent from the Gmail account. So my external identity is still kpreid@switchb.org, except in Google apps.

  • Nice bit of polish: “A system update has been downloaded, but your battery is too low to install it. Connect to charger first.” (phrasing from memory.)

I'm considering writing up a document like the Gadget Coverage List but with an emphasis on features × how to get them on Android rather than features × gadgets — so it would be a recommended apps list, among other things.

Nexus One notes

Monday, June 14th, 2010 22:22

Did buy a Nexus One; have now had it for an hour or so. The following is not a review, but some observations:

  • It will work without a SIM card from the start. So if you want a gratuitously expensive wifi PDA...
  • The Google Account-based functionality (e.g. application Market, contacts sync) requires a Gmail account — and any Google Account with Gmail necessarily has the Gmail address as its primary email address. (Since Gmail lets you forward to another address, this doesn't matter unless you use Google services that send mail on your behalf, such as calendar invites.) I haven't tested whether they will still work if you then remove Gmail (but I would note that if it's possible at all, having a Wave account might help, since that seems to allocate a no-@-sign 'username' in the same way Gmail does).
  • Not perfect, but mighty slick. Need to stop playing around and get some sleep.

You may recall my post about looking for a new PDA. I have lately found additional pressure to find a solution.

  • Moving about on my own in new locations, I wish for a GPS/navigation device. I am currently borrowing a standalone GPS, but that's Yet Another Gadget
  • …to add to the four I already carry about (phone, PDA, watch, iPod).
  • My phone is on a prepaid plan which was chosen to be cheap for low usage rates. But it quickly becomes not-cheap under higher usage than a couple minutes a day — which I have when trying to do such things as coordinate three people on an errand.

I've compiled some of the options and what features they have into this Google Docs spreadsheet: Gadget Coverage List. Note that “-” means “No”.

At the moment, I am strongly considering getting an Android phone, specifically the Nexus One. I have recently determined that Android meets all my requirements, at least given some third-party software.

Buying a phone (and a plan) is indeed a higher cost than a stand-alone PDA, but I think universal Internet access is worth it.

Costs and carriers

The phone, unsubsidized and unlocked, is $529.

Given that it is GSM, I understand there are basically two carriers to consider: T-Mobile and AT&T. I get the impression that T-Mobile is somewhat less evil than AT&T, and I hear complaints about AT&T's network. On the other hand, T-Mobile does not have coverage (even roaming) in Potsdam, NY, where I'm going to be spending the next two years.

T-Mobile offers a monthly plan for $60/mo, 500 minutes/mo plus fees and (as far as I've looked now) a $35 activation fee. (The option to buy a plan without a phone was buried: you have to choose "T-Mobile SIM card" from the phone list.) I get the impression that the obscure monthly 'taxes and fees' can be around $3-$20 depending on the particular situation. Total cost over 2 years (not including phone): $1475+fees.

AT&T is, er, changing tomorrow. But now it would apparently be $70/mo, 450 minutes/mo, for a two-year contract with a free locked phone (which could be tossed or resold). Plus taxes and fees. After the change in data plan pricing, it would be (assuming no other changes) $65 for 2GB or $55 for 200MB data. Total cost over 2 years (2GB option): $1560+fees, and the phone works in Potsdam.

In both of these cases I assume the cheapest voice plan option.

One option would be to go with T-Mobile for the 2.5 months before I arrive in Potsdam; this would minimize my initial obligation to $709, and assuming I found I liked having a smartphone around sufficiently, I could then switch to AT&T for service during my 2-year stay in Potsdam.