LASIK Part I.

Last Friday, I had LASIK surgery (today is Sunday evening). The past two days I’ve been functioning in a relatively normal manner, sans glasses. My eyesight so far is somewhere between good and excellent, disregarding some minor halos around lights at night. It varies a little, but otherwise is everything I could expect. I can drive at night with no issues. I hope things continue on this track, because seeing without corrective lenses is quite nice.

I’m not really up to writing a full description of the process right now, but suffice it to say I’m happy with the results so far. The biggest irritation so far has been a fair number of subconjunctival hemorrhages (warning, creepy image) in my left eye and a little bit in my right. It’s pretty harmless, but looks absolutely creepy. Some people I’ve been around have also commented on how often I’ve been going through eye drops as something that would be annoying to them, but thus far it hasn’t bothered me much. The drops do a lot to promote the healing process, maintain comfort, and ensure that there aren’t complications, so I’m quite happy to use them as much as the doctor recommends.

24

Capped internet and me.

For the past 7 months or so, its been known that my current ISP, Time Warner Cable, was investigating implementation of severe bandwidth caps on the internet services they provide. I’ve kept an eye on such news, as it would likely concern me greatly in the future were it to actually happen.

Here’s the numbers[1]:

“…tiers will range from $29.95 a month for relatively slow service at 768 kilobits per second and a 5-gigabyte monthly cap to $54.90 per month for fast downloads at 15 megabits per second and a 40-gigabyte cap.”

Those numbers are absurd, and they know it. What has interested me, though, is what my own usage was. Until lately, I had no method of measuring this. By extension, asking all subscribers to limit their internet usage to such low levels when they cannot meaningfully quantitate what their usage requirements are is a giant disservice to all subscribers.

Not quite a month ago I updated the firmware on my router, which runs DD-WRT. (Which reminds me, I need to update again to grab that DNS cache poisoning fix). This update included persistent metrics for bandwidth usage. In the span of 26 days, I have received 42.4GB and sent 24.85GB for a grand total of 67.25 GB. Extrapolated to a full 31 day month, I would have overshot the highest cap they mention with a solid 80.19GB, TWO TIMES their highest service level.

In this 26 days I have:

  1. Used IRC.
  2. Read RSS feeds.
  3. Watched youtube videos.
  4. Torrented a couple TV shows a week. This has dropped off toward the end of the month, as Doctor Who completed for the year and I finally got caught up on it.
  5. Watched a couple TV shows on adultswim.com a week.
  6. Purchased 5 albums from amazon.com.
  7. Purchased 1 game and two expansion packs from Steam. This alone added 8GB to my total.
  8. Browsed the web as usual.
  9. Done the email thing.
  10. Installed apps on my phone over wifi.
  11. Infrequently used VPN for working from home.

I have not:

  1. Downloaded any Linux ISOs. This is a common enough activity for me, though, and a 1:1 ratio of a DVD ISO torrent would nail 10GB on to the allowed cap. I did download the ELDK one time, though, so that would contribute 5GB to my total.
  2. Updated my linux install(s) as often as I should. Currently 200MB of updates are ready to be installed on my Desktop. Patching all of my computers (3 at the moment) could easily chew through 2 or 3GB of downstream bandwidth.

An interesting data point: Over the course of three days in the month (after I bought that game from Steam), my usage dropped dramatically. I was booted into Windows, and spent all my computer time playing Civ4 with a bit of light web browsing. During this time, my daily usage was around 200MB, being comprised of SSH traffic to my server box (from myself and up to 3 other people), the usual amount of IRC traffic, AIM, and the occasional foray into web browsing. For most purposes I was NOT using the internet at all, but my bandwidth usage would have gone over the cap TWC allows for their $30 a month plan by 1GB if extrapolated to a 31 day month.

It is painfully obvious that the proposed caps are entirely inadequate for the needs of a technically-minded subscriber such as myself, and it seems that the tiers are comprised of ridiculous pairings of speed caps and total usage caps.  The $30 tier allows for 5GB usage with a rate limit that would allow for around 245GB, so you’re allowed to use 2% of its capability without being charged more. That’s about 15 hours in a 31 day month at max download speed, and a $270 ballpark maximum bill for service and bandwidth overage.  For the top tier it gets even weirder. The $55 teir cap is 40GB, and its capable of handling around 4.7TB at maximum usage. That’s a generous 0.8% usage capability without having to pay more money, or a solid 6 hours of pegging the modem. The ballpark maximum bill on this teir is a comical $4919.It would be cheaper at that point for them to just charge you for the bandwidth at $1 a GB and to hell with the 40GB ‘allowance’.

