Why don’t I just use an IDE for everything?

I have been working on a PowerShell and SQL-heavy project at work for about a week now. To facilitate PowerShell development, I installed and configured Visual Studio Code, which is Microsoft’s Electron-based code editor. I was not a fan of Visual Studio Code (hereafter called, simply, Code), due mainly to its lumbering speed when compared to Sublime Text, and somewhat, too, due to its brutalist design aesthetic.

I must say, after using it for PowerShell development and debugging, that Code has grown on my quite a lot. I can develop, run, and debug PowerShell scripts in an IDE environment, edit Markdown files, and can even run SQL commands against my SQL Server Express instance (though query running is really slow compared to SQL Server Management Studio). There are many, many powerful extensions—way more than I would have expected. Some of them let me do other useful things, like convert delimited files to Excel right in the editor, that just aren’t possible in Sublime Text.

There are some drawbacks, though. RAM use is extremely high—nearly a gig even when there is only one file open—and runs, for me, about ten times as much RAM as Sublime Text uses. Also, it is really slow compared to Sublime Text. Loading even small files takes a few seconds, and I have to wait for syntax highlighting to be applied to the files after they are displayed in the editor for the first time. Still, I am liking it, and am using it, more and more.

Zero

I am a big fan of the Zero app, which is a tracker for intermittent fasting. It is free, attractive, and has just enough features to keep me engaged and motivated, and no more.

Currently, my favorite feature is its Apple Watch complication, which fills up a ring (similar to the Activity app’s rings) as you progress through your fasting period. I find that filling that ring every day, and the app’s cheerful notifications every morning, really help motivate me to stop snacking or having an extra meal at night.

The only thing I don’t like about it is that it requires you to set up an account with an email address. While the company behind it does not appear to be abusing my privacy in any way, I would prefer that they didn’t require an account. Perhaps they will adopt Sign in with Apple when it becomes available this fall.

If you are interested in Zero, download it from the iOS App Store.

Ransomware Attacks Are Testing Resolve of Cities Across America

I read this article in the New York Times with interest, because I am an information security auditor by trade, and we have been educating companies and regulators about the dangers of Ransomware for what seems like forever, but has probably only been four of five years now.

The part of the article I found most interesting, because I have worked in and for the insurance industry for the past twenty years, relates to cyberinsurance:

Fearing the worst, cities like Lake City, Fla., have bought cyberinsurance, and an insurer paid most of its ransom this summer. But some experts think that is only worsening the problem. “We see some evidence that there is specific targeting of organizations that have insurance,” said Kimberly Goody, a manager of financial crimes analysis for FireEye, a major cybersecurity firm, which says it has responded to twice as many ransomware attacks this year compared with 2018.

I have two main observations about this section:

First, it is galling that the typical fix for ransomware attacks is to pay the ransom, and rely on the good faith of the bad actor who locked away all the data to actually restore the encrypted data.

Second, that attackers are targeting companies that have done the fiscally responsible thing and obtained cyberinsurance to mitigate their ransomware risks is a perverse form of adverse selection. I am sure the cyberinsurance industry is working out ways to incentivize their customers to reduce their ransomware risks, because that is what insurance companies do, but organizational inertia and lack of funding will make it difficult and time-consuming to succeed.

Ideally, companies and municipalities would keep their systems up to date through regular software packaging and hardware upgrades, and would inventory and back up their data, so that ransomware attacks would be less likely to succeed, and so that data could be restored without paying the ransom. Organizations could also reduce their attack surface in other ways, such as replacing Microsoft Windows with ChromeOS for classes of workers, such as call center workers, whose job functions do not require Microsoft Windows. ChromeOS is less likely to be attacked than Microsoft Windows, and its use would encourage centralized data storage and software, which are easier to keep up-to-date and secure.

Beyond hardware and software upgrades, organizations need to train their employees to recognize social engineering attacks, as that is the number one or two attack vector every year. Having gone through that training every year for many years, and having been tested at random by a program at my company, I have learned that social engineering attacks can be almost impossible to discern from legitimate emails and instant messages. I think that no amount of social engineering training is going to be more than 80% effective at preventing phishing and/or ransomware attacks, but 80% is a good start.

The main reason organizations do not put these controls and practices into place is money. The second is organizational inertia. Both can be solved, but only through additional resources and external pressure. As citizens and as customers, we have to demand that the organizations, both public and private, that we interact with, protect their data and our data sufficiently.

The Keto Diet Is Popular, but Is It Good for You?

As a ketogenic dieter, Anahad O’Connor’s article about ketogenic diets is pretty balanced, but his premise, described in the block quote below, doesn’t hold up to much scrutiny:

Low-carbohydrate diets have fallen in and out of favor since before the days of Atkins. But now an even stricter version of low-carb eating called the ketogenic diet is gaining popular attention, igniting a fierce scientific debate about its potential risks and benefits.

I am grateful that ketogenic diets are being treated seriously enough to be written about in a national newspaper. Unfortunately, the New York Times is trying to teach the controversy, when no such controversy actually exists.

Here are some clarifying points about some of the topics discussed or touched upon in the article, from someone who actually follows a sensible, low calorie, vegetable-rich ketogenic diet:

  1. There is no “Keto diet”. There are a variety of ketogenic diets, all with the common element that they tend to put the body in a state of nutritional ketosis at some point (not all day long unless you fast; primarily while you are sleeping). All these diets involve restricting carbohydrate intake to very low levels, ranging from 0 g to about 50 g per day. They differ in meal composition, meal timing, and what foods are allowed or disallowed. Also, in real life, even people on ketogenic diets will eat a high-carbohydrate treat now and then.
  2. Nutritional ketosis is not the same as ketoacidosis.
  3. Ideally, ketogenic diets involve eating a great deal of high fiber (but low starch) vegetables. Imagine telling your doctor that you eat two huge salads per day, with four ounces of meat on them, one ounce of cheese, and a tablespoon or two of olive-oil-and-vinegar dressing. Doctors have told me that it is hard to eat healthier than that.
  4. Ketogenic diets are”high fat”, on a percentage basis, not necessarily on an absolute basis (as in, grams of fat per day).
  5. Similarly, ketogenic diets are not necessarily higher in meat or dairy consumption that the standard American diet.
  6. I have read many, many abstracts and articles about diet and nutrition studies. Almost every study I have come across demonstrates bias or lack of understanding of what ketogenic diets actually look like (they tend not to restrict carbohydrates in test subjects sufficiently), relies on bad data (epidemiological data, or prior studies’ data, self-reported food logs), or have durations that are too short (you need more than a couple weeks to assess a diet change).
  7. Sometimes the scientists’ own conclusions do not seem to be drawn from from the data they collected. This often evidences itself when the study concludes that, despite outcomes being equal or better for ketogenic diets, there is concern about their heart health due to the amount of fat in their diet.
  8. While you may believe there is insufficient evidence that ketogenic diets are healthy (whatever that means), there is ample evidence that the standard American diet (which I understand has spread to most of the world at this point) is obviously not. It it were, there wouldn’t be an obesity epidemic.
  9. I don’t believe it makes sense to adopt an all-meat, or all-meat-and-cheese, diet. My reasoning: Fermentation of high-fiber vegetable matter in the gut is something humans evolved to do, and, for that reason, it is probably a good idea to continue doing so. I would understand if this argument were made more clearly in the article; instead some scientist’s statement that mistakes “high fiber” foods with high carbohydrate foods (i.e. starchy foods) is there, casting doubt about about the diet in a way that doesn’t make logical sense.
  10. Ketogenic diets are not appropriate for some people, due to underlying medical conditions such as Type I Diabetes. This does not mean that that are not appropriate for anybody.
  11. In the end, we are all n = 1 studies. It doesn’t matter what the science says about a diet’s effect on study participants or on populations, it matters how the diet affects you. Many, many people have success with ketogenic diets that they did not have with low-fat diets or with calorie counting. If low-fat dieting or calories-in-calories-out tracking works for someone, it makes no sense to disparage that person’s diet choices, and almost no one would. Ketogenic diets should be treated the same way.

All in all, the article is 80% of good content with 20% of nonsense thrown in for the sake of balance.

