February 3, 2018

Forestry.io

I have been happy having my blog hosted in Jekyll and built as a static site with Netlify. There is a wonderful calm to knowing you just have a bunch of HTML pages. It’s light and airy. But, and this is a big one, I’ve found authoring to be simply too hard. Writing using a source code workflow adds too much friction.

Tonight I’m trying out Forestry.io and I’m very impressed. 👍 There are a number of content management tools for static sites, but I’ve found most of them fail immediately since I have more than 1,700 blog posts and I put them in :year: folders inside of _posts and that simple part causes most of them to fail. Similar issues exist with where you host images. I was very happy to see that Forestry.io worked right out of the box with that. It even built nice front matter templates based on the content it found inside of my site!

I’m putting this post together to share how impressed I am, and also as a test of the posting interface. If you are using Jekyll or Hugo I would highly recommend you look at Forestry.io!

Jekyll
January 21, 2018

2017 in Meetings

Manager and maker schedules is a relatively popular topic. The basic thesis is that maker schedules need to consist of large blocks of dedicated time on a goal. You need time to connect with the work, hopefully, achieve some period of flow and realize an objective. Manager schedule, however, is divided up into small segments of time to connect with people and topics, get information and make decisions.

In my position, I operate on manager time with occasional injections of maker time. I am deliberate about how I manage this. My objectives and goals are realized, in part, through my calendar. In recent years I felt I could better align my calendar and time with my objectives, so in 2016 I did an end-of-year one-time analysis of my calendar and made some changes. After reviewing that analysis, I decided the benefit was valuable enough that in 2017 I committed to collecting more granular data. My goal is to determine alignment and effectiveness of my schedule to my objectives. I developed a set of workflows that I run at the end of every day to collect this data.

Now that I’ve collected a full year I can look at an overall budget to actual analysis. In business, we always look at our financial budget and compare to actual. In managing my time, I find it helpful to consider a budget and measure the actuals as well. You cannot budget well if you don’t collect actuals.

I’m going to share some of the statistical information that I gathered while doing this in 2017. I’m not sharing any information about the content or context. You may consider this navel-gazing, but some may find it interesting, and perhaps it will encourage others to be more deliberate about managing their time.

This analysis refers to meetings on my calendar. These are meetings involving other people. I block time on my calendar for solo work, and that is excluded in this analysis.

In 2017 I had a total of 1,512 meetings. These meetings occurred over 223 days. That is an average of 6.8 meetings per day.

Meeting frequency is highest on Thursday. However, the largest cumulative hours are on Wednesday. Friday has shorter meetings on average. I would have thought that meeting count would spike on Tuesday and then trend down through the week.

2017 Meetings by Day of Week

Let’s look at how these meetings occur over the course of the year. The average of 6.8 meetings per day shows visually here. There are many spikes, with one notable day having 13 meetings. Weekends are shown here, and you can see the 2-week vacation I took in the summer.

2017 Meetings by Day of Year

Daily data is noisy, and it’s easier to look at the 52 weeks of the year versus the working days. Here we look at the meeting count by week along with a 4-week moving average.

2017 Meetings by Week of Year

I got curious about how much of the week is scheduled in meetings. If we use an 8-hour day as a baseline then consider the load to be the percent of those 8 hours that were scheduled what would my weeks look like? It isn’t uncommon for me to have all of my time scheduled, and occasionally be over scheduled. As mentioned earlier, I do block time on my schedule for solo work activities. As a result, 81.3% is fully scheduled. Whenever I am over 81.3% I’ve removed that block to allow for more meeting time.

2017 Meetings Load by Week

How about the start time, do more meetings start in the morning? I certainly feel like the morning is more frequently scheduled than the afternoons. Here is meeting frequency by start hour. My average day gets a fast start at 8 am with a dip at 12 pm. Most days I have meetings through lunch. There is a dip again at 4 pm. In our office, we are much more likely to start earlier than later, and you can see that with the frequency of 7 am meetings versus 5 pm. The meetings in the middle of the night were in Ukraine and are represented here in central time.

2017 Meetings by Start Time

I was curious to know the distribution of durations. What duration of meetings do I have the most often? The most common meeting for me is 30 minutes (37.3%) and then 60 minutes (29.1%). 45-minute meetings are also common (12.5%), that is the normal time I schedule for 1-1 meetings with my team.

2017 Meetings by Duration

