Uncheck "Settings > Wireless controls > Mobile networks > Data roaming". For good measure I also turned off background data usage, "Settings > Data synchronization > Background data", and disabled automatic refresh in all installed apps that gave me the option to do so.
A cautionary tale: I took my T-Mobile G1 (aka HTC Dream) on a trip abroad recently. As I didn't want to pay exorbitant data roaming charges, I turned off all data access on the phone before I left for my trip. While abroad I did make a few phone calls and sent and received some text messages. However, upon returning I discovered that my T-Mobile bill did have data roaming charges, in addition to the expected voice and text message roaming charges. The data roaming charges were minor—it was quite obvious that the phone wasn't pulling down its usual smorgasbord of daily data—and surprisingly regular—each of the handful of line items on my bill was a multiple of 0.0244 MB. After much polite arguing with a T-Mobile representative, an explanation emerged: If a data connection is available, the G1 will use it when establishing phone calls and sending text messages. It will do so even if all other data access is disabled on the phone. The T-Mobile rep claimed that this is an optimization that allows the G1 to make a "better" connection to the cell tower. As proof she pointed out that each data roaming line item on my bill matched up with a voice call or text message (this was generally true but did require a bit of squinting with one eye closed for the data to actually match as she claimed). I'm still a bit skeptical of the explanation I received from T-Mobile. But, while I haven't heard of GSM-based phones sending/receiving data while dealing with voice calls or text messages, it sounds plausible and somewhat matches the tiny amount of data that my phone actually consumed.
"Numbers everyone should know", courtesy of Jeff Dean:
* L1 cache reference 0.5 ns * Branch mispredict 5 ns * L2 cache reference 7 ns * Mutex lock/unlock 100 ns * Main memory reference 100 ns * Compress 1K bytes with Zippy 10,000 ns * Send 2K bytes over 1 Gbps network 20,000 ns * Read 1 MB sequentially from memory 250,000 ns * Round trip within same datacenter 500,000 ns * Disk seek 10,000,000 ns * Read 1 MB sequentially from network 10,000,000 ns * Read 1 MB sequentially from disk 30,000,000 ns * Send packet CA->Netherlands->CA 150,000,000 nsSimilarly (and courtesy of Jeff Dean and Sean Quinlan), "The Joys of Real Hardware" lists the typical problems a new cluster will experience in its first year:
- ~0.5 overheating (power down most machines in <5 mins, ~1-2 days to recover)
- ~1 PDU failure (~500-1000 machines suddenly disappear, ~6 hours to come back)
- ~1 rack-move (plenty of warning, ~500-1000 machines powered down, ~6 hours)
- ~1 network rewiring (rolling ~5% of machines down over 2-day span)
- ~20 rack failures (40-80 machines instantly disappear, 1-6 hours to get back)
- ~5 racks go wonky (40-80 machines see 50% packet loss)
- ~8 network maintenances (4 might cause ~30-minute random connectivity losses)
- ~12 router reloads (takes out DNS and external vips for a couple minutes)
- ~3 router failures (have to immediately pull traffic for an hour)
- ~dozens of minor 30-second blips for dns
- ~1000 individual machine failures
- ~thousands of hard drive failures
If you're running the Citrix ICA client under Linux and your Citrix session runs in full-screen mode, you can press Ctrl-F2 to pass the following keystroke to the host Linux desktop rather than the Citrix session. For example, if the Citrix session is connected to a Windows desktop, then pressing Alt-Tab in full-screen mode will normally send the Alt-Tab to Windows. Pressing Ctrl-F2 followed by Alt-Tab will send the Alt-Tab to the Linux desktop instead.