My Hobby: Moving Files Around

I have found that my home server hobby is more a “moving files around” hobby. I have reached this conclusion based on the countless times I have found myself moving files from one place to another.

My FreeNAS media server

I have run FreeNAS on a HP N54L Microserver for over five years. It has been a fantastic server. I bought it, a slightly used review unit, loaded with four 500 GB drives that it would not have normally come with, for a song—less than a new one with no storage drives included. Over the years, I updated the storage (now I have 16 TB total, with 8 TB usable space, set up in a single RAIDZ2 volume), and the RAM (from 8 GB to 16 GB). Over that same time period, 8 TB went from an impressive amount of storage to something a relatively inexpensive single drive could handle.

What those single drives don’t have, however, is redundancy and data integrity features. My little FreeNAS server has that, thanks to the ZFS file system. At several times in my home media streaming career, the external hard drive I used to store my media files died, and I lost all my data. Thankfully, no important personal data, like my photos, was ever lost, but the experience was upsetting enough not to want to repeat any more.

Hard drive failures can happen to anyone, at any time, even if you have a nice server rather than a Raspberry Pi with an external hard drive attached via USB. Less than a year after I upgraded my FreeNAS server’s drives, one of them failed. The FreeNAS server emailed me about the error, and its UI showed that my drive array was operating in a degraded state. I quickly ordered a new drive, swapped it out the next day, and never lost a bit of data. (I returned the failed drive for a free replacement, so now I have a replacement available, in case I ever need it.)

File servers fill up, if you let them

FreeNAS has been stable, reliable, and a joy to use. One thing I have learned from running it, however, is that its file system, ZFS, degrades in performance when a volume (a pool of drives) is more than 80% full. FreeNAS will warn you about this threshold, but I never took it too seriously, because poor performance is mostly an academic concern when all you are doing with a server is transferring a few gigabytes a day. I do like to silence warnings, however, so I normally have to prune my media collection, or move some videos I want to keep, but am unlikely to watch again soon, to external, mostly cold, storage.

Of course, where is that old, external drive with my files on it? I have no idea. So, this week, when my FreeNAS server filled up way over the 80% warning threshold, I decided, rather than continuing to free space by deleting movies and TV series that I didn’t want to delete, to add some more redundant storage to my network, and move the old files there. This decision was mostly based on having some extra hardware lying around, unused. I have a 2 TB, two-bay Seagate NAS, which is a little, Linux-based server with a consumer friendly web UI for administration. Unlike FreeNAS, it is very locked down, and unlike my HP microserver, it has only two drive bays rather than four.

At any rate, I set that up again and started moving some files to it, which sounds simpler than it really is. I am cherry picking files that are less likely to be accessed to the new server, so I have to go through everything I have, to some extent. Because the files either number in the thousands (like music files) or are multiple gigabytes in size (like video files), moving them has been very slow. Because the Seagate NAS’s filesystem (EXT4) is different than the FreeNAS filesystem (ZFS), there are other interesting problems, like file naming rules, that trip up file transfers. Because these are two different UNIX-like systems with different users configured on them, sometimes there are permissions issues that prevent files from being moved, renamed, or deleted.

As cool as it is to stream movies and music throughout my house, making it all work requires, from time to time, a lot of low-level file transfers. It has been taking a lot more time and attention than I would like.

Temporary, by Feathermerchants

I was poking around my iTunes library, found an old album I loved from senior year of high school, by a local Connecticut band called Mr. Right. After some Google searches, I found a copy of a song that was one of my all-time, lost, never-had-it-on-a-proper-CD, never-could-get-it-anywhere songs: “Temporary”. It wasn’t what I expected, however. It was a different arrangement, which was entirely unexpected.

When I first heard “Temporary”, it was a power pop song, recorded by Mr. Right (or maybe just Jim Chapdelaine). Apparently, he dusted the song off almost ten years later to record with his new band, Feathermerchants, and reimagined it as a folk-rock (dare I say, Americana?) ballad, sung by a feather-light soprano.

When I was seventeen, I recorded, with my high school band, an EP weeks before we all left for college. Due to dumb luck (one of our friends grew up next door to a bonafide music producer—and the knew each other), two of our four-song EP was recorded, mixed, and mastered by Jim Chapdelaine, who went on to become a 13-time Emmy winner, among other amazing things. We first met up with him because his band at the time (in 1995), Mr. Right, played a gig at my hometown’s annual fall festival on the green. My friends and I pretty much idolized him for a little while after high school graduation.

Jim played a recording of the original song through his board as we were waiting for something to happen—probably while we were waiting for our gold master CD to be written, at 1/2X speed, in Jim’s basement music studio. The chorus is an ear worm, and I really enjoy the lyric. I remembered it to this day, and hearing it made me feel nostalgic.

My (Former) Hobby: Home Media Streaming

For someone who is, now, only marginally interested in television and movies, I have spent a lot of time and money over the years to make my television watching experience awesome. I used to be really into it, and—unless you had a lot of money to burn—it used to be hard to get it working correctly, which fed into my engineering mindset and led me to tinker with hardware and software frequently, for almost a decade.

I started in 2008 by connecting my 13” white MacBook to my (non-HD) TV via a $30 video adapter. Even though my TV was primitive, picture quality was way better when playing video this way, and I could watch streaming videos directly from the networks’ web sites, like “Lost”, on my real TV for the first time. I loved it. After about a year of this, I got a mini-PC as a Christmas gift, which I started using, with an external hard drive, as a home media server.

For the front end, I bought a set-top box that Western Digital used to sell. The system worked…mostly. Streaming over WiFi was reliable for non-HD (480p) and 720p HD encoded TV shows, but anything with higher resolutions, higher bit rates, or DTS audio would usually be impossible to play.

I was never serious enough to buy an expensive computer to connect to my TV, because I figured, correctly it turns out, that video streaming devices would become cheaper and more capable over time. Of course, during that time, I cycled through a ton of set-top boxes (most of which I got for free as review units): Roku boxes, a couple Roku knock-offs, the Boxee Box, the first Amazon Fire TV, an Amazon Fire TV Stick (which was quickly returned), a couple Raspberry Pis running XMBC (which worked great for TV but stumbled on DTS audio), and eventually a number of Apple TVs (fourth generation).

The reason I went through so many front-ends is that they all had two limitations. First, each one left out at least one of the top video sources: either iTunes, Amazon Prime Video, YouTube, or Plex. (Nothing left out Netflix.) Second, all of them choked on certain sorts of videos, depending on their audio or video encodings.

Eventually, I began to watch video on my iPad while I work. This led me to discover Plex in the App Store. Plex is a server that you can install on a computer, coupled with client apps that run on many different devices. Plex looks great, has server side transcoding to make video formats less of an issue, and allows you to manage a centralized library of TV, movies, music, and more. I used Plex on an Amazon Fire TV for a year or two. I started out very happy with it, but the software stability of the Amazon Fire TV decreased over time, and Plex and Amazon did not release software updates timely enough to fix it. Eventually, I was very unhappy with the Fire TV + Plex combo, but still pretty happy running Plex on my iPad.

When the Apple TV, 4th generation, was released, with support for iTunes, Apple Music, Netflix, YouTube, and Plex, I bought one right away. I figured, at the time, that Apple was so big that only it had any chance to get all the major video providers on a single box, and get them to stay long term. (Amazon, of course, was conspicuously absent for several years, but that was not as important to me back then as it is now.) I didn’t expect to love it for to watch baseball on MLB At Bat, but it plays games at 1080p/60fps, which looks amazing, so I do.

Over time, home media streaming went from being a niche hobby, in which nerds like me tried to hook up computers to their TVs, to a very mainstream way to consume video and audio. Thanks to cheap and nearly ubiquitous modern hardware, my home media streaming “hobby”, has basically come to an end. I still maintain a Plex library, but I no longer have to upgrade or to fiddle with hardware connected to my TV, or worry about audio and video encodings and bit rates before I watch a movie with my wife. I also stream a lot more video from outside the home (not via Plex) than I ever did before—just like everybody else these days. It’s not special any more; it’s just another entertainment product, and it deserves very little thought, because it just works. Things are much better now, but sometimes I do miss tinkering with hardware.

