Marco.org

I’m : a programmer, writer, podcaster, geek, and coffee enthusiast.

Testing Instapaper on the Kindle has made me read a ton of articles. I just plowed through a 3-month backlog in less than a weekend.

This is going to be big for Instapaper users who are also Kindle owners. And I hope to increase the number of people in that group.

Coffee week: Monday.

The (very late) Metro-North trains driving through the snow this morning. (HD)

Vimeo’s transcoder butchered the quality on this one, even in HD, so feel free to go to the Vimeo page and use that “Download Quicktime version” link in the lower-right for the unprocessed 1080p version straight from the camera.

Have a Kindle?

Want to beta-test Instapaper’s upcoming Kindle feature? Email instapaper@marco.org. Please include your Instapaper username and whether you’re using a Kindle 1 or 2.

Dropped IE support for Instapaper

Update: This has been frontpaged on Hacker News and I’ve posted Instapaper’s browser usage stats.

Doug Langille is annoyed that Instapaper now displays a notice to IE users telling them that the IE experience is degraded and they should upgrade to Firefox or Safari to use Instapaper:

First, is it really all that hard to code for IE? With most internet users using some version of IE, this seems technocratic and borders on elitist.

Here’s how this development worked: I wrote the entire layout for Firefox and Safari. Since IE is not cross-platform, and my development platform is OS X, I wasn’t able to test conveniently as I went along. By using very basic markup and some pretty unchallenging CSS, I was able to achieve a pleasant, simple interface without the use of many images or hacks.

Then I went to test in IE7. I knew it wouldn’t support the rounded corners. Getting it to support rounded corners isn’t graceful, and it’s a pile of hacks that I’m not interested in implementing or maintaining.

I didn’t expect it to break so badly on a pretty trivial float arrangement. So I added a special case to make it look good enough.

Windows XP (don’t know about Vista) excludes a pretty big chunk of Unicode in the system fonts, including the BLACK STAR and WHITE STAR glyphs. So I couldn’t use the star character for the new starring feature, as I had done during all of development — I had to take screenshots of the glyphs and replace the characters with images. This is ridiculous in itself, but it applies to any browser on Windows XP, not just IE.

Depending on what you’re doing, making your site work in IE can range from a minor annoyance to an epic nightmare. It requires more special cases and hacks than any other browser by far. It puts a huge burden on web developers because Microsoft is either too lazy, too incompetent, or too malicious to even bother trying to conform to the same standards that every other browser has supported for many years.

This just reeks of old Mac fan-boy logic. If it runs on Apple technology, it’s golden. If not, it’s junk. It’s not quite ABM (Anybody But Microsoft), but the net effect is the same.

Fanboyism aside, this is purely a practical concern. I don’t have the time or resources to track down every IE incompatibility and maintain perfect feature and layout parity.

Even if I had the resources, it’s completely not worthwhile for me to do so. Historically, from my server stats, most Instapaper users don’t use IE. It represents less than 10% of all visitors to the site and almost no registered users. This is probably because of two big factors:

I agree that IE has some serious shortcomings, but each successive version does get better.

I agree. But it’s still not good enough to overcome my reasons to skip IE support. “Better” doesn’t mean “good” — in this case, IE7 is just less horrible than IE6 for web developers. And from what I know of IE8, it’s the same progression: less horrible than IE7, but still not good.

I shouldn’t have to perform application gymnastics to use a website.

IE compatibility requires web developers to perform far more gymnastics than a user running two browsers. For many sites, it’s worth the developers’ time to perform these stunts. But not for mine.

The third level builds off the second. Ever since the beloved iPhone/iTouch came out, my Blackberry (also an enterprise decision for my work) has become a developer’s wasteland — a second-class citizen. You can get an iPhone app for everything I can dream up, including Instapaper and Tumblr, but can I get one for my Blackberry? Nope. Nada. Zip.

Again, it’s an issue of resource allocation and priorities. I can develop a great iPhone app because I use the iPhone every day and intimately know the platform. I’ve never used a BlackBerry in my life, so I wouldn’t be able to make a great app — and I don’t have the time to develop and maintain it along with the website and iPhone app.

Geeks are developing cool things for the iPhone because it’s the platform they use. Like it or not, a lot of developers of consumer-facing applications and websites now use iPhones and Macs. Many people have the same limitations as me: they just don’t have the time, resources, or motivation to develop applications for platforms they don’t use. And you wouldn’t want them to. They wouldn’t eat their own dog food. The resulting products would be horrible.

Whether niche players dare to admit or not, Microsoft and its kin are 800 pound gorillas not just because they are big bad bullies. They are wildly popular and the default choice (even if by ignorance) of the majority.

Not the majority of Instapaper’s users.

If supporting IE was easier, I’d gladly keep doing it. But I’m not willing to hold up development of everything else I’d like to implement to make up for Microsoft’s unwillingness to make a standards-compliant browser and benefit such a tiny portion of my userbase.

At some point, you have to decide to stop supporting old, expensive cruft. It was a cost/benefit decision for your IT department to standardize on IE in the first place, and I bet you made that decision for good reasons. I hope you can recognize that I made my decision based on similarly sound analysis, and I stand by it.

Coffee week: Tuesday.

The new Mac Pro CPUs and pricing

Apple updated the Mac Pro today, and as my favorite computer in the universe, it caught my interest — not because I need to upgrade to it from my 1-year-old model (I definitely don’t), but because the CPU lineup and pricing changed dramatically with the switch to Intel’s Nehalem Xeon line.

The options and their pricing, along with Intel’s approximate pricing of the CPUs alone, followed by Apple’s/Intel’s price increase for that option above the previous setup:

So, as usual, any complaints about the Mac Pro’s CPU-upgrade pricing should really be directed at Intel, not Apple. As you can see, Apple’s not making a killing on CPU upgrades at all, but Intel is. And given that these are brand-new top-of-the-line Xeons, these prices are understandable and common for the way this market is usually priced.

Apple will probably keep the upgrade prices the same and pocket the difference as Intel’s prices fall — but unlike consumer-market CPUs, the prices on Xeons don’t fall very quickly or very far.

The Mac Pro update is otherwise pretty uninteresting and delivered exactly what avid watchers expected (as Mac Pro updates should, and usually do). One thing I find interesting: the new RAM/CPU layout. They dropped FB-DIMMs and are using DDR3 1066MHz ECC DIMMs instead, which should be much cheaper. The 2.66/2.93 CPUs are intended to be used with 1333MHz RAM, but Apple clearly states that all new Mac Pros use 1066MHz RAM. So I’m not sure where the disconnect is there — I assume there’s a good reason for it.

