OK, that's enough

(sigh) I hate talking about politics, pretty much period. First off, I just don't like talking about politics. Perhaps strange for somebody who actually went to college claiming he wanted a Political Science degree, but that was really always window dressing - it was an employable version of a history or anthropology degree. Blogging about politics is even more fraught because I only have maybe a dozen readers and I know two of them disagree with me on almost every political point you'd care to name. But sometimes I just have to say something before I explode. First off, if you want to understand this current financial whatever-it-is and you're open-minded enough to believe that NPR isn't a vast conspiracy of whatever sort, let me direct you at the Planet Money podcast (which I saw in a Twitter from Scott Simpson). I've just binged on their last week's worth of podcasts, I guess I was hoping more information would make me less outraged. That didn't work. But I am more informed now. Let's review. 1 ) Under deregulation, banks were allowed to "leverage" to a what is, in hindsight at least, a ridiculous degree. When all the chickens of the subprime mortgage came home to roost, the banks simply did not have the cash to provide the insurance they had committed to. It's complicated because apparently mutual funds had started providing insurance and a lot of people who had no business guaranteeing mortgages had, through a twisty and complex package of derivatives. But this is still the gist, when all of these ARM mortgages adjust people lose their homes and a lot of people "insured" against that happening but didn't actually set aside any money against that event. 2 ) This was an obvious outcome. I speak as somebody who bought a house in 2004 and found it completely impossible to get anybody in the whole real estate/mortgage cabal to even admit subprime mortgages were bad. (Full disclosure: my current mortgages fall into this category. I finally settled for getting mortgages where I could make real payments without penalties. And yes, my mortgage broker thought I was being silly, but there were mortgages that penalized me for paying any principal in the first five years. I wouldn't take those.) It was immediately obvious that as soon as propery values even went flat the whole sector was going to collapse. 3 ) The Deputy White House Secretary admits people have "had months" to work on this bailout plan. (Hit that link and search in the page for hastily for the good bit.) 4 ) Although the executive branch has had been working this for months, we have to pass it RIGHT NOW OH MY GOD OR WE'LL ALL DIE!. Even though nobody had heard about this "plan" a month ago. 5 ) I've heard that before from this administration. See the Patriot Act, see the authorization for force in Iraq, see the retroactive immunity for telecoms asserting that it's OK for a company to break the law if the executive branch tells them to do so. (! I still can't even think that without adding the exclamation point. What. The. Fuck.) Fool the country once, shame on you. Fool the country twice, shame on the country. Fool the country three times and proverbs fail me. Try the fool country a fourth time and can't we just say the fuck NO for a few months and just give Bush the "OH MY GOD WOULD YOU JUST SHUT UP" hand for a while? I'm pretty much good on calling him a lame duck now and waiting to see who comes next. 6 ) The bailout package gives unprecedented powers to the Treasury Secretary. Specifically at least some drafts of it have said:
Decisions by the Secretary pursuant to the authority of this Act are non-reviewable and committed to agency discretion, and may not be reviewed by any court of law or any administrative agency.
Are you fucking kidding me? We have an administration who has pushed for nigh on to eight years now that it needs unbridled, unlimited power and here we have a bill spelling it out explicitly for once. If Congress passes this clause it's tantamount to cutting their own throat, since they'll be willingly castrating themselves. If it wasn't so goddamn important I'd say let them, but sadly it's too important to remind the executive branch that it's just one of three equal branches and there are checks and balances for good fucking reasons. 7 ) It's so important that McCain has to suspend his campaign, and coincidentally the debate. Well, maybe we could reschedule the Presidential debate over the VP debate. I mean, haven't we heard enough from <Foghorn Leghorn chuckle> that cute little Alaskan governor lady </Foghorn Leghorn chuckle>? Well yes, I've heard enough from her, but as long as a major party is claiming she's qualified to hold high executive office then no, I haven't heard enough. Please go on, I'm fascinated to hear how if "Putin rears his head and comes into the airspace of the US" the Alaskan governor is prepared to handle it. Presumably because we can't find Al Haig anymore? Or perhaps how the fact that one in five jobs are in the trade sector means being the governor of Alaska is substantial foreign policy experience? Hey McCain, you picked her, let her go to the debate. I realize it's a problem since your party doesn't have a whole lot of minorities and that's puzzling. You'd think more women were pro-shotgun weddings, wouldn't you? Maybe declaring everyone who fails off the impossibly narrow ethical tightrope as enemies of the state means your pool of qualified candidates is too narrow? 8 ) Except wait, no McCain can debate after all since the bailout deal didn't fall apart yesterday. Wait, it did fall apart didn't it? I'd ask for the McCain campaign to stay on message, but I guess first I need to ask it to pick no more than one message per week. Once they do that we can work on staying on the message. Remember, he was going to the debate on Tuesday (9/23) had "no intention to going to the debate" on 9/24/08, and on 9/26/08 he's going to debate after all. Because in the timeframe since McCain suspended his campaign the bailout fell apart, and Washington Mutual collapsed in the "biggest banking failure in American history". So either that's a "heckuva job" there, or he's a big flip-flopper. Which is it exactly? Bottom Line: one of the parties is trying to tell us that we have to pass the bailout RIGHT NOW, OH MY GOD DO IT, WE CAN'T EVEN HAVE A NORMAL PRESIDENTIAL CAMPAIGN, PASS IT PASS IT, GIVE ALL THE POWER TO THE TREASURY DEPARTMENT! Which is so far up the ass of the boy who cried wolf that it must be real, because if Saturday Night Live said this shit as satire they would be scoffed at as being ridiculous and unbelievable. Look, when the tinfoil hat capital-L liberals say the Republicans are going to pull some sort of "October Surprise" and postpone or suspend the election we all agree that's ridiculous poppycock and should be mocked right? Well suspending a campaign for two days is the best argument yet that it's plausible. I still don't believe it will happen, but I'd appreciate it if the Republican presidential candidate didn't hand them any more loaded pistols. OKThanksBye!
Read more

