Slashfail

June 20th, 2009 No comments

Slashdot has always been a buggy piece of shit, but recently it’s exploded into a buggy metric fuckload of shit. No matter what I do, every Slashdot article looks like this:

slashcrap
(Click image for a closer view)

Seriously. Slashdot is supposed to be full of smart and technical people, and they can’t even get a goddamned website right? How is that image even being shown to me, the end-user? Have they ever heard of the concept of “staging servers?” It’s fucking disgraceful.

It’s not like I’m using the hated Internet Explorer browser, or some experimental web browser from beyond the stars, or that I’ve hacked the shit out of my system, it’s fucking stock Firefox with one fucking add-on.

Oh, and to make it all worse, I have Slashdot set to use the “classic” (read that as: “working”) comments system, not this new piece of shit they’ve been shitting out over the last year. Not that anybody at Slashdot gives a fuck for my preference, since I still get the new version on my user page, and half the templates.

Maintaining this site is somebody’s full-time job. In fact, there are several people who work for Slashdot and only for Slashdot… what the hell do they even do? Think up more creative ways to cram so much fail in such a small space?

Slashdot is the only website I’ve ever seen where the owners/administrators of the site simply don’t fucking care.

They just do not care.

FAIL

I got to stop posting about Slashdot, it’s kind of pathetic. Not a third as pathetic as Slashdot itself, though.

Categories: Daily Annoyances, Tech, Web Tags:

Two almost entirely unrelated things that teach a lesson about usability

June 6th, 2009 4 comments

Thing the first:

I’ve been playing Left4Dead recently. One of the zombie types is the “smoker”, which shoots out a long tongue that ensnares one of the survivors and drags them away from the group.

Take a look at this approximation of what happens, in cute Valentine’s Day form:

valentines_l4d

So when I was playing the other day, I was surprised to learn that you can actually save a survivor being dragged by using your melee attack. Somehow, in the magical zombie-infested world of Left4Dead, slapping someone upside the head with the butt of your automatic shotgun will unravel a mutated tongue wrapped around their neck. I’ve been playing the game for several weeks, and I’d never heard this before, but lo and behold it works.

And it makes no sense.

Thing the second:

The other day I signed up for an account at Mint.com. I put in my bank info, and it went and retrieved my balance sheet from Bank of America using magical Internet technology somehow. It worked pretty good, except for one thing: for some reason it categorized ATM withdrawals as mortgage payments.

So I dive in and try to fix the problem. For each transaction, Mint.com has a list of dozens of categories you can select from. But for some reason, I couldn’t find ATM Withdrawals anywhere on the list. I knew it existed, because a friend I was talking to told me as much, but where was it? Turns out, the category “ATM Withdrawals” is a sub-category of “Uncategorized.”

And that makes no sense, either.

Lesson learned:

Maybe I’m some kind of freak, but if I think that something’s not going to work, I don’t even try it.

For example, in Left4Dead, since whacking a fellow survivor with your melee attack is something to be generally avoided, and since there’s no possible way that could (in real life at least) uncoil a choking snakelike tongue, it never occurred to me to try it.

Similarly, when looking for a category named “ATM Withdrawal” it would never have occurred to me, in a million years, to check underneath the menu item called “Uncategorized.”

In short: things are easier to use when they make sense. Make sense.

Categories: Games, Web Tags:

Things Mint.com should do, but doesn’t

June 6th, 2009 No comments

Mint.com is great, but there’s a lot of very obvious features it could use:

  • An offline data uploader applet, so that I don’t have to store my username/passwords to the web. I don’t know about most people, but I have trust issues with stuff like that.
  • Depreciate cars. Right now you just plop in the value of your car, and that’s it– since Mint.com doesn’t know the make/model/year of your car, it has no way of judging the value of it other than what you specifically type in.
  • Recognize Bank of America ATM withdrawals by default. Not only is Bank of America one of the largest banks in the US, but ATM transactions specifically show up with the descriptive all-caps text: “BANK OF AMERICA ATM WITHDRAWAL” on them. Despite that, they showed up in my Mint account as “Mortgage Payments.”
  • Similarly, a purchase from Steam Powered.com (i.e. Valve’s Steam game service) showed up as a coffee purchase. I’m pretty sure that Valve’s Steam is bigger than whatever podunk coffeeshop is also named “Steam Powered.”
  • If I tell Mint I don’t have a credit card, it should remove the “Credit Cards” section from my homepage. The “add account” wizard seems to be smart enough to stop asking when I say I don’t have one, but the homepage isn’t similarly smart.
  • Also, there’s a bug with their lightbox where sometimes it’ll get taller than the browser window and become impossible to close. Wasn’t just me on this one, a friend saw it also.

