There’s not much actual information about CarPlay yet, but it’ll be a long time before it’s in enough cars on the road to be relevant.
It also has the potential to fizzle out because Apple demands more control than their partners are comfortable with, like iAd, or their interests conflict too much with the partners’ interests without enough upside to the partners, like iTunes TV rentals.
CarPlay will become much more interesting if and when, say, the millionth CarPlay-equipped car is sold to a customer, which is probably at least two years away even if manufacturer adoption goes very well.
Naturally, as a developer of a podcast app, I’ll support it if I reasonably can. It’s probably easy.1 But I don’t expect CarPlay support to be a significant force in the market for a while, if ever.
I’ve heard that there will be a CarPlay simulator for iOS SDK. I hope that’s true, since it would help tremendously — at least, if I’m allowed to develop for it. Apple’s language about third-party apps suggests (but doesn’t confirm) that it won’t be open to all developers, being limited to partner deals like Apple TV channels and Siri features. ↩︎
Libsyn is such a huge podcast host (the biggest?) that their aggregate stats are a reliably representative subset of the entire podcasting world, and Rob Walch is very forthcoming with numbers and trends here. It’s definitely worth a listen if you’re into the details of the podcasting business.
I’ve been enjoying Anže Tomić’s interview podcast, and this episode with Merlin Mann was especially great.
It’s always interesting to take people like Merlin, who we already “know” a side of from their podcasts, and put them in a different context where they’re forced into a different role. I think it’s the inherently interesting nature of this and the usually great results, not the easy scheduling or guarantee of good microphones, that explains why interview shows often have other podcasters as guests.
More detail on the 10.9.3 beta’s 4K Retina support by Anand Lal Shimpi.
This is the real deal: this is desktop Retina, officially supported, on practical, affordable hardware. If you’re willing to run a beta OS, have a “Late 2013” Mac Pro or Late 2013 Retina MacBook Pro, and buy one of the supported 4K monitors, you can have desktop Retina today.
The ideal screen size is tricky, though. Using perfect 2X scaling like Retina iOS devices, which looks best and has the least GPU overhead, the “right” size for a 4K panel is 24 inches (like Dell’s UP2414Q), since it’s simulating a logical size of 1920×1080. If you currently use 24-inch or smaller monitors, that’s the way to go.
If you use a 27- or 30-inch monitor, though, you’re accustomed to a resolution of 2560×1440 or 2560×1600. These scaling modes will simulate that on 4K, just like Retina MacBook Pros simulate higher resolutions, but the larger you go above 24 inches in size, the worse it’ll look. The biggest size at which a simulated 2560×1440 could look reasonable is probably 27 inches — I certainly wouldn’t buy a 4K monitor for Retina use larger than that.
Personally, since it’s probably coming within a few months, I’ll wait to see how Apple’s theoretical 4K 27-inch Thunderbolt 2 Display turns out before buying anything. If it has the reduced-glare construction of modern iMacs, it’ll be tempting. (If it has the same ultra-reflective-glass construction as the current Thunderbolt Display, it definitely won’t be.)
Web marketers know the value of a landing page, but the concept is foreign to mobile apps. Every new user is treated like every other user, leading to high abandoment rates:
If your mobile ad was about hotels in Paris, those users should see Parisian hotels when they launch the app for the first time.
If the new user was interested in vegan recipes, your app should hide the image of a steak from the Getting Started screen.
If the newcomer followed an invite to install your app from another user, they should be friended in-app automatically.
These are just some of the problems Tapstream fixes with Deferred Deep Links. They let you send any number of parameters to the app, and Tapstream either passes them to the app if it’s already installed or saves them for delivery when the app runs for the first time.
Now, you can customize each user’s first-run experience depending on the ad or page they came from, directly increasing both conversion rates and in-app engagement.
Pono’s main attraction is higher-than-CD-quality downloads, up to 24-bit/192 kHz, losslessly encoded as DRM-free FLAC files, and an awkwardly triangular iPod-like player, designed to fit in nobody’s pockets, capable of playing back those high sample rates.
As usual for the high-end audio world, there’s a lot of placebo and misinformation. Fortunately, smarter people than us have already written about it extensively.
First, for the straight scientific data and healthy perspective on whether 24/96 or 24/192 even can be audibly better than the 16/44 CD-quality audio we’ve had for decades, read Dan Rutter’s Righteous Bits:
The big deal about Pono is, of course, that 24/192 audio is meant to sound better even than CD, let alone lossily-compressed MP3s or AACs. According to Neil Young, digital-music listeners today, who are almost all listening to music data-reduced via MP3 or some other lossy codec, are as a result enduring sound worse than that from a 78-RPM shellac record. …
And actually, I think that from his own point of view he may be right, in a way. But the only way for him to be right is a terrible one, that leaves me wondering if everybody else is just humouring this old guy with a large wallet.
Problem one, which is a bit of a biggie, is that 24/192 doesn’t actually sound better than CD audio.
Then read Dan’s follow-up in response to the angry letters he got (if you didn’t read these when I first linked to them in November).
Going a bit deeper into exactly why 24/192 doesn’t sound better, Christopher Montgomery’s 24/192 Music Downloads are Very Silly Indeed uses actual science, math, and reasoning to prove that higher-than-CD-quality music is not only not better, but can actually be slightly worse. I learned a lot from this one:
Sampling theory is often unintuitive without a signal processing background. It’s not surprising most people, even brilliant PhDs in other fields, routinely misunderstand it. It’s also not surprising many people don’t even realize they have it wrong.
The most common misconception is that sampling is fundamentally rough and lossy. A sampled signal is often depicted as a jagged, hard-cornered stair-step facsimile of the original perfectly smooth waveform. If this is how you envision sampling working, you may believe that the faster the sampling rate (and more bits per sample), the finer the stair-step and the closer the approximation will be. The digital signal would sound closer and closer to the original analog signal as sampling rate approaches infinity. …
All signals with content entirely below the Nyquist frequency (half the sampling rate) are captured perfectly and completely by sampling; an infinite sampling rate is not required. Sampling doesn’t affect frequency response or phase. The analog signal can be reconstructed losslessly, smoothly, and with the exact timing of the original analog signal. …
Why push back against 24/192? Because it’s a solution to a problem that doesn’t exist, a business model based on willful ignorance and scamming people. The more that pseudoscience goes unchecked in the world at large, the harder it is for truth to overcome truthiness… even if this is a small and relatively insignificant example.
Finally, don’t miss Justin Colletti’s excellent Neil Young and High-Definition Sound, after polling his audience of audio professionals to see if they could blindly pick which of a pair of files was the uncompressed WAV and which was the 256 kbps AAC: (spoiler: they couldn’t)
Because of their ability to help us overcome the placebo effect and confirmation bias, blind AB tests have the power to help us make important decisions – and to keep us from making bad ones. …
In the meantime, let’s face it: If you’re a trained listener and you find yourself rapidly flipping back and forth between two sources, desperate to identify some kind of difference, maybe it’s because that difference isn’t very meaningful at all.
While any passionate listener is wise to push the limits of her listening through non-blind practice and blind testing, when she comes up against a difference that seems inconsequential, isn’t it best to focus on the big wins instead? …
Buy yourself some great headphones or speakers instead and you’ll have a tangible connection to your music that will smoke the competition in any A/B test.
I came to a similar conclusion in last month’s Headphones and Coffee.1 There’s a lot we can do in speakers, headphones, and mastering to improve music quality, but modern compression formats and the CD Audio sample rates simply aren’t real problems, and people’s money is better spent on improvements that actually bring detectable improvements.
Pono might bring us music that’s better mastered for high-end speakers and headphones, rather than awful butchery to sound better on FM radio and earbuds, but we already have that with Mastered for iTunes. We even already have remastered 24/192 FLAC downloads for purchase at HDtracks.
If Pono succeeds, it could expand the availability of well-mastered audio releases. That outcome would be great for everyone, but it would have nothing to do with most of the technical claims they’re making and selling to people in triangular metal enclosures.
That’s now slightly out of date. After everyone in the world told me to try the infamous Sennheiser HD-800 headphones, a better amp, and a more sophisticated audiophile DAC, I finally did. Review coming soon. ↩︎
Excellent episode of John Gruber’s podcast this week, featuring Glenn Fleishman giving the best explanation of Bitcoin I’ve heard yet. I knew the gist before, but not many of the details, such as how transaction verification and distribution is built into the mining system.
It really is an ingenius, beautifully crafted system, regardless of what you think of it as a currency or investment (neither of which I’m interested in).
Given everything presented above, it’s pretty clear to me that a “smartwatch” isn’t in Apple’s immediate future. But they’re clearly interested in wearable technology. So what are the alternatives for a product that could be released this year?
His guess is as good as any others I’ve heard. I don’t know if he’s right, but I agree that watches are problematic.
Apple’s previous blockbusters — Mac, iPod, iPhone, iPad — were all in categories that people really wanted, and there was hope of something good existing within what was technically possible. There were halfway decent portable music players before the iPod, and people really wanted portable music players. Same for smartphones and tablets.
I’m not sure those conditions hold, especially the demand side, for smartwatches: it’s a category that pundits and the tech media are telling us we want, but I’m not sure enough people really do.
For the last two years, I’ve been selling weekly sponsored link-posts, much like Daring Fireball’s, and they’ve done very well during most of that time, earning more than Amazon referrals and the Deck ads combined.
They were always very easy to sell, staying booked solid for months ahead of time. But in the last few months, sponsor interest vanished, despite my traffic and subscriber numbers remaining high.1 I asked around, and they all said the same thing: they stopped seeing enough clickthroughs.
I have some theories. Maybe I lost a lot of reader attention in the post-Google Reader fragmentation, or some of the Reader replacements make people less likely to click sponsored links. Maybe I’ve saturated the audience with repeat sponsors. Maybe so many similar sites started offering sponsored posts in the last couple of years that our readers are burning out on the format. But it’s probably just me and my site. Whatever the reason, they stopped working.
Saving them would probably require:
Adding substantial value, such as by doubling the number of posts (one at the beginning of the week and one at the end). But I don’t have enough post volume to support that without being annoying to readers, the chances of making a meaningful difference are low, and this is the sort of thing you can never really roll back.
Reducing the price by a lot. But booking, invoicing, coordinating, editing, and publishing them all have opportunity costs, and if I need to significantly reduce the price, that time is better spent on other projects.2
Doing more proactive selling, such as by posting more often here and on Twitter about selling sponsorships. But that’s really just more reader annoyance, it takes more time, and I’m just not comfortable doing it.
The cost of saving my sponsorships is too high for my tolerance and the nature of this site, so I’ve decided to stop selling them. Thank you to all of my former sponsors for supporting this site so well for the last two years.
Generally, sponsored links have made a shockingly high amount of money compared to other ads, affiliate links, paywalls, paid memberships, and donations. (Probably combined.) I don’t expect to replace their income, but I still make decent money from the other sources,3 and I’m fortunate that I have multiple jobs. In fact, I’m looking forward to losing the tedious job of selling sponsorships: it will give me more time for Overcast and my actual writing here.
Regardless of money, I’ll continue writing this site for the same reasons, and at the same frequency, that I always have: I love writing, and I must write. This is a creative outlet first and a business second.
This is probably the biggest reason why I shouldn’t make sponsorships work again. ↩︎
I’ve been planning to put up a “Store” section where I combine all of my various reviewed and recommended products into one big page with one-liner descriptions and Amazon affiliate links. Would that be useful? ↩︎
Amazon announced this week that it’s increasing the price of Amazon Prime from $80 to $100 per year, its first price change since its introduction in 2005.
This has not been a popular decision, to put it lightly, but most Prime customers — which I’ve been since 2005 — aren’t really going anywhere. There’s nowhere to go. Amazon has either destroyed or bought every competitor that has ever come close to its retail business.
Prime customers should hardly be surprised at the price increase — the service has been getting worse for the last few years at an accelerating pace. Overnight shipping, previously $3.99 on anything from toothpaste to televisions, is now variably priced so it’s no longer worthwhile on even medium-sized items. “Add-On Items” was spun as a huge addition to the Prime catalog, but it also excluded thousands of existing items from small purchases that were previously available with no restrictions. For shipping, Prime is a worse deal now than it has ever been.
Its shipping deals always felt unsustainable, so in the absence of other changes, I’d feel that the extra $20 per year was justified. But I suspect the changes to overnight rates and Add-On Items would have been enough to keep Prime’s shipping costs sustainable, and these haven’t been the only changes. The biggest annoyance recently is that Prime members are now being forced through this sleazy interstitial ad between checkout steps:
Showing this once is bad enough, but I see it regularly. Amazon is now annoying their best customers with desperate, obnoxious, tricky interstitial ads. (Of course, the checkbox is checked by default.)
Maybe the reason Prime economics have become tricky is because Amazon bundled in a video service nobody wants since 2011, leveraging one business’ extreme success to juice the numbers of one that’s faring poorly against its competitors. Netflix charges $95.88 per year for a similar service. How much of Prime’s price hike was really to help pay for the video service that’s just a tax on Prime members who have never used it and don’t want it?12
This isn’t just an Amazon problem. In the last few years, Google, Apple, Amazon, Facebook, and Twitter have all made huge attempts to move into major parts of each others’ businesses, usually at the detriment of their customers or users.3
Google, the geek world’s undeserved, unquestioned darling for well over a decade, has made all of its core products worse by forcefully shoving Google+ into them. They’re leveraging extreme success from some businesses (search, email, maps) to juice the numbers of one that’s faring poorly against its competitors (Google+). Sound familiar?
Apple’s Maps is still worse and has fewer features than Google Maps, which was previously integrated better into the iPhone and didn’t enable as much Google tracking creepiness. Not anymore. (Although I think the fault of this is shared between Apple and Google.) Many of Apple’s other applications and services have suffered as well as they’ve spread themselves too thinly and competed on more fronts.
The battle between Twitter and Facebook has made both products worse and caused weird restrictions to users on both sides, such as the walls both companies have installed between Twitter and Instagram. Twitter is now ultra-paranoid, defensive, aggressive, and full of annoying ads. Facebook’s core product is a mess as it continually tries (and fails) to capture the usage and style of Twitter, while annoying people more and more to keep its ads effective. (At least Facebook is consistent: they’ve always been getting worse.)
Amazon making its retail business worse to prop up another part of its ecosystem shouldn’t be a surprise to anyone. Amazon doesn’t want you to be only a retail customer anymore, and they’ll keep making it harder to be.
They want to lock everyone into everything. Just like everyone else. And we’re all worse off for it.
I wonder what percentage of Prime members have ever watched Amazon Instant Video. I haven’t, which is probably why I’m being shown these pushy ads. I imagine they wouldn’t be pushing it so hard if it was being widely used. ↩︎
Amazon also bundled the Kindle Owners’ Lending Library into Prime, which lets Prime-enrolled Kindle owners borrow one free book per month from an opt-in catalog that apparently sucks and is mostly filled with scammy bulk-published ebooks. It appears that Amazon pays an arbitrary flat rate of their choosing for the entire catalog and just splits it up between publishers based on usage (which is why the scammy ebook authors want you to pick theirs). Amazon is historically very cheap to authors with ebook payment rates, and they spin the Lending Library primarily as a publicity benefit (“exposure!”) for authors, so I wouldn’t expect this to be a substantial cost to them. (Based on this and this, it’s about 0.7% of Prime’s new cost.) ↩︎
How sad is it that Microsoft isn’t even in this list? They invented this move. ↩︎
Yesterday’s article has been on the front page of Hacker News for a while, and in the middle of the onslaught, I modified my Google Analytics code to start counting high-DPI screens. Why they don’t already count this is beyond me. They can, however, tell me what percentage of visitors support Java applets — 59% — or have less than 24-bit color — 0.5% — which, unfortunately, aren’t nearly as useful for informing modern web design as high-DPI displays.
I’ve been wondering for a while whether it was worth having separate 1X images instead of my current method, which is just making most images 2X-sized and letting the browsers scale them down.1
Based on this, I added these lines to the Analytics embed code: (it’s at the very bottom of this page’s source code, if you want to see it in context)
var pixelRatio = (window.devicePixelRatio >= 1.5) ? "HiDPI" : "1X";
if (window.devicePixelRatio) _gaq.push(['_setCustomVar', 1, 'DevicePixelRatio', pixelRatio, 2]);
Since making the change, Analytics has tracked 21,122 visits from supporting browsers2 (mostly from Hacker News), and the results are pretty great:
It certainly helps that 46% of my traffic is from smartphones and tablets. Within each category:
Smartphones: 98% HiDPI
Tablets: 66% HiDPI
PCs: 18% HiDPI
These are much higher ratios than I expected.
Obviously, this audience isn’t representative of the world’s entire web-browsing population, but given how important mobile browsing is to every site and how lopsided this data is for mobile devices, I think the results are clear: assuming everyone is high-DPI and designing accordingly is not only a safe bet — it’s a requirement. And serving 1X images isn’t something that small sites (for which bandwidth costs aren’t significant) need to worry much about.
Since I don’t have a Retina desktop display yet, I captured the Amazon promo in Worse at high resolution by simply zooming it in a huge Safari window until it was 1800 pixels wide. ↩︎
This data also doesn’t count browsers that don’t support window.devicePixelRatio. But that’s not many anymore, especially among visitors of my site. The breakdown for this sampling period was 46% Chrome, 38% Safari, 10% Firefox, 3% Android Browser, and only 1.2% Internet Explorer. ↩︎
Amazingly useful video demo and explanation by Christopher “Monty” Montgomery. (This one’s all FOSSed up with WebM so it won’t play in Safari or most mobile browsers, so someone uploaded this YouTube version).
Microsoft went through a blogger’s private Hotmail account in order to trace the identity of a source who allegedly leaked trade secrets.
(Also, how creepy is the name of Microsoft’s “Trustworthy Computing Investigations” department?)
I don’t know why I see people lambasting Microsoft for this and advising people to leave Hotmail for Gmail, then patting Google on the back for today’s completely unrelated (and long overdue) discontinuation of unencrypted connections. Google shouldn’t have been allowing unencrypted connections before today anyway — what year is this? — and they still store all of your email without any protection from them (or any secret “national security” demands that they may be forced to comply with).
You won’t fix problems like this Microsoft debacle long-term by moving from Hotmail to Gmail. If your email contains or will ever contain sensitive information, you shouldn’t be using a free webmail service whose entire business model relies on analyzing your mail’s content for advertising purposes.
I continue to recommend buying your own domain and pointing it at either your own IMAP server or a dedicated, paid, standard IMAP host. (I’ve used Fastmail for 7 years and have no complaints.)
PHP has always been poorly designed and poorly stewarded, but it’s appealing to developers because it’s easy to learn (and tons of programmers already know it, so it’s easy to hire for), it’s everywhere and runs on anything, it’s very fast, and it’s very simple to host and maintain server-side. In short, it’s extremely practical.
PHP isn’t a great language, but it is a good language. Most non-PHP developers judge the entire language by bad code snippets “written” (mostly copied and pasted) by amateurs for PHP 4 and posted on Expert Sexchange in 2002, but that’s really not fair: it’s just as possible to write good, well-structured code in PHP as in most other languages, and it became a much better and more capable language in the 5.x series. There are many bad PHP coders and a lot of bad PHP code out there simply because it’s such an easy language for beginners and has been so popular for so long.1
Facebook’s HHVM is one of the best things that has ever happened to PHP. Facebook uses a ton of PHP, and they stand to gain a lot if they can make it faster, so they wrote their own runtime that’s much faster than the official one. This is exactly what the PHP world needed: making its already-fast performance many times faster (amplifying one of PHP’s biggest advantages over other common web languages), providing much-needed competition to Zend, and offering a contingency plan if PHP’s core maintainers ever do something really dumb to the language (which they often attempt to). I’ve already optimized my in-house framework for HHVM and plan to deploy it for testing on Overcast’s server shortly.
Yesterday, Facebook announced Hack, a new language that also runs on HHVM. It’s like a “PHP++” — it adds optional static typing, generics, and a bunch of other enhancements and conveniences to PHP.
Unlike HHVM, adopting Hack is a huge risk. HHVM was great because you could switch to it and switch away from it freely, with almost no effort (especially to switch away). You were still writing PHP. But once you convert a file to Hack and use any of its new features, it’s no longer valid PHP, so you must always use Hack and HHVM from that point forward (or undertake an expensive rewrite).
You’re effectively writing in a new language, albeit with a much smaller learning curve than other language switches since you already know most of the syntax and API. But because Hack isn’t PHP, some of PHP’s biggest advantages — ubiquity, maturity, stability — don’t apply.
Hack is also vulnerable and politically unstable. It’s developed and supported exclusively by one huge web company, and they may decide to deprecate and replace it in a few years2 as their technical needs change or its core engineers move on to new projects.
Since Facebook is migrating its own code to Hack, pure PHP will become a less-tested second-class citizen on HHVM. This could devalue HHVM to the outside world, throwing away the benefits it’s bringing to PHP programmers everywhere. The closeness of the two languages will probably prevent this from becoming a significant problem, but it’s a problem nonetheless.
While I’m mostly glad to see Hack, I’m not going to start writing in it yet. I’m keeping an eye on it, but I don’t want to build a codebase on it until (and unless) it becomes more popular and stable.
Everyone thought all Rails code was inherently amazing in 2006, but that’s because it was very new and was therefore being used mostly by good, experienced programmers. But look around today, with Rails about 8 years old, and there’s a lot of crap out there written in it, too. PHP has been extremely popular for almost twice as long.
Rails’ initial appeal had little to do with the Ruby language: its primary innovation was bringing the modern MVC framework and structure to web apps, rather than having a directory of PHP files sloppily mixing layout with logic. It was a better structure than what most PHP programmers were doing in 2006, but that structure was quickly copied by good PHP programmers and frameworks. There was nothing about the language that made it impossible to use PHP 5 the same way, especially since PHP 5.3 added closures and late static binding in 2009. ↩︎
Facebook’s original 2009 HipHop compiled PHP to C++ to then build binaries. Recently, they deprecated that and replaced it with HHVM as a more convenient JIT VM. ↩︎
Hack is also vulnerable and politically unstable. It’s developed and supported exclusively by one huge web company, and they may decide to deprecate and replace it in a few years as their technical needs change or its core engineers move on to new projects.
Many Hacker News commenters and some human beings asked why this was any different from Microsoft effectively owning C# or Apple effectively owning Objective-C.
Microsoft and Apple have massive vested interests in supporting their languages and platforms. They stand to lose a lot to their core businesses if they stop. Developers’ interests align somewhat with theirs in this regard: one developer doesn’t have a lot of power in those relationships, but the sum of all developers definitely does, so these companies generally need to care for these languages and maintain these platforms for a long time.
Facebook has no reason to care about HHVM or Hack except that they use these tools themselves at the moment. They get almost no benefit from anyone else using them,1 and they will suffer effectively no cost if they kill them, ruin them, let them stagnate, or take them private again. Their incentives don’t align with outside developers’ interests at all.
(The same applies to some of Google’s projects, like Dart.)
Except finding bugs and occasionally submitting patches, but Facebook is so massive with such a large codebase that they’re likely to find most bugs relevant to them long before anyone else does. ↩︎
We got an amazing response from our huge baby stuff review last year. Adam is now almost 2 years old, and these are some of our favorite and most useful products that we recommend for toddlers and their parents.
Britax Pavilion car seat (newer version): We wish we switched to this earlier — we didn’t realize that we didn’t need to wait for our kid to outgrow the mediocre, frustrating Graco SnugRide infant seat. In practice, the convertible seat wasn’t very useful after about 6 months because carrying our kid in it became prohibitively heavy. The Britax Pavilion is a noticeable step up in quality — it’s very nicely padded, it’s easy to move between cars (much easier than removing the Graco bases), the straps hardly ever get tangled in use, and it adjusts to child growth without needing to be taken apart. The “Click and Safe” ratchet on the main tightness strap is very nice, too.
OXO Tot plate and silverware set, divided plate, and bowl set: All of these are great. The fork and spoon are very easy for the kid to hold, with thick, rubberized handles and intuitive curves. The fork is almost spoon-shaped, but it still has useful enough tines to pick up food. All of the plates and bowls have rubbery bottoms to prevent sliding, so they stay in place on high-chair tables until your kid learns to pick them up. The curved lip on the plates is nice for certain foods, but it’s detachable for when it’s not needed. The bowl lids snap tightly for transporting snacks in diaper bags or storing leftovers in the fridge. All of this stuff is dishwasher-safe, and also easy to clean by hand.
OXO screw-top snack cup: Great for Cheerios or the overly natural Cheerio alternative that we buy at Whole Foods (of course). Kids can reach in and grab a handful, but they can’t easily spill the whole cup — at worst, they lose a handful at a time. We previously used the Munchkin snack catchers, which we loved until our son figured out how to remove the friction-fit lids. He hasn’t figured out the Oxo screw-on lid yet, and the Oxo also has a nice sealed lid to attach when you want to bring this in a diaper bag or stroller pack.
Green Sprouts Eva plastic bibs: These are much easier to clean than cloth bibs once your toddler starts using silverware unassisted. Compared to fancier rigid plastic bibs, these are flexible, foldable, easily packed, and nearly weightless. You don’t need many — we’ve been fine with just one 5-pack for over a year without wearing any out yet. Pro tip: Turn the pocket inside-out. This makes the pocket stay open wider, so it catches more food.
Planet Wise and Itzy Ritzy small/large wet/dry bags: A washable, reusable alternative to using a million plastic bags. We’ve used ours for transporting snacks, diapers, and wet or dirty clothes inside bigger bags to keep them separate. The lining is waterproof, but the zippers aren’t — moisture won’t soak through the bag, but they will leak if you spill a drink inside and turn it over.
Petunia Picklebottom Weekender diaper bag: We wanted a larger diaper bag when our toddler started needing more clothes changes, snacks, and toy diversions, and stopped breastfeeding. Tiff wanted “a girly bag that looked less like I was just lugging baby stuff all the time”. This one is very useful, has tons of pockets, and is very spacious — it opens very widely, and some sections expand, so you can see the entire interior when packing, and you can always find what you need without much digging. It’s also still fashionable enough that it’s not just a “diaper bag” — it’s just a really nice bag, and it will be useful long after we stop needing it for this role. Go see one in a store if you can. Some of them have a “wipeable exterior”, but ours doesn’t, and it hasn’t been a problem.
Fisher Price Music Parade ride-on car: This thing looks so cheesy, we didn’t think he’d like it. But he loves it. He pulls it all around the house and has been consistently amused by it for almost a year so far. He can push, pull, or ride on it. The seat opens and can store stuff. There’s lots of buttons that play music and sounds. It’s a 1-year-old’s paradise. This might be his favorite toy.
Melissa and Doug cardboard blocks (or a bigger set): You’ve probably seen these in every preschool (including your own). We got our set at a yard sale for $2, thinking it was a risky purchase that our son might not like. The moment we brought them home, he was hooked and started instinctively building towers. They’re exactly how you remember: strong, light, harmless, and cheap (even if you pay more than yard-sale prices).
Radio Flyer Walker Wagon: We got this to help our kid learn to walk. It’s very sturdy and worked well for its purpose: since the wheels don’t swivel, it only goes straight, making it easier to keep control. Now, over a year later, he still plays with it, sits in it, and pulls it around. And whenever other kids come over, they all want to play with it, too. The sides are easily removed, as they’re only held in by gravity, so it’s very versatile.
Step2 Whisper Ride push car: A fun alternative to a stroller for short walks: up and down the driveway, or at most, around the block. The handle folds down for easy transportation. The adult and kid each get a cup holder, and the kid loves opening the hood and putting stuff inside. And as he turns the wheel and squeaks the horn, he might feel like he’s driving — whatever he thinks, he sure likes it.
Uppababy G-Lite portable stroller: Extremely lightweight collapsible stroller. We got it as a more portable alternative to our big Bugaboo, but most umbrella strollers didn’t feel sturdy enough, and we’re very happy with this choice. It collapses very small (although long), and it’s easy and quick to open, yet it has most of the nice features of other large strollers, including a full sun-shade, a mesh carrying basket underneath, and a cup holder. In its folded position, it can stand upright, which is convenient when unpacking it. It’s very maneuverable, and with the attached carrying strap, you can carry it on your back if you need to. Its many well-thought-out functions and its light, sturdy construction made this stand out from other similar models. We also got the optional case to keep our car trunks clean when the stroller wheels get dirty, and it’s nice and very functional.
“i play” plastic summer shoes: These look like Crocs, but more stylish and with a full back. (We tried baby Crocs, too, but our son was able to walk in these more easily.) Socks are optional: they can be used like regular sneakers or water shoes. These were great all summer, as he loved playing with the hose in the front yard, and always found every puddle available for stomping while walking. We plan to get another pair this summer. We also recommend the Crocs rain boots for springtime puddle-stomping: they have no seams so water can’t get in, they’re very easy to put on, and the sole isn’t too thick so they’re easy for toddlers to walk in.
Zoli BOT sippy cup: When they’re clean and fully sealed, these are the best sippy cups we’ve found. We’ve had a few of these (and many others), and unlike others, these have never broken or snapped open when they’ve been thrown or dropped. The clever weighted-end straw is also great: liquid comes up through the straw at nearly any orientation that the cup’s being held in. And the straw’s valve-like tip won’t leak when tipped over. But it’s not perfect: the straws are hard to clean and eventually need to be expensively replaced, it’s very unforgiving if the lid’s not screwed on perfectly straight, and there’s a weird issue with fluid dynamics: if there’s a large temperature difference between the liquid and the surrounding air, the pressure change as the temperatures equalize often forces some of the liquid out of the straw in a slow leak. So they’re imperfect, but they’re the best we’ve found in an otherwise miserable category.
JJ Cole Urban Bundleme: Effectively, a sleeping bag for strollers so you can walk in cold weather and your kid stays warm. It’s much easier than wrapping a blanket around your kid and hoping it stays in place, doesn’t get kicked off, and doesn’t drag on the ground or get caught in the wheels. The Bundleme has slits in the back for passing the straps through, which keep everyone and everything securely in place, and it can completely unzip for easy removal of accumulated lint and Cheerios at the bottom. (It even unzips entirely if you want to only use the back half.) The outside is water-resistant and there’s a little pocket on the side. We chose the Toddler size, which also fits our friend’s 6-month-old perfectly well, so it’s probably worth skipping the Infant size.
Safety 1st pinch/door-slam preventer: We don’t know if all kids love closing doors, but ours sure does. These are surprisingly good: they can go on either the outside or inside of the door to protect against slams or hinge-pinches, they’re small and subtle, and they hang nicely on the doorknob when not in use.
Skip Hop big animal bath towels: Bigger and better than most baby or toddler towels. Our kid quickly outgrew most others, but these still wrap completely around him. The hood is both adorable and convenient for alignment and hair-drying. They dry quickly, and they’ve held together through almost two years of heavy use so far — they haven’t faded at all, and not a single animal piece has fallen off in the wash. The included washcloth-mitts are just as good, too.
Aden + Anais big washcloths: Big, thick bath washcloths that hold a lot of water. They’re much softer than terrycloth (great for face-washing), and they’ve proven extremely durable. Highly recommended.
Pampers Cruisers diapers: We’ve tried most diaper types (including a brief cloth attempt), and these have always worked best for us. They’re soft, they fit well without much bulk, and they hardly ever leak (as long as you don’t forget to pull out the leg ruffles). The Extra Protection overnights are especially great, too. Our strategy for sizing is simple and has served us extremely well: if there’s ever a leak, especially at night, we go up to the next size.
North States “Superyard” (jail): This wooden jail is great-looking, heavy, sturdy, and secure. We always get compliments on it. The wood is high-quality and hasn’t chipped or cracked at all, and it was extremely well-packaged on arrival. Our kid was able to climb out of his crib at its lowest setting, but still can’t climb out of this because there aren’t any horizontal foot supports: it’s all smooth vertical bars. (He also just likes being in it, so he doesn’t usually try.) The door is a great feature, although you’ll need a toy-clip rope if you want to hold it open. It’s not portable, and is for semi-permanent setups: it’s heavy and doesn’t collapse easily. (This plastic one is portable and lightweight, but not nearly as good. Suitable for leaving at grandparents’ houses.) And we recommend the 2-panel extension: it gives much more room inside.
Once again, if you have any questions about what we liked and didn’t like about these or any other baby or toddler products, you can email Tiff and she’ll be happy to help.
Ignoring the cloud or web services because they are out of your comfort zone is no longer an option.
But we need to sit down and have a talk about web hosting. Seeing well-meaning developers get burned, abandoned, or ripped off by unexpected changes, limitations, and costs in the cloud-service landscape is too painful for me to watch in silence.
The common wisdom, which Justin suggests, is to go directly to a highly abstracted, proprietary cloud service or a higher-level hosted back-end — the kind that are so high in the clouds that they call themselves “solutions”. But the “BaaS” landscape is still very unstable with frequent acquisitions and shutdowns likely, and hosting on VPS-plus-proprietary-services clouds like Amazon Web Services or higher-level services like Heroku or App Engine can get prohibitively expensive very quickly.1 Developers who build everything on these services by default would probably be shocked at how cheaply and easily they could run on dedicated servers or unmanaged VPSes.
Running your own servers really isn’t hard. Most developers reject the idea outright without even trying because it’s unfamiliar and intimidating. It’s considered an extreme, horrible, unfathomable situation that must be avoided at all costs, usually by people who have never tried it.
But that’s a fallacy. There’s a learning curve and necessary integration work for every back-end option, from iCloud and Dropbox to your own colocated servers. AWS, Azure, Heroku, App Engine, Parse, and similar services aren’t free, easy, or automatic. (Neither is “scaling” with them, regardless of what you’ve heard.) Hosted infrastructure is like sync: it has a minimum, unavoidable level of complexity to accommodate. You can’t just check a box or set a BOOL and have it all taken care of for you.
If you’re going to invest your time into learning any of these options, you might as well learn the timeless one that’s most likely to survive every acquisition, language, trend, and paradigm shift: basic Linux server administration.2
Wait! Don’t leave! Hang in there.
Modern Linux server administration is much easier than you think. If you can write a halfway decent app, you can manage a Linux VPS in your sleep.
You don’t need to compile kernels, build anything from source code, partition any disks, or deal with iptables in most cases. The defaults of good distributions and packages are almost always very secure. And once you set everything up, you can leave it running largely untouched indefinitely. You’ll probably never be woken up at 3 AM to reboot anything or delete log files.
Take the weekend to open a Linode account, create the cheapest instance ($20/month, billed hourly), and plow through initial setup of something substantial, like your own basic Ruby, Python, PHP, or Node app with a boring old database (MySQL or Postgres) and webserver (nginx or Apache) if necessary.3 If you mess up so badly that Google can’t help you, just delete or restore the instance and start over. Cheap VPSes have made it easier than ever to experiment and learn.
Want a scalable setup? Make three ($60/month). Two are your webservers and one is your database.4 Put a virtual load balancer in front of the two webservers ($20/month).5 At any time, you can then easily take either of the webservers down for a few minutes to upgrade to a higher-powered instance without taking the whole service down. If you get an influx of traffic one day, just clone a few more webservers behind the load balancer. After the load subsides, delete the ones you don’t need anymore.
Self-managed VPSes are the best option today for most developers hosting web apps. Good VPS services provide many of the benefits and easier scaling of higher-level services, like easy cloning, easy backups, fast upgrades and downgrades, and elimination of most tedious hardware management.
If you end up getting so big that you need more horsepower than VPSes can practically or affordably offer, you can switch from standard Linux VPSes to cheaper, faster dedicated or colocated servers very easily using most of the skills and tools you already have. You can even mix and match VPSes and dedicated servers at some hosts.
If any particular host starts going downhill or is no longer price-competitive, you can take all of your skills, tools, and infrastructure and move them to another host. Unlike proprietary cloud platforms, regular VPSes and servers are a competitive commodity market. Linode sucks? Try DigitalOcean, which offers effectively the same product at similar prices. Rackspace too expensive? Try SoftLayer or Limestone Networks. Simply avoid all hosts’ proprietary, hard-to-replace products and stick to their standard VPSes and servers, and your service and knowledge become portable and resilient.6
Tumblr taught me by necessity, especially in the early days when we had no staff and very little money, how to develop and host a high-traffic web service cheaply, easily, and sanely. I couldn’t let the servers require too much maintenance because server administration wasn’t my main job — we didn’t have a dedicated server administrator for the first few years, so I just had to set things up such that they didn’t need much administration.
In 2006, that was a rarely-needed specialty. Even when I launched Instapaper in 2008, hardly anyone making consumer apps needed those skills. But if I hadn’t learned them at Tumblr, Instapaper could never have grown independently, The Magazine wouldn’t exist, and Overcast would be much more limited.
Today, the ability to sanely and economically run a web back-end is a basic requirement for a lot more developers, and it’s only going to become more necessary in the future. Many apps are already expected to have sync, connectivity, and web features, and those expectations will only spread to more categories in the future. Refusing to embrace this shift will severely limit your apps and may cost you your business.
Start building those skills now.
“Cloud” is such a buzzword these days because cloud hosts, continuing the web-hosting tradition, have very fat margins, low barriers to entry, and high barriers for customers to leave.
Virtualized cloud services are web hosts’ dream: there’s much more opportunity for branding and hand-wavy products with ambiguous benefits and unverifiable claims, less focus on numbers that could be comparison-shopped (what, exactly, is “4 CPU”?), highly profitable usage of old hardware (often running an undifferentiated mix of hardware up to 5 years old or more), and more room for proprietary lock-in. And they can still price their services as if RAM was expensive: the biggest con in the history of web hosting. It’s high-profit wins all around. ↩︎
Linux distributions are an unfortunate oversupply of paralyzing choices. The easiest path is to learn one major distribution very well and use it everywhere. You want conservative, slow-moving, and very popular: that way, updates almost never break anything and it’s all very stable (conservative), you don’t need to re-learn the basics and tools constantly (slow-moving), and there are tons of Google results and tutorials for every question you’ll have (very popular). I chose CentOS in 2005 with no regrets: it’s basically a free version of Red Hat Enterprise Linux that exceptionally satisfies all three conditions. I’ve heard Debian is also a solid choice. Always deploy the latest official (stable) 64-bit release. ↩︎
Boring old is the key to server-administration happiness. Stick to the boring and the old, and you’ll rarely need to deal with anything. The lower down the stack, the more important that becomes.
This is why I still very happily use MySQL (InnoDB-only) instead of a trendier, newer database: it’s very fast when used properly, and I’ve never seen it crash, corrupt data, or perform irregularly. And I’ve run a lot of heavily-used MySQL servers. Not a single crash, ever. The only other heavily used server tool I can say that about is HAProxy. ↩︎
Don’t forget to schedule automatic database backups, since the host’s backups probably won’t be consistent for the database files. For MySQL, mysqldump is fine until your database gets huge, at which point you should consider xtrabackup.
My favorite option: make a replicating slave database server (another $20/month) whose sole responsibility is backups. Every day, have it shut down MySQL, tar-gz the entire /var/lib/mysql data directory with the binlog number and position in the filename, encrypt it, upload it to a S3 account dedicated to this purpose, and restart MySQL. This is by far the most reliable and fastest-to-recover MySQL backup method that I’ve ever used.
(Bonus points: between backups, every few minutes, rsync the binlogs somewhere. Then you have point-in-time, query-level recovery to any point up to a few minutes ago.) ↩︎
If a virtual load balancer isn’t available at your host or you don’t want to use one, just use a software one, like the excellent HAProxy, running on the cheapest VPS available. (They’re very low-needs.) ↩︎
I also maintain a giant shell script that configures everything I need on a clean install of CentOS. Once you’re comfortable with the basics, I suggest doing this, as it makes it easier to set up new servers or switch hosts.
Making such a script is much easier with VPSes, where you can start a new one, test it out, change it as needed, delete the instance, and try again on a clean one.
Ideally, your servers should be disposable and easily recreated. The only backups you should need are your source code (which should include any required server-setup scripts) and your database’s data. ↩︎
The quick and obvious answer is that this site should be on my own server. But it’s more complicated than that.
Read both links.
Brent has run servers before, but mostly in the Bad Old Days when running servers was a lot more finicky. (Also, while I know Brent knows this, to be perfectly clear to everyone else: if you’re running a public-facing server in your house, office, or anywhere except a datacenter, you’re doing it wrong. Start over.)1
Modern Linux running on modern VPS services is a whole new world. People running servers just 10 years ago couldn’t even dream of how easy we have it today.
To answer some of Brent’s questions:
Or I could could get a VM — say the $5/month plan from Digital Ocean. For a static site I’d just need Apache or Nginx and a hard drive for my files. Sounds simple, and a gentle way to dip my toes into running my own server.
But would that actually be fast enough to handle a Marco-spike?
Definitely. This is a static site, and I host it with a basic, non-“tuned” Apache configuration on a 2 GB Linode. I bet I could get away with less.
There’s a limit to how much Apache can serve off a VPS, but I haven’t found it. Earlier this month, I had a traffic spike that brought about 55,000 pageviews in 24 hours and the server didn’t even blink. My highest-traffic day ever on this VPS was 113,000 pageviews, and again, no issues at all.
In fact, I’ve never heard of anyone’s static site being legitimately overloaded. But that wasn’t Brent’s problem, because I remember noticing a slow page-load when I first loaded the page, before I retweeted it. Dreamhost runs hundreds or thousands of sites on each server, so it’s anyone’s guess what else may have been happening on Brent’s server at the time.
And what happens if — again — I’m asleep, on a plane, or otherwise away from my computer?
The cheapest play, and best for me in terms of learning new things (which is not nothing), is the VM.
But could I sleep?
Mostly. And that’s the same answer I’d give for being the sole person responsible for any web service hosted on any platform.
Things go wrong on every platform. But the higher-level and more abstracted it is, the less you can do when things go wrong (which really annoys your customers), and the more you rely on opening support tickets and hoping the people on the other end do their job properly. (In my experience, across all hosts I’ve ever used, that happens about 50% of the time.)
For people venturing into VPSes or dedicated servers, use a decent external monitoring service that can alert you when your site is down (I use Pingdom). See how often it actually happens — it’s much less than you may assume.
If the reality of occasional freak downtime becomes bothersome, buy your host’s lowest monitoring plan that includes some kind of proactive response (e.g. they’ll reboot the server if it stops responding to HTTP checks). Find the level of host interaction that works for you. Their staff can’t scale your site for you if you’re growing like crazy, but the causes of most outages are much more boring and can be fixed with a reboot.
13 years ago, for a few months, Marco.org was hosted on an old computer with a Rubbermaid tub for a case (I had all of the parts necessary to build a second computer except a case), secretly running headless in my friend’s bedroom closet in his parents’ house while we were away at college. I don’t have a picture of the completed system, but this is how it looked running in a cardboard box before I got the Rubbermaid. I was an idiot. (Bet you haven’t seen another Pentium II motherboard with ISA slots.) ↩︎
[Home-hosting] works fine because at the end of it all, this is here as a way of me learning things. It’s taught me more about virtual machines than I could have picked up from reading. It’s taught me how to configure Apache (well, I try!) and it’s taught me how to install Pelican as well as pick up some basic PHP skills to boot. And it’s cost me nothing except the electricity the host machine uses. But that’s on anyway because it’s where all my backups live, so there’s that.
I’m sure Marco meant to qualify his comment, and that he meant that people are doing it wrong if they’re running a business, or that they’re getting hundreds of thousands of hits a day.
Nope. I would have qualified it like that 10 years ago, and maybe even 5 years ago, although it’s less about daily pageviews and more about how much it matters to you if your site goes down for a few hours or days. I did run a home-hosted server for a while, and it was terrible — I always stressed out about my site being down whenever there was a power outage, ISP downtime, or a flaky hardware issue.
All of the learning benefits Oliver lists are identical to running a VPS. And when you can get a professionally hosted VPS for just $5 per month with most of the snapshotting and rollback conveniences of hosting it yourself, the argument for home-hosting even for tinkering and learning becomes pretty weak. That’s less expensive, in many places, than the electricity to host it in your house, and even less if you don’t actually use it for an entire month. And when writing to app developers, $5 per month is not a deal-breaking amount of money — that’s significantly less than the cost of listing an app in Apple’s store at all.
My fear is that people will read Marco’s comments and not try things out because they were told not to. I’ve nothing but respect for Marco - how many businesses have I built and sold? - but I do hope that his semi-elitest slant on things doesn’t stop someone from playing, someone from learning or someone from honing new skills because they can’t afford to get a host elsewhere. After all, VPSes etc can be daunting when starting out, too.
Calling my suggestions for app developers to use cheap VPSes “elitist” is baffling and completely off-base. And when did I tell people not to try things out? On the contrary, I’m encouraging developers to teach themselves Linux server administration because it’s easier than they think.
The easiest way to try it out isn’t to tell people to set up a home server (virtualized or not), find and download the right ISO for their distribution to run on it, install it, make the many decisions that the installer presents, figure out networking configuration, set up port forwarding… that’s too high of a barrier for many. That’s enough to make them say “Forget it, I’ll just run this on App Engine.”
It’s much more convincing, and much more productive to the goal of getting more people into this, to say, “You can start up a Linux VPS in five minutes by going here, paying a very small amount of money, and clicking three buttons.”
By the authors of Threes, a truly excellent, Letterpress-quality iOS game that was quickly and brutally ripped off en masse.
Ripoffs are very hard to deal with, emotionally. I talked a lot about my battles with my own emotions over being ripped off in my XOXO talk last fall, but I still haven’t won those battles — it still bothers me how much The Magazine and especially Instapaper were shamelessly ripped off by their competitors.
I’d make something original, and as soon as I released it, it would be rebranded by the press and public as a generic category of apps such as mine. Read-later apps such as Instapaper. It frustrated me deeply, but it happens all the time. Remember how quickly the iPad became “tablets such as the iPad”, years before there was any real competition?
Once your product is perceived as a generic category and competitors start rushing in, the value of original innovation is lost. If you actually bother to create something original of value in a hot business, everyone will rip you off so quickly that you get very little advantage from it, with zero repercussions to the clones, because nobody cares except you.
And I was never ripped off as rapidly as Threes or any popular iOS game these days. The modern App Store game environment is brutal. The biggest, realistic solution to the problem would be for Apple to remove the Top charts from the App Store, but I think it’s clear at this point that Apple doesn’t care enough about encouraging quality software on the App Store to make such a move.
Even if the Top charts were gone, there would still be clones — it just wouldn’t be as profitable. I don’t think a good solution to this problem really exists, except to try not to care as much next time.
To continue the ongoing blog conversations between Brent Simmons and me, I’d like to point out that the system he describes here is extremely similar to my open-source FCModel.
In response to some of the notes at the bottom:
FCModel supports primitive (non-object) properties for exactly the reason Brent describes: internally, it’s using setValue:forKey:.
FCModel supports custom serialization of any property via serializedDatabaseRepresentationOfValue:..., as documented in the header. (Too much of the documentation is still just in the header.) By default, like in FMDB, NSDate values are converted to/from Unix timestamps for storage. (I recognize that isn’t a perfect translation, but it’s a reasonable default.)
FCModel does use property introspection. See here: after opening the database and performing any needed schema migrations, FCModel reads all of the tables and object properties, does some basic checks, tracks things like default values and whether NULL is allowed, and warns if there’s anything weird in the schema.
If anyone’s curious about FCModel, I encourage you to read the brief README, FCModel.h, and maybe even FCModel.m if you want to see the inner workings. I’ve intentionally kept FCModel small, as a design goal, for this purpose. Core Data offers much more functionality but much more complexity and opaqueness — FCModel is for people who want the opposite, and would rather just write SELECT queries (and occasional bulk UPDATEs) in compact, readable SQL.
As an aside, I’m immensely proud of FCModel so far. It’s my most useful open-source contribution to date by far (in my opinion), we’ve gotten many great contributions, and a handful of people are already using it to build and ship apps. (I’m building Overcast with it, of course.)
People keep sending me this article and its derivatives, looking down on Keurig and other single-cup one-button brew systems that serve mediocre, stale coffee to people who don’t care about coffee quality to the ridiculous degree that “we” do.
While throwing away a little plastic cup for each brewed cup of coffee from these systems is indeed wasteful and should be an environmental concern, let’s not rush to judge.
We’re the ones who have made drip coffee, something that was cheap, easy, and available to everyone, everywhere, immediately for decades, into an ever fancier, more time-consuming, more expensive, and more exclusive obsession over gear and technique.
We’re the ones who keep creating, replacing, Kickstarting, and spending top dollar on ever-more-specialized equipment, even when it differs from established products only in arbitrary or purely decorative ways that have no discernable effect on the actual coffee (except maybe prolonging the process of making it).
We’re the ones who obsess over every little detail of brewing technique as if they matter much more than they really do, making good coffee ever more alienating and confusing to casual coffee drinkers who don’t have time to study and fuss over it as much as we do.
We certainly pay for it. Not only is our fancy coffee much more expensive than regular automatic drip at retail, but we also pay massively in our time, and we ask the public to do the same. That’s why specialty coffee shops often have a huge line: it takes much longer to make an individual pour-over cup than almost any other well-known method of making hot coffee except a siphon brew.
Our methods aren’t environmentally sound, either. We’re not throwing away a little plastic cartridge with each cup we brew, but we’re often throwing away big paper filters with each one. We’re almost certainly heating the water less efficiently, and often to a higher temperature, than any automatic brewer.
And then our fancy coffeeshops brew our fancy coffee into a disposable paper cup, usually wrapped in a disposable paper insulator, and topped with a disposable plastic lid — but not before many customers add sugar from a paper packet and stir it with a disposable stick of plastic or wood.
Maybe we’d get some of the Keurig fans to use our methods if we weren’t so pretentious, wasteful, expensive, and inaccessible ourselves.
Maybe we need to tone down our obsession on the hand-crafted, hand-made, artisanal, and ritual. Sorry, your coffee isn’t an artisanal ritual. Making great coffee is not inherently romantic, noble, or even difficult. There’s nothing wrong with using a $30 French press, a $25 plastic plunger, or a $35 cold-brew basin in the boring, simple, as-directed ways. Plenty of people don’t have burr grinders and are perfectly fine with the spinning-blade ones. Your kettle doesn’t even need to look like a beehive.
Our obsession with gear and “rituals” is only distracting them — and us — from the real problem: old, mediocre, or badly roasted beans.
We’ll only fix the real problem and get more people back to our side if we drop the pretention, ritualization, and gear obsession and recognize why so many people opt out of our fancy coffee methods and into Keurig’s.