Also, note that the quad-core, single-CPU model can only use 4 RAM slots instead of 8, since the CPUs are now responsible for the memory interface. And the single-CPU model uses the Xeon 3500-series, not the 5500-series, so it cannot be upgraded to dual-CPU simply by adding a second one. I’m guessing that, even if the single-CPU configuration ships with the dual-CPU motherboard, Apple will probably never make a single-to-dual upgrade kit available. So I’d recommend that any Mac Pro buyer intending to keep it long-term should eat the cost and go with an 8-core model — even the 8-core 2.26 will be much better long-term than the 4-core 2.66.

Pilnick: “Made me think of Marco’s old avatar.”

What an innovative new design by MSI. I’ve never seen anything like that before. (thanks, John Gruber)

Instapaper’s browser usage for February 2009.

I decided to stop bending over backwards to support Internet Explorer, instead just doing the bare minimum and displaying a warning, on March 1.

I’ve been frontpaged on Hacker News and received a bunch of comments there (many in disagreement), so here’s some more information that may help clarify why it’s not worth restricting the CSS I use and spending hours to debug IE problems for 3.63% of the site’s visitors.

However, even iLife has its drawbacks in an educational setting. It simply hands so much to the students that they struggle with software (whether Windows, Linux, or even pro-level software on the Mac) that isn’t so brilliantly plug and play. Yes, iLife rocks in many ways, but the level of spoonfeeding it encourages actually makes me think twice about using it widely, especially at the high school level.

An IT director for a Massachusetts school district, via John Gruber, who translates:

So the problem with Apple’s iLife apps is that they’re too good, and kids never learn that they need to struggle with technical issues before using software to express themselves creatively.

I hate to copy John twice in one day (I like to maintain the illusion that I can find my own content), but this was far too good to pass on.

Would you help me beta-test Instapaper Pro 1.4 on the iPhone or iPod Touch? Please get in touch with me by tomorrow (Wednesday) night. Thanks!

Update: The beta is now full. Thanks to everyone who volunteered! The first beta build will go out within a day or two.

Apple has made a lot of improvements to the iPhone development control panel since its initial launch last summer, but there are still a lot of rough edges.

Coffee week: Wednesday.

College Humor’s prank war between Streeter and Amir has just been taken to a new level: Payback for the Yankee Stadium fake-proposal prank.

Epic.

People do love the Bible. But not the Gospels. They quote Biblical stuff to me all the time, but it’s not ever stuff Jesus said.

Letters from Kamp Krusty (via azspot)

I really enjoyed Stephen Mitchell’s The Gospel According To Jesus. The idea is that it contains what Jesus most likely said and did, according to historians applying standard academic research practices. It omits everything that was irrelevant, uncorroborated, unreliably reported, or hearsay.

The result is very short, dense, and remarkably consistent. You get a very clear picture of Jesus’ message without any of the religious baggage, theology, or supernatural occurrences (miracles, magical healings, etc. — most of which fell under “uncorroborated” or “unreliably reported”). So it’s a great way to learn what this man had to say 2,000 years ago, most of which is timeless and valuable, even if you don’t believe in the religion.

And when you look at what so many of the vocal outliers say or do in Jesus’ name today, it’s frequently contradictory to what Jesus actually said, taught, and did.

By Matt Langer:

One of my tasks today is implementing a very special greeting for all of our IE6 users. This may stand as some of the most gratifying work I’ll do for many years to come. 

Added bonus: patronizing them with a piece of angry burnt cartoon toast almost makes up for all the days of my life I’ve lost to that godforsaken browser.

This is so much cuter than mine. I need to hire this guy to make a cartoon version.

Coffee week: Thursday.

A nut association sent nut people in nut costumes to create a big nut event in Grand Central this morning to give nuts and nut accessories to morning commuters.

This is what I got. Tiff got even more stuff. And we didn’t even wait in the nut-shirt line. Not pictured: the nut-butter samples that we ate there.

Photography stuff I should have purchased earlier

However, [the Pamela Anderson/Tommy Lee sex tape is] also the only ‘important’ videotape I own, and it’s important because it shows how unsexy oral sex can represent what we want as a society (or what we’re afraid to want). Everyone is willing to classify Pamela Anderson as a bimbo and a whore and an idealized version of why half the women in America loathe their bodies, and all of that might be true—but what nobody seems willing to admit is that she’s the most crucial woman of her generation, partially because we hate to think about what Pam Anderson’s heaving bosom means to our culture.

Chuck Klosterman, Sex, Drugs, and Cocoa Puffs

Skip to 6:40, when topherchris and hellaposer act out their version of the fake Tumblr/Yahoo acquisition story.

That’s probably how it would have gone.

One of the Unicode characters is a snowman. But it’s not always the same snowman — here are the different ones I’ve been able to collect over a few minutes.

Go here and see what yours looks like.

Coffee week: Friday.

Via Nora Leah:

Animation of the amazing Hudson River plane landing with real radio dialogue from the cockpit (via Cup of Jo).

PS: I will never look at a flock of geese the same again.

Wow. It all happened so quickly. Takeoff to Hudson in 2 minutes. (edit: Apparently it was more like 6 minutes and this is an exciting-parts-only edit. Still. That’s not very long.)

Lot of literary agents don't get the internet. No, literally. They have a desk, a phone, and a list of other people with phones. That's it.

Merlin Mann

Logitech now tapes this little note inside the MX Revolution’s packaging. So many people (myself included, twice — I own two) were having trouble getting the mouse out of the clamshell that Logitech had to do something.

And rather than redesign the packaging to be usable, they stuck these little notes in there instead. It’s as much of a “solution” as Microsoft’s amazing “Did you notice the Information Bar?” dialog.

Can PHP do this?

(new Whatever())->function();

It gives me a parse error and makes me do this instead:

$w = new Whatever(); $w->function();

But you can do this perfectly well:

$w->function()->otherFunction();

One hack is to define a function with the same name as the class that returns an instance:

function Whatever() { return new Whatever(); }
/* ... */
Whatever()->function()->otherFunction();

But that’s a hack.

After $126.71 of creative Enterprise airport car-rental fees above the advertised rates: “Additional surcharges, local taxes, etc. may apply.”

Really? What else can they come up with? A convenience charge? September 11th Security Fee? Shipping and handling?

It’s 5:00 already? How will I go to bed at a reasonable time? Stupid DST.

Someone should get David drunk tonight and keep him out really late so I can show up late tomorrow and he won’t know.

