Apple iPod Engraver (2019)(dunstanorchard.com) |
Apple iPod Engraver (2019)(dunstanorchard.com) |
https://everymac.com/systems/apple/ipod/specs/ipod_photo_30g...
I spent the next four and a half years at Flickr and it was foundational to the rest of my working life. The people I was lucky enough to be around and learn from there were extraordinary, and the environment and opportunities were second to none.
In retrospect another six months at Apple, further taking advantage of their employee stock purchase program, would have been life changing. Shares were about $7 each back then after the discount. But you do what you think is right at the time, and I'm grateful for every moment I got to spent in Cupertino.
I’ve been working on getting the real Apple iPod Classic 6G firmware running in QEMU. It currently emulates two clickwheel iPods, including the display ,click wheel input and music player.
https://github.com/davidmonterocrespo24/qemu-ipod-classic
Still a work in progress
Wow, over 100k commits! It is definitively a work in progress, and an impressive one as well. :)
Edit: Ah, I now see that it is a fork of qemu-ios, but it is still cool. :)
Nah, this still seems like a pretty good way of doing things. Yes, we can probably run the image engraving on the client now, but to address a wide audience of older devices, we probably shouldn't change very much about this process.
Couldn't this be handled client-side, just overlaying plain text in gray 'Helvetica, Arial, sans-serif' on top of the image? At this scale, the specific font doesn't matter.
Although interestingly, Apple still renders the text server-side (and offers engraving only for iPads, apparently): https://www.apple.com/shop/preview/engrave/PH304LL/A?th=hell...
Ironically, the reason I have two is because I accidentally ordered two, didn't realize until I received them…and they were non-returnable because of the engravings.
I figured I'd just give one away as a gift, but this was right around the time everyone started getting smartphones so the opportunity to do so never presented itself.
Do we?
I mean you can skip imagemagick and use HTML5 canvas, but otherwise I think I wouldn't change a thing.
We have much more complicated ways of doing such things today, for sure.
I wonder if a SWF was ever hosted on the apple.com domain.
While QuickTime supported some Flash content, my recollection is that it only supported simple animations which could be mapped onto QuickTime's own interactive video features. I don't think it supported ActionScript, so this kind of interactivity would have been beyond it.
store.apple.com/Catalog/US/Images/vday07/img/PersonalizationHome.swf
(Reported a security problem to them back in the good old days 2013)
Not sure about swf files on www.apple.com directly, would have to dig into my older collections on a dusty server.
That’s the real reason it got added.
And even if one does, then you just consider the diminished value as another cost of having the personalized item.
For many people, especially gift givers where the item is about far more than economics, it is worth it. And it is very unclear to me why "resale value" should trump about a million other considerations.
The original post is just a plain question. Maybe don't make things up.
Apple was clearly thinking outside the category of “consumer electronics.”
Maybe back in the day people believed that iPods can be used for decades (I guess they can be if the battery can be switched, I’ve never had one. So not sure)
Then recall that premium silver, especially items given as presents, are very often engraved, and have been for hundreds of years.
Apple is a premium brand, not "any other company," especially in the era this post covers.
So they are not trying to avoid returns, rather, they are going above and beyond what the law requires. If you choose to engrave something you know it can't be returned, that is common sense, not a trick.
You can’t _exchange_ them for a different item/credit, but normal returns are absolutely allowed.
It often surprises me when people express deep regret for things like this, because if you feel you made the correct decision at the time, it's hard to feel that it was a mistake.
But I suppose this comes from a position of the relative privilege of having savings.
https://bookofjoe2.blogspot.com/2026/09/there-is-no-such-thi...
I stayed for over 4 years with my first girlfriend, and it felt like the correct decision at the time to try and make things work. In hindsight I really really wish I hadn't and I regret doing so. Is that any different?
Were you writing WebObjects? Internally, how was WebObjects viewed at the time?
So even on a 56k modem, it might take less than 1 second to load each image.
You could also optimize it so it skips intermediate images if the user types fast. Suppose the user mashes "12345" in a fraction of a second. You start loading "1.jpg" on the first keypress. When you've finished loading "1.jpg", the field contains "12345", so skip straight to loading "12345.jpg".
The demo page's JS doesn't seem to include any optimization code like that. It just updates the img src whenever the text changes. Yet my browser seems to do it automatically! If I mash several keys, the console network log shows only some intermediate images get loaded.
I guess the browser is smart enough to know that, by the time it would have started the download, the resource no longer exists in the page. I'm not sure if browsers ~20 years ago did this, but it would have been worthwhile given how slow networks were.
BTW, here's a PoC (a website from 1998 written in about two hours [so not much of hassle even then] demoing pure JS rendering from a data file, all just classic table layout rendered in the browser, all styled text and the ticker are rendered from single-character images): https://www.masswerk.at/demospace/relayWeb_en/welcome.htm
In ‘05, you had IE6, plenty of folks still on IE5, IE5 for Mac was still in use (don’t be fooled by the name - it did not behave like IE5 on windows), safari was 2.0, respectable but still a minority browser, and Firefox was on 1.0. Plenty of folks were still on Netscape navigator, which by that point was actively decomposing.
IE6 was what you built for, as it was the majority browser by a country mile. Transparency was hit and miss. Alpha PNGs just weren’t supported, you had to hack them in via JS.
Most websites were laid out using <table>. Using a <div> was new and exotic.
Oh, and you could only do custom fonts using… flash. sIFR, if you want to delve into the hell that was web dev back then. Most folks would just end up with TNR. Transparency on sIFR you could only achieve by replicating your background into the SWF, and good luck getting it to line up.
So. Support an absolute soup of edge cases across a bunch of different browser engines, and deal with “IT LOOKS NOTHING LIKE IT DID ON THE WEBPAGE” from customers, or just do it server side.
Also, it was perfectly acceptable to wait for a website to load - 50% of the U.S. was still on dialup, and “broadband” was commonly 512k.
Alignment was either done via position: absolute or by using a table. The animated background here would be a bit more complicated with a table.
Risk of it breaking with some upgrade, or looking different for some people? As you said, very likely.
So server-side image generation was indeed the best option. And it was a popular and widely solved problem, even in the 90s: visit counters that showed the visits in the shape of an image were super popular.
- IE was an albatross around every web developers neck - Even better browsers like Firefox and Safari had tons of inconsistencies - jQuery and Prototype weren't around yet - CSS is not remotely close to what it is today
Honestly, placing text over an image was a lofty task back then. We used to use lots of images with text as part of the image. Text images and table layouts were two of the main ways to get around all those cross-browser issues.
How true to period is the demo? I see in the source "I've tried to preserve the core of this code as it was when I wrote it in June 2005." but most of the page is a static image in the background.
(With the NS/IE 3 generation, you would have been limited to lines of prepositioned fixed-width characters in a table. So, not really applicable for this.)
I think, the decisive factor may have been badly managed CRTs tending to display greys with a somewhat reddish hue (esp. on Windows, not so much on Macs with a screen gamma of 1.8) and JPEGs generally enjoying better color support. (JPEG was displayed at sRGB or at any embedded IEC profile, which wasn't available for GIF, where the effective color was pretty much hit and miss. So, if you had HTML text with a defined hex-color, a GIF of the same color wouldn't match, while a sRGB JPEG would. Matching JPEG and GIF colors would have posed a similar problem. A reddish hue on grey looked kind of cheap and brownish text was probably the last thing Apple would have wanted.)
And position: absolute did not behave the same way across IE, NN, FF, or safari.
For some reason I feel the sudden urge to have a drink.
Just don't tell the kids about how eCommerce used to work. Credit card number in an email, courtesy of Mal's eCommerce? Pretty much industry standard. shudders, swigs
On my site it shows a static background image just to give the demo something contextual to play against. On the actual site the page was obviously all live HTML.
I have this book from 2008 on Flash web designs and they're so cool, there's so much detail and love put into them. Then they all became flat and soulless.
Same with skeumorphism. I bought yesterday two iPhone 4's, one with the original iOS and one that had been "upgraded" to the flat laggy version with all the detail, all the love, all the joy sucked out of it.
The exact same thing happened across the entire digital landscape, more or less simultaneously.