Author Archives: Lou Franco

Combining Identities

I have been programming since I was 13. I am a programmer in a very deep way. I do it nearly every day, and it brings me joy.

I have tried to be a runner for the past 15 years and had some success, but never was able to make it a permanent part of my life—I was not really a runner.

Two years ago, I did a few things to take up the practice of running more seriously. One of my tactics was to combine my programming identity with a nascent running identity.

My coach, Holly, assigns me several programmed runs every week. They are of the form: Warmup for 15 minutes, then do 6×3:00 at 5k pace, with a rest interval of 2:00, and then do a 10 minute cooldown. There are a few different patterns.

I made Sprint-o-Mat, an Apple Watch app to guide me during these runs. It has template patterns that you can customize and then buzzes/dings my wrist to let me know to start a sprint, a rest, or whatever is next.

I want to run to play with my app. I want to program to help my runs. In 2020, I ran two marathons, so I do really see myself as a runner now.

The next thing I am tackling is how to tie a writing identity to programming as well. Unlike running, I don’t think I want to work on a writing app. But to combine programming and writing, I do need some kind of project that uses both.

Note: I released a major update to Sprint-o-Mat. See a post about its new interface and how that influenced its icon design.

January 2021 Blog Review

Last month, I wrote mostly about how we can apply game design to books and apps. By this, I mean making the book or app literally a game (like Pokémon Go), not slapping on badges to gamify an app. Speaking of Pokémon Go, I have ideas for how AR will turn mundane apps into games.

I also covered parts of my daily and weekly routine, and how I use habit totems to keep myself on track.

I wrote a little about programming. I think tutorials should be vaguer because they would force learners to write programs, not read them. If they were, they would be better preparation for coding interviews. I updated my 2011 advice on GitHub profiles. I covered two approaches to app icon design, icon-first and icon-last.

In February, I plan to talk more about my practice of daily coding, writing, and sketching.

Make a Game out of an App

I’ve been exploring the intersection of games and things that aren’t really games, and using playability to make books and apps better. In past articles, I’ve talked about how this is not gamification, which I view as a tacked-on layer. I gave the example of Pokémon Go vs. Apple Workouts to illustrate the difference.

I recently made a major update to Sprint-o-Mat that made the UI more of a visualization. My goal was to make it easier to get the most important information at a glance.

But, running with it today, I realized that it’s also now a game. Instead of showing this:

I show this:

The white dots are pace-setters, and so now it’s a game—a race. It’s a rudimentary one, but racing is fun, and I think this now is a fruitful direction for making it more and more like a race.

In a real race, one of the most fun parts (to me) is when you are close to another runner and have to compete. This is where I think I can add some functionality in the next version.

I could do even better if Apple Glasses are real.

Lowering the Bar to Practice

There are three things that I try to do nearly every day: code, write, and sketch. Of the three, I struggle most with sketching.

It’s also the case that of the three, my sketching is the least developed. I am a professional programmer, and I have had some success writing professionally, but my sketching is (to be the most charitable) “advanced beginner”.

It’s also the case that I have spent orders of magnitude more time coding and writing than sketching.

This year, with my theme to Hone, I am committed to just making as many bad sketches as I can. Honing is sharpening by repetition.

So, I remembered a lesson from a sketching class I took a few years ago—warming up with blind sketches.

In a blind sketch, you look only at the subject and not at the paper at all. You may even decide not to lift the pen. You try to get a sense of the canvas with just your hand. Part of what you are developing is the skill of drawing what you see (the shapes and values in the space), and not symbols of what you see.

I use a big pen (1.0 mm) to make sure that ink makes it on the paper (since I am not looking, sometimes my thinner pens don’t always make marks) and to further lower the bar on the expected outcome.

These sketches are “easy to do” in the sense that I can do them at any time. I just draw what’s in front of me. Here are some pens:

I do a few of these and then I might move onto a longer sketch. But, even if all I do is some blind sketches, I’m ok with that.

My Habit Totem for Daily Routines

In Environment Hacking, I wrote:

In [the Fogg Behavior Model], we add prompts to our environment for things we want to do more […] changing our environment to influence our own behavior. I have been thinking of “habit totems” I can put into the environment to prompt me.

So, in the past, when I’ve tried to institute daily startup and shutdown routines, it would fall apart eventually because I didn’t remember to do it. It was a partial habit at best.

So, this time, I designed a custom bookmark. I use them in my journal, my sketchbook, and any book I’m reading. Here it is (I got them made on VistaPrint):

The words under each routine are a short-hand. “Breathe” means meditate, which could be with the Breathe app on my watch, or any other way. “Practice” means to do my daily practice of coding, writing, and sketching. Hone is my yearly theme.

In practice, the biggest help is to remember to plan the next day. It only takes a few minutes, but makes all the difference.

I tried to think of something clever to put on the back of the bookmark, but I was so indecisive about it that I finally just stuck a photo I took of a Florida beach sunset and called it a day.

End Your Week with a Plan for Next Week

This is a follow up to my end-of-day tomorrow planning.

I run my weekly plan Monday-Sunday, so sometime on Sunday I’ll start to make my plan for the upcoming week.

The first thing I do is collect my WINS from my daily plans. At the end of each day, I tried to pick out something from the day that would bring me joy to reflect on later. Now (at the end of the week) is later.

Under that I put a BIG 3 checklist for the week. These are tasks I commit to do the following week. Each might take several days, so I need to break them down.

So, under that, I write the date of the next seven days on separate lines. I try to break down my Big 3 into tasks that need to be done each day that will eventually accomplish them. These will feed into my daily plans that week.