Cocoa collections, an advisory note

Now that I'm doing actual useful iPhone development work I'm running into a few… shall we call them quirks? Talking about the iPhone specific stuff possibly needs to be [redacted] because of what's known on Twitter as the FUCKING NDA, but I think if something is also part of the OS X libraries then it is fair game. I had cause in my recent application to use a NSDictionary (well a NSMutableDictionary but let's not quibble, shall we?). A NSDictionary is quite straightforward, it stores key-value pairs. Imagine that you have a Person class and you have some other data (not part of the Person directly) that you want to keep on a per-person basis. You might well decide to use a NSDictionary and store (as a value) a NSArray for each Person (as a key). That way you can quickly retrieve the data for any Person. Now the documentation says pretty clearly that it's going to copy the keys but the obvious implication isn't stated: that means you need to implement a copy operator for any class you plan on using as a key. The thing is, nothing tests to make sure you do that. There's not even a warning if you don't but whatever default copy you get won't pass the comparison function. That means you can never say "Give me Bob's data" because the key for "Bob" won't be the same as the "Bob" object you're using. (And as an aside, yes I realize using the entire Person object as the key is slack. This was a temporary thing I was doing just to get the code running. In the particular case the "Person" object only consisted of a NSString anyway, so it wasn't that terrible.) You can happily stuff data in the Dictionary for "Bob" all day long but you'll get a nil when you try to retrieve the data. So. If you're going to use a NSDictionary with custom key classes you'll want to implement the NSCopying protocol. I suspect you want to implement the isEqual message, and the documentation for that also mentions you need to implement hash. It's not that this isn't in the documentation exactly, but it's not front and center. If say you're writing code on your laptop in a car while driving to a Hooters where you plan on drinking a lot of beer. Hypothetically speaking. This is pretty obvious, but I was surprised that I didn't get some sort of compile-time warning or error. Since the fix it make sure that object passed for the key was of a class that implemented NSCopying I still think the compiler could have detected this. (I'll admit it seems a little non-Objective-C-like but in my still newbie opinion Objective-C suffers from two much "try it it a runtime and see if it works" sort of behavior.) But it's just the sort of the thing you need to check yourself.
Read more

