Siri is trolling me hard tonight. No matter what song I ask for, she just plays Crank That by Soulja Boy. I would prefer Rickrolling to this.


Last egg nog of the season. (2/365)


Apple acquires buddybuild

From the buddybuild team blog:

We’re excited to share that the buddybuild team has joined the Xcode engineering group at Apple to build amazing developer tools for the entire iOS community.

I have never used buddybuild myself1, but I have always heard good things about it. I like the idea of Apple building more Continuous Integration features into Xcode, and this looks like a step toward that.

I would love to see them build something like Xcode Bots that could run on an Apple-provided service like buddybuild instead of requiring me to have my own Mac for it.

  1. I try to keep as few third party dependencies in my build system as possible. ↩︎


Micro.blog

It has been one year since the Kickstarter for Manton Reece’s Micro.blog service launched. From a high level, you can think of Micro.blog as an open, decentralized version of Twitter. The biggest difference in something like this and Twitter is your relationship to the content you post. If Twitter were to go away tomorrow, my 30k tweets since 2009 would disappear right along with it. With Micro.blog, those posts are owned completely by you. You can export them and move them to a newer service when ever you want it. You can even, like I do, host them directly from your own site.

I won’t get into all of the details here, but 2017 made it even more clear that Twitter is an incredible service that is run by a horrible company. In 2018, I am working to lower my dependence on Twitter by moving more and more of what I post to Micro.blog (and by extension, to this site). One of the great things about Micro.blog is that I can do that without losing out on the community that I have built on Twitter by using the automatic cross-posting feature1.


One of the things I want to do is get to the point where my site and Micro.blog are the default places where I go to post new content on the internet. The biggest barrier to this was the amount of time it took to post something to my site compared to Twitter.

My site is build with a static CMS called Jekyll. It basically takes a bunch of configuration files, Markdown files, and pseudo-HMTL and CSS files; runs them through a program; and outputs a website.

My site is hosted on GitHub Pages. The way it works is that I keep all of the before-mentioned files in a repository on GitHub. Every time I commit to that repository, GitHub automatically runs the program that converts those to a site and puts it up on the internet.

The best part about this setup is that everything about it is completely free. Jekyll is open source and GitHub does not charge for using GitHub Pages. They even allow you to use a custom domain name2.


With a setup like this, posting from iOS can be a little tedious. Once I have my post written, I have to put the Jekyll-required front matter at the top3. I then have to give it a file name with the correct format, put it in the _posts directory of the repository, make a commit (with a commit message) to my Git repo, and push that commit to GitHub.

You could do all of this using an app like Working Copy on iOS, but publishing the post would take as long as writing it for something short.

My solution to this problem is a new app that I am writing called Reposit4. Reposit lets me take a Markdown file from Ulysses, my writing app of choice, and publish it with one tap from the system share sheet. It performs all of the steps listed above so all I have to do is write and hit publish. If there are images in the post, it will grab them and put them in the correct directory so they show up in the post5.

Once it is posted to my site, Micro.blog will pick up the post and mirror it there and post it over to Twitter. While this is still not quite as seamless as posting a new tweet from Tweetbot, it is getting closer.


With this system in place, my plan will be to post something here just about every day. That something could be an article like this, a shorter tweet-style posts, a link to something interesting, or an Instagram-style photo6.

I am seeing more and more people discuss moving their online water-cooler talk away from Twitter in 2018: Becky Hansmeyer, Billy Adams, Ben Brooks, Daniel Jalkut, Brent Simmons, and of course, Manton Reese.

I’m exited to try to add my name to that list.


If you want to take a hand at doing something like this yourself, Micro.blog is now open to the public for signups7. You don’t have to go through any of the trouble of trying to host a blog yourself: you can just sign up and let Micro.blog host everything for you. If you outgrow that and want to move it to your own site, you can export everything and do that later.

You can sign up here and download the iOS app on the App Store.

  1. This became a lot easier when Twitter upped the character limit to 280 characters, which matched what Micro.blog already had. ↩︎

  2. That, of course, you do I have pay for. I recommend using Hover↩︎

  3. This provides things like the title and timestamp for the post. ↩︎

  4. Thanks to Billy Adams for the name! ↩︎

  5. For the nerds out there, this is done by sending the post to Reposit in a TextBundle format instead of plain Markdown. ↩︎

  6. I am stealing an idea from Stephen Hackett and trying to post a picture here every day in 2018. Here was yesterday’s photo. ↩︎

  7. Signups are currently limited to 100 people/day. If you are unable to sign up, just try again the next day. ↩︎


Distracting myself from the OU loss by sketching out some design ideas for my site that I want to try out. (1/365)


Seek First

Kaleb Kinney had a great New Years themed sermon at church yesterday. The main takeaway is that you should try to achieve all of the goals that you made for yourself in the new year, but that you should commit to knowing God first.

To illustrate this, he talked about the story of Joseph in Genesis. Joseph was committed to knowing God, and he excelled through horrible situations because of that.

You can listen to the message on the church podcast feed (or listen in Overcast).


One of the practical examples that Kaleb gave on what we could do to know God better in 2018 was to read the entire Bible in a year. If you read every day, it comes out to about 3 chapters a day.

As I briefly mentioned in my Streaks review, I had recently got back into the habit of reading a chapter of the Bible every day1. Bumping that up to around 3 a day would not be much more time in any particular day, but it would make a huge impact over a year.

So I moved YouVersion to my first iPhone home screen 2 and found a chronological Bible-in-a-year reading plan and got started this morning3.

I am putting this all on here to give myself some accountability. If I tell people that I have a goal to do it, I am less likely to skip days when I’m not really feeling like doing it.

The other reason I’m putting it here is to encourage you to do something similar. Find a Bible reading plan and commit to doing it. Start this one with me today and we can keep each other accountable.

Spend 2018 achieving all of the goals you have set out for yourself. But before that, spend 2018 seeking first the kingdom of God.

  1. Current streak is 16 days 🎉 ↩︎

  2. In place of NeuBible↩︎

  3. As a bonus, it is a six days per week plan so I have a buffer day every week. ↩︎


Little man making New Years cookies!


I am a pretty big Siri defender, but this is inexcusable.


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 😃


I am starting to get a little nervous about all this talk of Baker Mayfield being sick. It would really suck to get this far and lose because our best player wasn’t 100%.

We still have a few days before the game, so I really hope he gets better. Luckily, he did practice today.


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.

Streaks

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 2x3 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.

Extensions

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).

Customizations

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. ↩︎


5 Thoughts that Have Nothing to Do with Football by Mike Leach

At The Players’ Tribune, we do many features that dive deep into the psyche of competing in athletics at the highest level. This is not one of those features

Mike Leach is one of my favorite college football coaches. Over at The Players’ Tribune, he wrote down five thoughts that have nothing to do with football. I won’t ruin any of it for you, but you should read it.


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.