I canceled my cell phone service
Bye, Sprint. I won't miss you, or the $70 a month I was paying for a phone I barely used.
Canceling my service was a tremendous ordeal. First off, there's absolutely no way to cancel without calling them, so that they can argue with you about how great their service is and provide feeble excuses for not canceling.
I said that I'd determined it wasn't worth keeping my service considering how rarely I actually talked on my phone, and I could just use wifi practically anywhere I went. They suggested I could switch to a basic phone with a low-end plan, which is stupid not only because they were clearly not listening to me when I said that what I used my phone for was exactly the one thing that a basic phone can't do, but also because the plan they suggested was still $50 a month. Wtf?
So while I was arguing interminably with the idiot "service" rep, who insisted on checking with his supervisor to see what other stupid plans he could offer me instead of just doing what I'd asked, ironically, as he was going on about Sprint's great service quality, my call got dropped.
After calling back, I got a non-idiot who actually listened to what I had to say and went through with the cancellation after just a couple minutes of back-and-forth, and he gave me a confirmation that my service would be shut off by the next day and I wouldn't have to pay the next month's bill. Great.
But the best part wasn't until later on, when I noticed that I'd gotten a voice mail from Sprint. Google Voice's transcript was predictably hilarious, but here's the best part:
> You know, we definitely need to lose you as a customer. Just give us a call back please. Thank you, you're alone. Ohh hello hello hello.
You got that right, Google.
PayPal and clarity of word choice: an adventure
Here's the header of PayPal's website, with all the actions you can take:

