venomous porridge

Month

June 2010

18 posts

What, you want a protocol now?

bananacasts:

I opined a few months ago that printing from iOS won’t happen until we see some bare bones protocol to print a PDF (easily generated by iOS as it is in MacOS) with some additional instructions for thinks like ink usage, etc. I doubt we’ll see anything like this until adoption of iOS devices — namely, iPads — reaches a critical mass to prompt the rather aloof printer makers to work with Apple on such a protocol.

It’s funny you should put it that way, because guess what: PDF is that protocol. Or PostScript is, anyway, and PostScript is the basis of PDF.

I have an HP LaserJet 1200 that I’ve been using since 2003. It speaks PostScript natively, and it understands PDF as well. Every eighteen months or so I go to Costco and buy a new high-capacity cartridge for about $75. The drum — the consumable part that rolls the toner onto the paper — is part of the cartridge, and it’s good for, I don’t know, 6000 pages or something. No other part of this printer has ever needed to be replaced in over seven years. It just sits there, silently, in power-saving mode, until I need it, then it does its job perfectly and goes back to sleep. It’s one of the finest pieces of equipment I’ve ever owned.

Anyway, I used to run Linux, and when I needed to print a PDF, I could just type

cat mydocument.pdf > /dev/lp0

and the OS would send the PDF data over the USB port, directly to the printer. There was no fucking around with drivers, ink levels, quality sliders, or any of that frou-frou bullshit. It was a printer. It printed.

Nowadays I use Macs full-time, and the printer is plugged into my AirPort Extreme II: Pornograffitti and shared over my wi-fi network, so there are more convenient ways of printing. But almost no consumer printers support PostScript anymore, so we’re stuck with hundreds or even thousands of incompatible proprietary printing protocols. The amazing open-source CUPS project has gone a long way toward solving this, and Apple bought CUPS a few years ago and made it part of Mac OS, so when printing finally comes to iOS, that’s probably how it will happen.

But with my good old LaserJet, I can still get cat mydocument.pdf > /dev/lp0 to work if I want to, and that’s pretty great.

Jun 29, 201052 notes
#nostalgia
“We drive 20% less than cities of comparable size, and because we don’t manufacture cars, produce oil, or have car insurance companies, every dollar that we don’t spend elsewhere, will stay in Portland’s economy. There’s about $850 million that stays in Portlanders’s pockets because we drive less.” —Holy shit: a politician making a rational economic argument about a polarizing environmental issue. Maybe I should move to Portland.
Jun 28, 201040 notes
#Portland #awesome
Self-reblog bookmarklet updated

Remember this thing I made? Turns out there was a bug: if your blog had Descriptive URLs — the feature where Tumblr appends five or six words to each post URL so you can tell which is which — turned off, it wouldn’t recognize that you were on a post page.

Well, that’s fixed now. Thanks to distantheartbeats for spotting it.

To update your copy, delete the bookmarklet the same way you would delete any other bookmark, and then click through and follow the instructions to reinstall.

Jun 26, 2010181 notes
Unbelievable

My mom is in town, and she brought with her a TomTom GPS navigator thing. It’s about twice the size of an iPhone and cost several hundred dollars. She’s leaving tomorrow, so she asked me to help her program it to direct her to the airport.

The touch screen on this thing is nearly impossible to use, but never mind. After a few tries I figured out how to find the airport in its list of Points of Interest, so I selected it and hit the “Route” button.

A new screen appeared with the legend “Analyzing Roads” and a counter. It analyzed over a hundred thousand roads, or pretended to. I have some idea of what it should have been doing, but it seemed like it was going through a big alphabetical list of every road it knew and crossing them off one by one if they didn’t have an airport or my house on them.

After almost half a minute, it announced the result: No Route Found.

What.

Here’s how you get to the airport from my house: Go to the end of the street and turn left. Take the next left onto the highway. Exit when you see the airport signs.

The TomTom could not figure this out, despite having pinpointed both our location and the airport’s location on its map. And when it said “No route found,” that was all it said. It just sat there, dumb and unapologetic. It wouldn’t even try to give approximate directions, perhaps to a nearby interchange or even just to the destination city.

This was the first and only time in my life that I’ve used a portable satnav. It’s a dedicated device that’s supposed to be good at precisely one thing: giving directions. The task I gave it couldn’t possibly have been simpler, and yet it failed horribly.