Apple Card

Apple announced Apple Card at its event on Monday. Details are incomplete, but its announcement excited me more than the media-related services Apple announced at the same event. Perhaps that is because I pay for things every day, but don’t watch much TV, and my wife and I are happy with our New Yorker subscription (she reads the physical magazine; I read it online) and our New York Times subscription (which we both read via its iOS app).

Apple Card interests me because I use Apple Pay all the time, and Apple Card’s Apple Pay-specific cash back rewards are a 33% better than what I get from either of my two current credit cards on the things I purchase most. From a pure spending and getting rewards perspective, Apple Card seems like a winner to me.

I am a somewhat baffled, however, at the Apple commentators’ many takes on how Apple Card’s rewards are mediocre. I suppose that may be the case for people who want travel rewards, but if you want cash back and can use Apple Pay at your local supermarkets and restaurants, Apple Card is a winner.

I base my opinion on lots of research into the best cash back cards. For the past twenty years, I have been a cash-back-rewards seeker who researches credit cards on NerdWallet and BankRate at least once a year, and occasionally jumps from one card to another. Based on my research, I already have the best credit cards for me, from a rewards perspective. Apple’s credit card’s cash back rewards system is better than all of them, again, for me. Two percent cash back on all Apple Pay purchases would increase the cash back I get from my largest non-mortgage monthly expense category, supermarket spending, from 1.5% to 2%.

I heard on TWIT this week that Apple Card does not have certain protections most credit cards come from, like purchase price protection and extended warranties. That doesn’t matter to me, though, as I have not used those benefits in the 20+ years I have had a credit card.

Apple Card’s announced interest rates fall within what I think is a normal range. Each customer’s interest rate will depend on their credit rating, so it is technically unknown until each person applies for it. Apple has not made it clear whether there is a monthly billing cycle with an interest-free grace period, which is common. This leads to more uncertainty about it, as better cash back rewards are not helpful if you have to pay interest on every purchase. I almost never carry a credit card balance, though, so whatever Apple’s interest rate is for me, and provided there is a normal grace period for purchases, it does not matter.

All in all, Apple Card sounds like a good deal for a lot of Apple’s customers.

On Internet Trolls

DON’T FEED THE TROLLS, AND OTHER HIDEOUS LIES” is a great article by “Film Crit Hulk” on our collective failure to respond properly to internet trolling culture.

A Twitter follower reminded me of a line in the famous parable from Bion of Borysthenes: “Boys throw stones at frogs in fun, but the frogs do not die in fun, but in earnest.” Defenders of trolling insist it’s all just a joke, but if trolling is inherently designed to get a rise out of someone, then that’s what it really is. In many cases, it is designed to look and feel indistinguishable from a genuine attack. Whether you believe what you are saying or not is often immaterial because the impact is the same — and you are responsible for it, regardless of how funny you think it is.

I think that there is a fundamental misunderstanding of trolling. It isn’t a joke. It isn’t done for the lulz. “It’s just a joke” is an obvious cover for bad behavior.

It reminds me of an episode from my youth. In high school I had a friend who had a stash of Playboy magazines that he got (I think) from an older brother. Somehow we found out about them, demanded to see them, and teased him about them as we thumbed through them together. “Why do you have these” we would ask, teasingly, knowing full well why he had them. My friend’s face would grow bright red and we would stammer: “because they’re so funny”. When pressed, he would double down on it: he would swear, up and down, that he had them because they were hilarious. Sure they were.

It puzzles me, why we act as if it’s even possible that verbal abuse on the internet is “just a joke”. A decent response to “it was just a joke” is “it doesn’t matter”.

The biggest mistake we ever made with trolls was making the question of abuse about how to placate and fix them instead of how to empower the people they hurt or manage your own well-being in the face of them. Like so many abused people, we thought the solutions involved walking on eggshells and not provoking them back. But instead, we must acknowledge “that we are what we pretend to be, so we must be careful about who we pretend to be.” And that means acknowledging the awful, terrifying power of jokes and the immunity we seek in “not being serious.” This is exactly why people troll in the first place. Because deep down, they know it’s serious, and that’s exactly why it makes them feel powerful.

In the online world, people who violate community standards should be banned from those communities. Gathering spaces online are not public spaces: almost all of them are owned by private companies or individuals. Freedom of speech is up to the owner of the space; the level of discourse there directly reflect’s the owner as well. By law, they might not be legally responsible for the content of their site, but they are ethically and morally responsible for it, regardless. Owning and running a site where terrible things happen should be a black mark on a company’s or a person’s reputation—and that should matter.

It would be nice if people started to care about reputation again, and if bad reputations led to lower profits and lower stature in the global community. Sadly, we are in a time, right now, where that does not seem to be the case.

Re-committing to Pinboard, after many months away

I’m re-committing to Pinboard, after a year or more away from it. I’m happy with what I am doing now, and thought I would document it in case anyone else wanted help understanding how to use the Pinboard effectively, especially if their usage lapsed, as mine did.

What is Pinboard?

Pinboard is an “antisocial” cloud bookmarking service. You can keep all your bookmarks there and use its barebones website or third party apps and browser extensions, all using an open API, to access them. It’s a paid service, run by a single person, with a clear and straightforward business model. When I signed up, I pre-paid for ten years of service. Part of my impetus for using it again now, after having abandoned it for, well, nothing, is the sunk-cost fallacy. The other, more important part of that impetus is that I really like the simplicity and speed of Pinboard, and I like the Pinboard iOS client I use, Pinner.

What do I use it for?

I use it for three things:

  1. To host my bookmarks in a cross-platform, always accessible way. I can get to the same bookmarks in Safari on my Mac and iOS, and in Chrome on Windows.
  2. For research and archival purposes, especially for programming projects I am working on. I can search these bookmarks on keywords, title, or description to review the best of the web pages I previously read on a topic of interest.
  3. As part of a homegrown “read it later” service. I can send article URLs to Pinboard from various apps, and read them later using Pinboard’s website, an app or browser extension on my Mac, and an app on iOS or Andriod.

Number 3 used to be the primary purpose of Pinboard to me. I had signed up as part of an effort to get replace Pocket with something more privacy focused. After many years of using Pocket (formerly “Read It Later”) to collect articles I was interested in from the huge stream of RSS feeds I parsed every day, I wanted a change. Primarily, this was because I became uncomfortable with Pocket’s business model: Why was it free? How did they really make money? What were they doing will all the data they collected on me?

I also wasn’t crazy about some of the UI changes made to Pocket over the years. I wanted more control over the reading experience, too, which is something that using a web service with an open API would give me. It helps that, at the time, Safari’s Reader View debuted, and I thought it was fantastic.

I was pretty obsessive about channeling all the articles I read through Pinboard, so I had a one-way workflow from discovery to reading to marking read. I never deleted anything from Pinboard, either. I thought I wanted a history of all the articles I ever read, in case I wanted to search through that history later. (Of course, I never did that.)

Why did I stop using it?

I stopped using Pinboard for three main reasons:

  1. I started reading Twitter more than actual articles linked to from it. The constantly updating timeline was incredibly addictive, and less mentally taxing to follow than reading complex articles from actual publications. (I have since given up Twitter because it was too addictive for me to handle responsibly.)
  2. My wife and I had kids, meaning that I no longer had a bunch of downtime after dinner to catch up on all the articles I had bookmarked to read later. I would still send stuff to Pinboard to read later, but I would never actually read the articles.
  3. My wife and I subscribed to The New Yorker, The New York Times, and The Washington Post. I started reading from those publications, from their apps, a lot more than scouring RSS feeds for articles from a dozen sources. Reading from their apps did not fit very well with my Pinboard workflow.

Overall, Pinboard became a graveyard for links I didn’t actually want to read. Instead of a useful resource, it was a junk pile full of stale content.

Digging out of a mess

