Thoughts on the Supreme Court and US politics lately

It’s been silent on icanthascheezburger for awhile now, but after this week it feels necessary to speak a little bit about the state of political affairs in the US, because they are troubling.

Naturally, a series of SCOTUS decisions are at the top of my mind, and this week’s decisions were especially sad to hear, most of which was the widely anticipated overturning of Roe and Casey.

But it isn’t just about Roe and Casey, or specifically about abortion rights (which, for the record, icanthascheezburger has consistently been a staunch supporter of; Roe was a baseline and Americans deserve far more robust access to abortion than even under Roe). It is about a level of extremism from a far-right majority of justices that is troubling.

The legal reasonings that are leading to recent SCOTUS decisions involve performing levels of mental gymnastics that make no sense, and are wildly full of hypocrisy. Clarence Thomas recently stated that in light of the overturning of Roe, other watershed legal decisions should also be revisited on the same basis, such as Obergefell (which asserted the constitutional right to marrying someone of the same sex), yet by Clarence Thomas’s own same reasoning, Loving should also be overturned, yet he was silent on that, as it would affect his own marriage.

If you’re interested in hearing from an actual legal scholar about this trend of “originalism” used by conservative justices, constitutional law professor Elizabeth Joh discussed this recently in an episode of her podcast in the context of 2nd Amendment rights.

In a functioning democracy there would be cause for optimism, especially given how low Americans’ confidence is in the Supreme Court right now. The branches of government are designed to check each other’s power, and at the moment that responsibility falls on Democrats, but they seem to lack the will to do anything. Adding more justices to the courts is an option. Adding term limits for justices is an option. Adding more pathways to curb corrupt or illegal behavior on the part of justices is an option, and Democrats seem uninterested in any of those things.

Democrats also seem uninterested even in legislative remedies to SCOTUS’s rulings. Congress could codify Roe (in fact, it was one of Obama’s campaign promises, then he decided it wasn’t a priority once he was in office and Democrats controlled both houses of Congress). Congress could do more to strengthen agency powers to protect public health by explicitly empowering agencies to protect against infectious airborne-spread diseases like COVID by enforcing wearing of masks in the workplace or during air travel.

And they don’t.

Instead we get lukewarm platitudes and vague calls to keep voting. For now, Democrats’ strategy seems to be to be content to let Republicans become increasingly extremist and hellbent on destroying beloved institutions, and pushing Americans to pick mediocre Democratic candidates because it minimizes harm (and in the case of the 2020 election, failing to even do that).

Instead Democrats will let heartbreaking events go by and use them as nothing more than a segue into a fundraising email seeing if you could just kick in $50.

As Republicans gear up with increasing attacks on LGBT people, Hillary Clinton insists that it’s a distraction for Democrats to get caught up in all that, suggesting there are bigger fish to fry. What bigger fish are there to fry than to ensure the right for people to exist?


Lest I just start ranting, I do believe that we’ll come out of a lot of this. We eventually will get a less extremist Supreme Court and when we do, it will likely overturn a lot of these bad decisions. I worry about how many more bad decisions America needs to endure until then.

Democrats need to change their strategy. We need to get rid of the old guard that continues to act like Republicans are their temporarily misguided friends across the aisle and replace them with people who understand that they are fighting a party of cynical extremists that are happy to destroy democratic principles to get what they want, and act accordingly. Or if we wait long enough, the old guard will die out and younger generations can finally get a chance to represent Americans for once.

Best case scenario, Democrats change course, they grow their support, and we can make progress fast. Decent case scenario, Democrats are slow to adapt, but Americans now see how consequential presidential elections are with regard to the long term consequences, and we get on track to building a Supreme Court composed of people who are more representative of American values and who will interpret the Constitution more sensibly.

Worst case scenario, no one learns any lessons. Democrats try the same shit and hope that “at least I’m not the Republican, vote for me” continues to win them elections, Americans decide “no, not electing Democrats because you’re ineffective and don’t deserve power,” and despite a lack of majority support and despite the fact that they aren’t doing what the majority of Americans agree with, our government somehow keeps slipping further and further right-wing, destroying institutions until America becomes a country characterized entirely by inequality, concentration of power, and extremist Christian theocracy.

Uncategorized

Back to the Mac

Five years ago, Apple did something incredibly out of character: it invited a bunch of tech journalists to a round table discussion, admitted to making some serious mistakes, and pre-announced upcoming products.

It was a somewhat bleak time to be a Mac user. While the iPhone was getting yearly improvements, Mac design decisions felt deeply out of touch with people’s needs. The latest MacBook Pros regressed in serious ways, sacrificing useful ports, functionality, and a functioning keyboard for a slightly thinner laptop with a Touch Bar that it turned out nobody actually wanted.

