While there’s an unavoidable undertone of glib hipsterism in the whole “offline for a year” experiment Miller conducted, this insight is one that goes too often unrecognized:
My plan was to leave the internet and therefore find the “real” Paul and get in touch with the “real” world, but the real Paul and the real world are already inextricably linked to the internet. Not to say that my life wasn’t different without the internet, just that it wasn’t real life.
For both good and ill, the Internet really has changed everything. Very few of us in the first world are living lives in 2013 that bear much resemblance to the life we would have had—or even could have had—were we the same age in 1988. (And life outside our first world privilege sphere has undergone radical change due to technology in the last quarter-century, too.)
I joked on Twitter last night that I should follow up PHP is not an acceptable COBOL with “PSR-0 makes PHP a completely adequate FORTRAN” and let people guess whether that’s actually a compliment. This is not exactly that post, but what’s been going in the PHP world has been kind of interesting.
First off, a lot of people get really defensive when you attack PHP, or indeed whatever their language of choice is. (Except Lisp, because Lispers are secure enough not to give a shit what you think.)
Eevee’s epic rant PHP: a fractal of bad design came along not too long after my rant and took most of the heat away. (Thanks!) The most common defense against critics seems to boil down to “a good programmer will get used to the quirks of his tools and work around them.” Absolutely. But that doesn’t mean someone saying, “Hey, your tools are quirky in vastly unnecessary ways” is wrong. Having two similar functions that take the same arguments take them in different order? Bad design. Requires you to explicitly name the variables you want your closure to close over? Bad design. And as Eevee noted, PHP makes it easy to write code which does the wrong thing with no warning: where a failure to do proper error checking in Python and Ruby will always cause an exception, PHP might chug merrily along and “work” incorrectly. Bad design.
Yet! I come to praise PHP rather than bury it. Eevee complained “the language, the framework, the ecosystem are all just bad.” What’s changed in the last year is the ecosystem. And it’s changed a lot.
PSR-0 sets up a standard for what PHP calls “autoloading,” a way to automatically load a class when your code references one. In theory, this is “better” than a language like Python, which requires you to import foo when you want to use a “module.” Python sounds just like the old PHP way of using require to load files, right?
No. In practice, Python’s structure for how you organize modules into packages—basically, easily-installable libraries—is a huge win over PHP’s laissez-faire attitude. (PHP tried to have this with PEAR, which would be fine if PEAR wasn’t opaque, fragile, out-of-date and just all around annoying.) PSR-0 now gives us that package structure. More or less.
That brings us to Composer. Which is not directly related to PSR-0, but bear with me.
Using Composer requires you to structure a PHP project in a specific way—not an overly restrictive way, but there are a few standards, just like you’d need for Node, or for Ruby’s bundler package manager. Composer, among other things, provides an autoload component that handles not only PSR-0 style files but can easily “map” anything else you want to use. You can include that in your PHP project with one line:
The magic happens, though, when you bring Composer and PSR-0 together. Because PSR-0 is a standard, it lets you create packages and use packages other people have created. Because of that, you can include new packages in your project by adding them to your project’s Composer configuration file and running composer install.
Yes, this is stuff that Ruby and Node have had for a couple years, and is the rough equivalent of stuff that Python has had for over a decade and Perl has had since the 1880s. One can argue about whether the Composer/npm/bundler approach is better or worse than the CPAN/PyPI approach—as much as a fan of Python as I am, I lean toward “better,” honestly—but the main thing is that it not only exists, it works, and it works well.
Right now, there are nearly 10,000 packages at Packagist, the repository that Composer draws from; I’m sure that just like npm’s repository a lot of those packages are absolute crap, but again, not the real point. The point is that thanks to all this infrastructure that’s sprung up, PHP is very quickly starting to feel, well, modern. A lot of interesting stuff was always out there, but now it’s there in one place, following one standard, (mostly) guaranteed to be interoperable. A lot of things that Rails and Django developers have been rightly smug about for the last few years, PHP developers finally get to share in, also.
Sure, this doesn’t fix a lot of PHP weirdness. (I’ve recently been fighting with json_decode and whoever thought that error-checking scheme was a good idea needs to be smacked with a dead salmon a few times.) But developing with a framework like Laravel 4 is… pleasant. I may still like Flask more, but I’m no longer pining for it.
I have a confession to make that may get my B-List Nerd Card revoked, but I don’t think the Aeropress coffee brewer makes great coffee.
It makes good coffee, and when it comes to brewing speed and cleanup it’s unbeatable. But I’ve been using one off and on for nearly four years now, generally aiming to brew what I consider to be a standard twelve-ounce cup of coffee, and there’s a lot of…quirky things about it. You can’t brew a twelve-ounce cup of coffee with it. Instead, you’re supposed to brew it at about triple-strength, which is what the Aeropress is designed to do, and dilute it. (They call the triple-strength coffee “espresso,” which it manifestly is not.)
Yet when I do that—even using (at least!) as much ground coffee as I would for twelve ounces of water—I often get watery coffee. I can get consistently good eight ounce cups of coffee by using enough water to make the concentrate about double-strength instead, but twelve is hit or miss at best. I’ve talked with baristas at good local coffee shops like Chromatic and Bellano and they’ve said they had similar experiences.
The other thing is that even a good cup of coffee on the Aeropress has, well, a distinctly Aeropress flavor, in much the same way that cold brew coffee tends to taste distinctly like cold brew coffee. The sweetness gets highlighted, the bitterness is muted, and two very different coffees—say, a dark roast Sumatran and a light roast Ethopian—have their similarities accented more than their differences. This isn’t bad, but it’s noticeable.
I think the Aeropress appeals to so many geeks because it’s simple yet endlessly fiddly: change the grind, change the steeping time, change when and for how long you stir, brew it inverted, so on and so forth. You can’t match that level of fiddliness with anything but a pour-over cone.
But I don’t always want fiddly. A lot of times I just want coffee, consistently brewed well and full-flavored. Geeky is still a plus. And this led me a few months ago to the Clever Coffee Dripper.
Basically, what the Clever does is act as a hybrid of filter pour-over and French press. It’s a big cone that takes #4 coffee filters (the ones that you’d use for most electric coffee makers that have cones rather than baskets—bigger than what other “single cup” cone brewers use). Put the filter in, put the coffee in, then pour the water in. Don’t “pre-soak” the grounds, stir after a minute and a half or so, and wait about four minutes.
Then, just set the Clever on your coffee cup. A stopper in the bottom gets opened when it’s on a cup; when it’s on the counter, letting the coffee steep, it’s closed. The coffee pours out of the Clever over a minute or so.
I can’t say the Clever gives me the best coffee I’ve ever had, or even the best coffee I’ve ever made. And, yes, I’ve had (eight-ounce) cups from the Aeropress which are as good as the (twelve-ounce) cups from the Clever. But the Clever brews a great cup of coffee every single time.
I’ll still keep the Aeropress and the other coffee torture devices I’ve accumulated over the years. There really isn’t much tweaking you can do with the Clever, and hey, tweaking is fun. Also, when I want more than a cup at a time, I need something else. (More about which another time, maybe.) But for my standard, go-to single cup brewer, the Clever has won me over.
Earlier this week the web was abuzz with Apple’s latest clear strike against freedom: they refused the newest issue of the independent comic Saga to be distributed through ComiXology due to “postage-stamp sized” images of gay sex. Even though ComiXology is a third-party application, it uses Apple’s in-app purchase system—as it must, due to Apple’s iron fist of doom—and thus is subject to Apple’s doomy iron fisted policies. And this did seem pretty outrageous—and possibly homophobic, given that previous issues of the very same comic had explicit images of straight sex.
Of course, the web was abuzz a day later—in subdued fashion—with ComiXology’s admission that, actually, they just didn’t submit Saga #12 to Apple because they interpreted Apple’s rules as prohibiting it. When they actually asked Apple, turns out they didn’t have a problem with it after all.
I’m curious how widespread the second report is compared to the first; my suspicion is that it hasn’t traveled as far, for much the same reason that ComiXology made the mistake in the first place. “Apple is Big Brother” has become a default narrative about the company. Apple stands for closed systems, proprietary everything, and a level of control over the way their customers use their products that would send us all fleeing for the hills if we had any common sense.
At first glance this is a baffling take. If there’s something I could do with OS X 10.6 that I can’t do with OS X 10.8, I haven’t found it yet. My software all still works. The Unix shell is still there. AppleScript is still there. I can still use utilities like LaunchBar and Keyboard Maestro that are so absurdly powerful that I giggle like a Japanese schoolgirl when some yoyo spouts off with the old “Macs are just toys” trope. While iOS is locked down by comparison—and there are some things that definitely do need to be opened up with respect to inter-application communication—an iOS device is an application console. We don’t complain (much) about a PlayStation 3 being “locked down” because it’s a game console. That’s what they do.
Yet it’s a take even long-time Apple users fall into. Ted Landau comes across this way at times. Leo Laporte is positively cranky about it. The “iOSification” of OS X surely leads to OS X either becoming just as locked down as iOS or simply merging with iOS in a few years! Again, no real evidence supports this—the iOS elements that have been migrated to OS X have not resulted in OS X becoming more locked down. And there’s no reason to think that more OS X technologies won’t move to iOS, making it less locked down.
No reason, except that wouldn’t fit the default narrative.
Apple isn’t the first company to be saddled with this—most companies of any consequence do. Microsoft’s default narrative for about a decade, starting in the late ’90s, was that they were slow, stodgy and frankly kind of thuggish: you dealt with them because you had to. Before them, IBM had the slow and stodgy reputation, although less thug than “man in the dark blue business suit.” And, of course, Apple’s default narrative in the late ’90s can be summed up in one word: “beleaguered.”
These narratives aren’t pure nonsense. Apple was on the verge of going under for about a decade, and Microsoft and IBM really were eight thousand pound gorillas that weren’t, by most measures, very good winners. Microsoft’s contract with OEMs, for instance, disallowed shipping machines with Windows pre-installed that could “dual boot” into another operating system, effectively ensuring that only tech heads would ever see BeOS, OS/2 or Linux.
So how much of the default narrative they’re stuck with now is Apple’s fault, and how much of it is fair? Apple is interested in controlling everything they possibly can, sometimes to their obvious detriment (see: anything that involves a server-side component ever). But no market Apple competes in, with the possible exception of the dwindling MP3 player market, affords them a position comparable to Microsoft’s in 1999. Apple’s market share of smartphones can’t smother Android (or vice-versa; unlike PCs, that market simply doesn’t work that way). And frankly, no one’s ecosystem is as closed as it once was—data portability is king. Mac users are often happy Android users; Windows users are often happy iOS users.
There’s a temptation for those of us who generally like Apple to ascribe the default narrative to Tall Poppy Syndrome, which is, in Wikipedia’s words, “a social phenomenon in which people of genuine merit are resented, attacked, cut down, or criticized because their talents or achievements elevate them above or distinguish them from their peers.” The Apple of 15 years ago was just as controlling, arrogant, and likely to overuse the word “magical” in advertising as the Apple of today, but now, they’re claiming they effectively reinvented the smartphone market and the tablet market. This is infuriating not because it’s transparent bullshit, but because it isn’t: they have a pretty good case for those claims.
That isn’t to say that Apple should be controlling and arrogant, and that their choices don’t create genuine problems worth bitching about. Nobody should pretend it’s good for consumers that Apple doesn’t let Nuance make Swype for iOS and doesn’t let us set Chrome to be our default iPhone browser and that it’s to my benefit that iCloud makes it impossible to use Byword on the Mac and iA Writer on the iPad to edit the same plain text documents. Apple definitely contributes to their own reputation.
But if Apple did “open up” everything, would the default narrative change? At this point, I don’t think so. Look at how persistent bits of the previous Apple narrative have been: that their operating system isn’t powerful enough, that their hardware is massively overpriced, that their main audience is technically illiterate fashionistas. It doesn’t matter what facts are marshaled against this. People hate Apple because Apple. As Marco Arment wrote, Apple “could release a revolutionary 60-inch 4K TV for $99 with built-in nanobots to assemble and dispense free smartwatches, and people would complain that it should cost $49 and the nanobots aren’t open enough.”
And, at least when I ran the Google search now for news on Apple’s Saga saga, the first hit is from the Guardian: “Apple didn’t ban Saga comic, but censorship questions remain.”
Apple does make content decisions that at various points have seemed anti-competitive, puritanical, politically correct, strangely prissy or just plain baffling. So does Google, and if people buy Windows Phone in enough numbers for it to matter, so will Microsoft. And in cases involving content rather than applications, at the least, it won’t matter that much, because Apple, Google and Microsoft won’t be your exclusive content providers. (On iOS, I can buy from ComiXology directly, I can load DRM-Free EPUBs into iBooks by merely clicking on a link in Safari, and so on.)
Apple is neither alone in making weird “curation” decisions, nor are they the inescapable arbiter of what data you load up your iPad with. But most reports, for the foreseeable future, will be written from the perspective that both of those facts are false or, at best, irrelevant. After all, you gotta stick to the narrative.
“Explore” is the direction Foursquare wants to go in for the future. Over the past year, the company has slowly moved away from its heavy emphasis on badges, mayorships and “gamification” (my least favorite word in tech), instead moving toward a mobile discovery service somewhat akin to the space Yelp currently inhabits.
Foursquare derives 1–10 ratings with an opaque calculation based, presumably, on the only quantitative information it has: how many check-ins there are at a given location, how many of those are returning customers, and how many of them “liked” the spot. They claim this is a better method than Yelp’s approach of asking users to rate things on a 1–5 star scale.
But here’s my bet: that Foursquare is going to have trouble distinguishing between “places everyone goes to because they’re great” and “places everyone goes to because they’re convenient.” I can’t prove that, but Foursquare’s top-rated Mexican restaurant in Santa Clara is Pedro’s, a solid but uninspired place most notable for being really convenient for margarita-fueled Silicon Valley power lunches. (They’re within walking distance of Intel, Broadcom, EMC and McAfee.)
Their second highest rated Mexican place here? Taco Bell.
Nothing against those Cool Ranch Dorito Tacos, but I’m not convinced Foursquare has really cracked this yet.
From late 1998 through early 2001, I was using BeOS as my primary operating system. Yes, it was really possible to do that—between Gobe Productive (a great “Works”-style app written by the team that wrote the original ClarisWorks), the BBEdit-ish Pe text editor, and the slightly buggy but awesome-when-it-worked “objected oriented” graphics program e-Picture (a lot like Macromedia Fireworks, but in some ways better), I had the tools I needed. For the era, Be’s native web browser, NetPositive wasn’t bad—and, unlike iOS (nudge nudge), it actually had a Flash player available. Not an official one, but one from the oddly named “General Coffee Company Film Productions.”
Later, as I got (back) into text adventures and interactive fiction, I discovered a pretty neat but underutilized language for it called HUGO. Same guys. Actually, just same guy, singular: Kent Tessman. There were actually a couple commercial games done with this thing—at least one by Tessman himself.
When I Googled him a few years ago out of curiosity, I discovered that, yes, General Coffeeis actually an independent film company. They’ve had at least two films on the festival circuit. By “they” I again mean “Kent Tessman,” since he wrote and directed them.
Right then. I forgot about this strange renaissance gentleman until today, while following up on some links from Brett Terpstra’s recent episode of Systematic with comedian/actor/tech-nerd Rob Corddry. They talked about Markdown—I suspect it’s impossible to have a conversation with Brett about anything that doesn’t touch on Markdown—and on its screenwriting relative, Fountain. Corddry lamented how much the market leader in screenwriting software, Final Draft, sucks, and enthused at some length about a new up-and-coming program called Fade In, which looks like it’s shaping up to be the first serious competitor since the late Movie Magic Screenwriter1.
So I went to Fade In’s web site, and apparently, this amazing thing is written by just one guy.
Yes. Kent Tessman.
If he and Brett Terpstra are ever in a room together, it may cause an awesome nerd singularity. That’s all I wanted to say.
Sure, Movie Magic Screenwriter is still being sold. But Dramatica Pro, their story plot development tool, was still PowerPC code until mid-2012, parts of Screenwriter still are—and all their software looks like Word 95. Even on the Mac. But not as pretty. ↩
Reuters’ Felix Salmon—not blogging here under the auspices of Reuters—pens a fascinating analysis of everyone’s favorite crypto-anarchist virtual currency. If you’re interested in this sort of thing, read the whole article, not just to the point he says something you think you disagree with.
Bitcoins, like gold, are beholden to no government; they can’t be printed by any central bank, and they certainly won’t be subject to hyperinflation, since the global supply of bitcoins will never exceed 21 million. If you’re holding dollars, you’re trusting the US government not to destroy your wealth. Bitcoin, by contrast, is based on mistrust. It’s specifically designed so that it’s every man for himself. The level of mistrust built into bitcoin is both feature and bug. […]
In reality, bitcoin doesn’t really behave like a currency at all. In terms of its market value, it looks much more like a highly-volatile commodity. That’s by design: bitcoins were created to be the most fungible commodity the world had ever seen—to a point at which they would effectively erase the distinction between a commodity and a currency.
But is that a good idea?
Salmon is writing as neither irrational cheerleader nor reflexive skeptic. He clearly likes many of Bitcoin’s goals, but has thoughtful questions about whether Bitcoin is the best way to reach them.
CyanogenMod is “a customized aftermarket firmware distribution” for Android phones that adds new features; I think one of its main benefits is to decouple your phone from your carrier’s Android update timetable and let you run “stock” Android at the highest level your phone’s capable of.
At any rate, this news coming right after Samsung’s “Tizen is high end” noise is probably coincidental. But, well. Kondik doesn’t seem to like TouchWiz much, and if Samsung is making that UI more important—as they would if they wanted to be able to move users relatively seamlessly between TouchWiz Android and TouchWiz Tizen—it may make the company rather less appealing for a top Android hacker.
Thom Holwerda at OSNews argues that Samsung is setting up Tizen to dethrone Android on their smartphones. While I think OSNews tries for thoughtfully contrarian, they far more often come across as reflexively so, but Holwerda offers some interesting data points this time around:
Samsung has said that the Tizen phones being released later this year are high-end, not low-end. This contradicts what most industry watchers (including me) were assuming their plan was.
Tizen’s UI is apparently very close to TouchWiz, the UI layer Samsung imposes on Android. This will make it familiar for users.
Tizen will ship with an “application compatibility layer” from OpenMobile that lets many Android applications run on it unmodified.
I reached [this] conclusion from Windows Phone’s failure: being good isn’t necessarily enough. Momentum matters a whole lot. Which, to me, makes Tizen a bit of a mystery. If Android has the momentum Tizen will fail, but if Samsung has it Tizen might just have a chance.
While the kind of consumer who buys Android specifically for Android will very likely avoid Tizen, it appears Samsung is betting most buyers of their smartphones aren’t that kind of consumer. They may be right. If the functionality is about the same and the application store still has a few hundred thousand applications in it thanks to ACL, then there may be a whole lot of buyers who are just fine with that.
Ironically, what Samsung may be doing is taking a variant of the path that Nokia rejected. With Qt, Nokia already had their equivalent of the Application Compatibility Layer available; if they had been willing to forgo Google’s branding, the Lumia devices could have been Android-based phones with the Harmattan UI, with a software library of not only native Android apps but Qt apps fairly easily recompiled from legacy Nokia devices.