I can’t help but think that this is a move to keep TWC’s additional services, being cable TV and telephone service, competitive.  If this was not the case, and their problem was actually congestion, one would expect to see caps that are closer to being in line with bandwidth costs. $1/GB minus some margin for profit would mean that TWC would be hemorrhaging cash with their current ‘all you can eat’ plans now. They aren’t ($1.2B net earnings in 2007).  If you assume its to discourage use of the internet as replacements for traditional media and communications to protect their other sources of income, though. It makes more sense. Caps this low make internet media useless, and free-or-inexpensive 3rd party VOIP a costly choice. This will likely become a problem for TWC, though, as protectionist business measures are inferior to trying to innovate to maintain a bottom line. Screw the customer, and the customer will buy from someone who sees that screwing as an opportunity to make a dollar. Ask IBM about this.

The worst portion of this whole idea is that it asks non-technical people to measure something that they do not have the skills to quantify, under penalty of unexpected fees. This more than anything degrades the quality of the service provided by TWC, as it’s a return to the days of time-metered dial-up accounts, only substitute willful internet connection with bandwidth usage that the average subscriber does not and likely cannot understand. “Oh, windows tells me there’s a new security update! I don’t have the bandwidth left this month to download it, though, so I’ll just wait until next month.” Meanwhile, the unpatched but now known exploit is used to compromise their machine with some spam virus, making the internet suck more for everyone else and more importantly costing the subscriber additional money.

The only way you solve the patch download issue has rather large ramifications. Like emergency services, the ISP could not track OS patching traffic. Its pretty simple, just don’t count the bytes when they come from Microsoft, right? Well, no. This drives would drive the ISP into the arena of being a content-arbiter, as:

  1. There are a number of operating systems by a number of vendors. Some ISPs try to claim they only support Windows or OSX. Support, however, is a far cry from ‘blessing’ MS and Apple update traffic and charging for Ubuntu, Suse, FreeBSD, and the functionally infinite number of OS vendors that exist. Right now using Linux on any ISP is both possible and easy. They just refuse to fix problems with your random choice of OS. This is a reasonable, though somewhat annoying, practice.  Blessing patch traffic on a functionally arbitrary basis is at least a violation of net neutrality (which the FCC has recently had favorable opinions on while slapping Comcast on the wrist), and at worst has the drippings of activity that would raise anti-trust concerns. (I’m the last person who asks the government for intervention into civil matters like this, but for all the negative government activity surrounding business regulation at least there’s the occasional possibly favorable outcome.)
  2. Not all security patches are from OS vendors. In fact, it’s more common to get upstream patches from vendors on Windows than Linux, so this problem is already a giant issue when you ignore the geeks. Another, larger, functionally infinite set of sources for ‘blessed’ traffic.
  3. Due to the two previous concerns, white-listing this activity is a difficult, perhaps unsolvable, problem without requiring massive investment into quantifying and ‘partnering’ with blessed vendors. Nobody wants this.
  4. Content arbitration like this makes your service useless to the sort of user who will pay for $55 a month internet.

The other issue with having to measure traffic as the uninformed user is that they do not have enough understanding about what goes on with their computer that comprises the amount of bandwidth they use. They don’t understand how much traffic is sent from a machine doing odd things like synchronizing the system’s clock, checking for updates, doing DNS lookups, pinging their mail server to see if mail is there, keeping connections open with IM service providers, etc., let alone how to reduce bandwidth usage from active internet use. I can’t see it being a good idea to ask these (currently profitable) subscribers to take the time to monitor and adjust this activity when its constraints are unknown to them under penalty of a larger bill.

All of this means that if my ISP expands this practice, I will not subscribe to their service any longer. I can take my $550/year to a number of other telecoms, and I’m sure they’d be glad to have it.

This entry has gotten to be gigantic so I think I’ll cap it (:D) here, just in case someone reading this only has 5GB to play with a month in the future.

