Your browser is not supported.

This website is optimized to work in modern browsers like Safari 3+, Firefox 4+, Chrome 10+ and IE9+. If you are using a different browser, you may experience visual glitches or other problems.

Posts tagged with talking shop

Though it is indirectly an indictment of me,

what Tycho said today in the Penny Arcade news post is so very true:

Even if you could measure games with numbers, a point I do not concede, there’s no universal Goddamned basis for comparison – there is no “unit” of measurement. We measure things so we can compare them to other things. The trouble is that everyone is performing a kind of mental arithmetic, cramming their own internal symbologies into this or that frame and stripping out wisdom in the process. Editorial voice is a fallacy. They’re all conversions of interpretations of moments. And we lose crucial data at every step.

I never read movie or book reviews, rarely read music reviews, and if you’ve ever met me you’ve heard me talk about this often; reviews, other people’s reviews, are largely subjective, and I almost never agree with them. So for my peace of mind—and to avoid spoilers, because so many people think that “review” is synonymous with “book report”—I avoid reviews altogether. What I do like are services, like Rotten Tomatoes, that compile indices comparing amounts of positive and negative reviews, which I consider to really be the only useful numerical data you can get on the quality of something.

Yes, I write reviews (with numbers!) anyway. So sue me.

Also, I am convinced that the publishers of Penny Arcade have never actually tried to read one of their posts once it’s been published. After about 3 sentences of that white-on-navy-blue text, my eyes try to crawl out of my head in opposite directions. Please, guys, lower the contrast. Or make the entire text of your news posts available on your feed. Or something.

Ultimate getElementsByClassName update

Robert Nyman has posted an updated version of his ultimate getElementsByClassName. It takes advantage of the native getElementsByClassName support in Safari 3, Firefox 3 and Opera 9.5*, takes advantage of native XPath support if it’s available, and allows multiple class names in the request, among other things. ROCK.

* And ooh, big surprise, guess which modern browser is getting lapped by the others and choking on their dust? IE7.

Snowed out

John Siracusa on Mac OS X 10.6, code-named Snow Leopard. (Via Daring Fireball)

I’d also like to take a minute here to note that Ars Technica is the hands-down best-designed news site I’ve seen; it makes simply excellent use of color and contrast to draw the reader’s eye where it needs to go. Notice how the only part of the page with a white background is the news content, the most important content on the page. In fact it’s the only site I frequently visit, other than Penny Arcade*, where banner ads and animations aren’t distracting from the main content.

* Though that white-on-blue text is a killer on the eyes after a few minutes.

Lessons learned: document.write and the XHTML MIME type

Just learned something the hard way, which I will in my infinite kindness share with you all, so you don’t have to.

Problem: The document.write method will not work when a document is served as XHTML, i.e. with the “application/xhtml+xml” MIME type.

Workaround: Use the core DOM methods to insert your code instead.

(Reference: workingwithme)