We’re living in an amazing time for technology.

I can get a 12 GB set of RAM for my computer for $280. I don’t need it, though. I’m happy with “only” half of that.

Kindle support in Instapaper is now available as a public beta. So feel free to start using it — but it hasn’t been widely tested yet, so when you see something that’s not working correctly or as well as you think it should, please let me know so I can make it better. Thanks!

Today’s White Whine:

“Why are the USB ports on my MacBook on the left side when everyone uses a mouse on the right?  I hate sloppy wires.” -Whine by Michael

There are actually two great reasons for that:

  1. It’s easier for cable management and connecting/disconnecting everything if all of the ports are on one side.
  2. If a USB mouse plugs in on the right, the plug and wire intrude directly into your mousing space, so you have to keep the mouse further away from the computer than the range that many people find comfortable.

Butthole Surfers — Pepper (Electriclarryland, 1996)

This was the first MP3 I ever downloaded (the second was Bullet With Butterfly Wings, followed by Blister In The Sun).

It was the fall of 1996 and I was still on a 486 with Windows 3.11. WinAmp only ran on Windows 95, so I had to play it with WinPlay. The 486 was too slow to play an MP3 at full quality in real time, so I had to play it at 22kHz mono. And I could only keep a few MP3s because I didn’t have a lot of free space on my 400 MB hard drive. (But that was OK… it took too long to download over my 33.6 modem with my friend’s AOL account anyway.)

MP3s really exploded among geeks in the summer of 1997. As such, most geeks’ first MP3 artists included The Mighty Mighty Bosstones and Reel Big Fish. (And I think these artists benefited significantly from this timing.)

What were yours, and when?

This is the good thing about recessions: renewed focus on efficiency means things that have been broken for a long time get fixed.

Mike Hudack

Crazy

The Spin Doctors released a new album in 2005. (iTunes Plus, Amazon)

And it’s good.

Make fun of me all you want, but this was a pleasant surprise.

I get one of these emails every few months. The rate started at 4.5%. Each email brings the inevitable news that it’s a little lower.

They used to candy-coat it and make it sound like an increase if you don’t pay much attention while reading it. This one is a bit more honest. At this point, I feel bad for the guy who has to keep writing these and scraping together some semblance of enthusiasm about these sad savings-account rates.

The Mighty Mighty Bosstones — Someday I Suppose (compilation release; original)

My 90s throwback reminded me that The Mighty Mighty Bosstones existed, and I realized that the only copy of this I owned was the one I downloaded in 1997, which sounded awful and was probably recorded with a CD player plugged into a Sound Blaster 16’s line-in and encoded with Xing. (And I probably had to trade my Bullet With Butterfly Wings MP3 for it on a ratio FTP server.)

So I bought this compilation album from Amazon MP3 today (which sounds much better) and, sure enough, Someday I Suppose is completely and solidly stuck in my head.

Why attend WWDC?

@fraserspeirs:

I would go to WWDC if I knew there would be info about an iPhone OS device in a new screen size/form factor. Nothing else is that urgent.

That would be very important news for iPhone developers. But I’d still have a hard time justifying the trip.

I’m curious to hear from other developers on this who have attended WWDC. For me to go, it would cost:

Total cost of attending: at least $3,100.

I was able to make my iPhone app reasonably without attending last year’s WWDC, even though it was an all-new platform with an all-new API in a language I didn’t know. And now I know enough that some of the WWDC sessions might be too basic to be worthwhile. I’m sure I can continue to get by without actually attending. Furthermore, if I really need some help, I can buy the set of instructional session videos a few weeks later for about $500, a fraction of the cost of actually going there.

I’m sure it’s valuable, but is it $3,100-valuable for an independent developer doing this in his free time? I highly doubt it, but I’d love to hear opinions from people like me who have attended.

There are a lot of other ways I could spend $3,100 that would directly improve my app and increase its sales.

Parallels should be ashamed for spamming their customers with this.

The web version isn’t much better.

Now that I’m on the subject, having owned Parallels Workstation since the beginning and having used VMWare Fusion at work, I can confidently say that VMWare’s is the far better product. It’s much more polished, and most importantly, much more stable than Parallels. I highly recommend that Parallels users give it a try.

The drilling of the building’s exterior continues. This can’t do it justice. Every time they drill, we have to pause conversations because everything else in the office becomes completely inaudible by comparison.

Apple’s created an impressive business out of App Store—it’s time to stop acting like it’s being run out of a garage.

Dan Moren for Macworld on today’s App Store human glitch, the rejection of Tweetie 1.3 because it contained obscenity — the word “fuck” appearing in a Twitter Trend and therefore being displayed in the app’s Trends section.

lonelysandwich:

Time Warner Cable Hold Music Track 12 (“TWC Boogie”)

After you find the groove (and you will), skip to my favorite verse: the last 4 seconds, where the customer service lady comes back and tells me how I should’ve been saying my name all along.

I’ve heard that wonderful music on hold with someone else before… just can’t remember who. I wonder if the big companies compete to discover the worst on-hold music that customers will tolerate.

And I didn’t know it was possible to mispronounce “Adam”. Although I’ve also been surprised with past misspellings of “Amy”.

I had to test a crash reporter.

int *x;
*x = 1;

It felt dirty.

Apple surprises us with a new, more-talkative iPod shuffle

What surprises and disappoints me most is that the controls are now only on the earbuds’ cord, which means that there’s no way to use any other headphones without using a theoretical, clunky, overpriced third-party accessory. And if the controls work the way the iPhone’s clicker does, there’s probably only play/pause/next-track — no previous-track button (oops, thanks John, that’s apparently what triple-click does — I guess you can now tell that I’ve never used Apple’s earbuds). Although people wanting any usable navigation and features would probably be able to justify the extra $70 for the far higher value offered by the 8 GB iPod Nano.

The addition of spoken-voice artist names and song titles may indicate that the old Shuffle’s internal hardware and software have finally been replaced — possibly the first time since the original white-stick Shuffle’s release. The Shuffle has always been laughably buggy, from the original white-stick to the most recent nearly-square-clip model, and I hope they’ve finally resolved that.

Edit: Daniel Jalkut tipped me off that the voiceovers seem to be pregenerated by iTunes during synchronization. If so, there’s a good possibility that this is the same old buggy hardware and software as every other iPod Shuffle.

How are any of the other computer companies going to survive when they don't sell a "netpod" like Apple's shuffle?

Daniel Jalkut

staff:

We’re going to Austin!