I gripe because I gripe a lot, but Mint.com really is a good service, and I think it’ll be very handy to me. Since I’m godawful with money, generally.

Categories: Web Tags:

Nerd Tip of the Day: Firefox Not Saving Cookies?

May 9th, 2009 No comments

I recently had this problem, and found the solution after a little Googling.

You might notice that sites that used to auto-log in, like your webmail provider, now require you to manually log in each time. Your login information is stored in cookies, and this likely means that Firefox’s cookie file is corrupted.

Navigate to the following folder (in Vista):
C:\Users\[Your User Profile Name]\AppData\Roaming\Mozilla\Firefox\Profiles\xxxxxxxx.default

Put your Windows user name in the first blank. The actual folder has a randomly-generated name, something like “5gjbzh6p.default”, but you most likely only have one of them. You’ll need to have Explorer show hidden files and folders, as the “AppData” folder is hidden by default. (In Vista, the setting for this is in Organize->Folder and Search Options->View->Show hidden files and folders.)

Inside that folder is a file named “cookies.sqlite”. This is the corrupted file. Rename the file to something like “cookies.backup”. (So that we can restore the file, if it turns out that this wasn’t the problem after-all.)

Open up Firefox, log in to your favorite website to set your cookie. Now to test if cookies are saving correctly, close Firefox, re-open Firefox, and go to your favorite website again: you should be automatically logged in.

Categories: Tech, Web Tags:

Mini Sci-Fi Movie Reviews: Star Trek

May 7th, 2009 No comments

Ok, Star Trek pretty much rocked. I have to say this first, because the way my brain works, I always focus on the negatives first and forget about the positives. So here’s the negatives:

  • The camera work was a little problematic at times. It’s like they used some special lens to emphasize lens flares in some attempt at “realism.” There are scenes with huge lens flare rectangles right above the actor’s faces. Also, there were a couple fight scenes where the cuts were so quick you couldn’t tell what was happening in the fight. Editors: we know quick cuts indicate action, but if you make to too quick nobody can tell what the hell is going on!
  • While they did a pretty good job of following the Star Trek canon, I’m pretty sure that the Federation didn’t build the Enterprise in the middle of a corn field in Iowa. That was just weird. (Also, what were those super-tall Iowan buildings? Was that a future-city, or was it just the biggest grain elevator ever?) Oh and the Enterprise is at least twice the size of the old one… the original had room for maybe 2-3 shuttles in its landing bay, this new one has like 16. I guess this movie si a “reset’ so it’s not that big a deal. They also changed Star Trek’s warp drive to work more like Battlestar Galactica’s jump drive.
  • That scene you saw in the preview where the classic car is racing along the Iowan freeway, then falls off a cliff while Kirk holds on for dear life? That actually has nothing to do with the plot. At all. Not even slightly. It is, believe it or not, part of a product placement for Nokia.
  • Apparently all Federation ships now include vast engineering areas that resemble, more than anything, cheese processing plants. I’m actually ok with this, given the larger size of the Enterprise it almost makes sense– except for one small point: since there are no computers or really controls of any type (just pipes and tanks), Scotty’s engineering shots just consist of him running alongside pipes.
  • Just say no to cute little comic relief sidekick alien characters. They suck. There’s one in this movie, accompanying Scotty. Just try to pretend it doesn’t exist.

That all said, the movie is vastly more entertaining than I expected it to be. Chris Pine did a great job of playing Kirk, without copying William Shatner’s un-copy-able Kirk. Zachary Quinto, as well, made an excellent Spock, and was much better than I expected. (I guess the crappiness of Heroes was firmly rooted in the script, not in the acting.)

All of the classic bridge characters are there, and all of them have their particular quirks/talents re-inforced: Chekov’s accent, Sulu’s fencing, that weird antenna thing in Uhuru’s ear, Scotty and McCoy’s classic lines. Captain Pike is there, playing the same role as Kirk’s mentor. Even the Kobayashi Maru test is present, and Kirk’s “cheating” is shown in a particularly comical way.

In fact, I was surprised at the amount of humor in the film. Even the villain is given a humorous line at one point, that made the whole theater laugh. It’s really at the level of, say, Star Trek IV, almost sliding into the comedy genre.

My recommendation: Watch it.

Categories: Movies, Television Tags:

Gigantic Javascript WTF: DispHTMLElementCollection

April 22nd, 2009 4 comments