If Apple and Google put these GPS guys out of business, it will be their own damn fault.

Jun 22, 201029 notes
Jun 22, 201036 notes
#baby
Background Audio in iOS 4.0 → rogueamoeba.com

A post I wrote for the Rogue Amoeba company blog, about an update to Airfoil Speakers Touch that I’ve been working on.

Jun 22, 20102 notes
“Don’t make them give an email address. Don’t pre-check the ‘subscribe to newsletter’ box. Don’t pretend that you need to ‘prepare’ their app for download, so you can show them some marketing; just let them click to download the thing, then go away and try it. Seriously, what’s wrong with you?” —

Matt Gemmell, Your App’s Website Sucks

Bullseye, Matt. Bullseye.

Jun 21, 20101 note
Jun 20, 2010
Jun 18, 20103 notes
#design #usability #Apple #MobileMe
“I’m not in the ‘sudoers’ file of her heart.” —

Jon Deal.

Ugh. So sorry, buddy.

Jun 17, 20103 notes
On multitasking, sparkle ponies, and saving state

In an article for TUAW called Multitasking in iOS 4 is not a magical sparkle pony, TJ Luoma gives a pretty good overview of some of the multitasking features available in the new OS and why they might not satisfy all users’ needs without extra effort from developers.

In rebuttal to TJ’s piece, Benjamin Mayo writes:

In previous versions of iOS, state-saving was the sole responsibility of the developer, but it was possible. The reason it had little use was because it was difficult to implement. It required large rewrites of some codebases, due to the nature of Objective-C classes. Apple has recognized it was an issue, and have responded with a first-party API set to abstract the difficulty to the OS.

There’s a big overstatement here, and it’s one that I think needs pointing out. What Mayo is talking about is somewhat complex, but I’ll try to break it down.

Under the current iPhone OS (version 3.2) and earlier, when you hit the Home button, that’s it: the running app is terminated. But first, it’s given a few seconds to perform cleanup tasks — the time limit is enforced by the OS — and during those few seconds, some of the better apps save their state: they write out some data to the user preferences database, or to a file in their storage area. That data contains a representation of the current arrangement of the user interface: which screen you’re on, your scroll position, any text you may have typed into a text field, etc. The next time the app is launched, it reads back the saved data and uses it to rebuild its interface to appear as though you never left.

For example, Twitter for iPhone (formerly Tweetie 2) uses this state-saving mechanism, and for that reason alone it’s one of my favorite apps. When the phone rings, or when I have to leave for a moment to check something in another app, I can be confident that I’ll come right back to where I was before, no matter how far away from the default “top of my timeline” view I had navigated.

What iOS 4.0 does with its Fast App Switching feature — the kind of multitasking you get “for free” just by recompiling your app with the 4.0 SDK — is to change the behavior of the Home button. In 4.0, on devices that support multitasking, pressing Home won’t terminate the running app but rather suspends it. It stays in memory as long as there’s room, and when you switch back, there’s no delay while it relaunches: you’re instantly right back where you were. (This is essentially the “freezing in carbonite” idea I came up with five months ago, because I am obviously some kind of super genius.) So in many situations, apps will seem to remember where you were when you switch back to them.

But Mayo is wrong about one thing: OS 4.0’s Fast App Switching does not make it any easier for developers to do this position-remembering trick than 3.2 did. The reason is that apps can go from suspended to terminated at any moment, without being given any additional processing time to clean up or save state. This isn’t an exceptional case: this is the normal way apps are now terminated. When the system needs memory — and memory is very limited on iOS devices — it simply starts terminating suspended apps to reclaim it. So any app that doesn’t want to lose data will have to perform that state-saving operation as soon as it’s suspended, because that will be its last chance.

In other words, in iOS 4.0, developers will still have to make decisions about what data to save and how and where to save it, and they will still have to write all the code to actually do that save-and-restore. In fact, it’s even more important that they do so under 4.0 than before, because if they don’t, users will notice it now. Under 3.2 and earlier, an app that didn’t save its state would just relaunch in some default state every time — you learned to rely on that, and seeing clever apps like Tweetie 2 remember your place was an unexpected bonus. But under 4.0, a non-state-saving app will sometimes resume where it left off and sometimes not (because it happened to get terminated while suspended). Inconsistent behavior like this won’t just be confusing; it will actually seem broken.