I am by no means a frequent user of PayPal, so my use of the site generally is stuck at the "stupid newbie" level. This means that any time I use it, I have to think about what I'm trying to do, and then look around for the option allowing me to do it.
Every single time, I get hung up on how to move money into my bank account. Their choice of wording, frankly, sucks. Consider my typical use-case, of getting money that I have tied up in PayPal moved to my bank, so that I can make a withdrawal, stuff some cash in my wallet, and go spend it. Which option do I pick?
- The money is right there in PayPal. I want to send it elsewhere.
- Or should I make a request that the money be put into my bank account?
- Maybe I want to add money to my bank account!
- Ohhh, I get it. I wanted to withdraw the money! Hah! Got it.
The fact that, in the typical left-to-right, top-to-bottom manner of reading, "Withdraw" is the very last option, only exacerbates the frustration. Half the time, forgetting which thing I have to choose, I'll end up clicking one of the top tabs, only to find myself on an irrelevant page and have to try again.
An alternate structure for their site, which would make far more sense, might be to have a single tab for all actions pertaining to fund transfers, whether to/from a connected bank account, or someone else's PayPal account. Then, on that tab, have "To" and "From" menus listing, for example, "This Account", "Linked Bank Account #12345", "Other PayPal User", etc. (Then, as an implementation detail, once one of them has been selected, the other one can likely be determined, as one endpoint of any transfer is going to be the PayPal account in question.)
The bank transfer isn't the only point of confusion, either. One of the sub-options underneath "Request Money" is ... "Request Money". Curiously, it leads to an entirely different page than the top link with the blue background. And why are there two separate tabs with "Services" in the title? Which thing does what? Don't merchants sell products? Arghhhh.
'])?>"/>
I know I give Perl coders a hard time for having an egregious amount of punctuation sprinkled everywhere, but I think the mess at the end of this line of PHP trumps it:
<input name="stuff" value="<?php print($values['stuff'])?>"/>That's eight punctuation marks in a row! Outside of a regex (which is a separate sort of ugliness, independent of the surrounding programming language), this must be some sort of record.
In other news, why does everything on the web have to be written in PHP. Come on people, there are other languages out there that suck far less.
HTML is a completely stupid "platform"
I've been reading about all the shiny stuff that's part of HTML5, and I came across this superb gem about drawing onto a <canvas>:
> If you draw a one-unit-wide line between whole-number coordinates, it will overlap opposite sides of the pixel square, and the resulting line will be drawn two pixels wide. To draw a line that is only one pixel wide, you need to shift the coordinates by 0.5 perpendicular to the line's direction.
So.... let me get this straight. To avoid anti-aliasing effects, you're supposed to draw half-pixels all the time? And this is BY DESIGN?! This is the hot new thing that all the developers are flocking to?
God, I miss when the web was a place people went to email pictures of their cats to their friends.
Powershell and friends
*dusts off blog*
Lately, I have been trying to learn how to transfer my heavily Unix-based development style into a Windows environment. Rather than just dumping a bag full of Cygwin parts into my system, I wanted to do it the "real" way, using native stuff when possible. It's been a challenge, but I have managed to piece together a workflow of rather close analogues of most of my normal environment.
My current setup has Powershell in one corner from the base source directory, an Explorer window for managing files (which, when I absentmindedly close it, I can re-open with a simple start . in PS), and a right-click context menu -> "Edit with Vim" to open a Gvim window for any file I'm looking at, and maybe in an existing session. Committing to the repo is another right click thing with TortoiseHg, which is mostly acceptable for handling typical operations like commit and merge. I'd still much prefer using the command line in some cases, such as cloning a repo. (Really, why does hg clone http://blah.blah/blah need multi-page wizard? It doesn't.)
I have MinGW installed, and have a /usr/local/bin-esque directory where I can stuff things like ffmpeg, sqlite, wget, etc. which really have no proper home on Windows. Some stuff (e.g. Python) insisted on installing to separate directories which means that my $PATH is now rather hideous, but I guess that's to be expected on Windows.
Powershell is ... usable, especially in comparison to a plain DOS prompt. It's a bit annoying to scroll through a heap of compiler output with the mouse alone, but I can't figure out if there's any keybinding to scroll the window, or if it's even possible to set one. I'd use make | less, but less is terribly broken and says I'm using a dumb terminal, which amuses me to no end.
When I first read about PS, I thought "wow, that sounds hideous." It just seemed like a very special kind of stupid, as if the developers came to the correct realization that Unix has a more powerful command line than Windows, thought for a moment, and decided that because they're obsessed with Java C# and OOP and POOP, that an object-oriented command line would be a great idea. The resulting product is something that, at a glance, is just as fugly as C# with all sorts of long command names and capital letters: instead of cat (or type, in DOS-parlance) there's Get-Content, mv is Move-Item, ls is Get-ChildItem (and why does ChildItem not have a hyphen?!), echo is Write-Output, and so on.
Fortunately, at some point I guess they realized that no one in their right mind would want to write command line scripts like that, so there's some 100+ aliases set up by default to make things like ls and pwd do something meaningful. Well... sort of. Here's an example: diff (actually Compare-Object), when given two filenames, just says that they're different. Or something. As it turns out, Compare-Object is comparing the names, not the content. So what in Unix would be diff a b is properly written in PS as Compare-Object (Get-Content a) (Get-Content b)... and then you get to discover that despite the diff alias, it acts more like Unix's comm command and doesn't show context, thus making its output not very comprehensible.
Despite my complaints with Powershell, I am impressed with a few things:
man(err,Get-Help) actually works, and not only that, it recognizes aliased commands, so I canman lsto see the documentation ofGet-ChildItem. It even looks like a manpage and filters its output through a pager. The first time I reflexively tried it, I did a double take when it worked exactly how I wanted. Thought I'd never in my life say that, but major props to MS for that one, especially considering GNU's absurd crusade of claiming that manpages are somehow deprecated, and attempting to replace them with their stupid info system.- The F7 key. Oh god the F7 key. It pops up a clever little history dialog, it's brilliant, and I need to hack out a script or something to do that in tcsh now.
There is one thing that I'm not sure I'll ever quite get over, though, and it's actually what prompted me to write this post in the first place: its utter failure at handling input/output redirection. Don't even bother trying input redirection; it doesn't even work – it just dumps an error that the < character is reserved for future use. But output redirection.... oh boy is it special. I was attempting to get PHP working (don't ask why), so I did something like this:
PS> echo '<?php print("Hi!\n");' > test.php
PS> php test.php
■< ? p h p p r i n t ( " H i ! \ n " ) ;
PS> cat test.php
<?php print("Hi!\n");
PS> _What the crap is going on here? I will spare the hours it took me to figure this out, and just spoil it, because I'm fairly sure no one else wants to learn this the really stupid way like I did. You see, Powershell encodes output redirected to files as UTF-16. WHY DOES IT DO THIS?! Arghhhh! What's even better is that the "proper" way to get a normal, sane text file like you would fully expect to be produced, is by writing:
PS> echo '<?php print("Hi!\n");' | Out-File -path test.php -encoding ASCIIDuh. Why didn't I think of that.
ON A COMPLETELY UNRELATED NOTE, I got a Twitter account for some reason, and I set up twitterfeed to cross-post from here, so maybe I'll start posting here more regularly again... or not. I think I've made similar statements before.
what have I done?!
So, a couple weeks ago, a very curious thing happened to my desktop. It was off. I'd had my BIOS set up to automatically power on, and it .... didn't. Flipped the switch on the PSU a couple times, and the best I got out of it was a little green light to the motherboard indicating that, yes, there was power, but it wasn't going to turn on. Power switch on the front? Nothing. So, I opened the case and discovered that the switch had mysteriously been disconnected and was resting several inches away from the header on the motherboard that it should have been plugged into. Unfortunately, reconnecting it did nothing.
Fast forward a bit; a friend gave me a mostly-working system that he'd upgraded from, which "just" needed a hard drive. This ought to be easy, I thought, I have plenty of hard drives! So I plugged my drives into that system, connected the peripherals, and plugged it in. I was greeted with a mysterious blinking green light on the PSU. Not to be deterred, I swapped that for the power supply on my old computer – which, to the best of my knowledge, worked.... and I got a blinking amber light on the front panel of the case. After several frustrating hours of guessing, swapping out every single component on the system, and being increasingly annoyed at the whole affair (all the while, repeating the mantra: I hate hardware) I gave up and went to sleep.
Next day: an hour drive to Micro Center, $730 out of my pocket, and I've got all brand new parts. I spent that night, and well into the next morning, meticulously assembling everything while watching several hours of demos. I plugged in the monitor, and after struggling with what turned out to be a non-functioning power outlet (I hate wiring) I got it to turn on and greet me with a "New CPU detected, press F1 to enter setup" prompt. Oops, didn't plug in the keyboard..... prompt goes away... no operating system found. Connect keyboard, reboot, no prompt. Hit F1 anyway. Black screen. Strange. Tried booting from some random OS install disc (I think it was Debian?) and that worked, so hopefully I'd never need to get into the BIOS.
I went to sleep for about two hours, got back up, moved everything from the living room to underneath my desk where it's supposed to go, hoping that whatever was broken would magically resolve itself – riiiight. Well, guess what. It did. I hit F1, it dumped me into the slickest, most impressive BIOS I've ever seen. Changing the boot order? Drag and drop the icons. Looking at a long list of choices? Use that scroll wheel. I had no words. ._. (And before anyone asks: the keyboard works just fine too; you don't need the mouse. But ohmygawd it is slick.)
Sooooo anyway. I'll casually skip past the nonsense where I lost the DVD I was going to use, and had to re-download Windows Server 2008, which took creating another account on DreamSpark. (Why? Because it's entirely legitimate, it's free, and with Server, all of the crap you'd normally have to disable is already turned off in the first place – and there's taskbar buttons by default to open a terminal window and the system settings.) So I get the disc, pop it in, it boots just fine, goes well beyond the point where it would routinely blue screen on my other computer, and the entire install takes a couple minutes.
I'll also skip past the stupid bit of trying to get a wireless card to work. You have to enable WLAN in the system settings first.
So now, what I have is essentially a trimmed-down Windows 7 install that works really, really well, and has way more power than I actually need. How much? Well, have a look:

Hehehe.
Nanoblocks.

It's a castle!
This stands a bit under four inches tall, has over 550 pieces, and took me about three hours to build. (Pardon the rather clumsy photo.)
drinfks
> The Camba had weekly benders with laboratory-proof alcohol, and, Dwight Heath said, "There was no social pathology—none. No arguments, no disputes, no sexual aggression, no verbal aggression. There was pleasant conversation or silence." On the Brown University campus, a few blocks away, beer—which is to Camba rum approximately what a peashooter is to a bazooka—was known to reduce the student population to a raging hormonal frenzy on Friday nights. "The drinking didn't interfere with work," Heath went on. "It didn't bring in the police. And there was no alcoholism, either."
— Drinking Games, The New Yorker, 15 February 2010