This statistical data is most likely to gauge overall stress level or demand for my time. I also get this data in a weekly report and it is a nice check on my qualitative assessment of the week. The additional data I collect about topic and context is very actionable. I can see areas where I’m over or under budget on time and can consider structural changes to my schedule to align better. I like this act as the shift forces me to delegate some topics more, disconnect from some things and give more time and focus to the areas that I specifically need to focus on for success.

I would highly encourage anyone that has more than 50% of their time scheduled to do a similar exercise. It will provide some insight both to how you are feeling and the results you are getting.

January 20, 2018

2017 in Links

For years I’ve been keeping all of my links on Pinboard and this year I decided to start publishing them at Link Thing. I also publish my links in common formats that can be downloaded. I thought it would be fun to look at all the links from 2017.

In 2017 I saved 913 links. I most frequently create links at 8pm and 10pm, with 7am coming in next. It’s interesting that I did a link in every hour of the day in 2017. Why I was linking something at 2am instead of sleeping is a different topic.

2017 Links by Hour

Friday is the day that I save the most links. This is a little skewed by my reading workflow which includes staging links in Safari Reading List to queue up often before reading. After reading I may save a link. I almost always clear my reading list out on Friday night, before I publish my Weekly Thing newsletter.

2017 Links by Day of Week

I definitely started linking more once I started publishing the Weekly Thing in April and my link blog. Prior to that the only links I would have saved were ones I would revisit, after that I started saving links for anything I felt was worth highlighting and sharing.

2017 Links by Month

I saved links from 523 different websites in 2016. That’s just 1.75 links per website on average. I like the diversity of sources that represents. The top 30 websites represent 298 links, or 32.6% of all links. I was surprised to see Medium at the top of the list.

2017 Frequenty Hosts

651 of the links I saved were secured with HTTPS, a full 71% of all links for the year. Hats off to everyone for making the web more secure and private.

I was curious how my links spanned various top-level domains. 85% of links are in the .com TLD. There are 29 top-level domains that I only bookmarked one or two links from.

2017 Links by TLD

It would be fun to take this corpus of data and do further analysis. Some graph representation of sites through domain names, analysis by countries or even sentiment and topic analysis of the links themselves would be cool. I’ll defer that to next years post.

December 29, 2017

What apps make you better?

I’ve been very intentional about which applications I put on my iPhone and even where I put them. I don’t put any social media applications on my phone, and don’t put news applications on it either. I specifically seek out applications that have addictive patterns baked into them and remove them as well.

A while back I started keeping an entire page of applications that are all there to help me achieve my goals and improve as a person. Novel idea huh? This is what that screen looks like today.

Apps To Make You Better

YouAte

Keeping a food journal is a great way to eat better and YouAte does it all with photos. I had used Rise for a while which you typically use with a coach. YouAte can be used with friends for support or you can use it solo.

Day One

Journaling is a great way to reflect on things. This is by far my farvorite journaling application. It supports multiple journals and also has strong encryption.

stickK

When my book club read Nudge it referenced the work and theory behind commitments that has now been built into an offering called stickK. I haven’t used this for a commitment yet but I like the mechanics and think it’s a solid approach.

Happy Scale

This is a great application for logging and analysing your weight data. It applies smoothing to all of your data which I think is a far superior way to look at weight data.

Headspace

Meditation app with a tremdendous amount of options.

Streaks

Streaks is a habit tracker. I consider habit trackers to be very different from task management. Habit trackers tend to focus on streaks, and Streak does just that. I’ve also used Productive in the past and like it a lot. The built-in HealthKit hooks in Streak are a nice benefit to me.

Zones

Zones is a fabulous app for tracking the intensity of your workouts and letting you know what heart rate zone you were in for how long. If you have an Apple Watch and collect this data Zones can even tell you info on historical workouts.

SleepTown

Fun app that helps you keep consistent sleep patterns. This app helps me make sure I’m not staring at my phone too late.

Forest

Fun app for forcing yourself to not use your phone during the day. Great for keeping yourself from habitually checking your device.

Health Mate & Omron Wellness

Both of these are here because they support devices I have. The Health Mate app connects my Withings Scale to HealthKit so data flows automatically. The Omron Wellness app connects my blood pressure monitor to HealthKit as well. I like having as much automation as possible from measurements to storage.

What is yours?

