wget -q http://static.natalian.org/2009-01-02/2008-tmobile-data.txt -O /dev/stdout | awk -F, '{sum += $5 } END { print sprintf("%.2f",sum) }'
10.89
11GBP for 5 days in Germany? I didn't use data nearly as much as I would in the
UK. Android has no data accountancy functionality. 
A mobile phone that would detail accurate data roaming costs. Those are the sensible sorts applications that provide tremendous value. Not stupid bar code scanner applications.
The proprietary headphone jack
HTC use a proprietary
ExtUSB
interface for audio. You can get a Stereo Headset Adapter - HTC
exUSB
for 8GBP. 
Do not write Dalvik Android applications
First I implore you not to write an Android Application. i.e. a Java dalvik .apk.
Most developers require Geolocation and you can easily achieve Geolocation in the Android browser. The Web is the future!
That been said, the best thing on the G1 is the comments on the Android market. That's an incredibly hilarious Dalvik application that's brought tears to my eyes!
Other reasons not to develop Dalvik applications
- Google's Market has no upgrade mechanism. The Web has easy seamless upgrades by default. Why choose anything else than giving your users continuous improvement everyday?
- The Web works on more devices and computers than Dalvik ever will. Why limit your application's audience?
- Want to create bookmarks to your Web application from the homescreen? Use Gears shortcut mechanism!
I HAZ ROOT
# df
/dev: 49564K total, 0K used, 49564K available (block size 4096)
/sqlite_stmt_journals: 4096K total, 0K used, 4096K available (block size 4096)
/system: 69120K total, 60612K used, 8508K available (block size 4096)
/data: 76544K total, 27788K used, 48756K available (block size 4096)
/cache: 69120K total, 1364K used, 67756K available (block size 4096)
/sdcard: 1983360K total, 198208K used, 1785152K available (block size 32768)
# ps
USER PID PPID VSIZE RSS WCHAN PC NAME
root 1 0 264 140 c00a5cd0 0000c36c S /init
root 2 0 0 0 c005bd28 00000000 S kthreadd
root 3 2 0 0 c004c12c 00000000 S ksoftirqd/0
root 4 2 0 0 c006e978 00000000 S watchdog/0
root 5 2 0 0 c0058b40 00000000 S events/0
root 6 2 0 0 c0058b40 00000000 S khelper
root 7 2 0 0 c0058b40 00000000 S suspend/0
root 8 2 0 0 c0058b40 00000000 S kblockd/0
root 9 2 0 0 c0058b40 00000000 S kmmcd
root 10 2 0 0 c0058b40 00000000 S btaddconn
root 11 2 0 0 c0058b40 00000000 S btdelconn
root 12 2 0 0 c0058b40 00000000 S qmi
root 13 2 0 0 c003263c 00000000 D rpcrouter
root 14 2 0 0 c0058b40 00000000 S detection/0
root 15 2 0 0 c0032fb4 00000000 S krpcserversd
root 16 2 0 0 c007a964 00000000 S pdflush
root 17 2 0 0 c007a964 00000000 S pdflush
root 18 2 0 0 c007e8b4 00000000 S kswapd0
root 19 2 0 0 c0058b40 00000000 S aio/0
root 20 2 0 0 c0032fb4 00000000 S kadspd
root 21 2 0 0 c0058b40 00000000 S panel_on/0
root 22 2 0 0 c0151ff8 00000000 S mtdblockd
root 23 2 0 0 c0157d84 00000000 S USB mass_storag
root 24 2 0 0 c0058b40 00000000 S synaptics_wq
root 25 2 0 0 c020dfc0 00000000 S krfcommd
root 26 2 0 0 c01751d0 00000000 S mmcqd
root 27 1 724 208 c0049a2c afe0c4cc S /system/bin/sh
system 28 1 796 148 c0189f10 afe0b74c S /system/bin/servicemanager
root 29 1 1828 256 ffffffff afe0b50c S /system/bin/mountd
root 30 1 652 136 c0196e68 afe0c0bc S /system/bin/debuggerd
radio 31 1 7720 564 ffffffff afe0bdbc S /system/bin/rild
root 32 1 65612 9684 c00a62ec afe0b874 S zygote
media 33 1 32524 2200 ffffffff afe0b74c S /system/bin/mediaserver
bluetooth 35 1 1164 180 c00a5cd0 afe0c69c S /system/bin/dbus-daemon
root 36 1 788 188 c01fb090 afe0b50c S /system/bin/installd
compass 38 1 1304 312 c0169014 afe0b74c S /system/bin/akmd
shell 39 1 3328 128 ffffffff 0000e664 S /sbin/adbd
system 57 32 237556 22076 ffffffff afe0b74c S system_server
radio 101 32 114888 15860 ffffffff afe0c824 S com.android.phone
root 1057 2 0 0 c0032dc8 00000000 D audmgr_rpc
root 10878 2 0 0 c016da84 00000000 D ksdiorqd
root 10879 2 0 0 c0058b40 00000000 S tiwlan_wifi_wq
wifi 10882 1 2972 548 ffffffff afe0b874 S /system/bin/wpa_supplicant
app_7 11242 32 104180 15780 ffffffff afe0c824 S com.google.process.gapps
app_4 11248 32 113160 20052 ffffffff afe0c824 S android.process.acore
app_21 12467 32 96960 13212 ffffffff afe0c824 S com.google.android.talk
root 12794 1 644 232 c009ef28 afe0b50c S /system/bin/logwrapper
dhcp 12795 12794 692 364 c00a5cd0 afe0c69c S dhcpcd
system 12853 32 99116 13672 ffffffff afe0c824 S com.android.settings
app_23 12884 32 102732 19260 ffffffff afe0c824 S com.android.vending
app_3 12902 32 88744 13260 ffffffff afe0c824 S android.process.media
app_34 12924 32 103020 12308 ffffffff afe0c824 S src.com.poidio.terminal
root 12937 27 656 272 c00a5cd0 afe0c69c S telnetd
root 12942 12937 724 324 c0049a2c afe0c4cc S /system/bin/sh
root 12952 12942 868 328 00000000 afe0b50c R ps
# cat build.prop
# begin build properties
# autogenerated by buildinfo.sh
ro.build.id=TC5-RC7
ro.build.version.incremental=112931
ro.build.version.sdk=1
ro.build.version.release=1.0
ro.build.date=Thu Oct 9 21:54:11 PDT 2008
ro.build.date.utc=1223614451
ro.build.type=user
ro.build.user=android-build
ro.build.host=undroid13.corp.google.com
ro.build.tags=ota-rel-keys,release-keys
ro.product.model=T-Mobile G1
ro.product.brand=tmuk
ro.product.name=kila_uk
ro.product.device=dream
ro.product.board=trout
ro.product.manufacturer=HTC
ro.product.locale.language=en
ro.product.locale.region=GB
# ro.build.product is obsolete; use ro.product.device
ro.build.product=dream
# Do not try to parse ro.build.description or .fingerprint
ro.build.description=kila_uk-user 1.0 TC5-RC7 112931 ota-rel-keys,release-keys
ro.build.fingerprint=tmuk/kila_uk/dream/trout:1.0/TC5-RC7/112931:user/ota-rel-keys,release-keys
# end build properties
#
# system.prop for dream
#
rild.libpath=/system/lib/libhtc_ril.so
wifi.interface = tiwlan0
#
# ADDITIONAL_BUILD_PROPERTIES
#
ro.com.google.clientid=tmobile-uk
ro.com.android.dateformat=dd-MM-yyyy
ro.com.android.dataroaming=false
ro.ril.hsxpa=2
ro.ril.gprsclass=12
ro.config.ringtone=T-Jingle.ogg
persist.sys.timezone=Europe/London
ro.config.notification_sound=F1_New_SMS.ogg
ro.url.legal=http://www.google.com/intl/%s/mobile/android/g1-legal.html
ro.config.ringtone=BirdLoop.ogg
ro.config.sync=yes
net.bt.name=Android
dalvik.vm.stack-trace-file=/data/anr/traces.txt
G1 Annoyances
- SMS not being integrated to email. Basically I want to forward SMSes as email. Would be nice to have an email address that fowards to SMS.
- Input type file is disabled/unimplemented
- Phone number in status not updated after number change
- 2G Internet does not work when you are using voice. URM!?
- Can't use G1 as a modem.
- Be good if it showed alarms on the clock face. The Alarm icon on the notification has no value after you've set a couple to manage you routine ...
- There must be a way of quickly informing Gtalk users you are on the mobile!!
- Android Issue list
- Piss off the developer
- No Google browser Roadmap cupcake. Google develops Android browser stuff in private and then does an open code snapshot. If 3rd party businesses want to work with their platform, they need to know exactly when HTML5 features are going to be rolled out!
- No Android market for Web applications such as Geo
Gtalk chats are a great feature. But often I miss the chat and I can't figure out how the "Recent conversations archive" supposed to work. What's worse is that sometimes I confuse 'Gtalk chat' with SMS, whereby SMS does not seem to appear in 'Gtalk chat' pane of Gmail!
Use cases
Lets consider some use cases I want. 
Sharing a snap on Flickr then making a tweet about it.
It's really tiresome to quickly to a URL...
- Go to URL
- Long press on URL
- Copy
Be better if there was some API to copy to clipboard. Or just a better clipboard really.
Having 100% reception, or rather... being able to tweet whilst not connected
Having no offline HTML5 support sucks! Gears theoretically should have support for this, but Android Google Reader Web application does not use this feature. WHY?
A friend texts me from her new mobile number. How do I get that number from a SMS into my contact as a secondary number?
You should be able to long press to copy and paste to do this. It's a bit clumsy. When you have the number in the dial screen you can actually press 'Menu' and select "Add to contacts".
Poor Web integration
You can thankfully add bookmarks to the home screen. Your Web application can too with the Gears shortcut API. What would be better is widget support.
Once opening a bookmark from the homescreen, Android launches a new window in Android Chrome Web browser. Unfortunately this really sucks as your can only have 6 windows open at one time. Since default actions open a new window, it's quite easy to hit this limit annoyingly again and again. The paradox is that you are somehow allowed to keep many multiple Dalvik applications open in the background, but not Web applications!!
Links
T-mobile customer service
The good thing is that you can just email CustomerServices@t-mobile.co.uk and
you'll more than likely receive a response. This beats Three.co.uk who
basically refused to answer queries by any medium other that voice. I assume
they do this to ensure they can not be held liable for any misinformation as it
is difficult to record voice.
The bad things are you'll get an autoresponder once sending the mail. And the follow up will more than likely be an essay with bad news from a customer service 'droid.
Update: Lately they demand:
So that I can answer your query, I'll need to access your account to confirm
you're the account holder. To do this I need you to confirm your mobile number,
full name and address including postcode and your password if you have one
registered to the account.
Even for generic questions! Once I gave my number as the Phone number in Status is incorrect. They rung me up instead of replying. I asked them politely to please email me a response instead. This was resisted heavily and I still have not heard from T-mobile customer service! PA-THE-TIC T-mobile. Oh I have received a response now after emailing again:
I've also checked your other query for you and I'm afraid there?s no work
around to remove the number from your status menu. However this wont affect
your phone.
Things that suck with T-mobile
- No conference call
- T-mobile employing Content Transformation, put Header set Cache-Control: no-transform in your
.htaccess - Call waiting does not seem to work
- Data reception at the University of Surrey SUCKS, even though they advertise on campus! WTF
- No special treatment for T hotspots -- "Sadly, there are no discounts for this service at present."
- Your 250+ GBP allowance does not work abroad - no special deals for Germany