Developers, take note: with iOS 4.0 and Fast App Switching, Apple isn’t doing your work for you. They’re telling you that you must begin saving your state. If resume-from-suspend isn’t identical in appearance to relaunch-from-terminate, then you have a bug to fix, and your users will know it.

Jun 16, 201037 notes
#Apple #iOS #usability #multitasking #sparkle ponies
Karma

This isn’t news anymore, but in case you missed it, here are some of the striking new hardware features of the iPhone 4 which Steve Jobs revealed in Monday’s WWDC keynote:

  • The screen resolution is double that of all prior iPhone and iPod touch models: 960x640 pixels.
  • The screen is made from a material called “aluminosilicate glass” which is 30 times more scratch-resistant than plastic and about as strong as sapphire.
  • The touchscreen LCD is fused to the underside of the glass in such a way that there’s almost no parallax, resulting in a viewing angle that’s closer to that of paper than a video screen (John Gruber calls it “live print.”) You also won’t see dust trapped under the glass anymore.
  • The metal edge is machined from a new stainless steel alloy which is five times stronger than normal steel and serves as the device’s antennas (which explains the three mysterious gaps).
  • It contains a gyroscope. This feature alone is going to make possible an entirely new class of motion-sensing apps.

When Gizmodo’s Jesus Diaz published the name and photo of the unfortunate Apple engineer who lost his prototype phone in a bar a few months ago, he and his employer made a conscious decision. In exchange for a story of dubious news value, they stained Gray Powell’s name, making him nothing more than the “guy who lost the iPhone” as far as search results are concerned, probably for a very long time. They decided that page views were more important to them than a young man’s career, and they gracelessly rushed to prove that to the world, even throwing in a few needless insults.

But the keynote wasn’t ruined, because Diaz didn’t manage to notice any of the things I listed above.

Gray Powell will be forever known as the guy who lost the iPhone, thanks to Jesus Diaz. But now Jesus Diaz will be forever known as the guy who calls himself a technology reporter, yet had an iPhone 4 in his hands for a week and missed almost everything that was interesting about it.

That works for me.

Jun 10, 201084 notes
#Apple #Gizmodo #iPhone #journalism
Jun 9, 201022 notes
#wwdc
Jun 7, 201022 notes
#Safari 5 #UI
Macintosh Quadra AV (Death) Mactracker

The death chime from the Macintosh Quadra 840 AV, my beloved workstation for two or three years in college. Basically, if you powered on and a hardware check failed, this is what you’d hear, and you’d probably also see a Sad Mac.

If this isn’t the most excellent sound ever to be burned into the ROM chip of a personal computer, then I don’t know what is.

(audio file ganked from Mactracker)

Jun 5, 201021 notes
#Apple #Macintosh #awesome
Jun 4, 201028 notes
Jun 3, 20107 notes
#lolbing
Drop-crotch pants?

I hadn’t heard the term until Liana tooted about them, so I went to Google Images, and I… I just… fuck, look at this:

This is not fashion, or even clothing. This is despair.

This is the baked-on gunk that’s stuck to the saucepan from the time the phone rang and you forgot you were making Spaghettios but the pan’s still fine otherwise so rather than washing the pan you just wash the gunk every time because if you can’t scrub it off with steel wool it’s damn well not about to come off in your dinner and anyway it may be gunk but at least it’s clean gunk and hey, it used to be food, right? But instead of a gunky saucepan it’s your crotch.

Jun 2, 201026 notes
Next page →
2012 2013
  • January 1
  • February 3
  • March
  • April 1
  • May 2
  • June
  • July
  • August
  • September
  • October
  • November
  • December
2011 2012 2013
  • January 6
  • February 3
  • March 6
  • April
  • May 1
  • June 1
  • July 5
  • August 4
  • September
  • October
  • November 1
  • December
2010 2011 2012
  • January 3
  • February 7
  • March 11
  • April 7
  • May 8
  • June 6
  • July 7
  • August 2
  • September 6
  • October 4
  • November 3
  • December 4
2009 2010 2011
  • January 29
  • February 22
  • March 31
  • April 34
  • May 17
  • June 18
  • July 24
  • August 11
  • September 12
  • October 14
  • November 13
  • December 6
2009 2010
  • January
  • February
  • March
  • April
  • May 30
  • June 25
  • July 66
  • August 59
  • September 39
  • October 31
  • November 21
  • December 29