What apps are on your mobile device to encourage good things? I’d highly recommend putting them in one place and making it a regular stop on your phone.

December 5, 2017

Removed Google Analytics

I’ve never desired to put a lot of tracking code on my websites, but I had left Google Analytics. I’ve decided to remove that too. In fact, I’ve removed all third party resources. You can check for yourself by using Ghostery and going to my sites.

Ghostery with No Trackers

While I found the information on what you all read and look at interesting, there are three primary reasons I’ve done this.

Analytics as Addiction

I believe there is a clear trend to use analytics as an addicting feature. How many views, likes or comments something receives is a psychologically affirming tool that services use to addict us to them. Is there any social media platform that doesn’t use these feedback loops to encourage you to spend even more time using them?

If your goal is to addict a user then, by all means, use every means possible to create feedback loops. If your goal is to drive attention and engagement on content, then show writers analytics so they can optimize that. I don’t have these goals for my sites, so I don’t need it. I’m needlessly toying with an addictive substance that I don’t need.

Residential Zone

I’m a firm believer that we need a concept of zoning on the web. When I’m in someone’s house, I have a different expectation of privacy than when I’m in a shopping mall. When I’m in a park, I have different expectations of safety and freedom than when I’m in an industrial facility. We should be able to cue our expectations around privacy and freedoms off of our surroundings. On the web this is confusing. Facebook is a shopping mall, but it pretends not to be.

Visiting my websites should be closer to visiting me, personally. If you are having dinner at my house and comment on my espresso machine, I don’t send a note to a tracking service to let them know you might be interested in buying a coffee machine. I don’t think that should happen on my website either.

Don’t be a Hypocrite

I run 1Blocker and Ghostery in my browsers to protect my privacy. In those tools, I block hundreds, and perhaps thousands, of 3rd party services and scripts. I think you should do the same. It is hypocritical for me to embed a tracking service on my sites, that I block on other people websites, and encourage people to block themselves.

December 1, 2017

AWS re:Invent 2017 Keynote Notes

My quick reaction to the notable announcements at AWS re:Invent 2017.

Compute

Databases

  • Amazon Aurora Serverless - What is a Serverless database? I’m not sure I know, but the idea of a database that has no cost other than storage when it’s idle is pretty amazing for certain workloads. Sadly this is only available for MySQL at the moment, but they promise PostgreSQL coming soon.
  • S3 Select and Glacier Select: Retrieving Subsets of Objects - Wow, this is pretty cool. Take a bunch of data and dump it into an S3 bucket and then execute SQL-like select commands against that data. This enables some very interesting capabilities.
  • Amazon Neptune: A Fully Managed Graph Database Service - Graph databases are a bear to pick, use and run. AWS offering a cloud hosted graph database will hopefully address all of these issues. There are a large number of use cases where graph databases make a lot of sense but so many people have been burned by them that they tend to solve a graph problem using a document or relational database. It’s cool to see that this supports RDF and SPARQL, core concepts of the Semantic Web. It also supports TinkerPop3 (really? can we get better names?).

Machine Learning

Other

November 26, 2017

Envisioning a Cloud Native Wiki

A few years ago I dove deeply into the wiki ecosystem and learned all about MediaWiki, it’s plugins and various extensions. I started a wiki to index all of the other wiki’s called WikiApiary. The wiki movement was huge, and it still has a tremendous amount of energy and incredibly devoted users. Wikipedia, in my opinion, is one of the most amazing creations of the Internet.

However, the wiki movement has hit the skids lately. There was a significant rush of wiki hosting platforms early on, and those mostly didn’t work. Wikia is perhaps an exception however it’s driven itself into the hole of fandom in a big way. Sadly many wiki platforms continue to sit on top of ugly PHP code and MySQL databases, with old codebases and arcane syntax.

In recent years email newsletters have seen a resurgence. I’d like to see wikis make a similar revival but for that to happen, we need to have some new energy in the wiki ecosystem. We need a cloud-native wiki solution. What would that look like?

Cloud Native Wiki

First thing first wikis should enable communities of any size, so the cost of running a wiki needs to be as cheap as possible. A serverless approach seems to make the most sense. If nobody is using the wiki the cost of running it should be no more than the storage, and that can be very cost effective.

  • Store all wiki pages and objects in S3. Store the objects in an editable format, something like Markdown, but also store it as HTML as well so it can be served directly out of S3. Think of how static site generators work.
  • The wiki itself should live in Lambda functions exposed through API Gateway. All editing and modifying of objects in the S3 bucket should be done via this method.
  • The wiki should be self-managed by a central source to update it. Wiki’s have a history of being poorly maintained. You should be able to create an IAM credential and give the ability for the Lambda functions and infrastructure of the wiki to be updated automatically.