I took the following steps to return Pinboard to a useful utility for me:

  1. I deleted everything I had in Pinboard—over 3,000 bookmarks that were doing me no good. Most of these were articles I imported from my RSS reader (Reeder) or Twitter (via Tweetbot), read once, and then just left in Pinboard.
  • I installed Shiori on my MacBook Pro. Shiori is a Pinboard bookmark launcher and editor. It's like QuickSilver for Pinboard—hidden until you need it, only a keypress away, and accessible from anywhere. I set it up so that Control+Option+Command+P brings up the bookmark search window (from anywhere), and Control+Option+Command+B brings up the bookmark editor.
  • I set up Pinner on iOS. Pinner is a full-featured Pinboard client. It will open Pinboard bookmarks in Safari or within Pinner, via Safari View Controller. It has two app extensions for creating bookmarks. The first extension, “Quick Pin”, has no UI, and is for quickly adding bookmarks to read later. The second extension lets you edit, interactively, all the metadata associated with the bookmark prior to saving it.

My workflow

I developed a new workflow to work with Pinboard, so I don’t end up with a mess of useless bookmarks again. Honestly, though, calling it a workflow is an exaggeration. I basically decided to manage Pinboard with a simple set of rules.

I will continue to use Pinboard both for permanent bookmarks, which mostly involve specific technical documentation about Swift and iOS development, and for a read-it-later service, which are bookmarks I want to keep around temporarily, some of which I plan to keep long term.

  1. Bookmarks I would keep in Safari, for sites I would log into (banking websites, personal websites, blogs, GitHub, BitBucket, etc.), are stored as private bookmarks with tags. All of these bookmarks are also tagged “Safari” so I can pull them all, as a group, with a Pinboard search.
  2. Bookmarks for articles to read later, and everything else, are saved with the “read later” flag set to “true”, primarily by using Pinner’s “Quick Pin” extension or the “send to Pinboard” command within Reeder (my RSS reader app of choice).
  3. I regularly use Pinner or Shiori to browse my “read later” list. Basically, I had to kick the Twitter habit.
  4. After I read articles marked “read later”, I delete the bookmark, or choose to save it. I am pretty ruthless about deleting bookmarks now, which is the opposite of how I used to be. If I don’t read something after a few days, I will just delete it.
  5. Rarely, I will choose to save the bookmark. If I do so, I edit the bookmark’s metadata to remove the “read later” flag and to add keywords and a description. I open copy the first paragraph of the article to the bookmark’s description field, so it’s clear to me later on why I saved it.

So far this workflow has been working well for me. I collect “read later” bookmarks throughout the day, read through them in the evening, and delete almost all of them at the end of the day. My Pinboard bookmarks list is much smaller than before, but contains only good stuff that I want to act on, either now or later.

What would make me upgrade my Series 1 Apple Watch

I love the Apple Watch. I didn’t always, though. When I first tried on a Series 0, a couple weeks before it was released, I quickly made the decision not to buy one. I thought it was too expensive and that it was not immersive enough. I had been expecting an iPhone for the wrist; what it was instead was a wristwatch with some extras. Six months later, however, I relented and bought one, mostly because Target was offering the Space Gray Sport model at a deep discount, and I wanted to pick a holiday gift for myself that my family members could chip in for.

I quickly grew to love the Apple Watch, despite its slow speed and lack of viable third-party applications. The first-party Apple Watch applications alone—such as Messages, Workouts, and Weather—pleased me very much. Caller ID on my watch was great for avoiding telemarketing calls at dinner. Something as simple as having the temperature always available on my watch face far more useful than I had anticipated.

I have a Series 1 now because my Series 0’s screen popped off due to battery swelling after almost two years. Apple covered it under an extended warranty and sent me a Series 1 for free. The Series 1 is much faster than the Series 0, and is not going to be obsoleted by Watch OS 5 in the fall. Still, it isn’t as fast, and consequently as useful, as the Series 3. I fully expect a new Apple Watch model to be released later this year, which will be even faster.

If I still had the Series 0, I had planned to upgrade this year, for increased performance alone. Now that I have the Series 1, I am not so sure. My Series 1 has great battery life, but is starting to show performance problems. Workouts, for example, take a long time to start. Third party apps are still, largely, useless for me, for the same reason. Despite these problems, most of the features of the Apple Watch are still working just fine for me.

The main feature that would tempt me to upgrade, at this point, would be new or better health monitoring features. The idea that the watch could save my life, by monitoring for irregular heartbeats, is very compelling to me. I would welcome and pay for any additional features in that area. If they are confined to newer hardware, I would definitely upgrade to get them. I care more about that sort of thing than I do about increased speed, cellular or GPS connectivity, or (if the rumors are true) a larger display area.

“Recess” and “Good Bones”, or selling the world to my children

There’s more beauty in this world than you can guess

Recently, with the help of someone on Micro.blog and Apple Music, I have turned my family on to the music of Justin Roberts. His band plays children’s music in a power pop style. His music is really catchy, and his lyrics are wry, funny, very kid-friendly (my daughter sings them all the time), and sometimes also play to the parents on emotional level as well.

My favorite Justin Roberts song, by far, is “Recess”. Like the best power pop songs, this song has more hooks and ideas in it than most albums do. The lyrics are cleverly and consistently written from the point of view of a bored kid stuck in a classroom, waiting for the recess bell to ring:

Can’t you hear the blacktop callin’? Classroom clock is stuck or stallin’ There is nothing that will pass the test Unless it’s recess

In the second and third pre-chorus endings, the lyrics expand out beyond the tedium of the elementary school classroom to the wonder of the outside world:

One more dotted I One more crossed T Then we’ll be runnin’ free There is more beauty in this world than you can guess

That last line resonates powerfully with me. Seeing the beauty in this world is something children do naturally. I think we forget how to, as we get older, and our knowledge of history and current events expands, and our experience of life evolves from dreaming of what our lives might be to actually living them day-to-day. Our dreams get smaller and more finite as time passes. As we get older still, we relearn to see the beauty, in a different way—with a wonder that is tinged with sadness. As an adult, I see that the splendor and joy of the world is counterbalanced by its disappointments and horrors.

The world is at least fifty percent terrible, and that’s a conservative estimate, though I keep this from my children

The line “There is more beauty in this world than you can guess” always makes me think of the contrasting sentiment expressed in the poem “Good Bones” by Maggie Smith:

Good Bones BY MAGGIE SMITH Life is short, though I keep this from my children. Life is short, and I’ve shortened mine in a thousand delicious, ill-advised ways, a thousand deliciously ill-advised ways I’ll keep from my children. The world is at least fifty percent terrible, and that’s a conservative estimate, though I keep this from my children. For every bird there is a stone thrown at a bird. For every loved child, a child broken, bagged, sunk in a lake. Life is short and the world is at least half terrible, and for every kind stranger, there is one who would break you, though I keep this from my children. I am trying to sell them the world. Any decent realtor, walking you through a real shithole, chirps on about good bones: This place could be beautiful, right? You could make this place beautiful.

This is a profoundly powerful poem that I read in college and have never forgotten. As an adult and a parent, I return to it often. It has always made me feel, in some way, like a teenager who concludes, upon first entering the adult world, that I have been sold a bill of goods: nothing is as nice or easy or fair as my parents and mentors (and, let’s face it, TV and movies) told me it would be. This poem distills all the disappointment and disillusionment that experience and maturity bring into seventeen simple and somewhat humorous lines. I love how it ends on a note that is somehow both cynical and hopeful: “You could make this place beautiful.”

Selling the world to my children

It’s my job, as a parent, to sell the world to my children. I want to tell them the good—now, while they are young—and the bad—later, when they are older. In both times, now and later, I have to remember that Justin Roberts and Maggie Smith are both right about the world. It contains all the beauty that has any meaning. It also contains all the horrors that have ever befell anyone. The most important thing I have to teach my children is that they can make it better—they just have to try, even after the veil of childhood innocence has fallen, and they see the world for what it really is.

The calm before the WWDC storm

WWDC is in a little more than two weeks. As a hobbyist developer, I don’t go to big, expensive conferences 3,000 miles from my home. But I do eagerly await it each year. Last year I was so excited about it that I went as far as calling it “nerd Christmas”. This year, though, I’m not looking forward to the keynote, the new APIs, the betas, and so on.