1: Quoted from the AP who quoted a TWC representative. The AP are idiots who are trying to scam fair use in citations, and thus I will not link back to them. I don’t care for their reporting or their incorrect view of copyright law. The facts, however, are useful.

Trying out Twitter.

The iPhone Twitter app finally tipped the scales and got me curious, so I registered.

Maybe this will keep a lot of one line observations of mine off IRC.

http://twitter.com/sklnd

Tethering the iPhone 3g with Linux.

The aspect of the iPhone that made me hesitate in buying one the most was losing my ability to gain internet connectivity on my laptop though my phone. I’ve used this when I’m out of town at times to get connectivity, and it’s been quite the handy tool when there are no wifi hotspots to be found.

Today, I jailbroke my phone and managed to get a SOCKS proxy running on it. With a bit of Ad-Hoc wifi from my laptop, browsing the web with more Gs was easily at my fingertips. Here’s what I did.

  1. Jailbreak the iPhone. I used winpwn. It was pretty easy, and the internet will tell you how.
  2. Install 3proxy, insomniac, and either OpenSSH or mobile terminal.
  3. Either from a ssh session or the terminal, run proxy
  4. Set up a DHCP server on the laptop. This requires a config file, which I’ll include later. You could also use a static IP if that’s your bag.
  5. Bring the wifi card down and set it in Ad-Hoc mode. I did this using NetworkManager because I’ve become lazy, but its pretty easy to do with iwconfig as well.
  6. Take the wifi card up and assign it an IP in the same subnet as what your dhcp server is using.
  7. Turn on insomnia so your wifi connection doesn’t get shut down when the device goes idle.
  8. Have the iPhone connect to the Ad-Hoc network. I left dhcpd in foreground mode with debug on to watch the phone request an IP.
  9. Set firefox to use a SOCKS v5 proxy on port 1080 with the IP address your phone.
  10. Enable network.proxy.socks_remote_dns in about:config in Firefox. You need DNS to be routed across the proxy rather than firefox trying to hit whatever (likely invalid) nameserver is in /etc/resolv.conf
  11. Enjoy the internets.

The end result is your traffic goes over wifi to a proxy on the iPhone, and then out the 3G radio to ATT’s network. It’s a little flaky and to be honest I only plan on using this when I have no other means of using the Internet and I really need connectivity. The 3G network aspect of this is rather nice compared to the EDGE speeds I was used to with the Pearl. Being able to talk to the GPRS modem on the phone was much more functional, though. Proxies are a pain. I haven’t checked to see if ping times are worse or better over HSDPA versus EDGE.

As for the dhcpd.conf, it was pretty minimalist:

ddns-update-style ad-hoc;
subnet 192.168.1.0 netmask 255.255.255.0 {
    range 192.168.1.10 192.168.1.20;
}

It could be simpler, and I could do static IP assignment so I don’t have to adjust Firefox’s proxy settings, but it worked long enough as a proof of concept.

Unintended consequences.

I recently purchased a certain popular phone to replace my flaky blackberry. I have more Gs now. This device has a Assisted GPS functionality.  The first time I tried this feature out, it told me I was located somewhere near Dallas North Tollway and Keller Springs in Dallas, Texas.

This phone has never been to that location.

I used to live at that location a number of months ago.

Why does my magic phone know where I used to live before I owned it?

There must be something in common with my current location and my previous location. Hmm. My old apartment, despite being in a gated community, was situated rather close to Knoll Trail Drive, just north of Keller Springs. The location on the map pinpoints me to right about there. What sort of data could Apple be using to locate me when GPS doesn’t work (like now, when I’m indoors?)

In addition to A-GPS, iPhone 3G uses signals from GPS satellites, Wi-Fi hot spots, and cellular towers to get the most accurate location fast. If GPS is available, iPhone displays a blue GPS indicator. But if you’re inside — without a clear line of sight to a GPS satellite — iPhone finds you via Wi-Fi. If you’re not in range of a Wi-Fi hot spot, iPhone finds you using cellular towers.