Let Millions of Wikis Flourish

Ideally, someone should be able to start a wiki by creating an AWS account and then creating the IAM account for provisioning and updating. That account should then do all the initial setup as well as updating over time.

The content would be held in Markdown files in S3, as well as rendered HTML. This content would be easily mirrored off of S3 so it could be taken somewhere else. If the Lambda functions were all removed, the wiki should still run in static mode with no editing.

If we had this kind of capability, perhaps we could see wikis reenter the landscape for all the good that they can provide.

November 20, 2017

Deer Strike

On Friday night we were driving to the cabin, and in a split second, a deer 🦌 was in front of our Honda Pilot as we hit it at 45 mph. We had driven down to have dinner at Smoqehouse and were on highway 60 heading east, just a mile or so past I-35 right by the Dairy Queen there. Tammy was driving and just as the speed limit was going up to highway speed. Everyone is okay, and happily, the airbags didn’t go off.

Tammy slammed on the brakes, and the deer flew forward. It rolled and slid into the ditch about 20 feet and immediately leapt up and ran off when it stopped. Its legs were okay, and I’m hopeful that it either miraculously survived or didn’t suffer badly.

The car took a decent amount of damage but remained drivable. The radiator got banged up, and many parts of the front were damaged. All fixable but will be some expensive bodywork.

Honda Damage after Deer Strike

July 26, 2017

Driving Change

The newest episode of Driving Change with Jeff Martin of Collective Genius is out with yours truly!

You may also like the episodes with Bala Subramanian, Loren Brown, Nate Ober and Lisa Schlosser.

June 23, 2017

Assembling the Weekly Thing

I had been interested in creating a newsletter like the Weekly Thing for a while but I was worried it would be difficult to do and quickly turn into a chore. I wasn’t worried about the email part, I knew a service like TinyLetter could deal with that. The daunting part was getting the content structured the right way, even when I the bits of the content were mostly in other systems already.

I knew the main item I wanted to build it around were links to other sites that I use Pinboard to collect. But how to make that easy?

Workflow to the Rescue

As I thought about this I tried a number of options. I tried making an Automator workflow but that was weird, and even worse it meant I had to be on a Mac and I knew I would want to send this when I wasn’t near a computer. I started to look at Workflow and realized it might do the trick.

Workflow has a great feature to retrieve published metadata, such as description and date, from a URL (Get Article from Web Page). Sometimes when I stored URLs I didn’t write a description so that would be nice. I pulled the data using Pinboard’s RSS feed, put it in a loop getting a variety of data and assembling the draft content as I watched. Voila! 👏

The entire process that I use to create Weekly Thing is based on RSS (mostly) and tied together with Workflow on iOS. I have a collection of workflows that I run, with one master workflow that kicks everything off. The master workflow is responsible for ordering the sections and setting the cutoff date for content, which in my case is midnight of the relevant Saturday. The master workflow spawns the other workflows for each content section, passing into it the cutoff date for content.

Each workflow is then free to do whatever it wants as long as it returns a valid block of HTML back to the main workflow. I can chain as many of these modules together in whatever way I wish. Some of them don’t use RSS, like the photograph one. That prompts me to look at my photos and pick one, then fills in all the appropriate template text for me to finish off.

At the end the workflow combines all these blocks of HTML into one fully assembled newsletter and gives me the option to copy it, share it, generate a PDF or anything else I wish. I’m very happy with this. From here I put it in TinyLetter, do a final review and hit send!

Extensions

Since this is extensible, I can easily add new modules by creating another workflow that is then stitched into the assembly process. And because I’m using Workflow in iOS, I can access a wide variety of data from different systems. RSS is a basic one that many services support, but Workflow can look at my Calendar, Address Book and many others. I’ve thought about weird things like calendar statistics for example. Or if I really wanted to overshare I could pull in recent data from the Health app.

I’ve found that it’s easiest to understand Workflow when you see what other people do with it. Perhaps this will turn some lightbulbs on for others on how they could automate use Workflow effectively!