I just finished The Marvelous Mrs. Maisel on Amazon Prime. It was the best season of a show I have seen in a long time – maybe ever.

They are nothing alike, but I thought a lot of Better Call Saul while watching it. Both of them have a confidence about them that others don’t.

I’m working on a utility app that allows one tap publishing of Markdown or TextBundle files to Jekyll blogs hosted on Github Pages from iOS. I can’t think of a name for it that isn’t horrible or taken.

Any ideas?

Winning name gets a free lifetime subscription for Workshelf 😃

Streaks for iPhone and Apple Watch

I have taken Shawn Blanc’s Focus Course a few times now; the biggest takeaway that I had from the course was that daily habits were essential for meeting long term goals. After the course, I restructured my goals into something sustainable that I can do every day (or at least most days).

“Have a successful independent app business” turned into “work on a side project at least four days every week”.

“Blog more” turned to “write for 20 minutes at least four days every week”.

“Read more” turned to “read at least one chapter of a book every day”.

“Know the Word of God” turned to “read at least one chapter from the Bible every day”.

Be healthier was broke up into a few habits:
– Fill my Apple Watch Activity rings every day.
– Do a workout (even a small one) every day.
– Drink at least 68oz of water every day.
– Weigh myself every day.

By breaking big goals into small steps, you make them easier to achieve. If you hit that small step over and over again, you will end up with big results. To steal another adage that I learned from Shawn, the daily habits become the “little strokes that fell great oaks”.

The other advantage of turning things into habits is that you build momentum. When I got back into working out, the first few days were rough. When you are still sore from the day before, the absolute last thing that you want to do is workout again. As you keep doing it, the activation energy that it takes to do that task gets lower and lower. After awhile, it just became something that you don’t have to think about. You just do it.


When I decided that I wanted to get back to incorporating these daily habits into my life, I did what anyone who knows me would expect to be the first step: I found an app. That app is Streaks.

Streaks is a very simple app. You come up with a list of things (up to twelve) that you want to do every day. It will present those items in a 2×3 grid (there will be two pages if you have more than six items). Each item will show whether or not it has been completed today and how many days in a row you have completed it.

You goal is to simply complete every item in your list every day to increase your streak. The idea behind that streak is that if you build up momentum, you will not want to miss a day to break that momentum. If I have read the Bible every day for the last 11 days but I am not really feeling it today, I am more likely to go ahead and read it today so I don’t have to start my streak back over the next day.

Health Integration

Streaks can be tired directly into your Heath database to automatically mark tasks as completed.

I have automatic triggers for recording my weight1, drinking a certain amount of water, filling my Apple Watch activity rings, and having a certain amount of “mindful minutes”2.

For these tasks, it will show the percent completed for that day by filling out a ring around that task’s icon. This is useful because you can get a good sense of how far away you are from completing that goal.

My only complaint with the Health import is that it is not quite customizable enough for me. I have my Workout task as a manual one because I can not yet set it up to record exactly what I want. I routinely take a 30 minute walk at work, but I don’t want that workout to count for this task. I would love it if I could make a task that was “Do a 20 minute workout excluding walks”. All things considered, that it is a pretty minor complaint.


My favorite thing about the iPhone app is that I don’t really have to use it very often. Most of my interactions with Streaks comes via the Apple Watch app and its watch face complication.

The complication is what made this app stick for me. It just shows a grid of dots matching the layout of the first page of streaks. A light gray dot shows an incomplete task and a white dot shows a completed one. By using the grid (instead of just a badge with a number), you can see not only how many tasks you have left, but which tasks are left. Tapping on the complication opens the app, which shows you both pages of your tasks in a scrolling list (where you can, of course, mark them as completed).

Even if you don’t have an Apple Watch, you can interact with Streaks via its widget. You can access the widget in Notification Center or by 3D Touching the app icon. It shows one page of streaks at a time and has a button on the bottom right to toggle between pages. My only wish here is that it supported a larger widget size that showed both pages at once while in Notification Center.