There have been no substantive leaks about what will be announced, and no one’s predictions so far have been that compelling. That’s in stark contrast to last year, when I practically knew what iOS 11 would bring to the iPad, based on rumors and speculation. This year, the most exciting leak we got is that a cross-platform macOS/iOS development framework will not be announced this year.

As a user and a fan, I basically want Apple to announce a rebuilding year. iOS 12 should be a maintenance release. They can make their software faster and more stable. They can make Siri a lot better. They can fix bugs. Other than that, I don’t want a radical UI overhauls of any of their operating systems (as if the latter would ever happen). On the hardware side, I’d love to see them refresh the MacBook Pro and iPhone SE sometime this year, but my expectations for an announcement at WWDC are very low.

As a developer, I don’t really want to worry about having to support new frameworks or features. Just upgrading from one iOS framework to the next one can sometimes take days of work before all the kinks are worked out. Even upgrading Xcode to a new major version is, as a Swift developer at least, a little scary. New versions of Xcode have not been stable or bug-free for me since Xcode 8 was released. The recently released Xcode 9.3.1 has been working really well for me, though, and I’m loath to give it up anytime soon. I’d love WWDC to be about Apple fixing the numerous, relatively minor, UIKit bugs that I’ve had to work around, but past history leads me to believe that iOS 12 will just have another set of odd bugs to work around.

Premature Optimization

In programming, there has long been a warning in computer science to avoid premature optimization. Donald Knuth called it “the root of all evil”. I find myself thinking about this all the time—not so much while programming, but when I’m thinking of spending money on myself, or telling people how to spend their money on me, as for birthday or Father’s Day gifts.

I’m at an age now where I have everything I would ever want. But…everything I have could still be a little bit better. To wit:

  • I have awesome headphones that I love. I want better ones. And different ones.
  • I have a home server that is underpowered, but quiet and extremely reliable. I would love one with enough power to could run virtual machines, but I don’t really need it.
  • I have a clicky mechanical keyboard that I love. I want a better one—that lights up, unnecessarily, or has colorful keycaps.
  • I have an Apple wireless keyboard for my Mac. I want to replace it with the Apple Magic keyboard, even though I already have an Apple Magic keyboard for my iPad.
  • I have a Series 1 Apple Watch that I love. I would love, even more, a Faster Series 3.
  • Let’s not even talk about iPads and Macs.

These few things are some of my material obsessions. What they have in common, for me, is that they have all been satisfied by things I already own, upgrading to newer or better versions would cost a lot of money (way more than anyone would spend in a gift for me), and the upgrade would be only marginally better than what I have, so I’m not sure if it would even make me happy.

Despite knowing all this, I can’t stop thinking about upgrading what I have to something better. I always want to optimize my experience with the things I enjoy. But, until the things I have break down and are no longer useful, it is too early to upgrade them. Doing so would be indulging in premature optimization, which be wasteful, which is “the root of all evil” to me.

Someday, my headphones will break, my keyboards won’t be compatible with my computers, my server won’t support the OS I want to run, and Apple won’t support my hardware anymore. That’s when I will upgrade these things—after I have extracted every bit of their value. Until then, I will just daydream about, and feel a little guilty about obsessing about, premature optimization.

Strategies to increase diversity on Micro.blog

Jean McDonald, Community Manager of Micro.blog, posted an essay today entitled “Diversity and Inclusion at Micro.blog: Where We Are, Where We Want to Go”.

The question comes up regularly: to what extent is there diversity in the Micro.blog community? We only ask for a name and an email address to register, so we don’t have any demographics on the users in our community. But I do know, based on skimming the names of those who register, that the percentage of users with typically female names is very small. When I look at users whose avatars are photos of themselves, I suspect the percentage of people of color is also very small.

I have been thinking about diversity on the platform since I started using it, the day it opened to the public in December 2017. Jean’s essay inspired me to publish some of my thoughts.

What do we expect?

The Micro.blog service has not been a publicly available for long. At this point, it is understandable that the first wave of users would be primarily composed of fans of its founder, Manton Reece. Manton is an iOS and macOS developer who blogs and podcasts about his development work and the indie web. If you have come across his work online, you are probably very much like him: an iOS or macOS developer, or at least a passionate user; a tech podcast listener; or a passionate blogger or IndieWeb aficionado. This core group is, for reasons related to historical and cultural biases, not a particularly diverse one.

This core group describes me, and certainly does not describe everyone on Micro.blog, but it does describe a lot of the users I found on the service’s Discover page. Manton and Jean have expressed, from the very beginning, an earnest desire to create a safe community of independent micro blogs—”safe” from the abuse that silences disempowered people, women, and minorities on dominant social media platforms. They, along with the users of the platform, have openly discussed how to increase diversity, and the challenges inherent in doing so. I have learned a lot from reading these blog posts and discussions. Like them, I wish for Micro.blog to attract and retain a more diverse user base. The question we all face now is: how?

Here are a few ideas.

Recognize and publicize that community guidelines are intrinsic to the product

Jean McDonald:

No one should feel unwelcome here.

This should be one of the public-facing mantras that applies to the entire project, much like “Don’t be evil” was to Google for many years. Jean’s quote should be atop the “Community Guidelines” page, and a link to that page should be near the top of the “help.micro.blog” page.

I think Micro.blog should put a lot more focus on the community guidelines and whatever technology or processes are used to enforce them. It’s a key feature of the platform. People behaving well together is the core of the product for me, and a key differentiator between it and Twitter.

Refine the marketing message

What is Micro.blog, anyway? To IndieWeb people, it’s kind of obvious. To everybody else, maybe not.

If asked, today, to sell it to someone, I might say: “It’s the good parts of Twitter, with none of the bad parts.” I might explain that microblogging is simply sharing something about yourself in public, and that Micro.blog is a safe, respectful place to do so, because it has protections against abuse, and strict community guidelines. If they are unsure why they should share thing in public, I would explain that it is empowering to do so. It is putting your best foot forward online.

Promote on podcasts

Having a simple, concise marketing message is essential, but that message needs to be spread somehow. One of the best ways to market these days is on podcasts.

Manton has a podcast and a microcast, which have brought a lot of people to Micro.blog thus far. I think podcasts are a great opportunity to promote the open, inclusive, but safe nature of Micro.blog. While podcast audiences may, as a whole, skew white, male, and wealthy, there are tons of podcasts out there that are hosted by, feature as panelists, and cater to women and minorities. I’m sure that Manton is adjacent enough to other tech podcasters to get some guest spots on tech podcasts that feature or cater to these groups.

Ask users for help

Micro.blog users are all, at this point, early adopters, and most of us are especially committed to the platform and want it to succeed. Ask us to publicize the service. Give us some ideas how to do that effectively, and in ways that will increase diversity. Provide incentives for us to sign up new people, such as additional badges (which are free to provide) or free months of Micro.blog hosting (which of course incurs a cost). I’m sure something will come of it.

Closing thoughts

My list of suggestions is by no means exhaustive, and Manton and Jean are likely in a better position than I am to understand what they need to do, and what they can do. I do want to express that diversity is important for all of us, even white, male, Americans such as myself. If all people are treated with dignity and are allowed to participate in something (work, society, etc.), outcomes will be better, and life will be richer, for all of us. I have seen that firsthand at a small scale, and wish to see it at a much larger scale. Micro.blog is a good place to start.

Chicken Sausage and Escarole Soup Recipe

Notes

This is a hearty, pasta-free soup, fit for a winter meal. Lots of vegetables, sausage (either chicken or pork sausage can be used), and cooking liquid from cannellini beans (canned or homemade) lead to a chunky, filling soup with a rich mouth feel.

Developing a fond while cooking the sausage will add an important foundation to the soup’s flavor. Deglazing this fond early, before cooking the vegetables in the same pot, will prevent it from burning.

Ideally, the vegetables should be soft but not browned; if they are not softening sufficiently during the sauté, simmer them longer in the broth, rather than extending the sauté.

You can substitute your preferred herbs for the Italian seasoning that I use. If using fresh herbs, add them at the very end, or just before serving.

If you wish to add pasta, ditalini works well. Cook the pasta separately, and add it just before serving, to avoid the pasta absorbing too much of the broth during cooking or storage.