No one really minded Apple’s aggressive minimalism on more consumer-y products; it was even welcomed. The MacBook Air was a successful computer. Pro users, though, were getting less satisfied with what Apple had to offer for them. There were laptops with unusuable keyboards that couldn’t even plug into conference room projectors without an adapter. The Mac Mini had gone years without an update. And most embarrassingly, the Mac Pro, introduced in 2013 by Phil Schiller with the now-infamous line “can’t innovate anymore, my ass”, had not gotten so much as a spec bump in those four years, leaving people to wonder if it was ever getting refreshed at all.

It was feeling like Apple no longer wanted to build computers for demanding pro users. Instead they seemed hell-bent on making a computer that adhered to some sort of minimalistic Platonic ideal; a Mac not only hampered by its hardware, but perhaps soon to have its software get even more restricted until the Mac was less a computer and more an appliance like an iPad. Some even feared that the Mac’s own days were numbered, and that Apple’s future might actually be focused more on the iPhone, which dwarfed the Mac and sales, and frankly, attention from Apple.

In April of 2017, though, Apple brought together a small group of tech journalists to ensure them, and by extension, Mac users, that Apple had not taken its eye off the ball with the Mac. And in this meeting, they laid out a vision for what they were working on for their pro Mac users: specifically, a new Mac Pro, and a new iMac geared toward pro users that would be coming later that year.

They were uncharacteristically candid about some of the troubles they ran into with the 2013 Mac Pro (semi-lovingly referred to as the “trash can” Mac Pro); specifically, they found themselves backed into a “thermal corner”. This Mac Pro had a triangular core that had a CPU and two GPUs. But later GPUs put out a ton of heat, and that design apparently couldn’t move out any more heat than it already was. Apple had no path forward to make faster or better models of the Mac Pro.

Not only that, but pro users really didn’t like the Mac Pro much. It was suitable for some kinds of pro users, like ones who just needed a lot of compute power, but other pro users relied heavily on specialty hardware that would typically be installed in PCI card slots which the 2013 Mac Pro lacked. Apple’s response to this was Thunderbolt 2 but it went over with pros like a lead balloon; it would lead to clunky setups and just overall wasn’t considered suitable.

Apple shared zero specifics about what these new pro Macs would have to offer. There was a fleeting mention of pro users wanting “modularity,” but Apple made no clear commitment to what that actually meant.

So we waited.

As promised, Apple released the iMac Pro later that year, and it was exactly as advertised: an iMac, targeted toward pro customers with more pro-level hardware, but still an iMac at heart.

Later, Apple released a revamped Mac Mini and users rejoiced. There was much concern that this was going to get the same kind of super-minimalist treatment that the MacBook Pro line got, but it didn’t. Instead, the back of a 2018 Mac Mini had ports aplenty (including USB-A as well as USB-C Thunderbolt 3 ports), and could be generously configured. It felt like Apple was finally starting to come correct here. In 2019 they finally updated the aging MacBook Air to have a Retina display, another well-received update.

And at WWDC 2019, we got to see a glimpse of their vision for true pro-level computing: the 2019 Mac Pro.

If you follow my blog you know my deep love for the 2019 Mac Pro. Apple gave pros everything they wanted (provided they were willing to show up with some serious coin to buy the machine). It wasn’t just modular; it was the most upgradeable Mac Apple had released in close to a decade. It doesn’t just have upgradeable RAM, it can be upgraded to up to 1.5 TERABYTES of RAM. It can be configured with up to a staggering 28 cores.

It was a love letter to pro Mac users everywhere, and Apple proudly told the world “the Mac is back” (not that Apple PR would ever admit it was gone in the first place).

Apple has since then continued steadily pushing out a stream of Mac computers that show that they really get what their users want. They finally redesigned their laptops to get rid of the worst laptop keyboard ever, and then in 2020 they started selling computers with their own custom silicon.

Apple is letting the Macs be themselves for the right users once again. The MacBook Air remains light and affordable, but the new 14“ and 16” MacBook Pros are decidedly a little chunkier looking, and they can pack a wollop when it comes to computing power.

And most recently, Apple released the Mac Studio, a desktop computer for demanding studio users that easily dwarfs most Mac Pro configurations in CPU and GPU performance.

You might have guessed this was Apple’s new high end pro desktop, if not for the fact that John Ternus mentioned ever so casually that there still remained one more Mac to transition to Apple Silicon: the Mac Pro.

Over the course of the last five years, Apple executed not just one turnaround, but two: it renewed its commitment to making great and appropriate computers for pro users (with a substantially better understanding of what it means to be a “pro user”), and they once again moved the Mac to a new processor architecture, barely skipping a beat.

Now we need a similar revolution, but for Apple’s software frameworks.

But that’s a topic for another day.

Thoughts on Yesterday’s Apple Event

a diagram of an M1 chip next to a diagram of an M1 Ultra chip that's about 8x the size
Apple announced a handful of new products at today’s event, including a revamped iPad Air, a revamped iPhone SE, and a brand new Mac called the Mac Studio, along with a companion Studio Display.

All of these products are great, but the Mac lineup so far is left with these super strange gaps now.

Apple’s chip strategy

