Category Archives: Snippets

Eye Round Roast Recipe

Notes

At my local grocery store, eye round roasts are relatively cheap and plentiful in the cold weather months. They are all cut to just over 2 lbs, as well, so this recipe works pretty well for me. If your roast is larger, set the oven’s “on” time to 5 minutes per pound.

The exact measurements of the spice rub are not important, but it should consist of mostly salt. It is important to heavily salt the roast and to let it sit at room temperature for at least an hour prior to putting it in the oven. If the roast is too cold, it will not cook through properly.

I have found that these roasts leave enough fat in the pan to allow me to make a pan gravy with just a bit of flour (about 1 tbsp) and 1 cup of liquid (often just beef broth). (It there isn’t enough fat left over to make a roux, add butter to the flour.)

Ingredients

  • 1 eye round roast, 2 1/4 lbs
  • 4 tbsp kosher salt
  • 1 tsp freshly ground black pepper
  • 2 tsp onion powder, 2 tsp
  • 1 tsp garlic powder
  • 1 tbsp olive oil

Directions

Dry off roast with paper towels.

Create a spice rub by mixing the kosher salt, black pepper, onion powder, and garlic powder. Coat the roast on all sides with the spice rub. (You will likely not use all the spice rub.) Let it sit at room temperature for 1 hour.

Set an oven rack to the middle or upper middle position. Heat the oven to 500º F.

Coat the roast with a thin layer of olive oil and place it on a pan. A 12-inch cast iron or stainless steel skillet works fine. A rack is optional.

Put the pan in the oven and roast it for 10 minutes, or about 5 minutes per pound. Then, shut off the oven, and do not open it for 2 hours.

After 2 hours, the internal temperature of the roast should be about 145° F. Set the roast aside and, optionally, make a pan sauce from the drippings.

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 1/2 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.

Instant Pot Salsa Chicken Recipe

I’m posting this for the benefit of Traci on Micro.blog.

This is a simple, lazy recipe for the Instant Pot. It isn’t entirely original, but it is extremely useful, and produces a result that everyone in my family will eat, which is no small feat.

I don’t measure anything. If I don’t have salsa, I dump in tomato sauce or even just water; the result is more bland, but still edible, and it can be shredded and mixed with barbecue sauce if desired. I make this in the morning or at lunchtime and let it stay on Warm for hours and hours until dinnertime. I find the taste of chicken thighs improves after a couple hours on the Instant Pot’s Warm setting.

Ingredients

  • 6 chicken thighs
  • 1 cup mild or medium salsa (eyeballed)
  • 1/4 cup water (eyeballed)
  • 2 large pinches kosher salt
  • 2 tbsp olive oil

Directions

  1. Oil bottom of Instant Pot.
  2. Coat bottom of Instant Pot with 1 pinch of kosher salt.
  3. Add chicken thighs in one layer
  4. Season top of chicken thighs with 1 pinch of kosher salt.
  5. Cover with salsa. Add water if salsa is not very liquid.
  6. Lid the Instant Pot and cook under high pressure for 20 minutes.
  7. Allow pressure to release naturally. The Instant Pot will automatically switch to its Warm setting. Keep the chicken thighs on the Warm setting as long as you would like. The chicken tastes better after several hours on Warm.

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.

SwiftoDo Development Notes, October 2017

As an iOS developer, my job is never done, even though my app, SwiftoDo, is internally simple and focused. There are always more features to add. There is competition in the App Store to worry about. There are third party libraries that deal with that break from time to time or have APIs change. Most of all, there is the regular drumbeat of regular iOS updates, which, frustratingly, can break standard UI controls and behaviors, and new hardware to support.

What I like about having my own iOS app is the act of creating something unique, something I actually use every day, and supporting other people who want to use it to. It is a lot of work, but it is also a lot of fun—except for migrating between Swift versions every year; that part I could do without, and hopefully the changes will be more minor as time goes on.

Right now I am trying to knock out several features that have been in development since this summer, and get it all done before Apple no longer supports builds from Xcode 8.3.3. I think, when I finally upgrade to Xcode 9 and do yet another Swift version upgrade of my code, I will drop support for iOS 9, and bump the minimum supported iOS version up to iOS 10.3, or maybe even iOS 11.0. I hate to do that, but support for the older SDK is probably causing me more trouble than it is worth at this point. Still, I don’t want to leave my iOS 9 users with an app that is broken or unstable in any way. That is why I have delayed dropping support so long now.