Fringe Thoughts

I caught up and watched the premiere and follow-up episode of Fringe. I'm going to go with a minority opinion and say that I like it. I'm not giddy with joy and dancing around the room or anything, but I found more to like than dislike in the first two go-rounds. Before I start talking about the show proper I'd like to comment on two things. First off, I can't quite decide what I think about the 3d text they use to "subtitle" locations. Basically what would normally be a 2d caption (such "Harvard University" or "Baghdad, Iraq") is placed in the scene and sometimes the camera does cutesy things like fly through an O. The word I keep wanting to use is "showy" but at the same time it's just text and thus almost understated. The most noticeable thing of course is that it's just like the Lost title sequence (although that's against a black background and in Fringe it's embedded in the scene). It's the worst example of getting beat across the brow with the J.J. Abrams connection. "This show is just like Lost! Love it! Love it!" The second thing I'd like to mention (or question) is the fact that the commercial breaks say "Fringe will return in 30/60/90 seconds". I assumed it was just a pilot thing, but the second episode did it as well. As a dyed-in-the-wool DVR user I love that. "60 seconds? OK that's 2 skips, plus probably three back-up skips" and beautiful, we're back to the show. But while I love it, I find it hard to believe the show's advertisers care for it. Indeed I had alway assumed that the fact that commercial breaks no-longer line up in nice 30-second chunks was an explicit attempt to make skipping commercials more difficult. But that's all fluff and nonsense. Let's get to the show itself! Most of the critiquing I read on the internet centered on awkward pacing or quasi-goofy science. The first is a fair criticism (but is true of many pilots, and probably of any pilot for a complex show) and the second is I think just goofy. I agree the pacing for the pilot was uneven. I'd even say it suffered from jamming too much stuff into a single episode (even though it was 1:35, instead of just one hour). For example, I think they could have not introduced the evil corporation concept in the pilot and that would have cut out a whole block of exposition. As for the science… I'm not sure what to do with that complaint. The science is plainly and obviously meant to be pulp. They bust out a honest-to-god Mad Scientist(tm) for crying out loud! I enjoyed the silly pulp nature of it all. I never got into the X-Files (blasphemy!), in large part because we were supposed to take it all seriously and I couldn't do it. Fringe is obviously taking on some of the same ground, but giving the his forgotten gothic laboratory with a rusty sensory deprivation tank and a cow changes the flavor. I think people who see it as typical Hollywood pseudo-science (or even worse the Star Trek:TNG technobabble) are missing the point. They aren't trying to be realistic about the science, they are evoking a particular style. I was a bit taken aback that both of the first two episodes were so horror-themed. There's a laundry list of "fringe science" technologies built into the title sequence, I hope it isn't all going to be jaws-dropping off and people having brain-surgery while conscious. I want to see the alternate dimensions and the nanotech and the psychokinesis, and hopefully the next episode won't have another bioweapon project gone amuck angle. I'm deeply suspicious of the "all of this is tied to one secret lab in the 70's and there are two scientists who worked there" plot, and I hope they downplay that over time. They have to walk a balance to keep the Mad Scientist(tm) a required element or he can't be a pain in the ass. On the other hand while I enjoy the whole "Mad Scientist(tm)" idea, he's also a caricature. In fact that's my strongest objection to the show thus far - everybody is straight out of central casting from the Dedicated Federal Agent(tm) to the Evil Corporate CEO(tm) to the Mysterious Taskmaster(tm) and the Misguided Boy Genius Gone Astray(tm). Again, I can forgive those in a pilot - you need to get enough characters sketched in to start the explosions; but if the characters don't evolve soon it will be a problem. Lost can support a few archetypes, but most of the characters are a little more nuanced. Fringe still has some work to do in that department. But I'm willing to watch a few more episodes before that becomes seriously annoying.
Read more