Ingredients

  • 1 12 oz package chicken sausage
  • 1/2 cup water or chicken broth, for deglazing
  • 2 tbsp olive oil
  • 1 cup chopped carrots
  • 1 cup chopped celery
  • 1 cup chopped yellow onion
  • 1 7 oz bag fresh chopped escarole
  • 2 15 oz cans cannellini beans, not rinsed or drained
  • 8 cups low sodium chicken broth
  • 1 tsp Italian seasoning
  • Salt and pepper, to taste
  • (Optional) Fresh squeezed lemon juice, to taste
  • (Garnish) Freshly grated Parmigiano-Reggiano cheese

Directions

In a large pot or Dutch oven, brown the sausage in 1 tbsp of olive oil for 4 minutes per side over medium heat. This will likely not cook it through, which is fine; it will cook through later in the soup. Remove the sausage and set it aside.

Deglaze the pot with ½ cup water or chicken broth. Retain this liquid in a cup or bowl; it will be added back to the soup later. If the retained liquid contains any solids, strain it to remove them.

Once the par-cooked sausage is cool enough, cut it into coins and set it aside, to be added back to the pot later.

Dry out the pot and add 1 tbsp olive oil. Sauté the onion, carrots, and celery over medium heat until they are soft but not browned, about 10 minutes. If the vegetables are not completely soft after the sauté, that is OK; they can be softened after the liquid is added. Add the escarole and Italian seasoning and stir everything to combine.

Add the chicken broth, and add back the retained liquid from deglazing. Raise the temperature to high until the broth starts to boil; then lower the temperature to medium or medium low, to maintain a low simmer. Simmer until the vegetables are soft, which can take 5 to 10 minutes.

Add the cannellini beans, including their cooking liquid, and the sausage. (These ingredients are added later to avoid overcooking them, which would lead to split beans and tough sausage.) Continue to simmer until the sausage is cooked through, which will take only a few minutes.

Season the soup with salt and pepper to taste. If, at this point, the soup tastes dull, add some fresh squeezed lemon juice, little by little, until the broth tastes as bright as you want it to.

Serve topped with finely grated Parmigiano-Reggiano cheese.

Things I wish I could stop doing, but probably can’t

The beginning of the year is a time for setting goals. I have set some goals, and may post them here later. This list, however, represents my anti-goals—my to-don’t list, if you will.

  1. Lamenting failures rather than celebrating successes
  2. Being more interested in process than product
  3. Talking myself out of things
  4. Planning a project, rather than starting it
  5. Drafting blog posts, but never finishing them
  6. Letting important things pile up
  7. Not letting unimportant things go
These are my bad habits and bugbears, the blocks in my mind that frustrate me and prevent me from achieving my full potential.

These are the vampires that I have let in. They are no longer welcome.

Top posts of 2017

I started this blog in the summer, and since then I have published 30 posts, including this one. As far as output goes, I have met my goal, and I am happy with that.

Most popular posts

In the spirit of publishing year-end best-of lists, here are my top five most popular posts from 2017:

  1. Ulysses, a peerless writing tool, a short essay about my favorite writing software. I love good software, and think way too much about what makes productivity software, well, more productive.
  2. Choosing an iPad Pro Keyboard, in which I compare three of the main keyboards iPad users like me might be considering.
  3. Comparing todo.txt and TaskPaper formats, which are two plaintext task list formats. I love plaintext, love productivity software, and love not having lock-in with proprietary software vendors. I have been using both formats for different planning and task management tasks at work all year.
  4. Three ways to create nested projects in todo.txt, which addresses a common problem with the todo.txt format.
  5. Contexts in Getting Things Done, in which I describe the challenges I faced dealing with contexts in the GTD system.

These posts reflect some of my main interests: productivity software and systems, and Apple hardware. I have also written a little bit about Android, the Essential Phone, and parts of the free and open web that interest me.

Thoughts on the writing process

One thing that I have learned this year, from writing regularly again, is how much work it can be to complete a blog post. I have a half-dozen incomplete blog post drafts in my Ulysses library at any given moment. Shaping them into something worth reading is a lot of work—work that I don’t often complete as quickly as I would like. Even a simple 500-word post has to be written and re-written three or four times before I think it is worth publishing.

The writing process is valuable to me, though. Writing is a lot different than analyzing data (my day job) or writing code (my nighttime hobby). Writing, re-writing, and revising help me think and help me focus in ways that my more mathematically-focused activities do not. Plus, it feels good to communicate to the world, and to own all the content I produce and publish it on my own platform, under my own name.

The future

I plan to blog regularly in 2018, both on this site and on mjdescy.micro.blog. I have even set up regularly scheduled reminders (Apple Reminders, naturally) to help keep me on track. Thanks for reading.

Micro Blog

I started a micro blog at mjdescy.micro.blog this week. It is not to replace this blog, but to supplement it with a more frequently updated stream of short comments and asides about my life, or about news items that directly affect my life in some way. I want it to be like Twitter was for me back when I first joined it: a stream of consciousness, and a window into my life. My plan is to keep this blog (my macro-blog?) free of micro blog posts and life blogging, and more focused on longer articles, bigger ideas, and more complete thoughts—as it has been from the very start.

What I want is Twitter that isn’t Twitter

I love Twitter. So much information and commentary is shared there, so quickly, that it is a vital source for “what is going on on the Internet today”. At the same time, I hate Twitter, for all the bad behavior performed on the platform that Twitter, the company, tolerates. I’m not alone. A lot of people I follow feel the same way. I see tweets like this almost every day:

Brad DeLong: “I wish there was a network like twitter, but not, you know, actually Twitter”
  The thing is, practically since Twitter’s inception, alternatives did exist. I know. I used them: Identi.ca, StatusNet (the successor to Identi.ca), Pump.io (the successor to StatusNet), and App.net (a for-fee Twitter that got a lot of press but not so many users). And, I abandoned them and went back to Twitter, despite its flaws. So did everybody else.

Why is Twitter so sticky, and nothing else is?

What makes Twitter is valuable not what it does—microblogging is relatively easy to implement these days—but who is on it: Famous people! Intellectuals! Politicians! Journalists! These people and many more are not only publishing there, but reading there, too. Communication with, and between, influential people there can be two-way, and is usually in public, which is fascinating to read and unlike any other communications platform that had come before it. Twitter can amplify the voice of the non-famous and non-published people, too—the under-represented—which is often great.

Why is Twitter described as a cesspool?

Sometimes, though, amplifying under-represented voices is not great. Some voices are under-represented because they are malicious: Racists! Nazis! Liars! Sexist doxxers! Spammers! Russian bots! Malicious people have unique incentives to exploit and abuse a communications platform like Twitter. First, simply having a medium and a platform to spread their message is unique to them, because these people have been barred or banned elsewhere from spreading their message. Second, access to this new platform may be fleeting, because they could be banned there, too, for the same reasons they have been banned elsewhere. Third, people who want to spread malice are not the type of people who are concerned with preserving the health of the platform’s community, or the platform’s reputation in the wider world. Therefore, they can destroy the platform in the process of spreading their message.

Why can’t Twitter fix this?

The world is too complex to separate people, or Twitter users, into good and bad actors. What is unpopular or under-represented today may be celebrated tomorrow; it may be true and worth spreading today. Understandably, Twitter doesn’t want to choose who gets to speak on their platform. Therefore, they tolerate hate speech on their platform to a degree that makes some of their users angry. It puts the company in a difficult position when hate speech is broadcast (retweeted) by the President of the United States, as it was this week.

I understand Twitter’s problems as a company. It needs eyeballs on it to sell ads. Controversy on the platform, and the sheer number of active users (whether they are real people or bots), lead to greater traffic, greater revenue, and greater return on investment for their investors—at least in the short run. In the long run, however, poisonous speech on the platform poisons the platform.

What to do about it, as a Twitter user?

Basically, it is hard to see how, as users, we can improve Twitter. Twitter, the company, owns the platform. Consequently, it has the sole power to fix its flaws. Improvements to blocking and reporting abuse that Twitter has implemented have not satisfied the users who need them the most.