Finally, you can mark tasks as complete from the reminder notifications that the app sends (either from the phone or the watch).


Streaks has a tons of ways to customize both the app’s UI and when individual tasks should be done.

On the UI front, you can change the theme color for the individual pages and change the color of the app’s icon to match.

For the tasks, you can customize:
– How many times a day a certain task needs to be completed
– How many days a week a task needs to be completed
– Which days of the week a task needs to be completed
– If (and when) a task should send a reminder or show a badge

You can also set negative tasks, which are implicitly mark as completed until you tell the app otherwise. This is useful for when you are trying to quit doing something. For example, I used one of these to efficiency remove Dr. Pepper from my life3.

Since I am trying to turn all of these into daily habits, I don’t use many of the customization features. My writing and coding streaks are set to four days a week and my workout is set to six days a week, but that is the extent of my task customization. The simplicity of “do this set of things every day” works better in practice for me.

I have used Streaks to basically gamify changing my default life habits.

  1. Streaks reminds me to do a certain task.
  2. I do that task, so I feel good about doing it.
  3. I check off that task, and then I feel good about getting to check it off.
  4. If they are all checked off at the end of the day, then I feel good about that.

Keeping track of things you want to do every day both helps build momentum so you keep doing them and it provides a little positive feedback that makes you want to keep doing them.

The New Year is a natural time to try to start some new habits and to make some positive life changes. Use Streaks to help you get from your goal to a daily step you can take to achieve that goal. Get started this weekend so you already have some momentum when January 1st hits this Monday.

I recommend starting with no more than four tasks so you are not overwhelmed. Make a couple of them easy so you can build momentum by checking them off. And then do them every day.

You can buy Streaks on the App Store.

  1. This one is really cool because I have a Nokia scale that automatically sends my data to the Health app. So I can go stand on the scale in the morning and then Streaks will see that new entry and automatically mark that task as done. 
  2. I mocked the Apple Watch Breath app when it was announced, but I have found it to be useful for prayer time. 
  3. Anyone who knew me in college could testify that this was a monumental task. 

LEGO Saturn V

For Christmas, Carissa got me the LEGO Saturn V. I spent a couple of days putting it together and it quickly become a permanent decoration on the desk in my office.

I love that all three stages are detachable and that it includes the lunar and water landers.

This is the first LEGO set that I have had since I was a kid. I had forgotten how much fun it is putting big sets together. I may have found an expensive new hobby1. I have my eyes on the Millennium Falcon, but the First Order Tie Fighter is a more likely bet (since it doesn’t cost $800).

Finally, my favorite two of the set:

  1. Just what I need: another interest that costs a lot of money. 

Watching Thunder basketball has been a lot more fun recently. I’m going to go out on a limb and say that this team ends up being the 3rd team in the West. 4 games behind San Antonio is achievable.

I’m taking Carissa to see The Last Jedi tonight. It will be my first viewing since opening weekend. I’m excited about seeing it again now that it has settled in my mind a bit.


Isaiah Werner has been writing spoken word prices that have been performed at church1 over the last few weeks as a part of our Advent celebration this month. They have been excellent.

This week (the final week of the series) they made a video.

For the final Sunday of Advent, we decided to do something a little different. Instead of doing a reading on stage, we chose to do a spoken work video with dance as the primary visual component. This project was super fun to work on and I’m so thankful to Korri and Moriah for their gifts and contributions. The video is below as well as the text from the poem. Thanks for stopping by. I hope that these Advent pieces have been encouraging and have, in some way, enriched your holiday. Merry Christmas!

These are worth spending some time on this Christmas Eve. Check them out below.

Have a Merry Christmas!

  1. OKC Community Church. You should definitely come 😃. 

Star Wars: And Everything Was Pretty Much Fine →

There are The Last Jedi spoilers ahead. You have been warned.

I think this review by Sean O’Neal at A.V. Club captures what I loved about The Last Jedi even better than the one I linked to last night.