Come join us at South by Southwest for the biggest party we’ve ever thrown!  We’ve booked the Cedar Street Courtyard this Sunday from 8:00 on, with special guests and open bar for anyone with a tumblelog.

HUGE thanks to Josh for pulling this together.

This time I’m going to try proving to my sister that I’m in Texas by phone with the Pee Wee’s Big Adventure method. “THE STARS AT NIGHT, ARE BIG AND BRIGHT…”

A rare design flop.

The Spin Doctors — Genuine (iTunes Plus, Amazon [CD only])

From their aforementioned 2005 (!) album, which I can now confidently say is very good. If you like ’90s rock like I do, give it a try. It sounds like the Pocket Full of Kryptonite Spin Doctors, but more mature with some modern updates that make it sound much more like a 2005 album. It’s as if those mediocre late-90s albums never happened. (And that’s a good thing.)

What’s Apple’s problem with buttons?

With both the new buttonless trackpads and the new iPod Shuffle, it seems that Apple’s going on an all-out war to eliminate as many buttons as possible from their products.

There’s a lot of value in simplifying controls, to a point. But nobody was complaining that either the laptop trackpads or the Shuffles had too many buttons before. In both cases, the devices are now worse off than they were before, but they look a bit cooler.

It’s easy to see signs of a perpetual internal battle at Apple between usability and appearance. Usually, they find a good balance and achieve high quality on both fronts. But sometimes the appearance-driving forces choke usability enough to leak toxic usability flaws into a shipping product. And I think, like 10.5.0’s translucent menu bar and slanty Dock, and Safari 4 Beta’s tab bar, and heavy shiny glass screens on lightweight laptops, and the Mighty Mouse, that this new Shuffle was a victim of the Apple style police defeating any semblance of common-sense usability.

Re: What’s Apple’s problem with buttons?

mm85:

I would also like to add the fact that Apple now offers it’s keyboard w/o a numeric keypad standard with it’s iMac computers, and I think it’s quite unnecessary. No one complained before about the numeric keypad.

I’d hate to see them completely disappear, but having the option to go without it has a big ergonomic gain, assuming you didn’t use it very often: the keyboard can be a lot narrower, so (assuming you’re right-handed) you can put the mouse much closer to the center of your ergonomic reach.

This has huge benefits for RSI reduction, comfort, and speed.

If Microsoft made a version of my preferred boat keyboard (Natural Ergonomic 4000) without the numeric-keypad area, I’d get it in a second.

Re: What’s Apple’s problem with buttons?

ern:

The intended audience of the shuffle are people who are otherwise distracted by another task. They simply want to pick it up, hit play, and listen to music in the background while doing whatever they need to do. By moving all of those functions to one button, it creates an easier and more consistent experience.

Don’t get me wrong, I agree that having the controls available on the earbud clicker are a good idea. But they don’t need to be available only there.

Every previous Shuffle had the full control set and a Hold switch. They could have added clicker-bud support and kept the on-body controls.

Re: What’s Apple’s problem with buttons?

ern:

The intended audience of the shuffle are people who are otherwise distracted by another task. They simply want to pick it up, hit play, and listen to music in the background while doing whatever they need to do. By moving all of those functions to one button, it creates an easier and more consistent experience.

Don’t get me wrong, I agree that having the controls available on the earbud clicker are a good idea. But they don’t need to be available only there.

Every previous Shuffle had the full control set and a Hold switch. They could have added clicker-bud support and kept the on-body controls.

Topherchris:

IRL NonReblog Whine: hellaposer confronts topherchris about an issue of great import.

I was just going to Like this, but I felt guilty.

  1. Imagine how much it would suck if we sent unfollow notifications. (That’s why we don’t.)
  2. It also sucks when you go to their page and they can see the “+ Follow” button in the iframe. Oops. Awkward.
  3. Do you work under a paper-towel dispenser?

Perspective

I started using Windows 2000 when it was a remarkably stable beta, 10 years ago this month. The bank across the street still uses it on every PC. So do a lot of other corporate computers.

But that’s OK. Most PCs now run Windows XP, which is “only” 7.5 years old. (It came with Internet Explorer 6, which is also still in widespread use.)

Most people don’t keep cars for this long.

Phish — Wilson (2009-03-08 Hampton, VA)

If you’re a Phish fan, download last week’s 3-day concert for free, legally, from LivePhish.com before this special ends and they decide to start charging money.

Says Trey Anastasio, “We really wanted to show our gratitude to all the Phish fans for their support and the overwhelming response they’ve had to these shows. It’s going to be an amazing celebration and we only wish everybody could be there,” Phish will be recording the Hampton shows in a mobile multitrack studio, and mixing the shows overnight for immediate delivery on LivePhish.com. 256kbps MP3s will be available for free download for a limited time. FLACs and CDs are also available.

It’s 10.4 hours. 85 songs. For free. Legally. And it sounds pretty good — not quite as good as a fully mastered live album, but a lot better than any soundboard recording I’ve heard. If you like Phish, even just a little, or even if you just think you might like Phish, why wouldn’t you download this?

Simple rate-limiting algorithm?

This simple hits-per-minute rate-limiter works:

public function allow_hit($id, $limit_per_minute)
{
    $key = md5($id) . idate('i');
    $count = intval(Cache::get('rate-limiter', $key));
    if ($count > $limit_per_minute) return false;
    Cache::set('rate-limiter', $key, $count + 1, /* ttl */ 60);
    return true;
}

…but it’s “dumb” with its definition of “per minute” — it just means “limit for each calendar minute” (using idate('i') as part of the cache key), not “limit for any rolling 60-second period”. That’s not as elegant or correct as I’d like.

But I can’t figure out a way to do a rolling 60-second period without storing every hit and its timestamp within the rolling window. Is there a good algorithm for doing that in constant space and time (maybe a trick using averages?), or am I pretty much stuck with the fixed calendar-window method?

(I’m aware that this has a race condition. For its purpose, I accept that. It would have been much more of a PITA to use the atomic Memcache::increment() function because it doesn’t work when the key doesn’t exist — it would be a lot more useful if, on a nonexistent key, it would atomically set it to either 0 or 1.)

Update: Bjorn Stromberg wins!

Thankfully, since white people only keep their most original and creative ideas in the Moleskine, many of them will only be required to purchase one per lifetime.

Stuff White People Like #123: Moleskine Notebooks (via 2arrs2ells)

It always puts me off when I go to a Flickr photo page and its spews all of these “note” boxes all over the photo. I don’t want to see notes by strangers. I want to see the photo. These are ugly, distracting, and obstructing.