All of the Apple Silicon chips for Macs have thus far been based on just one system on a chip. The M1 chip is a variant of the A12 chip found in the iPhone 12, and this chip went into Apple’s first Apple Silicon Macs, the MacBook Air, the 13" MacBook Pro, and the Mac Mini.

Now, the M1 chip is great in these machines, but for the higher end stuff we need more power. Rather than designing separate chips for all these different use cases, Apple made the clever move of essentially gluing a bunch of M1 chips together into bigger chips that have more cores and memory and memory bandwidth. This approach is referred to as a chiplet approach.

This is really economical for a lot of reasons. First off, it saves a fortune on chip design because you’re really just designing one system on a chip. Also, making bigger chips is harder because not every chip comes off the wafer working at 100%. That means it’s harder to get these bigger chips because it requires that you have several chips adjacent to each other that are all good. But if you have one that’s bad, that’s okay, because if all the others are good, you can use those in cheaper machines, or even if you have a chip that’s good but one core is bad, you can deactivate that core and still get something for the chip.

Since most of the computer-y parts of the computer are on this chip, most things about Apple Silicon macs scale up with how big the chip is. That means that the M1 Pro supports double the memory of the M1 and has double the memory speed, the M1 Max doubles the M1 Pro’s, and the M1 Ultra doubles the M1 Max’s still (which really makes “Max” seem like a short sighted moniker for that chip).

Mac Pro: “That’s for another day”

After unveiling the M1 Ultra, John Ternus hinted that now just one Mac remains, the Mac Pro, and like a tease, he just said that’s for another day.

I’m most excited about is seeing how Apple plans to approach the Mac Pro with Apple silicon, because Apple’s going to have to approach that computer totally differently.

So far, everything Apple’s done has been predictable: they keep stacking up M1 chips in powers of 2, and the bigger chips go into the higher end machines.

And that scales up pretty well! If you take a doubled version of the M1 Ultra’s die, you end up with a machine that has a whopping 40 cores and 256 gigs of unified memory.

And that sounds like a lot, until I remind you that my puny little 12 core Mac Pro supports 3x as much memory as that, and the highest end Mac Pro supports a whopping 1.5 terabytes of RAM (which it doesn’t even have to share with GPUs).

Presumably, the Mac Pro will be a 2x version of the M1 Ultra, yes, but it’s going to need more than just unified memory to serve the pro users the Mac Pro is after. If Apple wants simplicity, they can make a Mac Pro that has this bigger chip, but also offers memory and PCI slots so you can add extra memory and GPUs. Maybe Apple will make some GPUs of their own design that you can install and have incredible performance. By default, these chips won’t be able to communicate with the CPU as fast as the memory and GPUs that are integrated, but I also wouldn’t be surprised to see Apple develop some sort of super fast interconnect that allows you to install more memory or more GPUs with very high bandwidth.

The Mac Lineup and its Gaps

Although John Ternus said that only one Mac product remains to be transitioned, in the meantime we have a very odd assortment of machines that have made the transition.

I was hoping to see a version of Mac Mini announced today that offered either M1 Pro or M1 Max processors (because I want a new Plex server machine), but instead we got the Mac Studio, which is a very high end version of the Mac Mini (and it’s big enough that it’s hard to call it “mini”).

But perhaps the most noticeable gap in the lineup now: large iMacs. Right now Apple offers a 24“ iMac that offers the M1 chip. But previously the iMac went as big as 27 inches, and for a time Apple even offered an iMac Pro that was their most powerful Mac for awhile. But for now at least, bigger and more powerful iMacs are absent from the lineup. Sure, you can buy a Mac Studio plus a 27” display, but in that case you’re looking at spending over 3 grand, whereas a 27" iMac could be had for under two grand in the past.

And these gaps are kind of unfortunate, because Apple has this processor architecture that scales beautifully from the tiniest Mac to some of the most powerful Macs available, and it would be simple to offer a variety of models to cover everyone’s needs.

I don’t think this gap is going to exist forever. Apple’s almost certainly making a bigger and more powerful iMac. I’m sure new models of Mac Mini will come out, and I also wouldn’t be surprised to see new Airs coming soon with the ability to have more than a max of 16 gigabytes of memory.

A year or two from now, I suspect the Mac lineup is going to have a steady progression from small and inexpensive to big and powerful, with plenty of options in between to accommodate every user.

The Apple Studio Display

I was so excited to see Apple enter the display market again in 2019 with their own display, until I realized that the display clearly wasn’t made with me in mind.

Since then, the rumor mill has been persistently stating that more consumer-grade Apple displays were coming, and I kept hoping we’d see something that offered the size and resolution of that beautiful 32" Pro Display XDR, but without the super expensive fancy features like the XDR support, and that included fancy things like a webcam (allegedly Apple didn’t put on in the Pro Display XDR because a lot of editing rooms don’t permit displays with cameras and that was a market they were targeting).