Moving away from Twitter entirely, onto another, similar platform, can work for small communities who primarily wish to communicate amongst themselves. It is unlikely, however, that a critical mass of influential users—the celebrities, journalists, etc., who make the platform valuable—will move to a different platform at this point. Without those users, another platform, however superior from a technical or community management standpoint, would not have as much value.

As a Twitter user, you really have two choices now: live with the abusive users, and report and block them as well as you can; or, if Twitter abuse is bothering you enough (or worse, threatening to your safety), stop using Twitter entirely. That is a sad conclusion to make, but I think it is realistic. Twitter’s ad-based model, need to generate both traffic and return on investment to satisfy its shareholders are, in the short run, at odds with its stated goal to improve safety, and therefore community, on its platform.

Fortunately, there are other ways to write content on the internet for free, such as WordPress. The problem is, you may never achieve the same reach with these other platforms as you would with Twitter. That is why I am sticking with Twitter myself. From a moralistic point of view, I would love to ditch it for something else. Despite that feeling, I get enough value from Twitter to keep using it, despite the sick-to-my-stomach feeling the Twitterverse gives me some days.

Back to RSS and the Indie Web

At the end of last year, I quit using RSS. It was a big step for me. I had been using RSS practically since it first became available. My first RSS reader was the Sage plugin for FireFox, which I started using in 2004. I subscribed to Slate, LifeHacker, a couple other professional publications, and a fairly large number of personal blogs, covering topics ranging from technology, economics, and personal finance to cooking and television shows. I was obsessive about skimming my feed many times a day, reading every headline, and often every article, of Slate and my favorite blogs.

I eventually dropped Sage for Google Reader, and used it, and later Feedly, as a back-end to whatever smartphone RSS reader I was using. For years I checked my feeds a dozen times a day, read a ton of articles (though not all of them, as I used to), and generally felt pretty happy with the experience.

Why I quit using RSS

I stuck with RSS long after I became a habitual Twitter user, long after I started to see articles linked to from Twitter before they hit my RSS reader, and long after most technology writers and podcasters started disparaging RSS as some antiquated technology that, like dial-up internet service, was hopelessly out of date.

Eventually, though, I quit using RSS—not because it was uncool, but because it was no longer making me happy. Like those writers and podcasters said, the basic need RSS fulfilled for me—keeping current, and entertained with fresh reading material—was being fulfilled by other services. Twitter did so more timely, and with more commentary from the writers. News aggregators, such as Apple News, did so with a slicker visual style. (I am emphatically not a regular Facebook user, so I miss out on whatever is going on there.)

I thought these services were more hip, modern, and fun than RSS. Most importantly, I thought they were keeping me more current. After all, for a long time, my RSS reader (the wonderful Reeder app for iOS) fed me the same articles that I had already seen on Twitter. Worse, it fed me five or six different publications’ takes on the same subject every day, which was interesting a few days of the year (such as when reviews of new Apple devices hit the streets), but was otherwise completely redundant.

What I missed without RSS

After a year RSS-free, I started to think something was missing. I was literally missing articles that I would like to read, especially those from bloggers I liked, such as Erica Sadun and John Gruber, because they would pass by in the timeline before I would see them. I was missing bloggers’ voices in general, because most of my Twitter list (like everybody’s, I’m sure) is heavily news related. I could keep up with what the New York Times and Washington Post are publishing each day pretty well; but what about what Manton Reece and Tyler Cowlin are publishing? Their voices were being buried in my Twitter feed by the daily (hourly?) news cycle.

Without RSS, I missed the spirit of the independent web: all those individuals and small publications who are sharing knowledge and expressing opinions that don’t fit into 140 characters, or even 280.

Back to RSS (and Atom, and JSON Feed)

After many months away from it, I realized that RSS wasn’t the problem—I was. I wasn’t using RSS in a way that made me happy. Worse, I supplanted it with Twitter, which both sucked up all my attention every day, and reduced my attention span for content to 140 characters (a length perfect for snipes and jabs and headlines, but insufficient for most cogent thoughts). Fortunately, RSS has not died since the rise of Twitter and Facebook. It has quietly remained a fundamental internet technology, undergirding nearly every online publishing platform. Many, many sites support it without advertising it the way they used to ten years ago. Luckily, any good client can find feeds using just the site URL.

Not only RSS is still there: my longstanding RSS software is still there, too. Like in 2013, I am using Reeder on iOS as a front end, and Feedly as a back end. Reeder has been around almost as long as the App Store. It is rarely updated, but it just works. It’s simplicity, elegance, and stability make it one of the finest apps on the platform. Feedly, the back end service that actually checks my feeds, is a free service that I basically never look at. I don’t use their website. I don’t use their app. I don’t really know or care how they make money off of me. It, like Reeder, is solid, stable, and just works.

Using RSS with a different perspective

After returning to my RSS reader after such a long break, I had thousands of unread items and dozens of subscriptions. I decided to start over, so I unsubscribed to all my feeds, and started thinking about what I really wanted to get out of RSS, and, in general, out of the Internet.

I decided to use RSS differently now. I no longer need it to drink the content firehose and keep current with the minute-by-minute news cycle; Twitter is available for that, for good or ill. Instead, RSS enables me to follow a few interesting voices on the Internet, read their actual, in-depth thoughts, and not miss anything they have to say.

To these ends, I no longer follow big media sites. Primarily, I follow blogs: real blogs, written by actual people, rather than published by massive organizations. I’m mostly following Apple-focused tech bloggers and Swift programmers, which reflects my favorite hobbies—but that’s just what I’m doing for now. Lastly, I’m not checking my RSS feeds a hundred times per day. I am checking only a one or two times per day, and often I don’t have any updates. Instead of adding more feeds, I just accept it now. Sometimes there’s nothing new to read, and that’s OK.

I’m happy with RSS again. All it took was figuring out what I really needed to get out of it, and taking control of how I used it. It’s a really great technology, no matter how passé or uncool it seems to be.

What makes you love or hate a smartphone?

I wonder this, as smartphones are maturing into what may be their final form: bezel-less slabs of glass with high-res screens, microphones, and sensors, that all look pretty much the same. The iPhone 8, for example, is the fourth generation of iPhone with the same basic form factor. A few years back, this would have been unheard of. A few years from now, though, I wouldn’t be surprised if there still is a “legacy” iPhone out there with this form factor, discounted several hundred dollars below what the iPhone X form-factor phone of the day will cost.

If all smartphones have the same basic shape, does it even matter which one you have? I think it does. You can still hate one phone and love another with the same case design. There are other things that matter, beyond the obvious distinction in operating system and/or Android skin. My experience with the iPhone 6S vs. the iPhone 7 is a case in point.

Nearly identical phones can be vastly different

Last September, I traded in my one-year-old iPhone 6S Plus for an iPhone 7 Plus, though Apple’s iPhone upgrade program. I hadn’t originally intended to do this. I had always kept my phones for two full years, and I chose the iPhone upgrade plan to get a nice monthly payment that also included AppleCare+.

The reason why I upgraded last year is that, after a year with it, I decided that I hated the iPhone 6S Plus. My 6S Plus was fine, and I never had any problems with the hardware or software, but I never really liked it, for several reasons. First, it was big, and I wasn’t used to big phones at that point. Second, it was ugly: the space gray aluminum finish was dull and drab. Third, it was ungainly: not only was it a large phone that strained my hand and my pockets, but its edges were smooth and slippery. Its Apple leather case was awful, too: it had mushy, hard to distinguish buttons, and its patina became slick and unpleasant after only a few months of wear. (Yes, I know the leather case is not the phone, but as it was an Apple product released alongside the phone, I think it is fair to include it in my assessment here.) The phone’s camera and software ecosystem were great, but it didn’t feel good in my hand, and that is crucial to how attached you can get to a handheld device.