I’m not going to write a separate post for it, but I also have a monthly plan with a monthly Big 3 and biggest WINS. The entire thing rolls up to my yearly plan, which is a one-word theme and some high-level ideas of the kind of things I want to do that year. Months and years are not planned out as thoroughly as weeks and days—they are mostly a guideline to provide some direction.

Environment Hacking

I’m a big believer in changing your environment to influence your own behavior. I wrote in Self Control that I block social media, news, and other distracting sites on my work computers (I now do it on all computers and devices I use). This means I don’t need to expend any willpower avoiding those sites—it’s simply impossible to get to them.

I also use Due and my own app, Habits, to give me reminders to do things I want to do, but forget.

These apps are using what the Fogg Behavior model calls a Prompt. In this model, we add prompts to our environment for things we want to do more and remove them for things we want to avoid.

My blocking of social media is using the environment to impair my Ability, which is another variable you can affect by changing your environment.

Fogg covers this in-depth in his book Tiny Habits.

One of BJ Fogg’s insights is that you already have habits that are completely automatic, so he suggests using those as prompts for a new habit you are trying to build. You repeat to yourself, “After I do [some automatic habit], I will do [some tiny version of a new habit]”. For example, “after I brush my teeth, I will floss one tooth”. In this case, the environment is your existing habit.

This works great, but I have some habits that I can’t easily tie to existing one (or at least I haven’t been successful at it yet). For these kinds of habits, I have been thinking of “habit totems” I can put into the environment to prompt me.

One example is that when I run, my arms tend to cross-over in front of my body instead of staying out at the sides. If I notice it, I fix it, but I can’t get it to be top of mind while running. So, I cut out a small arrow out of electrical tape and put it on my watch band.

This has helped a lot. I see this part of my watchband a lot during my run, and it leaves enough of an imprint to help me keep my arms out.

The difference is the habit totem is location-based, rather than time-based (like an alarm) or behavior-based, like another habit.

Yearly Themes

I’m a proponent of yearly themes to tie together a general direction for the year. I was first exposed to this idea from Gretchen Rubin and Elizabeth Craft’s Happier Podcast. It’s also a recurring topic on Cortex with Myke Hurley and CGP Grey. Here’s a video CGP Grey made about it:

My theme for 2021 is Hone. I am mostly fine with the things I am doing, but I just don’t do them enough. 2021 is about doing them more deeply and getting better at them.

I want to run more seriously, and since we might be able to race again in 2021, I’d like to try to set some PRs.

I am going to write more. My goal is quantity because I think that will be the best way to improve. To drive this, I am reading and note taking more diligently.

I have been sketching for years, but not often enough to improve. Now, I am setting aside at least a little time every day to sketch. One easy way to start this is blind sketching, where you look at the subject and not the paper at all. It lowers the bar enough to make it an anytime activity.

I became mostly vegan in 2019 for health reasons. My cholesterol is now normal, but I want to lower my oil and processed fat intake as well to see if I can get it even lower.

So, I am grouping this all together as HONE, which I interpret as sharpening via repetition.

Sprint-o-Mat 2021.1 is Available

i just released Sprint-o-Mat 2021.1 to the App Store.

Sprint-o-Mat is a watch-only app that lets you define, and then run, programmed running workouts. If you are using a training program for your running, you might be familiar with workouts like:

  1. Run 15 minutes to warm-up at a slow pace
  2. Then, Repeat 6 times
    1. Run 1/2 mile at your 5k pace
    2. Run 1/4 at a rest pace
  3. Cool down with a 10 minute run at a slow pace

Sprint-o-Mat comes with templates that you can use to define those runs. You can set individual paces and heart-rate zones for each leg.

Then, when you are running, you get a visual display of where you are in the workout and haptics and dings when it’s time to switch to the next segment.

For example, yesterday I needed to run 8 miles at around 10:45 for a marathon training program I am doing. I broke it into a repeat of 8 1-mile runs. At mile 6, I took this screenshot

The outer ring is the entire 8-mile run, and the inner ring is the current mile. The white dots are pace runners. I can see at a glance that I am basically on pace.

The corners have more info. The top has total elapsed time and distance. The bottom has the segment name and my heart-rate.

Everything is green because I’m in the zones I set up.

At the end of the run, Sprint-o-Mat will save all the info to HealthKit so you can see it in Health or Activity on your phone. I recommend the RunGap app if you want to do more with the data (e.g. send it to Strava). I have worked with the developer to make sure Sprint-o-Mat saves the data in a format it can use.

In Icon-Last Development, I wrote about the evolution from the first version to this one and how it affected the icon. I have a few more articles coming later in January.

Sprint-o-Mat supports Apple Watch Series 3 to current, including all sizes from 38mm to 44mm, and it’s free. Take a look.

Use GitHub Profile Pages to Mirror Your Personal Site

In 2014, I wrote that a direct GitHub link to your profile was not good enough for a resume. At that time, the profile page was not customizable enough and was confusing for a recruiter or hiring manager to use to understand your portfolio.

My suggestion was to link to your-site.com/github instead (for example: loufranco.com/github). I recommended that you organize your open-source work more like a portfolio and highlight the most important work.

But, since 2014, GitHub has made updates to profile pages. Right now, I would say that they are finally good enough to use directly if you want. It’s just a README and you have total control of the text.

But, I decided to just mirror my personal page on it. The one big advantage of my personal page is that I have access to the analytics for it. I am not in the job market, but if I were, I could also put a contact form on it. My own page is also more customizable than a README.

GitHub profile pages will probably rank higher in search and are linked up directly in GitHub. So having something there is also important, which is why I mirrored my personal page.

My 2014 article had some advice on what should be on your profile page. I’ll be revisiting that soon.