I’ve been sitting pretty with a pair of LG Ultrafine 5K displays for awhile now, but I’ve long been hoping to step up to something with more screen real estate. Apple’s new Studio Displays look really nice, but they are still the same resolution and size that has been available since the Retina iMac came out back in 2014.

Others complained on Twitter at a lack of things like ProMotion. I think ProMotion is great and I’ve been excited to see all Apple products get it since the iPad Pro added it, but I’m not sure ProMotion would necessarily even be feasible on a 5K display; the bandwidth needs would exceed what you could send over the Thunderbolt cable.

Apple’s approach to monitors in the last decade has stood out from the rest of the industry. Apple started putting Retina displays in Macs back in 2012 (and they put Retina resolution in a massive 27" display in 2014!) while the rest of the PC industry kind of just sticks it out with displays that are no bigger than 4K, mostly because gamers don’t want the extra resolution (it’s harder for their graphics cards to push that many pixels), and because most business customers just want to buy whatever’s cheapest that they can slap on people’s desks. This is largely why the LG Ultrafine displays have been virtually the only option for Mac users who wanted big external Retina-resolution displays. Apple tried to gently bow out of the monitor business in 2016 when they started making laptops with Thunderbolt 3 ports, but the industry didn’t follow with a plethora of high quality options. I’m really glad to see Apple own its own destiny again and make a display beautiful enough to go on my desk with my Mac.

I really was hoping to see Apple make something bigger and higher-res. I would have loved a 6K Studio display that was identical to the 27" Studio Display but just added a few extra inches, and I’d have been willing to part with a few grand to buy one (and let’s be realistic, probably two). I’ll continue to hold out hope.

Closing Thoughts

I’m really delighted at all the new things announced today, but I am bummed that none of them quite match up with things I was hoping to be able to give Apple money for.

The transition to Apple Silicon has been really enjoyable to watch, and I continue to be happy that I’m watching it from a really powerful Mac Pro that has plenty of headroom before I’m going to be worried about it.

Uncategorized

Spotify’s Joe Rogan controversy and things more important than that

I see a lot of takes on Twitter along the lines of “while you were going on about Joe Rogan and Spotify, happened.”

But the thing about Spotify is that they are a pretty replaceable service. It’s easy for us to stop giving Spotify money if we decide we don’t like that Spotify is giving a hundred million dollars of our money to Joe Rogan. We can replace Spotify with another good streaming service, and if we were using Spotify for podcasts, we can replace Spotify with one of a number of great independent podcast players.

We can’t individually put Spotify out of business but as individuals, we can cost them hundreds of dollars in lost revenue over the course of the next five years, and we can cost Spotify the network effects of us being on there, making Spotify less attractive to our friends who wanted to share tracks with us. And if we keep the conversation going, Spotify might feel the heat as their market cap shrinks considerably. And ultimately, maybe that will make Spotify think twice about its attempt to own podcasting by acquiring talent.

Joe Rogan isn’t the only issue facing the world right now, but for a lot of Spotify users, Joe Rogan was an issue that they were empowered to do something material about.

That’s kind of a rare feeling, and I bet it felt good.

Uncategorized

Modern Retro Gaming

the Trophy NES cartridge. Credit to 6502 Collective
During the pandemic, I got a package from a Kickstarter I backed. It was a new video game made by an indie artist called Trophy. I held onto it, waiting to unbox it until after vaccines were widely available and I could go play it with a friend of mine.

The twist? This was a cartridge for the NES, Nintendo’s console that peaked in popularity in the late 80s.

This isn’t a review of Trophy, but it was an absolute delight to play. It was clearly designed by someone who loved the original Mega Man games, and retains similar mechanics and style. Levels are beautifully designed, each with distinct color palettes, and the game soundtrack is lovely.

It’s not uncommon for modern video games to take on a retro or 8-bit style in their graphics for nostalgia, but there are developers who are willing to take it a step further by actually going to build games for the classic hardware.

And there’s just something really cool about brand new games being released for 30+ year old systems.

For one thing, the games tend to be excellent. Systems like the NES are well-understood inside and out now, and developers can build games now that can eek every last bit of performance out of the console. Not only that, but with improved tooling, some solid games can be built with just a single developer (to make this same game in the ’80s would probably have required an order of magnitude more people). David Murray has been particularly prolific in this space, making games targeting Commodore, Apple and DOS systems. His latest game, PETSCII Robots, has wide compatibility and is probably one of the most sophisticated games out there for more primitive systems like the VIC–20 and the PET.

But the thing I love most about games like these is their almost subversive nature. These developers aren’t aiming to make millions of dollars selling these games; that’s nearly impossible given how few of these vintage computers are in use today. The games are here as a labor of love. And thanks to the limitations of the systems, these games are free of the douchebaggery common with modern games, like loot boxes and gambling-like mechanics meant to get you coming back every day to play the game. These games are simple, and their lack of sophisticated graphics demands that the focus be put into good game mechanics.

There’s something I find deeply refreshing about that, and I’m happy to support the makers of these games. @moshboy put it best:

I want shorter games with worse graphics made by people who are paid more to work less and i'm not kidding

Uncategorized

SwiftScript

This is longer than a tweet would be so instead of making a Twitter thread that’s super annoying that you have to scroll through, I’ll make an actual blog post like a gentleman.

I have a free idea for Apple: SwiftScript.

It’s the successor to AppleScript. It doesn’t replace Shortcuts, but it’s what you graduate to after you outgrow Shortcuts.

the basics

(note: I’m describing this in present tense like it exist, but it doesn’t. I’m sorry, I don’t mean to get you all excited over nothing; it’s just easier to describe it that way instead of constantly with qualifiers)

It’s an actual programming language. It can look Swift-like. Hell, it could even be Swift. I’m not really digging into details here; I just want to do broad strokes.

AppleScript is an actual programming language too, but SwiftScript drops the cutesy English-like syntax which always sounded great on paper but is a nightmare in practice. Instead, we make SwiftScript really easy and approachable by making everything super discoverable.

Unlike the AppleScript editor which is basically just an empty editor you type text into and click “Run,” hoping for the best, SwiftScript is always meant to be interacted with by offering a REPL. You are constantly expected to dig around with this REPL and figure out what’s what in the language and in the apps you want to automate. Everything you type is very much autocompleted, and things are strongly typed so that the SwiftScript environment can always tell you what a thing is, and what you can do with that thing.

You know how web browsers have inspectors that let you click on any element in a page and see it in the DOM? The SwiftScript inspector can let you do the same, except with all the applications on your device. You can look at the Mail app and click a message in the message list and it’ll tell you about the Message entity, what fields a message has, and what methods you can call on the message. Clicking on the Search box will show you related objects, like an object to construct a search for messages. No guessing at what something is called or poring through docs you don’t quite understand. You see something you want to automate, and SwiftScript will show you what you’re dealing with.

Now, for this to be useful, we have to make apps that have very rich SwiftScript libraries for the scripts to use.

What I mean here is that when an app supports SwiftScript, every single entity in the app exposes a SwiftScript API. Shortcuts has been a cool thing to see in iOS (and now the Mac) but far too often I find myself wanting to automate something only to find that it just can’t be done because there isn’t anything close to resembling an action for it. SwiftScript won’t be limited like that; as a programmer you’ll be able to programmatically do virtually anything you can manually do as a user.

going past just a scripting language

So far, the SwiftScript I’ve described is fundamentally a nicer AppleScript, mostly predicated on the idea that you invoke a script, and then run it.

But SwiftScript can do more. SwiftScript apps can offer hooks throughout the app where SwiftScript scripts you write can act automatically when those hooks happen.

For instance, Mail might offer a hook for a new message coming into the Resumes folder (a folder which gets populated by a filter, perhaps). You might then make a SwiftScript that watches for this event, and then whenever a message of this sort comes in, it searches the message for the resume attachment, saves that file to a designated folder, then creates a to-do item in OmniFocus directing you to review that resume complete with the name of the applicant (from the From field), a link to the file itself, and a link back to the original Mail message.

Then, you might add another script that watches for replies to messages, and if you’re replying to a message in the Resumes folder, and then it will present you with a small GUI that asks you whether you are moving forward with that applicant or not, and based on that response, fills out a message for you with the appropriate details supplied from a template, with fields that you can fill in with the right added information. If we want to get really elaborate, maybe when you email a candidate you want to interview, the email might even include a few options for interview times in the coming days based on your availability in the time you blocked off in the afternoons for interviews.

But SwiftScript goes beyond just the applications’ APIs and the hooks they can provide. SwiftScript also is a powerful general-purpose programing language in its own right, with access to super powerful libraries. So not only can you perform repetitive tasks, the kinds of tasks you can let the computer perform can get increasingly sophisticated.

For instance, you might make a script that fires when you favorite a tweet in Twitter, and then the script will save that tweet’s contents to a database. A lot of tweets’ contents are just an image of text, so your SwiftScript can check to see if the tweet includes images, and if it does, check the image to see if it’s text, and if so, OCR the image and save that text into the database so that it’s easily searchable later.

You could even watch that text for certain key words and then tag that tweet in your database if appropriate.

apple: please take this idea and run with it!

The thing that’s just beautiful about SwiftScript here is that it turns any user into an application developer. But you don’t have to know how to develop a full application yourself; you really just get the power of all the apps you already have, but SwiftScript is there to help you fill in the gaps.

It’s clear that Apple looked at its automation story and saw that although AppleScript is quite powerful and continues to have a cult following (think of how amazing it is that AppleScript actually made the jump from classic MacOS to OS X and it’s still around and even works with Shortcuts), they saw a product that’s too complex, and decided that the future of automation on Apple platforms had to be not just made easier to user, but watered down.

I’m so glad that Shortcuts is a thing, and I’m glad that it’s energizing people about automation on their Macs and iOS devices. But it’s less capable than AppleScript.

SwiftScript tries to fundamentally change what automation means to you as a user. It’s an advanced tool because it’s a programming language but it’s making programming highly approachable by being an exploratory language that you are meant to tinker with at runtime as you build your scripts. It’s still for that sophisticated user, but it has the potential to give that user massive leverage by putting programming-shaped handles on every aspect of their computer. I’d love to live in the alternate universe where Apple built this.

But I guess building a car is cool too.

The Moonlander Zip Kit – a Mini-Review

The Zip Kit is one of those oddly specific products a company makes where you see it for the first time and you think “wow, they must have made this specifically for me, and me alone.”

When I first got my Moonlander keyboard, one of the first things I did was rip out the top row of key caps and switches that formed the number row. I was coming from a Planck keyboard and the extra row made the keyboard a little bit too crowded for me. Shortly after, I found I needed to cover the empty holes with masking tape to keep myself from being blinded by the LED pattern. I thought to myself how it’d be really handy to design and 3D print myself some covers for these that snap right into the holes in the plate, but laziness (and a lack of a 3D printer, or the know-how to design such a thing) got the better of me.

Fast forward to a couple weeks ago, and ZSA announced an array of accessories for customizing the Moonlander called the Zip Kit.

It includes a whopping 42 covers, 18 additional keycaps with specific symbols, and two wing stubs.

I had most recently been using my Moonlander with the wings and the number row back in place (thanks to some typewriter-style keycaps that made it easy for my fingers to not accidentally reach for the top row; more in my Moonlander retrospective), but this presented a really cool opportunity to use my Moonlander in the way that I really think of it: like a split Planck that has some extra accessory keys on the outer reaches.

And here’s how it looks now:

the Moonlander keyboard with Zip Kit components installed

a close up of the placeholder caps intalled

The wing stub

another shot of the capped keys from behind

I really like ZSA’s vision for the Moonlander as a highly modular keyboard. Too many keys? No problem, you can remove the ones you don’t need. Is your thumb too strong and you keep accidentally hitting a particular key? Take its switch out and replace it with a stiffer switch. Key caps not to your liking? No worries; the keyboard uses MX-style switches, meaning you have an entire world of custom keycaps available to you. Want to tent it? Want to use inverse tilt? Want to use tripod-style mounting gear? All perfectly valid options.

And not only is the keyboard modular in hardware, it’s just as flexible in software, because its firmware is fully programmable. The keyboard can have whatever layout you want it to have, and it can do things regular keyboards just can’t do, like have keys that do one thing when you tap them, and do another thing when you hold them.

Moonlanders ship with a stock default keyboard layout, but I would actually be surprised if more than, say, 10% of Moonlander owners were using theirs with a completely unmodified configuration. And that’s absolutely fine! This is a keyboard that radically wants to be made yours. It’s not just being offered in a couple different colors to pay lip service to choice; every Moonlander is just for its owner. And that’s beautiful and refreshing.

And the best part here is that all the customizations on offer are fully supported by ZSA and won’t void your warranty. It’s perfect for pro users who need to demand a lot of their tools, but don’t want to futz around with a soldering iron. And as your needs change and evolve, the Moonlander is ready to grow and change with you.

I’m hoping to see some more evolution on the firmware front over time. For instance, these caps are translucent which is beautiful, but it also means my keyboard now has 10 extra RGB LED lights. I’d love to be able to use those lights as arbitrary status lights that my computer can control by sending signals to the keyboard.

It’s also exciting to see ZSA keep new accessories that make my Moonlander better. I can’t wait to see what ideas they come up with next.

Uncategorized

“This is a day I’ve been looking forward to for two and a half years”

steve jobs unveiling the iPhone in January of 2007
Fifteen years ago to this day, Steve Jobs unveiled iPhone to the world.

I’ve watched this introduction a number of times on YouTube, and every time I watch it I’m taken right back to that cold January day in 2007 when I sat in my dorm room watching the event.

But this is the funny thing about the brain: I wasn’t watching the event live; Apple chose not to livestream it; instead I was just madly refreshing a text page as I read text updates that bloggers lucky enough to be at the event were madly typing into their computers in real time. It would be a couple years still before Apple finally started live streaming all of their events.

Fifteen years is quite a long time. When Steve Jobs gave that keynote, macOS was called Mac OS X (the name was shortened to OS X in 2012), and the current version of the time was 10.4, an OS so old that when it was first released, Macs were still only running on PowerPC processors.

This sounds kind of bullshitty, but the iPhone changed my life. It didn’t merely become a new category of device I would eventually own (though I lived in Iowa at the time so I was rocking the iPod Touch life for awhile), but the existence of iPhone changed the trajectory of my career.

So far I’ve never really directly worked on iOS apps as a developer, but the mobile revolution that iPhone kicked off spawned a massive new tech economy in the late ’00s and 2010s. I benefited immensely from this, and after watching cool tech startups wistfully from the Midwest I decided to leave my stable-looking healthcare IT job and cram what I could into my car and move to Santa Monica, sight unseen, to work for this serial entrepreneur I had only really talked to once in a Skype call.

In retrospect that decision was probably the most consequential of my career.

In the 15 years since iPhone was unveiled, the world changed to become centered around mobile phones. Online services went from being a thing nerdy people used to being truly adopted by the masses as they became centered around smartphones that everybody now owned. For so many people, their phone is their personal computer now.

And that revolution happened because of (and only because of) the iPhone. Smartphones were a thing before iPhone, of course, but they were BlackBerry-type devices. Android was kind of under development when iPhone was unveiled, but if you look at Android prototypes before and after the iPhone, the influence is really obvious.

The iPhone was the catalyst that made software an even more important part of all of our lives (and given how pervasive it was before the iPhone, that’s saying something). It allowed me to graduate from college in a time of a shit economy and develop a career so lucrative that I regard emails from recruiters with six-figure job opportunities (real opportunities, too!) as almost spammy because I get so many of them.

It blows my mind that I can describe the influence this device has had on my life without describing so much as a single feature of it.

Uncategorized

Monetizing the Web Beyond Ads

Reading articles on the web nowadays is an absolute fucking mess. When I try to read news articles on the web without an ad blocker, I’m honestly not sure whether that publisher even wants me to be able to read anything. Heaven help you if you’re on your mobile phone; your entire screen is just going to be covered with things that aren’t the article you’re trying to read.

News orgs and blogs don’t seem all that fond of the situation either. Ad networks aren’t paying worth a crap, so they pack more ads on each page, which probably devalues the page even more. Publishers are looking past advertising to monetize, and more sites than ever are offering subscriptions and putting their content behind paywalls, which pretty much cuts off news sites from casual readers who are reading more than a couple articles a month, but aren’t quite invested enough to pay a sizable monthly payment.

That’s great, except that on a given day, I’ll encounter links to dozens of different sources, and it just isn’t tenable for me to have a $50–100/year subscription to all of them. And even when I do pay, a lot of news sites will still give me ads because they just can’t resist the extra handful of pennies. Even if publishers started offering price points for those casual readers (maybe a sub-$5 subscription that allows for 10–20 articles a month, or a pay-per-article model), it’s still a ton of friction for a reader to sign up for all these subscriptions and manage them and remember to log in every site they have a subscription to, or even just keep mental tabs on which sites they’re subscribed to.

For awhile I used an app called Scroll, which let me pay a monthly fee in exchange for hiding the ads on dozens of web sites. I got to feel good that I could hide ads and support publishers, the publishers could earn more from my clicks compared to when ads were funding them, and Scroll had a nice little business with recurring revenue.

Apparently not enough revenue though, because Scroll sold to Twitter, who kept the service running for a few months, then shut it down and replaced it with a worse version of itself.

I like to think Scroll was showing some traction, though, based on the number of sites they had that worked with Scroll.

Because I’m too lazy to start this company myself, I’d like to lay out the Icanthascheezburger vision for monetizing the web.

For the sake of example, we’ll call it CutTheCrap. I don’t really have any intent of building this product but it’s easier to talk about it like it’s a product that exists.

Introducing (but not really): CutTheCrap

CutTheCrap’s goal is to make it possible to be an independent publisher on the web. In other words, as a reader, I should be able to kick a few bucks to CutTheCrap, and in exchange be able to view just about any article on the web without ads or other bullshit, knowing that every time I view something, the publisher is getting fairly compensated.

Let’s start with price: Scroll’s $5/month isn’t enough; CutTheCrap’s price will be $15 a month.

CutTheCrap’s goal here is to just be a platform; its cut of the revenue will be 20%. CutTheCrap gets $3 of your money every month, and publishers split the other $12.

The way we split this will be unique, though. Streaming platforms like Spotify will divvy up the money in aggregate, meaning that if you’re an indie band and some fans stream your music 80% of the time, overall your streams were only a tiny, tiny percentage of the total, so you get a tiny, tiny percentage of the pie.

CutTheCrap works differently. If half of a user’s visits are to your sites, you get half of that user’s money that month. If a user looks at 100 articles and one is yours, you get 1% of what they spent. If they look at 1000 articles that month and one is yours, you get 0.1% of their money that month. This model is probably subject to getting tweaked as time goes on to allow for more equitable distribution of revenue (more on that below).

And every month, subscribers will get a full and transparent report from CutTheCrap detailing where their money went.

Dividing up $12 between a ton of publishers still looks like a small amount of money to each publisher, but if you look at this in terms of annual revenue and when you add up enough users, it starts to be significant money, and it’s a hell of a lot better than the scraps a publisher makes off your eyeballs in the ad-based economy.

The basic version of CutTheCrap does just that; it cuts the crap out of the web for you. You use it by installing a lightweight extension in your browsers which identifies you anonymously to web sites, and when those web sites see you’re a CutTheCrap user, they give you the first class experience: articles with no ads or trackers and a clean layout. I love this approach because it doesn’t force you to use a new app; it’s just using the open web. And it also means that if you click a link from someone and are taken to a site, CutTheCrap just works like it should; you get the crap-free version of the article you wanted to read.

And the power users among us can pay more each month to get extra features, such as an auto-archival feature that will store a pristine archived copy of every article you’ve read, making it available to search through, clip excerpts from, or export to your own apps like Evernote, Notes or DEVONthink. ANd the most hardcore of users will enjoy full-text RSS feeds.

CutTheCrap at Scale

Initially, CutTheCrap’s goal is to reach a critical mass of users so that they have wide influence. And I’m sure if I were pitching this to a VC, I’d have to frame it like this because nothing gets VCs more aroused than the idea of reaching industry dominance that makes your company a de facto monopoly.

But it’s not cool for a single company to retain that kind of power. Plus, at scale, that would put CutTheCrap in a situation where their 20% cut of revenues is grossing CutTheCrap more money than any individual publisher that uses the platform.

Instead, upon reaching a critical mass of subscribers and publishers, CutTheCrap graduates from being a singleton company to being protocol-based, with CutTheCrap itself sticking around to maintain the protocol itself. That means multiple companies can sprout up to solve this problem. As a user I could subscribe to a different company’s version of CutTheCrap and still get the same ad-free experience on any web site that was built to work with CutTheCrap, and likewise, a publisher wanting to monetize can monetize with any CutTheCrap company. As long as the companies and publishers conform to the protocol, they can monetize.

I’m glazing over a lot of details here, which I feel entitled to do because it’s just a thought exercise, but in reality needs some thought:

  • Is it fair to have a one-size-fits-all approach? What if there’s one site that publishes a couple articles a month, but they’re high production value and expensive to produce, but another site churns out dozens of relatively low-value articles a day? And more urgently, does this model incentivize publishers to do that?
  • I’m taking a very US-centric approach to this, but what happens when we start having countries with a weaker currency participating in this?
  • Not all news orgs are created equal! Different news orgs will have different political biases and editorial standards; CutTheCrap would need to set standards for who can monetize. Once it becomes decentralized and protocol-based, this could become simpler, since each instance of CutTheCrap can set their own standards, and as a subscriber you can pick a CutTheCrap service that best aligns with you.

There are also other places on the web that are becoming very saturated with advertising; in particular, social networks and video streaming services. I’m less worried about these. First off, a lot of these services already offer ways to pay to get rid of ads (Hulu, YouTube and HBO, for instance, all have versions that you can pay to eliminate ads for). Also, because the social networks exert a lot more control over how ads are presented, the ads themselves are a good deal more palatable. There’s still plenty of cause for concern (Facebook is, after all, invasive in how deeply they target people for ads), but it feels like a different category of problem.


This is about more than just some nerd who has a personal vendetta against annoying ads. CutTheCrap is a vision of a possible better future for the web. The stakes are high.

News organizations can’t offer quality journalism to their readers when they are beholden to advertisers or ad networks writing big checks and calling the shots; they need to be beholden to readers who are financially propping them up.

I want this reader support to create newsrooms with deeper pockets so they can go after bigger and more important stories. I want to see new news publishers feel empowered to set up shop and try new things knowing there’s a stream of money that can be tapped into, and I want those new news organizations to push existing news organizations to be better (looking at the New York Times).

People who read the news need and deserve news that they can trust and afford to financially support. Getting someone to spend $10–30 a month on a subscription to a single news site is a tough sell, but I think we could convince a lot of people to kick in $15 a month to know they can lose ads and not feel any guilt about it.

More fundamentally, CutTheCrap expresses a vision of shifting power. Being ad-driven leads directly to being dependent on massive scale, and that leads to consolidation of publishers, and it leads to newsrooms cutting jobs and running too lean to do their jobs right. CutTheCrap creates an environment where publishers are beholden directly to their readers, the only people publishers should be beholden to.

In the absence of that, I run an ad blocker, and I spend a considerable amount of money giving my patronage to a number of different sites. I try to favor giving money to smaller and more niche ones (the New York Times will survive without my money). It’s not perfect; ideally I’d like every article I read to kick money to the publisher if they need the money, but it’s the best balance between protecting myself from a barrage of ads (and often shady tracking code) and ensuring that I’m supporting the open web.

Uncategorized

Photos for iOS: Find All Items From a Specific App

Another little tidbit that I discovered recently: if you are saving a lot of photos or videos to your photo library from a specific app (such as, for instance, TikTok), and you want to collect these images in one place, you can do it pretty easily!

Open one of the photos or videos, then press the Info button. If the item is saved from an app, there will be a button indicating the photo was saved from that app. You can just tap on that, and you’ll then be brought to a search screen that shows images from that app.

I then press Show All, then I will select all the photos and put them into an album.

demonstration of the steps i outline in this post

My life would be simpler if I could just make a smart album based on what app the photo was saved from, but smart albums aren’t able to be created on iOS, and the Mac version of Photos doesn’t seem to keep the metadata about the app a photo was saved from, so for now it has to be done semi-manually.