And yet, that’s not how life works. Victories fade, replaced by new challenges. Heroes get older. They become broken-down and kind of pathetic, bearded and cynical. Sometimes they even end up all alone, stewing over decades-old fuck-ups, suckling at the nipples of sad, mutant cows. Happy endings are always undone because “endings” don’t really exist. Time doesn’t stop when you want it to. Your “destiny” can and will be slowly eroded away by the many small, cumulative abrasions of life that inevitably follow after you achieve it. This is real, and it’s disillusioning, and it can fill you with righteous anger at the unjustness of it all. And then, you die.

In tackling this notion head-on—in being willing to not only challenge Star Wars’ happy ending, but to question whether happy endings actually exist—these new films are giving the saga something that it’s always somewhat lacked, even in all its constant grappling with themes of the spirit versus the machine: humanity. That’s not always an easy fit with the kinds of myths that Star Wars updates; rarely do we talk about the fact that Hercules, for example, triumphed over his Twelve Labors, only to end up a twice-married widower who got killed by a shirt. And the very idea of it pisses off people who cling to the illusion that their own hero’s journey will someday be “complete.”

And yet, that’s the story of life. We get to what seems like a comfortable end—married with children, say, accomplished in our careers, content to just let things remain status quo forever. Then life intrudes, because we’re only one small chapter within its story. Those things change and slip away. We may “fundamentally disagree” with what life decides for us. Life writes its epilogue anyway.

Via Marisa Mohi.

This Is Not Going to Go the Way You Think →

I caught two showings of The Last Jedi last week. I left both of them thinking that it could be my new favorite Star Wars movie. Long term, it will be difficult to beat the nostalgia that comes with Return of the Jedi. But it has a chance.

There are minor The Last Jedi spoilers ahead. You have been warned.

I understand why some people do not like it. I can see the things that they have problems with, but they do not bother me a bit.

I was good with Luke being bitter and regretful. I was good with the casino heist. I was good with fuel-starved stalemate. And the porgs.

Jacob Halls’s review for Slashfilm encapsulates my feelings of the movie perfectly:

But with Star Wars: The Last Jedi, director Rian Johnson wants to burn Star Wars to the ground. Not because he harbors ill will toward it, but because he loves it. He loves it so much that he wants to cleanse the garden and allow something fresh and new to grow. The Last Jedi is not concerned about what you, the moviegoer and fan, thinks about Star Wars. It wants to challenge you and make you question what Star Wars is and what it can be.

The Last Jedi brings shades of gray to the big screen like no other Star Wars movie has yet1. I think that this added complexity will make this movie get better over time: it will get better after re-watching and could get better after seeing what follows it in Episode IX.

And with all that, I think I am ready for take three.

  1. This is not the first Star Wars story to do this: Rogue One touched on it with Cassian, and the book Dark Disciple completely focused on it. 

Apple Plans Combined iPhone, iPad & Mac Apps to Create One User Experience →

Mark Gurman writing for Bloomberg:

Starting as early as next year, software developers will be able to design a single application that works with a touchscreen or mouse and trackpad depending on whether it’s running on the iPhone and iPad operating system or on Mac hardware, according to people familiar with the matter.

I have been waiting for this to happen for awhile. It will be interesting to see how they go about this. The simplest approach would be to add UIKit to the Mac (with some additions for supporting the trackpad and the mouse). Internally they already have UXKit, a UIKit-like framework built on top of AppKit that powers the macOS Photos app.

A more exciting approach would be an entire new UI framework (preferably written in Swift7 that was designed to be cross-platform (and cross-paradigm) from the beginning. If they were going to take this approach, this summer is the first year where that would be technically possible because Swift 5 will be the first that has binary stability (which would be required for a system framework).

Regardless of the approach they use, something like this can really benefit both platforms. It would allow for there to be more native apps running on the Mac, and it would allow for more complex apps (Xcode and Sketch please) to be built for iOS because they can just share most of their code with the Mac.

WWDC 2018 just got a lot more exciting.

As a quick aside, this is my favorite thing that always appears in these type of reports:

An Apple spokeswoman declined to comment.

Well, duh.