Android supports the @font-face src attribute
My style sheet loads the Andika font. Try this page in your Android browser!
What is @font-face ??
It basically means you can dynamically use any font you want.
A big problem or blessing if you like sane type faces, is there is only a few "Web fonts" that work everywhere.
However new technology exists where you just download them on the fly, and Android supports this. So designers can rejoice that they can use type faces they want. Without using horrible techniques like making bitmap images of headings which can't work on mobiles as they can't scale.
G1 Bluetooth
Very annoyingly I can't use bluetooth to get Internet for my Nokia N800 or N810 devices!
:r !sudo hcitool info 00:21:BA:74:4E:B7
Requesting information ...
BD Address: 00:21:BA:74:4E:B7
LMP Version: 2.0 (0x3) LMP Subversion: 0x1126
Manufacturer: Texas Instruments Inc. (13)
Features: 0xff 0xff 0x2d 0xfe 0x9b 0xf9 0x00 0x80
<3-slot packets> <5-slot packets> <encryption> <slot offset>
<timing accuracy> <role switch> <hold mode> <sniff mode>
<park state> <RSSI> <channel quality> <SCO link> <HV2 packets>
<HV3 packets> <u-law log> <A-law log> <CVSD> <power control>
<transparent SCO> <EDR ACL 2 Mbps> <EDR ACL 3 Mbps>
<enhanced iscan> <interlaced iscan> <interlaced pscan>
<inquiry with RSSI> <extended SCO> <EV4 packets> <EV5 packets>
<AFH cap. slave> <AFH class. slave> <3-slot EDR ACL>
<5-slot EDR ACL> <AFH cap. master> <AFH class. master>
<EDR eSCO 2 Mbps> <EDR eSCO 3 Mbps> <3-slot EDR eSCO>
<extended features>