I don’t normally post about boring work topics, but I wanted to talk about this because it’s a gigantic WTF, and because it might come in handy for someone else who’s stuck on a Javascript project.

It turns out that the thing getElementsByName and getElementsByTagName returns isn’t actually an array. It looks like an array, it walks like an array, and it quacks like a duck, but it’s not actually an array at all. It’s actually a “dispHTMLElementCollection”.

I’ve been doing tons and tons of Javascript work for years, and I’ve actually never come up against this particular quirk before. The only reason I figured it out is that I tried to push() an element into a dispHTMLElementCollection, and it turns out that dispHTMLElementCollections don’t have a push() method. Why doesn’t it have a push() method? Who knows.

Oh, and to make it worse: it’s not documented. Anywhere. This forum post is all MSDN (Microsoft’s developer site, maker of the most popular web browser on Earth) has. Mozilla (makers of the second-most popular web browser on Earth) has absolutely nothing on it, or at least nothing Google’s indexed. Nor does w3.org, the maintainers of the DOM standards (most relevant to this issue.)

What. The. Fuck.

Here’s a test page to demonstrate the issue:

<html> <head> <title>Test</title> </head> <body> <p>h</p> <p>e</p> <hr /> <p>l</p> <p>l</p> <hr /> <p>o</p> <script type="text/javascript"> // Call the "broken" version of CombinedElementList // This function fails in both IE and Firefox, even // though at first glance it looks fine. Reason? // getElementsByTagName *doesn't* return an array, // instead it returns a "dispHTMLElementCollection" // which looks and acts exactly like an array, but // has no .push() method. //var combo = CombinedElementListBroken(); // The "fixed" version uses a Javascript array to // store the results of the two // getElementsByTagName calls. var combo = CombinedElementListWorks(); alert(combo.length); // Expect: 7 function CombinedElementListBroken() { // Create two "arrays" of HTML elements var paras = document.getElementsByTagName('P'); var hrs = document.getElementsByTagName('HR'); // Attempt to combine the two using a simple FOR loop for (var i = 0; i < hrs.length; i++) { // IE: Object doesn't support this property or method // Firefox: paras.push is not a function paras.push(hrs[i]); } return (paras); } function CombinedElementListWorks() { // Create two "arrays" of HTML elements var paras = document.getElementsByTagName('P'); var hrs = document.getElementsByTagName('HR'); // Create a third, blank, array to store the combined list var combinedArr = new Array(); // Puts elements from the first "array" into the combined array for (var i = 0; i < paras.length; i++) { combinedArr.push(paras[i]); } // And the second for (var i = 0; i < hrs.length; i++) { combinedArr.push(hrs[i]); } return (combinedArr); } </script> </body> </html>


Ok, so I posted this to TheDailyWTF, thinking it’d be a laugh: it’s not. Don’t do that, ever. You’d never know it from the frontpage, but the WTF forums are full, apparently, of programmers with psychic or telekinetic powers. To them, it’s my own fault that I couldn’t tell with only my mind that a dispHTMLElementCollection is actually the same thing as a NodeList as documented in the DOM2 standards.

Read the thread if you like.

One useful piece of information I did glean from this, though, the reason that getElementsByTagName (and similar functions) return something other than an array: the list they return is “live”, meaning they can update as elements are added or removed from the page. I don’t see this as being particularly useful, but, hey, at least it explains why it’s not an array.

Several non-useful pieces of information I received: link after link after link to documentation that doesn’t have the terms “dispHTMLElementCollection” and “NodeList” on the same page, and thus have absolutely nothing to do with the WTF I reported.

Apparently, to the WTF posters, this is all “common knowledge” that I should have gotten based on vague comments in a Javascript library I don’t even use. Or I was supposed to look up getElementsByTagName in the DOM, then assume that the type returned (NodeList) just happens to be the same thing as a dispHTMLElementCollection even though there’s nothing to indicate that that is the case.

To the WTF posters, writing a simple page on either Mozilla or Microsoft’s site saying, “oh BTW, dispHTMLElementCollection is the interface we use to DOM2′s NodeList, here’s a link” is a horrible burden that should be never be inflicted on anybody.

BTW, kudos to tgape who not only agrees with me that the lack of documentation is a WTF, but who wasn’t a jerk about it.

Anyway, some good came out of all of this: the next person to search for this completely undocumented class (or interface, or whatever the hell it is) will find either the WTF post or this one, and hopefully won’t waste as much time and energy on it as I have.