I’m indoors, so GPS isn’t terribly useful. There’s a gazillion wifi beacons buzzing around me right now, so why would…. OH. Hey. Someone surveyed MY access point, with its old location south of here, as it was located maybe 20 feet from a public roadway. Then, I moved to an area far enough back from a road to not get surveyed, and all of the sudden when GPS fails the only AP providing them with a location cross-reference is the one on my desk, and it “reports” incorrectly.

So, Apple’s superphone relies on data to divine location in certain situations that’s inaccurate and more awesomely exploitable. Sweet. Now I just need a list of AP names or (more likely) MAC addresses, and I could simulate being located in just about anywhere that has been surveyed when I’m indoors.

More of the same.

I went to grab autotools so I could play in the source tree of a rather popular open source project. From their “Write Code” page:

Building is straight forward and familiar if you’ve ever built software on Linux before. We use the standard autotools suite for our build environment.

“So hey, I’ll go just apt-get install autotools! That’ll work!”

<chris@zwei> ~$ sudo apt-get install autotools
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Couldn't find package autotools

“That’s not great. However, I can just open up Synaptic and search for “autotools”, and it’ll point me at the packages I want!”

Searching brings up autotools-dev, and a few other packages, which aren’t what I want. Crap.

*google*

Oh, so I need libtool, automake, and autoconf to install Autotools?

*install*

Oh, look, I still need intltoolize. I bet Synaptic can find the package name if I search for that!

No?

Okay, I’ll try running intltoolize in a shell and the magic stuff ubuntu has will find it for me!

$ intltoolize
The program 'intltoolize' is currently not installed. You can install it by typing:
sudo apt-get install intltool
bash: intltoolize: command not found

Amazing!

Of course I have something called intltool-debian installed, but that’s obviously useless for what I want to do. I’ll install intltool.

Hey, it actually runs now! Not entirely, as there’s still some autoconf voodoo I need to deal with.

Conclusions:

  • Synaptic is both useless, in that it can’t find what package an executable name is in,  and annoying, because it grabs the dpkg lock the second it starts up so I can’t search with it and use apt-get to actually install things. This wouldn’t be a problem if Synaptic didn’t clear my search results every single time I install something.
  • Ubuntu’s package repositories are both comprehensive and uselessly grouped around the smallest packages imaginable. This makes task-oriented software installation much harder than it should be.
  • Whatever magic powers my shell telling me what package to install in order to get an app I don’t have when I try and run it is way more useful than Synaptic ever was.
  • Autotools might just be evil.
  • This needs to be much clearer and easier than it is now.

Insanity.

Someone build me a (Debian | Ubuntu) that doesn’t do the following:

  1. Split packages into libfoo and libfoo-dev
  2. Not install manpages when gcc is installed
  3. Append absolutely absurd version strings to packages (nvidia-glx-new 169.12+2.6.24.13-18.41)

If this crap keeps up, I’m going back to Slackware.

Unrelatedly, I filed a bug today.

EDIT: Alternatively, give me a giant checkbox at install time that says “YES I AM A DEVELOPER INSTALL DEVELOPMENT THINGS ON MY SYSTEM.” I’d forgive the version string sin for that.

Bahamas.

I was in the Bahamas sailing with mostly the same group as my Greece trip between May 3 and 14. I retrieved the tracklogs off of my GPS just now. Everything worth seeing around Abaco was close together, so we spent a week and a half covering a lot of the same water. The last log shown was from a walk we took to look for a specific snail species on Abaco itself. Other than that, we kind of hubbed out of the furthest east point of Hopetown (it’s hard to see at the scale of this screenshot, but 6 of the tracks either start or end there).  It was by far the most interesting place in the area.

Our route through the cays around Abaco, by gps location.

I should find a way to have an interactive gpx-based map hosted on my site.

Relatedly, I handled the pictures end of the trip a few days ago. The results are here: Bahamas pictures

Ham radio.

A week ago today I took the amateur radio technician exam, proctored by the Midland Amateur Radio Club. I passed, getting 32 of 34 questions correct. On Thursday, according to the ‘new hams’ page on qrz.com, I was assigned the callsign KE5UAF by the FCC.

I was very hopeful that I would get my callsign by April 26th, as I am going camping with at least one other ham. Looks like the FCC is on the ball. :)

I also purchased a Icom IC-T7H from ebay as my first tranceiver radio. With any luck it will be in decent shape when I get it.