I know they only trigger on mouseover, but a 500x320 box in the top-middle of the content area is such a large target that you can’t assume that my mousing over it is an indication that I’d like to perform an action or see extra information. There’s even a pretty good chance that my pointer is already in that area when the page loads.

The otherwise-excellent photo is via Peter W. Knox.

topherchris-tax-refund-and-payday-on-the-same

I love the handful of days each spring and fall when the sun lines up like this during my morning commute.

There are two markets. One has been sold to us as long-term: “Put your money in 401(k)s, put your money in pensions, and just leave it there. Don’t worry about it, it’s all doing fine.” Then there’s this other market, this real market, that’s occurring in the back room, where giant piles of money are going in and out and people are trading them and it’s transactional and it’s fast, but it’s dangerous, it’s ethically dubious, and it hurts that long-term market. It feels like we are capitalizing your adventure — and that it is a game that you know is going on, but that you go on television as a financial network and pretend isn’t happening.

Jon Stewart to Jim Cramer (part 2, ~3:20), slightly edited from a raw transcript for clarity.

At The Four Seasons, you can simultaneously order a Pinot Noir, an espresso, and a big glass of ice water — and nobody thinks it’s weird.

He spoke with the wisdom that can only come from experience, like a guy who went blind because he looked at a solar eclipse without one of those boxes with a pinhole in it and now goes around the country speaking at high schools about the dangers of looking at a solar eclipse without one of those boxes with a pinhole in it.

Metaphor from a high-school English-class essay (via jours)

My breakfast yesterday (with bonus Tiff and unpictured Marc) before leaving for the airport at my favorite Austin venue, the Hideout Theatre. Try to get there before around 10 AM and you have a good chance of scoring fresh $2 breakfast tacos.

The coffee’s not as amazing as an on-site roaster, but it’s among the best I’ve found outside of one.

Adam Lisagor’s iPhone copy-and-paste mockup, created two months after the first iPhone was released.

This is an excellent approach, and I’d love to see something like this announced at Apple’s event in 2 hours.

Of everything we’ve learned so far from the iPhone OS 3.0 announcement today, this is what excites me most. (photo from Engadget’s live coverage)

Now I need to go to WWDC.

Don’t worry, I won’t tell Apple which host of Core Intuition almost inadvertently convinced me not to go while I was at a conference two days ago in his city. (An hour later, the combined forces of Gruber, Rands, and the entire YLNT cast convinced me that I should go. So, barring any scheduling problems, I’ll be there.)

Subscription app pricing in iPhone OS 3

UPDATE: Looks like it isn’t happening like this.

I’ve been hoping for subscription app pricing since the App Store was announced. But since then, the app market has taken some turns that I never thought possible. I’m very curious to see how this plays out — specifically, if app developers can keep sales volumes up if they’re charging small monthly fees instead of higher one-time prices.

We don’t know the details yet. I’d love to see more options than just monthly billing, such as quarterly or annual pricing. Ideally, the same app could have multiple price tiers, such as offering it for either $2/month or $10/year.

I’ve wanted to charge a subscription price for Instapaper since the beginning. The app requires a web service with recurring monthly expenses, plus my time to update and maintain the service, all for the indefinite future. One of the reasons I’ve stuck with the (relatively high) $10 price point is to cover these recurring costs because I only had one opportunity to take money. Now, the game changes: I can elect to charge a lower initial rate because I know I won’t need to maintain server capacity to support this user forever with just $10.

This will, in a way, give us much of the effect of the rumored Higher-Quality-App Store. I suspect we won’t see a lot of subscription-priced apps charging more than $1-2/month, but even the minimum of $1/month (which I suspect will be a very popular price) accumulates to real money from the truly devoted users who keep it installed over the long term.

And if a lot of apps switch to $1/month, we could see some great side effects:

But, like the App Store itself, the market dynamics of this are likely to surprise us and go in directions we never anticipated after it launches. I’m hoping for the best, and I think it’s most likely that this will be a very positive change for the App Store.

