Article posted on May 5
Six years ago, I bought a $360 entry-level "hybrid" bike from a local bike shop. This weekend, I decided to step up to the next level... by buying a $200 big-box bike from Target. Wait, what?
When I bought my last bike, I knew almost nothing about bikes, went into a shop armed with only a little research, and walked out with something. It was a decent quality bike, but there were lots of things I ultimately didn't like about it. It was billed as a "hybrid" bike, but it would be hard to explain how it was different from a mountain bike. The handlebars were way too high and I didn't like the curve of them. (The stem was adjustable, and I eventually did lower it down, but that brought it very far forward.) It was quite heavy. The tires were very wide and very knobby. I didn't like the front fork suspension. It was very high up and the seatpost had its own suspension which took up a lot of space, and as a result the lowest possible position of the saddle was the bare minimum acceptable for me. And while it had a partial chain guard, I never used the front high or low gear.
None of these downsides by themselves were terrible, and I told myself I wouldn't use them as an excuse to not ride, and I wouldn't address them until I had been riding more. Well, I didn't ride much until about the last year, and in particular I've been riding at least three times per week throughout the spring, so recently I decided to look around.
I ruled out new bikes as I didn't want to spend more than about $400. Last weekend was Earth Day, and I biked to the celebration downtown, where the local Kiwanis bike group had brought their inventory. Some of the bikes looked good, but didn't satisfy everything I wanted. I was planning on continuing looking for used bikes (I had not yet visited the Reno Bike Project), but this weekend somehow ended up on Target's site. There they had a Schwinn Median bike which looked good on paper:
I found a review of the Schwinn Median which says, "Never has bike had a more appropriate name. It occupies the exact space of crossover between mountain bike, road bike and cruiser." Given the specs, that is quite accurate, and is almost exactly what I was looking for.
The one at the store was decently assembled, so I bought it. I spent some time adjusting the derailleur and brakes, but the rest of the components were decently aligned and tight. I transfered over the lights, rack and saddle from the old bike, and have been enjoying it.
I still have the old bike, but it's been downgraded to "Burning Man bike" status.
Now, I'm sure I just spat in Bike Church. I bought a big-box bike as an upgrade, and I'm happy about it? Heresy! To which I reply, meh. There was one bike which happened to satisfy my personal checklist, and it happened to have the name "Schwinn" on it, and was likely assembled by a teenager. The frame is fine. The components are good. The gear system is acceptable. It feels comfortable. And it was priced decently.
I should point out that's not guaranteed to always be the case. I'd consider myself firmly a bicycle semi-amateur these days, so I at least knew what to look for. Interestingly, while the Schwinn Median has probably sold about a million bikes, there's not much mention of it online. One of the top results is a blog post by a family showing it off, where the pictures clearly show the front fork was attached backwards.
Article posted on Feb 13
Finnix uses BusyBox for its initrd, and that BusyBox installation requires a custom patch. In the past I've compiled BusyBox with uClibc to keep the size down: a full static BusyBox binary is about 700 KB when compiled against uClibc, and about 1.8 MB when compiled against glibc. For a LiveCD distribution which prides itself on its balance between size and features, 1.1 MB of unneeded bloat is a lot.
In the past, I've used a development Buildroot chroot to compile BusyBox, as the documentation recommends. However, the pre-built chroots on the Buildroot site are quite ancient, and I never had success in having buildroot compile an equivalently-featured chroot. On top of that, recently they deprecated building a target toolchain in the chroot itself.
See, it's not just a matter of "build against uClibc". The libc is tightly coupled to the toolchain, a set of utilities such as gcc, binutils, etc. In my case, I don't care about cross-compilation and just wanted to build a native uClibc development toolchain chroot on each supported Finnix architecture (x86, amd64 and powerpc) for the purpose of building BusyBox.
As it turns out, I don't need the full chroot, just the toolchain, and it's rather easy to do, though a little time consuming and not immediately obvious.
Download and extract Buildroot and BusyBox. Here we're assuming:
cd $BUILDROOTDIR make menuconfig
Be sure to select the proper architecture information under "Target options". Since Buildroot is primarily a cross-compilation tool, it defaults to i386, not the host target. Indeed, you can even use this method to cross-compile BusyBox.
Under "Toolchain", enable the required uClibc options. In my case, my rather fully-featured BusyBox config required the following toolchain options:
[*] Enable large file (files > 2 GB) support [*] Enable IPv6 support [*] Enable RPC support
That should be it! You don't need to bother with anything under "Target packages", since we're not actually going to be compiling the full target chroot, just the toolchain. Start the build:
make clean && time make toolchain
This will download a bunch of sources and will require some time to compile; on my relatively fast AMD64 build environment, the build portion takes about 10 minutes.
Once done, the uClibc toolchain is in output/host/. You may use this to compile BusyBox:
cd $BUSYBOXDIR make menuconfig export PATH=$BUILDROOTDIR/output/host/usr/bin:$PATH make clean && time make CROSS_COMPILE=$(cd $BUILDROOTDIR/output/host/usr && ls -d -1 *-buildroot-linux-uclibc)- busybox
Note that the toolchain is not easily relocatable.
Article posted on Jan 10
In 2000, I walked into a Pacific Bell Wireless store on Market St. in San Francisco and signed up for service. For the next twelve years, I stayed with them through six different names:
In 2012, with the release of the iPhone 5, I upgraded from my iPhone 3G. At the same time, I switched from AT&T to Verizon, to save a little money (from $100/mo down to $90/mo), and because at the time, Verizon had LTE service in Reno, but AT&T did not yet. (AT&T did launch LTE in the area a few months later.)
On Wednesday, I heard the announcement that T-Mobile would be paying off the Early Termination Fees of up to $350 if you switched to them, traded in your smartphone for up to $300, and bought a new smartphone with them. Their plans are decent, offering unlimited talk/text/data (though the data is throttled after a certain point depending on what you pay, but they tell you this up-front) for as low as $50/mo. They've also got the system where you essentially finance the unsubsidized cost of the phone over the course of 24 months, rather than the telco subsidizing the cost of the phone into higher monthly plan costs. For most people, assuming a new phone every 2 years, the savings would be modest, but there would be savings.
After I looked at this offer, I didn't think it was worth it in my specific case. ETF on Verizon would be $200 ($350 minus 15 months at $10/mo), and they offered $215 for my iPhone 5 32GB. I'd have to get a new phone, so say the equivalent iPhone 5S 32GB for $100 down and $25/mo for 24 months. Net savings after 9 months (when my Verizon contract would have come up): $250, except I'd still have 15 months of a "contract" left in the form of $25/mo payments on the new phone.
Instead, I decided to switch to T-Mobile anyway, eating the $200 Verizon ETF and keeping my existing phone. I'm now paying $50/mo with T-Mobile, instead of $90/mo with Verizon for effectively the same service. Net savings in 9 months will be $200, $50 less than the scenario above, but I will have no obligation at any point from now going forward, unless I decide to buy a new phone sometime soon.
And therein lies the mental benefit. If I would have stayed with Verizon, in 9 months when my 24 month contract would have been up, I would have still been paying $90/mo. It mentally encourages you to get the latest and greatest when your contract is up, to justify the price, but that locks you back into a contract. With this new T-Mobile service, I can continue to use my existing phone as long as I want. Or hey, maybe the iPhone 6-X With Blast Processing is released in 9 months and I decide to get that. I've got choices.
"But Ryan," you ask, "your current phone was bought through Verizon and was still under contract. And isn't it CDMA anyway? How does it work with T-Mobile?" In short, it works, and well, but not to its full potential. The iPhone 5 A1429 (CDMA) model includes CDMA, a handful of GSM bands, and a handful of LTE bands. The LTE band T-Mobile uses just isn't available on my phone, so no LTE. A year ago, I would have been limited to EDGE/GSM (2G), as 1900MHz was the only common frequency, and T-Mobile had UTMS/HSPA+ (3G/"4G") on 1700MHz, which isn't available through my phone. However, in the last 6 months, T-Mobile has been moving UTMS/HSPA+ over to 1900MHz on a city-by-city basis, and Reno has already been done. HSPA+ is not LTE, but it's plenty fast. The only real downside is if I'm in a non-major metro area, it's likely I'll be limited to EDGE, but I can live with that.
As for the contract issue, here's a fun fact: All Verizon LTE-capable phones, including the iPhone 5/5S, are completely unlocked. They're actually required to as an FCC condition of their allocation of LTE band 13. So my "CDMA" phone is actually a fully capable GSM phone out of the box. This was useful for me as I've been to London twice in the 15 months since I got the iPhone. I can literally walk up to a vending machine in Heathrow and buy a short-term SIM card. (Though crazily, T-Mobile offers unlimited free roaming data in many countries, including the UK, and the majority of why I'd get a SIM card in the UK was for mobile data. Woot.)
As a side note, when I switched cellular service in 2012, I got a new phone at the same time. My mind had linked the process of switching cellular providers with the reward of new tech. As a result, after switching providers again this week, for about 24 hours I would occasionally think, "I switched providers! I should go play with my new... oh, it just means I get my bill from another company."
(I think I have lost the ability to write small posts anymore. I may have a problem.)
Article posted on Dec 27
OK, a month ago I said I'd make a review of the PS4, and tonight I finally sat down and started writing. And my god was it boring. I was a thousand words in and had only mentioned the physical console and the controller so far. So I deleted it all and started over.
Here's the tl;dr review: yawn.
It's not bad. It's just not very compelling right now. I've had an Xbox 360 for over 7 years now, and honestly, that's what I've been playing all this month (mostly GTA V). If you have a 360, play that. If you have a PS3, play that. Maybe the PS4 (and presumably the Xbox One) will be a better sell in a year, but for now, meh.
The Console: It's a boring black slab. That being said, the angled front is slightly less boring than the Xbox One.
The Storage: 500GB is not enough. It's nice that the HDD is user-upgradeable, but even 1TB aftermarket is not enough in the long run. The PS4 has USB 3, but the only ports are on the front, and USB mass storage is not supported. When each game wants to copy about 25GB to the HDD and the games' point updates are over 1GB, you're going to quickly run out of space. Sony, re-think this.
The Controller: Is it bad? No. Is it better than the Xbox 360 controller? No. In my opinion, the Xbox 360 controller is perfect in every single way, except for the D-pad, which is horrible. Conversely, the DualShock 4 D-pad is the best I've ever used. Somebody give me an Xbox 360 controller with a DualShock 4 D-pad, now!
The UI: It's not offensive, though the background music is. Or so I seem to remember; I don't remember what it actually sounds like, since I disabled it two minutes after first turning it on.
The Store: Hard to use. And it wants to sell you PlayStation Plus everywhere, even if you're already subscribed.
Knack: Technically impressive with the number of moving parts, and overall inoffensive, but not very exciting. I see this as very similar to Xbox 360's Kameo: a cutesy technology demo launch title.
Need for Speed Rivals: Every time EA releases a new NFS title, I long a bit more for 1998's Need for Speed 3: Hot Pursuit. Rivals is almost enjoyable, except now it's open world, and when you're done with a race, you can lose all the points you earned if you're busted in the open world. So after you do a race, you run back to your hideout to bank them. And there are loading screens everywhere. Graphics are pretty, though.
Killzone Shadow Fall: I only bought this because it was on sale for $30 somewhere online, about a week after the console launch. I hate console FPS games. Everything is "realistic" (brown) and indistinguishable, so it's hard to pick out enemies. So to get around this, there's a sonar feature you can activate to make enemies and objectives stand out momentarily. You need to do this every few seconds. I played for about an hour and gave up.
Resogun: This is a download title, free with PS+. It's a side scrolling ship shoot-em-up, and was a blast to play. Unfortunately, unless you're a high score chaser, there's not much replay value.
Contrast: Another free PS+ download, a third person puzzle game with a twist. Decent story, excellent gameplay, but a little short.
So there you go. $150 in AAA disc titles purchased, and my favorite so far were the two free download titles.
Article posted on Nov 16
On Friday at 12:01 AM, I became a PlayStation 4 owner. I was first in line at the Carson Valley Best Buy to get one. No, I didn't camp out for a week or anything. In fact, it was mostly accidental.
First, let me say, I am not a hardcore console player, nor am I a zealot toward any console camp. I like console gaming, but my ownership has been erratic. He's a list of consoles I have owned, in order:
Yes, both my original 360 and Wii units died. The 360 after about 3 years, the Wii after nearly 6 years. Both failure modes were similar: they would occasionally work, but most of the time would freeze during startup. In both cases, I bought a replacement unit, and sold the old unit for parts on eBay. Both sales got decent money (not enough to pay for the replacement of course, but more than I would have expected for mostly broken systems).
The only time I ever camped out for a consumer device was for the Wii launch in November 2006. Best Buy was opening at 8 AM, and I stopped by at about 8 PM to check out the line and talk to people. I did want the Wii, but didn't plan on camping for it. There were already about 50 people in line, but rumor was they had about 150 units available. So what the hell, I went home, grabbed a folding quad chair and some warm clothing, invited some friends, and went back to the line.
It was actually pretty fun. Lots of social people in line, people would occasionally get pizza delivered, lots of GameBoy action, etc. After midnight, a few people who managed to get the few sold at Wal-Marts came by and flaunted their new purchases. When 8 AM came around, it turns out they had over 150 units available, and there were only about 120 people in line, so technically camping wasn't even needed. But like I said, it was a fun experience. (If I would have known there would be shortages for the next year or so, I would have bought 10.)
Fast forward to Thursday night. I was vaguely interested in getting a PS4 (my personal guess is the PS4 is going to "win" this generation, but I've been wrong about such things before; picking HD-DVD over Blu-Ray, for example), and was driving by the Reno Best Buy at 7 PM, when I saw about 30 people in line for the midnight launch. They had no idea how many units were going to be available, so I didn't think it was worth it to get in line. But I decided to drive out to the Carson Valley Best Buy to see if there was a line there (my Ford C-MAX is still new enough that it doesn't take much persuasion to get me to drive 45 minutes).
When I got there at about 8 PM, there was a roped-off area for non-preorders, but nobody in line. The fact that the area existed probably meant there was at least one console available, so hey, I got in line. Two minutes later a woman got in line behind me, who was buying it for her husband who was out of town. Then, for the next hour, nothing. At about 9 PM, a few more people trickled in. More after 10 PM. At 11 PM, there were about 20 people in line, when they let us in to begin taking our money and trying to sucker us into buying bundled accessories and services. My favorite was, "The PS4 includes an HDMI cable0, but it's just a cheap, basic one. You want this $50 cable, which supports 3D and 4K!" (The PS4 supports neither 3D nor 4K, and HDMI cables are essentially all the same.)
At 12:01 AM, they passed out the purchases. I bought the PS4, Need for Speed: Rivals, and Knack.
Coming up next, a review of the PS4...
0 Wow, a consumer video device which comes with an HDMI cable. What next, a printer which comes with a USB cable?
Article posted on Sep 4
I'm now in IMDB, and officially have a Bacon number of 3.
Here's the clip, a seven-second close-up of my torso and a brief shot of my face.
Article posted on Aug 16
Today I made the first fill-up of my new Ford C-Max. The result was slightly surprising: 40.7 MPG; I was expecting between 35 and 38 MPG. A far cry from the advertised 47 MPG, but as I explained in my last post, I realized the MPG discrepancy when buying the new car, and my expectations are built around an average of about 36 MPG. Coincidentally, yesterday Ford voluntarily re-rated the 2013 C-Max from 47/47/47 to 45/40/43. Still more than I'm expecting, but more in line with a typical car's posted MPG vs reality.
As with my 2007 Prius, I kept fuel records of my 2009 Prius, and have crunched the numbers:
If you are interested in the raw data, the spreadsheet used to generate these numbers is available here.
Article posted on Jul 27
"Oh, it must be Saturday."
Yeah yeah... (I would point out the last time I bought a car was nearly 5 years ago.) But the shocker is it's not a Prius. It's a 2013 Ford C-Max Hybrid. That's right, after 12 years of Prius ownership, I have jumped ship. And I love it.
First, a little background. The C-Max is a competitor to the Prius v, not the regular Prius. When the 2012 Prius v was announced, I was confused about it specifically, and crossovers in general. It was advertised as a larger Prius, but my first impression was, "What's the big deal? The numbers are a little larger, but it doesn't look any bigger in photos. It can't be much different." After taking a test drive in a C-Max, I now get crossovers. The C-Max, like the Prius v (which I admit I haven't been in) may have the outer stylings of a midsize hatchback, but the interior is laid out and feels a lot more like a compact SUV. Higher ride, more headroom, more room in general.
By the way, I categorize it as a crossover because frankly, the crossover category is already very loosely defined, and the C-Max doesn't cleanly fall into an established category. Ford simply groups it as a "hybrid", while Wikipedia calls it a "compact MPV" (a term not used in the US, though we would call a regular MPV a minivan) and groups it with light trucks. The EPA groups it as a "large car".
So the C-Max looks like a hatchback on the outside, feels like an SUV on the inside, and handles like a Focus (which it is based on). I've been driving it since I bought it on Wednesday, and I love it.
(Let me point out that in my points below, I am comparing the 2013 Ford C-Max Hybrid to my previous second generation Toyota Prius. Not all points may be applicable to the current third generation Prius, or to the Prius v.)
First, I'll get the bad points out of the way. It's not a Prius. It won't get the same fuel efficiency as a Prius. The EPA estimate is 47 MPG city/highway/combined, but at best, I'd describe that as a distortion of reality. At worst, I'd call it a downright lie. I have a feeling the C-Max was "taught to the test"; that is, it was designed to do best at the EPA standardized test. Real world usage will be about 38MPG, slightly lower than what my 5 year old Prius got in the real world.
The cargo area (before you fold down the fold-flat rear seats) is 24.5 cubic feet. My Prius was 14.4 cubic feet, but the floor surface area of the Prius was noticeably larger than the C-Max. So the C-Max technically has more cargo volume, but the Prius felt like there was more cargo room available. Also, the under-floor storage of the C-Max is greatly reduced compared to the Prius.
That's basically it for the cons. The C-Max shines at everything else I've found. The interior build quality is excellent compared to the Prius, and feels very solid. It's noticeably quicker; 0-60 in 8.1 seconds, a full 2 seconds quicker than the Prius. Handling is much better as well.
The dash is beautiful. There are three LCDs, one each built into the left and right of the speedometer to display standard data (odometer, fuel remaining, etc) and hybrid data, and a large touchscreen LCD in the center dash. The default view to the left of the speedometer is "Coach" mode, which gives you bar graphs showing how efficient you are at acceleration, cruising and braking. To the right of the speedometer is "Efficiency Leaves", which gives you an at-a-glance view of your efficiency. Careful driving will grow leaves on the branches, and wasteful driving will make the leaves fly off.
It also keeps track of regenerative braking. When you come to a full stop, it shows you the efficiency of that braking maneuver, with 100% meaning the brake pads were never used and all of the energy was recaptured to recharge the batteries. The main touchscreen also has a mode which shows what the ICE/electric systems are doing, like the Prius, but unlike the Prius, it tells you why the ICE has turned on (you're accelerating rapidly, the batteries need to be topped off, etc).
The main functionality of the large touchscreen is a system called SYNC with MyFord Touch, and it's great. The massive amount of functionality is a little unintuitive at first, but once you realize how things are laid out, it's very easy to work with. GPS navigation looks decent, though I have not yet tried setting a route. It was easy to pair my iPhone with the car, and the built-in phone functionality works well. Climate control is more refined than on the Prius. But the best part is the entertainment system. It supports AM/FM, HD radio, CD, Sirius/XM, USB media, Bluetooth audio, and oddly, RCA A/V in (which I have not tested yet). The Bluetooth audio works great with the iPhone, song information displays on the LCD, and I have full control of playback/navigation from the touchscreen or the steering wheel.
Plenty of places for power too. One 12v lighter adapter inside the center console, one outside it, and one in the cargo area. And interestingly enough, the back seats have a standard NEMA receptacle, though it is limited to 150w (plenty of power for a laptop, though).
It supports automatic parallel parking as well, and to my surprise, it actually works! Press a button, and the car begins scanning the area as you drive. When you pass a spot long enough to work, it tells you when to stop, tells you to put it into reverse, and when you ease off the brake, it does everything else for you.
Honestly, there are about a hundred other things I could mention, and I'm still finding new features. For example, today I found it has a WiFi client built into the car. Presumably for people who have garages, so it can use the internet connection in the house to download things like traffic/weather data. (My carpark parking space is too far away from my apartment for the car to see my access point.)
The future of the C-Max in the US is uncertain. It's been a badge in Europe for years (including non-hybrid models), but this is the first model year it's been available in the US, as a hybrid only. J.D. Power ranked it last in initial quality, which is tracked by consumer complaints about design problems, and that was almost entirely due to two issues: the lower than expected MPG and the MyFord Touch system.
The MPG issue I already touched on; in my opinion it sucks that it's advertised as 47 MPG, but I'm willing to accept that it won't do more than 40 MPG in real-world usage. If they had advertised 40 MPG, I think it would have been a moot point for most people.
Apparently after the launch there were many, many problems with the usability of the MyFord Touch system. I've seen pictures from last year of it in action, and it even looked quite different than it does today. But they've released a handful of updates (the firmware is field-upgradeable), and I've had no problems with the version on my car.
I read a lot of reviews before I made the purchase, and while you would expect there to be a wide range of professional auto review opinions on a new car, they eerily all follow the same formula: Good looks on the outside, lots of space on the inside, excellent build quality, excellent power and handling for a hybrid, unrealistic MPG, and horrible entertainment interface. If everyone's agreeing on the major points, and the two downsides are 1) acceptable to me and 2) already fixed through software updates, I consider that a good thing.
For the record, I've got the top trim level (C-Max Hybrid SEL) with the top package (303A), and includes every option but the sunroof. It was a bit expensive, $31,000, but I got a decent trade-in on my 5-year-old Prius, $14,000. Many of the options (such as nav, leather and MyFord Touch) are only available in the top packages, but for a semi-luxury car, it's a pretty good price. There is also a plug-in hybrid variant of the C-Max, but as I don't have a garage, it wouldn't be useful (and it's not approved for sale in Nevada yet).
Article posted on Jun 18
A year ago, I launched M29, a URL shortener with a twist. Apparently I forgot to announce it here. Whoops.
Normal URL shorteners are fairly simple. You submit a long URL. The service generates a short URL. The long and short URL are placed in a backend database. If you go to the short URL, it redirects to the long URL.
This means that the URL shortener service has a large database of URLs available to it. While 99% of the contents of this database may be mundane, it's still a large, centralized source of information. Very relevant to the recent NSA news, for example.
M29's twist is, except when serving the redirect, it does not know anything about the contents of the long URLs. This is accomplished by generating an AES-128 key, using it to encrypt the long URL, and then splitting the key in two. One half of the key is stored in the backend service, and the other half is encoded as part of the short URL itself. This means the only time the two parts of the key come together is when the short URL is requested for the redirect.
The net effect is, while I currently have a database of about 10,000 entries, I cannot read them. Source IP and URI logging are not done on the server, so the only way I can find a long URL is if I load a full short URL, which is not possible given just the backend database.
Anyway, this weekend I did some work on M29, including adding a bit.ly-style preview option (append a "+" to the short URL to get its info), among other small feature additions and fixes. It was then I realized, by going to that above short URL (the first URL generated and used in documentation) that the one-year anniversary of the service is today.
Article posted on May 21
A few weeks ago, Google decided I live in Taiwan. More specifically, it decided my IPv6 netblock is in Taiwan. I have an IPv6 tunnelbroker allocation from HE, 2001:470:1f05:22e::/64, and while I'm not sure if it affects all of 2001:470::/32, apparently I'm not alone. It's a relatively minor annoyance, but it crops up in a lot of places:
Google does have a form to address such errors, which I did fill out, but the general gist is, "Google works in mysterious ways. I wouldn't hold my breath if I were you."