Blackberry complaints

The more I use consumer electronics, the more it’s clear to me why Apple is so successful. Their stuff just works, and it mostly works the way you expect it to (and without getting in your way like most intro-level Adobe products do).

Case in point… I have an email in Gmail from Groupon saying that I can get a $5 credit if I make a purchase from my mobile device, and helpfully providing links to places to download. Okay, great… I load Gmail on my Blackberry, and see that the links in the email are not rendered as links. They are plain <a href=""> tags. Every browser can render links. WTF, Blackberry.

Fine, whatever. I email myself the link as plain text so I can click it. Doing so brings me to this page, which is Blackberry’s official App World. See that “Download” button? Yeah, I didn’t. The Blackberry browser does not render that button. None of the four browser options render that button. (And, if you view source, you can see why… it’s not a button at all but a bunch of styled divs. WTF again.) And why are there four browser options? Should an end user have to know the difference between “Hotspot Browser” and “BlackBerry Browser” and “Internet Browser”? Does anyone actually know the difference?

Fine, whatever. I have the official Blackberry App World application installed on my phone. Let’s do that instead. Go in, search… and no results. There are no results for the Groupon application I am staring at on my laptop browser. I search for a bit in the various views and can’t find it. So I give up and try to close the application. Which proceeds to freeze and crash the phone. The official App World application. And this isn’t the first time it’s done this either.

This is, of course, in addition to other problems I’ve been having, such as buttons that can’t be clicked in the Blackberry Browser (plain HTML input buttons too), the generally unintuitive UI, the “Emergency Call” option being helpfully located right under “Unlock Phone” where you will hit it almost every time you try to unlock your phone, and the selection defaulting on the “Lock” option after you unlock where lag between popup notifications (such as for meeting invites) *will* cause you to hit the “Lock” button again. (And don’t even get me started on some of the issues I’ve had to deal with at work related to the Blackberry browser.)

So yeah. As much as I love having a physical keyboard, if I was ever going to buy my own smartphone, I will stay far, far, far away from Blackberries.

Edit: Yes, I could copy-paste the “Download” link into an email and open it in the Blackberry and hopefully get the right thing to happen, but I shouldn’t have to do that, and I’m too frustrated with the phone to want to do that now anyway. It’s one thing if third-party websites and software don’t work correctly on the phone (although I’m still extremely confused why it can’t make plain input buttons work properly), but if your first-party website and apps don’t work correctly, something is very wrong. That’s not just bad design, that’s sloppy.

Apples!

60 apples for $16.
Sooo many apples!

(Only 52 apples are pictured because Owen already took 8.)
Simmons Farm is pretty awesome. (Also apparently not possessive, like you’d expect.)

Well, crap

A few months back (April 30, to be exact), I did a small overhaul of the monsters and items in CMU adventures. I wanted to make the early game easier so you weren’t eating all of your equipment or keeping one enemy alive to use for healing. Made the changes, uploaded the monster definition files over the existing ones, didn’t think much of it.

Cue today when I get an email saying the game is broken because “monster 37” doesn’t exist. I look and, sure enough, there is no definition for that monster… nothing after monster 32 exists. But strangely, the room definition files do know about 37. And there is an image for monster 37. And 36. And 35. And… oh shit.

So apparently, in doing my overhaul, I did not have the most up-to-date version of the code. As such, a lot of the post-boss content (all of the Cohort and their associated items, mainly) got wiped from the game. The worst part is that I can’t seem to find a backup of these files, so it looks like it’s truly gone.

Since it’s now 12:45 and I really should be sleeping, I took the easiest solution and reuploaded the entire game based on the version I have locally. It isn’t ideal, but it should at least prevent issues with broken monster and item references. People with older accounts may be broken because the item database is also screwed up now (or, really, was broken with the April 30 update). But those people beat the game up to what existed then anyway, so that matters less.

I suppose this is a good opportunity to work on the new game I haven’t touched since before moving from San Francisco and leave this one up as some sort of historical archive.

So, in conclusion… always make backups of files before you wipe them out as part of a major overhaul. Blah.

null

Yesterday afternoon’s little bit of head scratching and debugging confusion comes to you courtesy of the fact that

SELECT * FROM my_table
WHERE my_id = iObject.my_id

does not do the expected thing when both my_id and iObject.my_id are null.
Because apparently null = null and null <> null both evaluate to false, because any comparison involving null evaluates to false.
(Edit: As pointed out to me by many people, it should actually evaluate to null, but regardless, the effect is the same… the select statement does not get the rows you expect.)

I guess it makes sense when you think about it (a lack of a value is not equal to the lack of a value, because there is no value, as opposed to C where null is just a pointer to 0x0 so a value comparison makes sense), but it’s still a surprising issue when you first come across it. Working around it involves the non-intuitive

SELECT * FROM my_table
WHERE (my_id IS NULL AND iObject.my_id IS NULL) OR my_id = iObject.my_id

It looks like MySql also provides the null-comparing operator <=> which will return equality even if both items are null. But it doesn’t look like Oracle does.

Blah.

On an unrelated note, I’ve redone the design of photos. Check it out if you haven’t yet, and let me know if things are broken or don’t work for you. :)

Ugh

Today’s terrifying thing is these new Goldfish S’Mores.

Not sure what I was thinking in buying them. I’m sure it seemed like a good idea at the time.
They’re a mix of honey graham cracker goldfish, chocolate graham cracker goldfish, and tiny marshmallow goldfish like the kind you find in scary children’s cereal. (I was expecting marshmallow-flavored goldfish, which would have been slightly less scary.)

Ugh.