While I grew to hate the iPhone 6S Plus, I quickly grew to love the iPhone 7 Plus. This surprised me, because the 7 Plus is basically the same phone. Sure, it has several major improvements—most notably, dual rear cameras and a much faster processor. Its minor improvements, however, contribute a lot more to my love for it. First, it looks great: the black finish is gorgeous and even blends seamlessly with Apple’s black leather case. Second, it feels great: I like the feel of the back much better, and the Apple leather case that came out with it has better quality leather, and clicky buttons on the sides. Its Taptic Engine, which provides force feedback for 3D Touch, the home button, and various user interface interactions, is absolutely amazing. It makes certain interactions, like scrolling picker views, 3D touching app icons, or pressing the home button, feel like you are interacting with actual, three-dimensional objects. It doesn’t vibrate as much as tap you with a reassuring, nearly soundless thud. The force feedback feels so good that it is almost addicting. It’s the kind of thing you would never think is important before you have it, but you don’t want to live without it once you do—like having heated seats in your car, for instance, or even the Apple Watch.

It isn’t just about the iPhone

I have the Essential Phone, now, too, which runs Android. I love it, too, though not as much as the iPhone. Why I love it, however, is a similar story to the one above, but it takes into account other manufacturers’ phones as well.

The Essential is one of a new breed of “bezel-less” phones. (These phones all still have bezels or notches or cutouts somewhere.) It is a smaller phone with a larger screen, much like the iPhone X, Pixel 2 XL, and Samsung Galaxy Note 8. Its lack of bezels make it smaller, and therefore easier to hold and pocket, than my iPhone 7 Plus, and other flagship phones of yesteryear.

Its glass screen and ceramic back make it like an impossibly smooth and cool piece of jet black soap. Its flat sides and smooth edges make it just grippy enough to feel secure in the hand, as opposed to slippery and droppable. Holding it, rather than using it, is the luxurious part of the experience. It feels just fantastic in the hand.

It doesn’t hurt that it has snappy performance as well—but you could get that from other phones as well. In fact, I vastly prefer it to the Samsung Galaxy phones and Pixel phones (the last generation, alas) that I’ve held. While those are the top Android phones in performance, hardware design, and features, I just don’t like them. It’s hard to put my finger on exactly why, but the materials and case design do not suit my tastes at all. They feel icky to me, in a way the Essential Phone never did.

The emotional connection

It isn’t 100% rational what makes a piece of technology suit you. It’s emotional. And sometimes the most subtle things—such as the color and feel of the materials, or the quality of the haptic feedback—can make you love a phone, or hate it.

Great haptic feedback is a major contributor to why the iPhone 7 Plus is my favorite phone. It feels great, and it feels alive when I touch it. I didn’t expect that feature to even matter to me, let along bind me to that particular model of phone. But it did. I don’t think most handset manufactures get that. After all, feeling is not a checklist feature.

I think Apple does get it, and little things like the Taptic Engine feeling so different than anything else are intentional parts of their industrial design and marketing strategies. Their industrial design and marketing teams have started (first, in my opinion, with the Apple Watch, and then with the iPhone 7), to really concentrate on what makes personal technology personal—that emotional connection you can have to your devices. And what they are doing is certainly working on me.

Deciding Whether to Upgrade to the iPhone X

Last year, prior to Apple’s announcement of the iPhone 7, I had hoped for the “all-screen” design that was announced last week for the iPhone X. I was sure that would be my next phone. Now that it is here, one year later, I am not sure if I want it—at least not yet.

As an iPhone Upgrade Plan customer, I have three options at my disposal:

  1. Do nothing, upgrade to something new next year, keep my iPhone 7, and give it to one of my kids, put it in a drawer, or sell it for peanuts in 2018.
  2. Pre-order the iPhone 8 Plus, which would presumably be available soon, as the most rabid Apple fans will prefer to skip it and get the X. I would have to turn in the iPhone 7 around month 12 or 13 of my 24-month payment plan.
  3. Wait until next month and pre-order the iPhone X via the iPhone Upgrade Plan. I would likely have to wait a couple months for the phone to be available (probably January). I would have to turn in the iPhone 7 around month 15 of my 24-month payment plan.

Cost: the main reason to skip the iPhone X for me

The iPhone X starts at $999. The model with more storage that I would buy is $150 more, and AppleCare Plus costs about $200 on top of that. That represents a huge outlay for the phone. I don’t begrudge Apple for pricing the iPhone X so high, or other people for buying it without worrying about its cost. The high price is, however, a hint that the X may not be for me—at least not this year.

Additional switching costs of an early upgrade

While I love the idea of “renting” a smartphone with a fixed monthly cost (hardware as a service), it doesn’t really work that way. You actually have to buy the phone, and deal with the downsides that entails.

When I upgraded to the iPhone 7, I was surprised that I would have to pay 100% of the taxes on the new phone (about $100), plus a fee to activate it on my Verizon account (about $20). I had been thinking only about the difference in the monthly phone payment I would make, which was minuscule, and the expected cost to buy a new, compatible case. I was out over $100 for the new phone, and realized that I had already paid those costs one year earlier for the 7, and was giving up that hardware completely. On top of that, the case cost a lot, too (about $50). It is easy to forget about these costs when (1) the cost of the phone dwarfs them, and (2) the main cost of the phone is a relatively small monthly payment.

This year, wiser about the switching costs, I am just not sure if it is worth it to go from the 7 to the 8 Plus or X.

Other reasons why I am iffy on the X

Coming from the Plus, the iPhone X actually represents a step down in screen size (though it has a higher native resolution), lacks Touch ID, and has a smaller battery. I am not sure how my apps will look on the iPhone X screen. I bet developers will have to figure out how best to handle the notch and curved corners. (I am a little worried about my iOS app, SwiftoDo, too.) Face ID might be slower or less convenient than Touch ID. Battery life might not be as good as on my one-year old, heavily used iPhone 7 Plus, or even the new iPhone 8 Plus.

Considering these minor drawbacks and unknowns, it might be nice to sit out the period in which users and developers figure out the new hardware, and Apple fixes any iPhone X-related software bugs.

What about the iPhone 8 Plus?

The iPhone 8 Plus is actually pretty attractive, despite having the same old (but good!) case design as the iPhone 6, 6S, and 7. I’m sure demand for it will be rather low, by iPhone standards. I would actually be able to get one soon. It is at least $300 cheaper than the iPhone X. The model I want costs $949, which is really expensive, but my monthly iPhone Upgrade Plan payment would not change.

What to do?

If money were no object, I would buy the X outright sometime soon and never use the iPhone Upgrade Plan again. Because that is not the case, I am leaning most heavily towards skipping an upgrade this year. I will deal with decreasing battery life and knowing I don’t have the best camera or performance anymore, but I will not suffer much. Or, I may just order the iPhone 8 Plus and not worry about the X until next year. I will go to an Apple Store in the next few weeks to test my resolve.

Sublime Text 3.0 Officially Released

Sublime Text, my text editor of choice on Windows, Linux, and sometimes on the Mac, released version 3.0 tonight.

I was surprised to learn the news, because I have been using Sublime Text 3 since 2013. Those were betas, of course, but were more solid and stable than most production software I used. I have been using beta versions for so long, I basically forgot that a final release would ever be forthcoming. There was, famously, about a year over which there were no beta updates, but the developer pulled through more recently with more frequent updates and meaningful new features (like High DPI support). Now, after several years of development, the release is marked complete.

I am a huge fan of this text editor. I use it constantly for many things. I even wrote popular articles about it in my Plaintext Productivity guide. Congratulations to the developer for wrapping up the release.

Now is a good time to buy a license, or pursue an upgrade. My 2013 Sublime Text 2 purchase qualified me for a free upgrade, so I am a very happy customer now.

New A List Apart wants you!

I am a fan of the open web, and also a fan of people asking their audiences directly to pay to support content they find worthwhile. A List Apart announced yesterday that they are pulling away from their advertising-based funding model, which apparently was not working well for them anymore, toward a volunteering and patronage model, which will draw from the community that reads and loves the site. I think this reflects a trend that is starting to separate “the open web” (community-based sites) from the big commercial sites (Google and Facebook, mostly), based on funding models and even content types.

I learned so much from A List Apart over the years. As a publication, it means an awful lot to me and my professional career. I am somewhat sad to admit that I stopped reading it after I shifted away from its core topics, web design and development, and moved toward finance, data analytics, and audit. I am not longer part of its core audience or community, but I wholeheartedly wish them, and the site’s readers, writers, and editors, well.