:(

or: Why Amazon’s order tracking interface sucks, and why I can’t do anything about it.

First, a bit of background. You know I’m a ravenous reader, right? And that I have a crippling addiction to Japanese and Korean comic books, yes? Now, I order my comic books almost exclusively from Amazon, as I’m a Prime member, often months or as much as a year in advance (basically as soon as a new volume in a series I’m following becomes available for purchase on Amazon, I order it).

This means that, at any given time, I have upwards of a dozen pre-orders in the system, usually resulting in multiple pages in the recently-placed-but-not-yet-shipped orders section of the site.

  • Problem #1:
    Amazon groups pending shipments by order number. This is not really meaningful for users who are Prime members or frequent buyers, as they get a flat rate for shipping and don’t care so much that multiple shipments in orders are kept together, but only that orders shipping to the same address are displayed together.

    It becomes actively painful when there are a lot of pre-orders in the system, and each order contains items that ship months apart. That means that you have maybe one pending shipment in an order that’s not coming for another month, plus like 8 shipments that have already gone out and been received, and the grouping enforces that you have to look at the information for already shipped portions of your order, when you don’t care about them anymore.

  • Problem #2:
    Orders are sorted by order date, most recent first. Again, this is pretty meaningless if you have a lot of pre-orders. So an order that you made 6 months ago, which contains an item scheduled to ship out tomorrow, may be listed on the second page of the order tracking section, but the order that you made yesterday, containing an item that will ship next month, will be listed first. And there’s no way to change the sort. Not very useful at all.
  • In general the Where’s My Stuff page makes very poor use of horizontal space and is not easily scanned at all.

Here’s what I’d like to see:

  • A table of pending shipments, sorted by shipment date, displaying the following columns:

    • Shipping address
    • Estimated ship date
    • Estimated delivery date
    • Order number
    • Items in shipment, each linked to their individual product pages
    • Shipping method/tracking link
    • Icon showing gift options

    Each column should be sortable.

  • An identical table of recent shipments, with tracking information. Eventually, it’d be nice to have an exportable calendar file containing all the ship/delivery estimates for pending or in transit shipments so that you can put them in your calendaring application.

This way you’d be able to see all the information together and actually do something useful with it.

Now, I realize that my case is rare, if not unique, so I imagine Amazon doesn’t have much vested interest in making big changes for a relatively little return, so I was perfectly willing to do this myself, given access to the data, but I found out the hard way that I can’t, or at least that it would be prohibitively difficult:

  • At first I hoped that one of the Amazon web services would provide you programmatic access to your account if you provide the login credentials, but there is no such service. The Fullfillment Web Service and the Associates Web Service are both close, but not quite what I need.
  • Which would mean that I would have to resort to screen-scraping, but setting aside the problem of pagination, Amazon appears to use no semantic markup whatsoever. No class names, no microformats, no nothing. Little or no CSS or even modern markup. Just a bunch of text with <b> and <i> tags. And doing brute-force text parsing is only guaranteed to work if they don’t change the text printed.

So basically I’m SOL. Help me out, right? I’ve already sent in customer feedback regarding some of these issues, but aside from a friendly reply, haven’t seen any changes. All I can do is write them again with these new suggestions and hope that at the very least, they’ll create an API that I can use to do what I want to do.

Update 2008-04-12 07:41—I’ve posted on the AWS blog asking about the web service option, so let’s hope I get some useful feedback soon.

Update 2008-04-22 07:04—They replied to me with the following:

Unfortunately for you, we don’t expose this information in an easy to digest form. There are many, many security and privacy issues involved. I believe that we have looked in to the possibility of doing this and decided that the benefits did not outweigh the risks.

Though they did not, oddly enough, choose to publish my comment on their blog. I can’t say I’m terribly surprised about the reply, but I was hoping. Now I’ll just have to go back to bugging customer service to improve the UI.

IE7 lessons learned: the z-index bug

Update 2009/09/12 09:19—The jQuery version of the dynamic z-index function has been optimized to use hover instead of mouseover/mouseout. Thanks to commenter Eric Conner for pointing out my mistake.

Update 2009/08/04 22:22—The jQuery version of the dynamic z-index function has been added.

Update 2009/07/09 10:52—The code has been updated to make use of the latest innovations in the Prototype library, and to take suggestions from commenters into account.

 

Now that we’ve officially transferred support of our big application from IE6 to IE7, I’ve been spending more and more time delving into the nitty gritty details of making that hugely complicated layout (recently made less complicated, but that’s another blog post) work in IE7.

I had thought, initially, that IE7′s superior CSS support would make my life a lot easier, and it did in some ways: my IE7-specific stylesheet is a fraction of the size of the IE6-specific one, and the ability to use attribute selectors is huge for me. But as I should have expected, I just traded one set of headaches for another. While IE7 is far superior to IE6 in terms of CSS support (and far inferior in other ways, user interface chief among them—but that’s another blog post, too), the bugs that still exist are more subtle and far more difficult to work around.

The IE z-index bug had been around since IE4 or 5, and was finally fixed in IE8. It’s still an issue in IE7, however, and chances are that you, the web developer, still have to support it. You should read Aleksandar Vacić’s in-depth characterization of the problem to really understand what’s happening, but what it boils down to is this: the CSS 2.1 spec says that a positioned element with any integer z-index value (i.e. not auto) should create its own zero-based stacking context, and use the integer value specified to decide its place in its parent stacking context. In other words, if the positioned element has a z-index of auto, its stacking context is inherited from its parent. Internet Explorer, however, creates a new stacking context for elements with any z-index value, including auto, which wreaks all kinds of havoc and generally causes mayhem in your previously neat and orderly layouts.

(more…)