A free copy of Instapaper Pro for whoever first tells me whether 3.0 has a better bookmarklet installation method. (rdar://5935641, rdar://6589436)

This makes me sad.

I finally looked over the iPhone 3.0 SDK API diffs, and while I’m not absolutely ecstatic, it’s clear that we’re making great progress and this is a significant upgrade. (Unfortunately, since 3.0 is prerelease software, it’s under NDA, so I can’t really say anything useful.)

First impressions when using an original iPhone after owning a 3G since last summer

  1. It’s much easier to use flat on a desk than the 3G.
  2. It runs hot. The back gets noticeably warm after moderate use.

GPOYW, SXSW OMG BBQ ED.

Not really subscription pricing.

After watching the video of Apple’s event yesterday, I think I was wrong in assuming that they meant recurring subscription payments would be possible for apps.

It sounds like they only meant the functionality that was then demonstrated: buying add-ons from within the app. And Apple’s no-demo, no-timebomb policy most likely precludes the use of that mechanism to hack apps to behave as if they were subscription-priced.

I hope I’m wrong. But I don’t think I am. And I hope Apple reconsiders this option in the future.

I really like PHP’s mbstring module. Is there any reason to use iconv instead for conversions?

So far, I haven’t found one. mb_convert_encoding() seems to be more compatible and more robust than iconv(), and mb_detect_encoding() is accurate for a pretty large percentage of my test pages.

I love character encoding!

Tonight’s goal: Make a simple PHP class.

Sounds easy, right?

Nope. Because some pages specify encoding via HTTP header, some specify via meta tag, some specify both but they disagree, and some don’t specify at all. Sometimes, the encoding is specified with an unusual variant of its name (e.g. X-GBK, MS939). And often, the specified encoding is wrong.

But I think I got it, finally.

This is so useful, albeit to a relatively narrow range of programmers, that I feel bad not releasing it to the world, except that I assume that someone else has already done this and I just didn’t bother looking for it. (My experiences with PHP-community code are not good, so I almost always roll my own.) Any interest?

Dan Benjamin reviews Starbucks’ new VIA instant coffee and likes it.

I’m certainly interested in trying it now. While I’d never drink instant coffee (or Starbucks) when better options are available, there are plenty of occasions on which there aren’t, especially when traveling.

david:

I just checked my mail for the first time in a year.  It contained:

  • 16 letters from Con Edison.
  • Approx. 5 lbs of catalogues.
  • An invitation to Tiffany and Marco’s wedding.

That RSVP card is really overdue.

mark-im-0-2-for-conversation-starters-this

Write bad code now, improve it later?

Jack Cheng quoted Adam Wiggins’ Order of Operations for writing code:

  1. Make it work.
  2. Make it elegant.
  3. Make it fast.
  4. Make it secure.

I disagree. The biggest problem is that this ignores reality: once it works, how likely are you to go back and make it elegant, fast, and secure? If it’s for personal use, how likely are you to care? If it’s for work, how likely is your employer to be willing to devote resources to “clean up” something that already works? Even the best developers, and the best employers, are pretty bad at this.

You should be writing elegant code very early in the process. There’s always room for improvement, of course, but there’s never an excuse to write sloppy code, even if it’s only running once and you’re the only person ever seeing it.

“Make it fast” can arguably be a lower priority for simple optimizations and constant-time reductions. But algorithmic complexity needs to be considered from the beginning.

And saving “Make it secure” for last seems like a disaster. Imagine how you’d feel, and how you’d even begin to tackle this problem, if someone handed you a pile of another programmer’s code and said, “Make this secure.”

Write good code the first time.

I’m amused when I see Instapaper feedback complaining that it requires “yet another account”.

Our SXSW trip, 2009. All photos by the lovely and talented Tiffany Arment.

It was such a pleasure to meet all of these great people. Pictured: Adam Lisagor, John Gruber, Merlin Mann, Manton Reece, Michael Lopp. I also spent time with some great people who didn’t make it into the photos, including Scott Simpson, Albert, and Gabriel, plus brief interactions with many notable people I respect highly, including Jonathan Coulton and Andy Baio. (Apologies to those I’m forgetting right this second.)

Thanks to:

Next stop: WWDC in June.

I’m surprised that I haven’t heard anyone else mention my theory on why the original iPhone with 3.0 won’t support MMS: It could have been a stipulation on Apple’s revenue-sharing contract with AT&T for the original iPhone that therefore doesn’t cover the iPhone 3G or iPod Touch.

But if that’s the reason (edit: It’s not. Oops. Thanks.), I’m surprised that push notifications will be enabled on the original iPhone. Seems like AT&T would have prohibited such mechanisms, if they could, because it will definitely eat into SMS usage.

And given that ability, I’m amazed that Apple released push notifications at all. How did they negotiate that with all of the worldwide carriers?

Phish — Run Like An Antelope (10:07, live from 2 weeks ago)

I couldn’t just leave this great 3-day concert with just one post. Phish is my getting-things-done music for headphones at work, and I’ve plowed through so much stuff this week while listening to this 10-hour concert.

(If you’ve never heard this song, let it get to at least the 3-minute mark before you judge it. And I crammed this 10-minute song into Tumblr’s 10 MB audio limit with this method.)

Melancholy Fish Stick

Marco and Tiff go to Brooklyn, Part 1

We‘re thinking about moving to Brooklyn, but we don’t know much about it, so we took a quick tour of some neighborhoods that our friends had recommended and looked nice from Craigslist: Fort Greene, Clinton Hill, Prospect Heights, and Park Slope.

Verdict: Park Slope wins.

Ignoring opinions on pricing (which actually seems very reasonable to us), why shouldn’t we live there?

Everything that we’re doing right now is engineered to avoid reality, to sustain the unsustainable, to recover the unrecoverable, when the mandate of reality compels us to face our losses in order to move on to the next chapter of a collective American life. The next chapter would be a society that runs on a much more local and modest scale, centered on essential activities like growing food, requiring harder physical work, and focused attention — in other words, the opposite of a society lost in abstractions, long-range daisy chains of off-loaded responsibility, and incessant pleasure-seeking.

Jim Kunstler (via azspot, dalas verdugo)

Brooklyn real-estate lessons learned so far

  1. Realtors have a loose definition of “yard”. Any outdoor space of more than 2 square feet seems to qualify, even if there’s nothing green anywhere nearby. “Yards” frequently include such amenities as splintered wooden fences, piles of bricks and debris from nearby demolition, and pools of water collecting on concrete.
  2. This is the first time I’ve searched for real estate since Google Street View has existed. It makes a huge difference. “Wow, that sounds nice! Map link, Street View… Oh. There’s a box factory and shipyard across the street. And the neighbors don’t like to use garbage bags. And they eat a lot of oily foods.”

Any fool with ears could tell you that when the Devil went down to Georgia he kicked Johnny's ass.

Bill Israel

MacHeist and the ethics of software discounts

MacHeist is happening again. It’s the usual Phill Ryu publicity stunt that will result in a bunch of blog attention, a few developers selling licenses at very steep discounts, and a charitable donation that downplays the hundreds of thousands of dollars that Ryu and his company will likely walk away with.

Ryu’s pitch to developers is straightforward: agree to sell a large quantity of licenses at a very low price. The developers are promised “exposure” to offset the reduced revenues and the cost of the large influx of support email and other per-user costs (plus some non-obvious problems such as perceived value dilution). Some developers appreciate the deal afterward while others regret it. Enough has been written on that debate that I won’t get into it here. (I’ve edited this paragraph to be more accurate. I apologize for the inaccurate original claims — they’re not part of my argument.)

Buying the MacHeist bundle is the real problem.

You’re getting copies of software that feel like the real thing. You can tell yourself that you’re supporting their developers. Their developers can tell themselves that it’s a good deal and it’s worth eating the discount to gain exposure.

But most developers aren’t as good at marketing, negotiation, or hype as Phill Ryu. Most developers, like most people, are terrible negotiators and are inclined to undervalue themselves (and overvalue hype). While there may be an occasional outlier, the majority of MacHeist’s developers aren’t seeing a net gain from this, but they don’t usually realize that until afterward. (That’s why there are so few repeat participants.)

So, in most cases, you can be pretty sure that it wasn’t worthwhile for that application’s developer to sell you that license. And while you may feel that you gave a fair price (through MacHeist) to the developer who charges $50 for that program, I can assure you that you didn’t.

You could rationalize this in the usual ways:

  1. The Drop-in-the-Bucket: “They’ll never miss my money because they’re a huge faceless corporation and they make tons of money.” (But these are tiny companies or individuals, they don’t make tons of money, and they will miss yours.)
  2. An Unreasonable Price: “This would never be worth its price to me, so I’d otherwise just pirate it or go without it, so at least they’re getting some money from me.” (You may be able to justify this for Photoshop, but it’s not a very strong argument against the list prices for MacHeist software.)
  3. I Can’t Afford It: Bullshit. Yes you can.

Call it what it is: You’re willingly accepting a license that will result in the developer earning almost no money.

Therefore, you’re not really supporting these developers: you’re telling them that you don’t value their work enough to pay full price, but you’re going to use their software anyway.

Their compliance with the MacHeist deal is irrelevant.

Most software is an incredibly good deal, especially the applications that you use every day or as part of your business. For example, given that I make all of my living by using TextMate, and it was developed entirely by Allan Odgaard over (probably) thousands of hours, it would be ridiculous for me to haggle its €39 price. Why seek discounts on something that you want to support and that you believe is already a great value?

I refuse to purchase MacHeist for the same reason I respectfully decline license discounts or App Store freebie coupon-codes from other developers (that I occasionally receive because of my roles in Tumblr and Instapaper):

I believe in supporting software developers by paying full price for their applications.

MacHeist supports MacHeist’s staff extremely well, but it’s not a way to support its applications’ developers.

Update: Phill Ryu responds and I clarify some points.

Re: MacHeist

Phill Ryu wrote me a thoughtful response and counterargument with many valid points. It seems that I was wrong to assume that MacHeist’s deal was still a flat fee for developers. They offer percentages to some, especially for the larger apps. For that false assumption, I apologize, and I have edited the original post to remove the inaccurate statements in the second paragraph.

I’m not interested in arguing the specifics of the MacHeist deal with developers. I’m sure that nobody will argue the core of it: these applications are being sold at a steep discount.

My point is whether it’s a good idea, as conscientious consumers, to accept such steep discounts on the products that we use and love.

My argument is that it’s not.

Others feel differently. “It’s just a business.” “We shouldn’t be responsible for making sure developers get a good deal.” “It’s a great deal for consumers.”

If you feel that way, then we must respectfully disagree.

2009 will be the year of mainstream desktop Linux. We were just a bit premature in predicting it for 2002, 2003, 2004, 2005, 2006, 2007, and 2008.

We’d explain the site to people we met at restaurants or bars and they’d love it. “Oh, my whole family would use that!” they’d say. “I would pay good money for that.” They didn’t. Pay attention to what people do, not what they say. There’s a big difference there.

Chris Wanstrath (thanks, jnunemaker)

…and that’s all

I’m done talking about MacHeist now. I’m happy with the points I’ve expressed and I’ve received a ton of feedback, some in agreement and a lot in dissent. Time to move on.

Tomorrow, my blog returns to coffee pictures, headphone reviews, and unsolicited market analysis.

Back to normal.

Andrew Flavin:

Love those headphones (their earbuds are great too).  It doesn’t surprise me that Marco, the maven, is a Sennheiser guy.

I’m a best-for-the-role kind of guy for headphones:

And something to think about with pricing: while good headphones may seem somewhat expensive, they’re likely to outlast whatever you’re plugging them into. For example, I’ve had my 280 Pros since 2004 and they show no signs of wearing out or needing to be replaced anytime soon, even though I wear them every day at work, often for many hours at a time. Getting these is a no-brainer. I’ve happily paid a lot more for a lot less.

June, I can just see it: Apple launches 2 new OS’s, a new phone, and Steve returns. Headlines: ‘NO TABLET. WORST KEYNOTE EVER.’

Neven Mrgan (via 43folders)

But how will Apple survive if they don’t release a netbook?

This is really good, except:

  1. The yogurt is best when it’s very cold, but at those temperatures, the honey is too thick for easy use. I haven’t yet found a temperature that’s ideal for both.
  2. It’s hard to order from cashiers because there’s no good way to pronounce it. In my head, I say “fahzh”, but the official pronounciation on the label says “fa-yeh”. In either case, nobody ever knows what I’m talking about, so I have to fall back to pointing to it in the case and calling it “that Greek yogurt with the honey”.

Otherwise, it’s a good afternoon snack, and very healthy compared to most alternatives, especially if you don’t use all of the honey. (I find it’s a bit too much.)

Obligatory iPhone predictions

Casey Liss:

Am I going to be rewarded for my wait until June with a new iPhone? I know that’s what everyone says, but is this really likely?

The first iPhone was released in late June, 2007 after being announced at a conference 6 months prior.

The second iPhone was released in early July, 2008 after being announced at a conference 1 month prior.

There’s a conference on June 8th, 2009.

At most, won’t it be evolutionary and not revolutionary?

That depends. Rumors are all over the place. Here are some of my predictions of new hardware features with my guess of how likely they are:

You’re right, this is unlikely to be a revolutionary hardware release. But June isn’t very far away. Wait it out.

I never get in any trouble when I talk about coffee, headphones, and Apple. It’s a shame that there are so many problems with the reality of trying to discuss much of more substance under my real identity with a nonzero readership.

I probably just need to start using more options between discussing something with a few friends (audience: 5 people with terrible memories) or blogging about it here (audience: a few thousand, plus permanent and complete archival, tied to my name forever). I enjoy writing under my real name, but sometimes it feels like I’m running for President on the Democratic ticket against Karl Rove and the Clintons and I know that they’re going to dig up any missteps that I’ve made and turn around everything I say to make me into a monster or an idiot or a shithead. Instead of creating a scandal for the cable news networks, we create petty blog fodder for Denton and Arrington to wield against us in a barbaric rush for a handful of pageviews worth 13 cents.

In a way, audiences and recognition hinder those who achieve them. Sometimes it’s better to have fewer, more forgetful readers.

I occasionally get support emails for GPS Tracker because it’s made by a company called “InstaMapper LLC” and that’s close enough for Apple to return it when you search for “instapaper”.

Pilnick:

I’m feeling a bit nostalgic for Pittsburgh today.

Having lived there for two years during my first job after college, I can’t say enough good things about Pittsburgh. It’s a great city that offers a lot of culture, places to go, things to do, and world-class food. And you can get a high standard of living for a very reasonable price — it’s perfectly common for people in their 20s to buy houses in nice suburbs and have 10-minute commutes (often by foot). By New York’s standards, that’s completely unheard of.

Marco and Tiff go to Brooklyn, Part 2 (see Part 1)

With a more in-depth tour of Park Slope, we saw our first apartments and narrowed down the parts of the neighborhood that we prefer. We also learned some useful information from realtors.

Most 2-bedroom units are priced with the assumption that they’ll be split between roommates, and they don’t tend to be significantly larger than 1-bedrooms. This is in line with what we’ve seen, even in Westchester over the last few years — we’ve never seen a 2-bedroom that seemed spacious. There are too many walls and doors and hallways. Even the 1100-sq.ft. 2-bedrooms we’ve seen have been cramped and poorly laid out.

We only wanted the second room for an office/guest bedroom, but many 1-bedroom units have enough space or extra alcoves to accommodate that. So we’re broadening our search to large 1-bedrooms, and the listings already look significantly better. Hopefully it turns out that way in real life, too.

All I got were the same shots as the thousands of others who use cameras to create their memories: to record and document experiences that, were they as memorable as advertised, would not need such obsessive documentation.

Mills

The camera gets better, but the purse stays the same.

thedailywhat:

Photo of the Day: The global headquarters of the Earth Hour event during Earth Hour.

Take your own advice much?

[via.]

This is one of those feel-good environmentally conscious movements that has so many inconvenient implementation details that its purpose is devalued and many people ultimately miss the point.

The lamp on my desk, with a CFL bulb, uses 26 watts. Granted, we usually keep two of these lamps on. So our living room typically uses 52W for lighting during the hours that we’re using it.

That idle MacBook Pro on the edge of that desk uses about 60W.

A typical modern 24” LCD monitor, like the one on that same desk, uses about 100W.

I hope and assume that the pictured room, full of people and computers but with closed windows, didn’t need air conditioning (500-800W).

It’s easy to turn off your lights for an hour on a Saturday evening. Was anyone inconvenienced by that, really? Did anyone need to change their plans, their diets, or their habits?

Of course not. Everyone just sat on the internet for an hour with their 50-250W computers, using services requiring tens, hundreds, or thousands of 400W servers and countless switches and routers along the way, all in air-conditioned datacenters.

And afterward, everyone turned their lights back on and continued their lives with no significant changes whatsoever.

Positive environmental impact takes real effort and real change. It’s more than just dropping your endless supply of plastic bottles in recycling bins, making sure the new car you lease every 3 years to drive yourself 30 miles to work every day is fuel-efficient, and posting to Twitter for an hour about how your lights are off.

Katie Schenk:

Marco, I think you might be the one who missed the point. Earth Hour isn’t really about the watts not being used for an hour one night out of the year. Turning off your lights was a “vote for Earth”. From their website:

For the first time in history, people of all ages, nationalities, race and background have the opportunity to use their light switch as their vote – Switching off your lights is a vote for Earth, or leaving them on is a vote for global warming. WWF are urging the world to VOTE EARTH and reach the target of 1 billion votes, which will be presented to world leaders at the Global Climate Change Conference in Copenhagen 2009.

By us turning out our lights, it shows we support this cause and that the world wants to take action against global warming. You’re right, the watts not used during that hour across the globe won’t make much of a difference in the long run, but the symbolism of everyone particpating will.

Maybe I just expected more. The best way to show your support for this cause is to actually take action. Telling a bunch of casual environmentalists that you agree with them (when it’s convenient) isn’t incredibly powerful.

It’s easy to say, “Yes, I support the environment! Global warming is bad!”

But what does that accomplish, really? It’s far more effective to vote with your actions and your dollars.

Use mass-transit or your feet to get to work. If you can’t, move so you can. If you can’t afford a place as big as your current one, make do with less. Maybe you don’t need a giant house. You may have to give up your dream of having a separate room for your books.

(I know that most New Yorkers are already good at this sort of thing. We’re the exception. If more of the country’s metro-area population used mass transit as much and maintained as efficient density as New Yorkers, we’d be far better off.)

It doesn’t stop there. Use less of everything. Eat a lot less meat. Dispose of less waste. Opt into clean energy sources from your electric company, even though it costs twice as much. Buy local. Tolerate a wider temperature range in your home — use less heat and air conditioning. Go without non-essentials. Say “no” to yourself more often.

It’s inconvenient. It’s less luxurious. It’s more expensive. It’s more time-consuming. We can’t have the same lifestyles as before if we actually want noticeable change. A lot of people are willing to say they support something, but when it comes down to taking action, the numbers dwindle quickly.

A young woman in Chapel Hill, N.C., wakes up sweating. Her air conditioner has died. She knows she wants a new one, but she wants one that will be energy-efficient, easy to install on her own, reliable and not too expensive.

She hops online and types, “I need a new A/C today; I have $250 to spend — help!” into Twitter, which in turn feeds automatically into her Facebook status. She immediately begins to receive replies in both channels from friends with advice on retail outlets, air-conditioner brands and how to stay cool with no A/C. She also sees an @ reply on Twitter from a national big-box retailer letting her know its Chapel Hill location has new air conditioners in stock, as well as a link to the section of its website that shows air conditioners for under $250.

This is the new face of the “search” experience online.

Peter Hershberg (via betaworks)

That sounds like hell.

And it’s too optimistic: it ignores the reality of what really happens when the internet offers easy ways for people to make small amounts of money.

2-bedroom apartment design

We don’t need thousands of square feet: we’ve seen apartments with plenty of physical square footage that are so poorly laid out that they feel like much smaller places. And this problem especially applies to the 2-bedroom apartments we’ve seen, even in Westchester where they’re generally larger and cheaper than Brooklyn or Manhattan. (We’ve seen 1200-sq.ft. houses that were thoughtfully laid out and didn’t seem cramped.)

Our current 1-bedroom apartment is about 600 square feet, but it makes excellent use of its space — possibly the most efficient use of this amount of square footage I’ve ever seen in real life. It’s a very intelligent floor plan that doesn’t waste space on hallways or large entryways, yet it still manages to have an unusually nice kitchen (a rarity in our finds), a reasonable bathroom, and decent closet space.

We haven’t seen any 2-bedroom apartments for which we can say the same. The rental market gives huge financial incentives for owners to create more bedrooms, even if they’re tiny, because a lot of people are willing to have roommates and can split a higher-than-normal rent if there are enough rooms to put people in.

And when you’re designing a floor plan for roommates, all of the priorities and incentives change. For example, since roommates tend to minimize common-space usage and shove everything into their bedrooms, there’s less demand for spacious living rooms and kitchens. (There’s also less demand for dining rooms and offices, but those have already been hacked into additional “bedrooms”.)

It’s completely different when you’re an individual or a 1-bedroom-requiring couple looking for a nice, open layout that isn’t too cramped and has a nice kitchen and maybe an office-type area so our desks don’t need to be in the living room. We started out assuming that a 2-bedroom was the way to solve that, but it looks like a good solution might also be one of those larger-than-usual 1-bedroom units for which the agent tries to bullshit you into thinking that it might be a 2-bedroom, but really the second “bedroom” is an alcove or a dining room or the short half of an L-shaped living room.

The values were correct, just mislabeled. So I looked in the source, found the characters that went with <option value="NY"> (the sixth one down, two characters wide), and picked that.

The rest of the checkout went perfectly fine, properly labeling my chosen state as New York.

See you there.