It brings up a question, though, that I’m too lazy to test on a Sunday morning (but maybe I will tomorrow): Since the DOM NodeList can be a different class in a different browser, how the holy hell are you supposed to use typeof(x) to find whether something is a NodeList in a cross-browser way? Alternatively, if it’s represented internally to IE as a dispHTMLElementCollection, but typeof(x) returns NodeList (which is what I suspect happens), then why the holy hell would the debugger show dispHTMLElementCollection instead of NodeList?

There’s WTFs all around.

Categories: Tech, Web Tags:

Database Collations Piss Me Off

April 15th, 2009 No comments

I just moved this blog onto another host, and of course in the process you have to move your database to another host. Of course, this couldn’t be an easy task:

  • First, MySQL changed the default collation on their database server installs from latin1 to UTF8. UTF8 is by far a superior choice, but it’s the change that causes the pain since all older databases are latin1.
  • To make things worse, it turns out WordPress (the software running this blog) shoves UTF8 into the database regardless of what the database collation is set to. Christ.
  • To make things more worse, when you have a latin1 database table with UTF8 in it, phpmyadmin can’t export it without filling in those UTF8 entries with junk characters.
  • And just to top it off, I have a whole blog posting based around the word “piƱata.”

Anyway, after database export after export after export, and with the help of a WordPress plug-in designed specifically to fix this dumbness, I think I have it all finally straightened-out. Everything’s moved over to the new host, and working exactly how it did on the old host. (With one exception: the backup plug-in I was using isn’t compatible with Windows servers because it uses hard-coded path separators.)

Joy.

If you see any problems with anything, please let me know in the comments. Unless comments aren’t working, then send me a singing telegram.

Categories: Tech, Web Tags:

Mini Superhero Movie Reviews: Jumper

April 12th, 2009 No comments

Jumper

It’s really hard to like this movie. It’s not that it’s not well-made or interesting; it’s that the “heroes” of this movie are such complete and total jackasses. Who, in fact, almost certainly cause more death and destruction than the “bad guys.” Including at least three out-right murders, one of them cold-blooded.

The story follows Anakin Skywalker- er, David Rice- as he unnecessarily narrates how he discovered his ability to teleport. Apparently, a tiny fraction of people are born with the ability to teleport themselves and objects they’re touching (up to a certain size) anywhere in the world instantly. At least if they come from broken homes, all the jumpers seem to have. Naturally, Anakin uses his gifts to rob banks, go on constant trips to tropical vacation spots, and ignore people who he could potentially save if he wasn’t such a self-absorbed jackass.

Samuel L Jackson plays Roland, an NSA agent who is also in a secret society of “Paladins” who hunt jumpers and also the most likeable character in the movie. After investigating one of Anakin’s bank robberies, Roland manages to track him down and hit him with an industrial-strength taser, which inhibits his ability to jump. Unless it’s important to the plot. Unfortunately for us, Anakin manages to escape, thus making the movie longer than half an hour.

Now knowing that he’s being pursued by the secret society, Anakin decides to lay low by going back to his home-town and the only people in the entire world who can positively ID him. Brilliant thinking there, buddy. Meeting up with his ex-girlfriend, Millie, he takes her to Rome. The conventional, airliner, way. Apparently he pays for the trip using a huge wad of cash in his backpack, and buys the tickets the day of the flight, which proves the TSA is as effective in the movie world is about the same as the real world.

In Rome, Anakin encounters another jumper, Griffin, who proceeds to murder several government agents before explaining to Anakin that the paladins have been hunting jumpers for thousands of years. How hunting down a person who can teleport anywhere on Earth instantly, and can only be stopped by tasers, was accomplished long before satellite communications was invented is not explained.

When Anakin’s carelessness leads the paladins to Griffin’s hideout, and they subsequently kidnap Millie, he must find a way to get her back and prevent Griffin from setting off a bomb… blah, blah, blah it’s really not that interesting.

But enough of the plot and plot holes. The movie is well-produced, has good special effects (especially during the world-spanning fights sequences), and the acting is passable. If you can get past the fact that every single character in it is a complete asshole, and the ending that is nothing but 5 minutes of setup for the sequel, give this one a rent. But you’re not missing much if you don’t.

Categories: Movies Tags:

The Wen Jiabao Brady Bunch

March 13th, 2009 No comments

Inspired by this article in The Guardian, I present:

The Wen Jiabao Brady Bunch

wen_jiabao_brady_bunch

Categories: Humor, Media, News Tags:

YouTube DOT Pages: A Comparative Study

March 9th, 2009 1 comment
Categories: Humor, YouTube Tags: