My Daily Log

My daily log is currently a single text document, new each morning, copied from the previous day’s document. The document contains four lists, with items moving between the lists as tasks are completed.

The document is everything I’d like to have in my head during the day, if only I could actually keep track of it all up there.

I feel I should be able to view one page of information and tell roughly the quantity of stuff in all my piles. If I can read the titles and short notes about all of the things, then all the things feel containable. This visualization is a delicate balance, but it is the difference between a system that is clean and productive and one that is a stressful, depressing mess.

The lists I use are:

  1. DONE: At the top of the page, the list of things that have been completed today. Showing completed items at the top of the page gives me a greater feeling of accomplishment.
  2. FOLLOW UP: A list of things that are important, in-progress, but are long-running and require check-up. These are a small list of things that should be scanned every day and moved back to DOING when appropriate. This list must remain small.
  3. BACKLOG: In the middle of the page, this is the list of things that will soon be important. Groom this frequently; these are items-in-waiting, either to be moved into DOING or moved to a storage backlog outside of this document.
  4. DOING: The list of things that that are currently being worked. This must remain very short, perhaps two or three long. These are in flux throughout the day, and having them at the bottom allows me to associate random notes at the bottom of the page with them.

Everything in a single document is a bit of a compromise in the interest of visibility, but I have been able to sustain a clean, groomed daily log document for a few years. It works for me; its clarity directly impacts my stress level. Everything else (email inbox, project notebooks, personal backlogs, RSS feeds, etc.) can be a mess, but so long as my daily log is neat everything feels manageable.

Attention Window

There are many nuggets of information in the universe. More are created every moment.

You have a temporal window of attention, limited by brain capacity. Yours is a finite window, sliding through time, with only a certain number of slots for information nuggets. You have finite space.

Each of your information slots is precious. You are only aware of the ones in your sliding window, but they are all important. They define the experience that is your life.

How are you going to spend your attention window?

Staying on task requires a system

Staying on task for me takes a system, and is continually evolving. At its simplest, this involves:

  • Things I am currently working on,
  • Things I need and would like to work on in the future,
  • Things I have finished,
  • Nuggets of information related to all of the above.

I have tried a few tools to keep this organized, and for the past few years I have stuck with Evernote. OneNote is a beautiful tool that just hasn’t fit into my personal workflow.

Ambition will kill the best of intentions

If you try to hard to get organized, you will fail. If you overthink your system, you will fail. Regardless of how perfect the system is in theory, in practice it must work without much effort. It must feel natural to you almost immediately, or it won’t work. Rather, you won’t work with it, so it won’t serve you.

I’ll follow this up with my current system of keeping a daily log, and my current attempts at organizing the rest of the noise around that.

Deserializing interfaces with Json.NET

Using Json.NET with concrete types is very simple: Just give your object to JsonConvert.Serialize() and give your string to JsonConvert.Deserialize() to get back an instance. Wonderfully simple and convenient.

When you are working with your objects as interfaces, things are only a little more complex during deserialization. With simple objects can simply point the JsonConvert.Deserialize() method to an implementation of your interface. Otherwise, the framework does not have a concrete class to instantiate.

You can just call JsonConvert.Deserialize() to deserialize one of these.

However, what if there are multiple implementation types involved?

You need to tell JsonConvert about your implementation of IMyTransferType as well as the IMyInnerType, but JsonConvert.Deserialize only allows you to specify the parent-most type. To accomplish this, you just need to write simple custom converters. Simply create one class for each of your interface types, inherit from CustomConverter, and have its Create method return a new instance of an implementation:

Use a JsonSerializerSettings class with these classes added to its Converters collection when invoking the JsonConvert.Deserialize method:

Now, JsonConvert will know how to deserialize the child objects as well as the parent-most object.

A return, with hosting in Azure Websites

So, it turns out that deployment of WordPress in Azure Websites is as easy as one could hope.

Exporting all posts from my previous hosting was simple via the wp_admin page’s Tools/Export plugin (once I deleted all pending comments). Then, I upped the maximum upload file size by adding a .user.ini file to the root of the application via WebMatrix, with the following:

upload_max_filesize = 10M

After that, it was a matter of uploading the rest of the site via FTPS. I’m now interested in moving all media to blob storage, but that can come later.

We’re doing Christmas cards

Here is our 2011 Christmas card:

I love the photo and the card (I used my tripod on the beach for the first time!). And, previously this contained a link to the service where we got the cards printed, but since that looked tacky I just posted the photo itself. Much better.

Merry Christmas!