Matthew Lang avatar

Matthew Lang

Web developer with a preference for Ruby on Rails

My Background Tools

For programmers, there's two tools that they will use everyday. A terminal and a text editor. For writers it might be a text editor and a knowledge management tool like Evernote. What I'm trying to say is that for everyone there's a number of tools that you will use everyday. What about those tools in the background, the ones that you will use everyday, but do the little tasks in the background?

Here's a complete list of the background tools that I use daily:

  • 1Password - The best password manager out there and also means that I don't need to remember my passwords anymore.
  • Alfred 2 - Application launcher and automator. Used daily, Alfred is my first point of interaction to all my applications and their actions. New blog posts, searching, programming docs, colour codes and more are all taken care of by Alfred.
  • Anvil - As a Rails developer, it's great to be able to manage applications I'm running locally. I use POW to get my development applications running locally, but Anvil provides a nice interface on top of this from the menu bar.
  • Broom - Disk space manager. Great for identifying large files and folders.
  • Divvy - When it comes to my desktop setup, I'm very set in my ways. I have my laptop screen split into two panes. Small area apps like Kiwi, occupy the left pane, about 30% of the screen in terms of width, and other apps sit on the right pane. I've had it set up this way for months. Using Divvy makes this super easy as I have keyboard shortcuts for putting windows in these panes as well as 50/50 splits and using the full screen.
  • Fantastical - Fantastical is my gateway to my calendar. Using a shortcut key, I can add meetings and appointments to my calendar on any day without having to reach for the mouse.
  • f.lux - Keeps my screen easy to read depending on the time of day and my location. Great for early morning coding.
  • PopClip - I'm a bit of a newcomer when it comes to PopClip, but having that popup when you copy and paste stuff is such a timesaver. When you select text PopClip appears with a number of actions depending on the application you are using. I've only added a couple of custom actions so far, but it's already proving to be very useful.
  • RSS Notifier - I already use Feedbin for my RSS subscriptions, but RSS Notifier takes a special set of RSS feeds that are related to my job. I use it to get get updates on hosting platforms, service levels and outages. Having this run with notifications means that I can see if any of my clients will have any technical problems with the hosting of their sites and applications.

That's it. All the tools that I view as background tools that support my day to day working. These apps are always lurking in the background doing something to help make my day easier. Apps like this usually have a single purpose that they do really well. They might have other features as well, but as long as they do their primary function well, I'll keep using them.

Personal Producitivty

I've read lots of articles about being productive, but what I have yet to see is actual results. Measured results of a person's work and how they arrived at the fact that this method makes you more productive. I'm guilty of this as well with my Grass Roots Productivity series. There was no results to backup my how this made me work better.

So where's the evidence to support all these productivity recommendations then?

Well there isn't any really. I've yet to read about a technique or method that will make you work more effectively and efficiently with evidence to support it. The thing about being productive is that it's down to you as an individual. It's all about trial and error. What works for you personally isn't what will work for others and vice versa.

Once you find something that works, you'll know.

Trying out TextExpander

One tool that I have yet to fully embrace in my day to day work is a text expander. Back in my days as a .NET developer, AutoHotKey was my preferred choice of text expander but since moving to the Mac, I haven't invested too much time in searching for a text expander tool. Now though I'm starting to find that it would be of benefit to me if I was able to automate a few keystrokes here and there.

My email is the first place I would start. For a while now I've been unproductive when it comes to emails. Sometimes I find myself sending the same email a few times a week to different clients. Rather than searching for the previous email and copying and pasting the body I would like to store the body of the email in a text expander and just have it show in the email when I type in the snippet code. Another place I would like to automate things is legal documents for clients. I could store the template of a contract in a snippet.

There lots of other places as well I could be using a text expander like inserting the header of my blog posts, code snippets for my programming and of course the humble email signature. I know that all these examples could be solved by other means but each case requires a different way of setting it up and retrieving it. Having shortcut keys on hand to do this would be so much easier to implement and remember. Also, all my snippets would be in one place.

I started today with a trial of TextExpander for my MacBook. The reason I picked this is that it's name keeps coming up when I'm browsing the preferences of the apps I'm using. I'm going to be using it over the next few weeks. We'll see how I get on.

Admitting Defeat

It's not often that I have days like today.

Days where even the best laid plans are completely scuppered. Days where events happen that make you have to completely reset your day. Days where your schedule is simply turned on it's head. Days where you can't salvage anything you intended to do.

When it does happen though, I just admit defeat and reset my task list for the following day. You can't win at being productive every day, but you should be able to recognise those days where it's simply pointless trying to catch up. Today was such a day.

There's no problem with admitting defeat. It's just a day. Tomorrow is another day. Surely the universe can't hit me with a second completely unworkable day?

Limiting Your Social Networks

Many of you will know through my posts that I'm a big App.net fan. It's my goto place when I want to drop in on conversations, strike up news ones with others and also just as a place to post what I am doing. It's also the one public social network that I participate in.

I've never been interested in creating a Facebook account as I simply seeing as being too much of an overhead to maintain. I also deleted my Twitter account this year. It was coincidental that the timing of this action happened at the same time as Twitter were enforcing new rules on the use of their API. I just felt that I wasn't getting anything back from Twitter in terms of value.

Since switching to a single public social network, I've noticed a number of positive things that have occurred as a result of my limiting action.

No more drowning in micro-information

The first thing I immediately noticed was that I was no longer constantly checking my Twitter timeline. Looking back I wonder now why I even had an account there in the first place. It's a social network for micro-updates that only offers limited information in each post. I did find it interesting hearing what other people were working on, but Twitter's post limit of 140 characters seriously limits the amount of context you can put on a post.

Less apps and services to use

With just one social network to my name, I have less apps on all my devices. It's a minor thing but having less apps on my devices means less time updating them, searching for new ones and of course less time checking them. I also work with a 'one in, one out rule'. As much as possible I will try and keep the number of products and services I use down to a minimum. That means that more often than not, I will replace older apps with new apps rather than running two at the same time.

Less of a digital footprint

I like keeping a small digital footprint. Nothing to do with trying to stay under the radar in terms of the government spying on you, but more to do with my own data and it's safety. As soon as I stop using a product or service I try and delete the account I had with that product or service. I do this because I don't want my login details lying around on another companies database when it doesn't need to.

It's not for everyone

Limiting yourself isn't for everyone, but it was amazing to see how little I depended on Twitter after just a couple of weeks of deleting my account. I used to think of social networks as places to find more information on topics, but the truth is that I find everything I need in the form of blogs, newsletters and podcasts.

I now see social networks as more of a place for conversation. Fortunately App.net does this aspect of interaction very well and I'm happy to remain a paying subscriber to it.

The Coach Who Never Punts

As an American football fan, I thought this was such a refreshing take on the game. Given that this level of football has fewer risks when adopting such a strategy, it would still be great to see this approach in the NFL.

Slow plays, always punting on the 4th down and running the clock down are making the game safer for the teams. Safer for the winning team, but a drab to watch as a fan.

via Grantland

My Seven Essential Daily Tools

I'm always reviewing the tools I'm using on a daily basis, and last week I wondered what tools I was using that I used the most on a daily basis. This wasn't compiled from a list of measured interactions with all my tools, but simply an informed guess at the tools that I use daily.

Safari

The web browser. Every web developers main application for running and testing their applications. For me as well though, it's a window to the Internet. Having previously ditched Chrome, I used Firefox for about six months. As web browsers go I couldn't complain about it's speed, features and developer tools.

I tried Safari for a week just as an experiment about a month ago and found that there was nothing in Safari I couldn't do in Firefox. Since then it's been Safari all the way.

One good thing to come out of it was that I also dropped my Instapaper account in favour of Safari's built in reading list that also syncs to my iPhone. Not only am I always looking for new services to use and try, I also like to keep the number of applications and services I'm using down to a minimum. By using Safari I was able to delete Firefox and also my Instapaper account.

Mail

Apple's Mail client isn't everyone's cup of tea, but the way I see it is that if it does everything for me that I need it to do then why not? It supports multiple accounts, interacts with my contacts list and works well with FastMail.

Trello

Project management tools are a rare thing for web developers that practice agile methods like stand ups. Agile methodologies like Extreme Programming and Kanban will rely on index cards and boards as the main point of interaction for a team with a project. Until Trello was launched, applications that tried to replicate this in code didn't always get it right.

Working on my own means that communicating with others on the project remotely is more important than practices such as stand ups. Every day I enjoy using Trello for the needs of my clients and for the needs of my own projects. It's flexible layout means that it can be tailored to lots of different workflows.

Evernote

I've only been using Evernote for a week now but it has become a growing part of my day to day work flow. With a tool like this I now have a place that I can put information that I might need at a later date. I've found so many uses for it in the last few days.

First there's interaction. There's just so many ways of interacting with Evernote such as the web clipper, by email and of course there are a number of other apps in the Evernote marketplace that make getting information you have from one app to Evernote easy.

Then there's accessibility. With apps for the desktop, phone and tablet, I can access my Evernote stuff from anywhere. My iPad has now become more of a day to day writing tool again thanks to the access I have to Evernote on it.

Evernote fills the gap of a knowledge management tool for me nicely now. All the information I need is now in one place and easy to access and search.

iTerm 2

iTerm2 is my terminal of choice. Having used it for a few years now, I'm familiar with most of the keyboard shortcuts and it just works.

Sublime Text

Sublime Text has worked well for me over the last few years. I'm still discovering some of the keyboard shortcuts and I'm have to admit that I am not using all of it's features on a day to day basis, but for writing code it serves me well.

Notebook

A list of daily tools wouldn't be complete without a notebook or two. I have two on the go at the moment.

The first notebook was initially used for tracking client work, but this has evolved into a task journal for all my work using the dash plus system. Where as Trello is used for mostly tracking progress on projects, my task journal is for tasks that come from features in Trello, ad-hoc client tasks or tasks from my own master list.

The second notebook is mostly for the initial capture of ideas, thoughts, posts and sketches. I use it maybe once or twice a week, but it's always sitting on my desk within easy reach. When I'm tired of sitting at my desk, I'll move to a more comfortable chair and review my capture notebook or simply do some writing straight into it.

As brilliant as technology is, sometimes you can think better with just pen and paper.

Settling for Defaults

One thing that's clear from my list is that if there's a default tool on my MacBook that is adequate for the job then I will use it. I dislike having my MacBook cluttered with different tools and applications that serve the same purpose.

The one exception here is my choice of terminal. Apple's default application Terminal still doesn't allow vertical split panes whereas iTerm2 does. A small feature, but given that I always have two panes open side by side, it makes sense to use iTerm2 over Terminal.

Skipping the Support Apps

A few of might be wondering about apps such as Alfred, PopClip or even Fantastical. Well, while I use these as well on a daily basis, I tend to view them as support applications to my seven above. They're still bloody useful tools to have but sitting in the background there's always open and frequently support the seven tools that I have listed above.

There we have it, my seven essential daily tools. I put forth the question to you now. What's your seven essential daily tools and how do they make you work better?

My Daily Reading List

One habit I've managed to sustain this year is my daily reading list. It grew out of the fact there I have subscribed to some good quality content in the past and I was trying to set aside time at the end of the week to read it. Due to the volume of posts I was eventually left with at the end of the week, I decided a couple of years ago to start making a habit of starting my day with reading.

It started with a collection of blogs that I read first thing every morning.

Now these guys might not post every single day, but every day there is at least a handful of posts from some of them. What's important here is that no two blogs are the same. They're distinctly different and that's what makes reading them every day so easy to do. There's diversity and the posts that I read are all on diffent topics.

The last thing on my daily reading list is James Shelley's Caesura Letters newsletter. Every week day you receive an email with a post on a specific topic. You won't find any techno-babble here or gimmicky productivity tips. James Shelley's newsletter is a daily call to action to make you continually think and and re-focus yourself. The Caesura Letters is deep reading but it's a great way to start the day.

The thing about the daily reading list is that it's more of a learning tool than anything else. The items on my daily reading list are there for a reason. They're a source of knowledge. Not every post has a treasure of information in it, but the amount of posts I save for myself are an indicator of how useful they are to me.

Patrick Rhone has some other suggestions for daily learning tools if you're interested.

The App.net Newsletter: An Update

It's been a couple of weeks now since I first presented the idea of a newsletter for App.net. A lot has happened in the last couple of weeks, so here's a recap.

Initial feedback was good

Based on poll taken by a number of App.net members, there was very positive feedback on the idea of a newsletter. A number of ideas and suggestions were sent to myself regarding content for the newsletter. A second poll asking if user's would like to see personalised content wasn't as popular.

Using the App.net API

Another thing that came out of this was the possibility of using App.net so that users could authorise their accounts so that we use the user's email address to send them the newsletter. Once this was done I had another idea to personalise the newsletter based on posts from each user's timeline. I would read the user's timeline for the week and include highlighted posts from the past week in the newsletter. There were two problems with this.

The first is that the App.net API does not include a user's email address in their profile when you ask for it. Understandable really given that this email could be used in other ways by an application that has access to the API.

Secondly the original idea was for a newsletter. At the time I hadn't considered a personalised newsletter until a few days later. Now that I've had a chance to access the API, reading user's timelines for highlighted posts is a major task that would require more time than I currently have available.

The idea of building a full application to support personalised content for the newsletter is a large undertaking and one that I wouldn't be prepared to undertake unless I had a number of sign ups already interested in this. Based on the light feedback I had it simply wasn't enough to warrant my time at the moment.

So what's the plan with the newsletter then?

Well, the plan is to still provide a premium newsletter for App.net members who can sign up with any email address they choose. I am not going to be using the App.net API in anyway for the newsletter, as I'm still essentially testing the validity of this idea. Yes people voted on it and said it was a good idea, but when it comes to getting paid subscriptions will people still be so positive about it?

In order fully test this idea, I will be moving ahead with publishing a newsletter for the App.net community but it will be limited to a number of editions in order to test whether the idea has enough subscribers to carry forward.

I've still got a number of questions about sign ups, cost of the newsletter and hopefully the possibility of making the newsletter free until the number of sign ups has reached a set limit.

This week I'll be announcing the account that will act as a contact point for the newsletter and where people can submit ideas or content for the newsletter. I'll also hopefully be releasing the sign up page for the newsletter next week. A couple of weeks after this I'll be releasing the first edition of the newsletter.

Use the Right Tool for the Job

When I started freelancing I used email to store lots of things my clients would send me. I would get emails with logins, scripts, web addresses and other important information. Where did I put it? In a folder of course in my email. There in lies the problem though. Email is for sending and receiving information. It's where it excels. Where it doesn't excel is in the storage and organisation of data.

Rather than be burdened with a tons of different folders I opted to have a folder for each of my clients. However, some clients generate a substantially greater amount of email than others do. With one particular client I get a handful of emails from them on a weekly basis. Over the last nine months I have accrued hundreds of emails from them, but finding some of the information has become difficult to do.

Email just wasn't designed for storing and organising data. Yes emails can be indexed and searched using a number of different search parameters now, but it only searches on the information the email already has. Also not all email clients and services allow you to tag emails with any information you want. Then there's the email itself. How do we edit it? By forwarding it to ourselves with some notes on it? Nice idea, but that in turn generates even more email. That's really not what we want.

Today I spent over an hour clambering through a series of folders looking for important information so I can transfer it to Evernote. Armed with Evernote's system I was quickly able to organise all the information from emails and tag them accordingly. Now when I need that information, I can not only search for it by the content of that information, but I can also search using the tags I have assigned to each one.

Tools have their uses. Email excels at sending and receiving information, but it's an inferior contender to applications like Evernote. Do yourself a favour and start using the right tool for the job.

A Lasting Impression

How many people have you encountered in life that have really left a lasting impression on you for most of your life? I know of one that immediately springs to mind. My Grandfather, or Papa as we was affectionately known to all his grandchildren and great grandchildren.

When I was about nine years old my family returned back home to Scotland after living in Canada for four years. We lived with my grandparents for a few weeks before we had our own house. It was during this time that I encountered the first computer I had ever seen, a ZX81. It was the strangest contraption I had seen. My Papa showed me how to load games on it and type in basic instructions.

While this was my first encounter with a computer it wasn't my first introduction to programming. A little later on my Papa bought an Atari 800XL. During one of my many visits to my grandparents house, I watched my Papa typing furiously into his computer. I moved round to look at the screen and seen lines and lines of text with each line prefixed by a number.

Always inquisitive about stuff, I asked what it was and he told me he was typing in the instructions for a game into the computer or a program as he called it. Once all the instructions were typed in, you could run the game. He showed me the game once it was complete and explain what the different parts of the code do.

To start programming in your 50's is quite a feat, especially given the lack of programming resources and aids that were available at the time, but he was such a clever man and was always looking for something to dabble in.

Since those days of watching my Papa writing code on his Atari, I've always had a computer at some point in my life. From a couple of Spectrums I made the jump to a PC in the 90's. Through a number of different PC's I've ended up where I am today typing this on a MacBook Pro. What started out as a little hobby through my childhood has turned into a career that I thoroughly enjoy doing.

This morning my Papa, my first programming mentor, passed away.

It wasn't expected, but he was very old and suffered from a number of health issues including dementia and macular degeneration. Whether it's expected or not, it's always hard news to digest.

One memory that will always stick with me though is the hours he spent showing me what you can do with a few lines of code and computer. From those first days of writing programs in BASIC, it has shaped me into what I do today, a person who not only earns a living from writing code but also thoroughly enjoys doing it.

Quite a lasting impression I think you'll agree.

Habits That Didn't Stick

I've tried to start a number of new habits over the last few months, some of them have stuck, some of them haven't. Here's the ones that didn't stick.

  1. Reading 2 books a month - Not really an unrealistic habit but perhaps should have been changed to 'read at least two books a month'. I've scrapped this in favour of just having a list of books that I can work through when I can. Some books take longer than others, so why timeframe it? It detracts from the enjoyment that a book brings. Try this instead - Just make sure you have a couple of fiction books beside your bed and keep reading them. When you finish one, replace it.
  2. Logging something I learned everyday - I did keep a separate Journalong file for this but some days you just haven't learned anything significantly new. Instead I just log these as they happen. No sense in making a daily habit of it.
  3. Mind mapping - I really wanted to start mind mapping again but the truth is I see little benefit in it now. I think mind mapping has its uses but it's just not on my radar now of things I want to keep doing. Yes I realise that as a past mind mapping blogger this is probably considered blasphemy but opinions change.

The thing is when you set out to start a new habit, it doesn't always work. If you really want it to work, you'll set aside the time to do it and keep on doing it. It will eventually stick.

If it doesn't, then just let it go. When a habit doesn't stick, it's not defeat. It's just your way of saying, I don't need this.

Why I'm Considering Evernote Again

Plain text files. I love them. They're portable, easy to manipulate and work with hundreds of different tools. The only thing about them I don't like is they are a nightmare to organise.

Unless you've got an indexing and search tool that does all the hard work of collating them together, you're screwed. Now add to the mix that not all my files are in plain text. I've got an increasing number of documents that are PDFs, spreadsheets and even a few Word documents. It's getting out of control.

In the past I used Evernote, but at the time I felt I didn't have a need for such a tool. I didn't have clients, invoices, projects, ideas, side-products, documents and other stuff all vying for my attention. This stuff needs to go somewhere. Somewhere that I can find it again.

So I'm considering Evernote again. I had no issues with it in the past other than I wasn't using it to its full potential. There's definitely a place for it in my list of everyday tools. I've got so much going on just now and the last thing I need is to be wasting time looking for documents or notes. I need this stuff and I need it fast. Let's hope that Evernote can fit my needs.

Back to Sketchnoting

A while back I talked about looking to get back to mind mapping again but in the last few months I've found it quite a struggle to get back into it. I just don't feel comfortable with it anymore. It just doesn't flow as much as I thought it would. In fact I've found it quite cumbersome.

The ideal mind map radiates from a central topic and breaks out into branches that represent related topics. These branches break down further and further until you've got to the topic you need. The problem is that mind maps only radiate from the center. By the time I've added a number of top level topics I've already ran out of space on my paper and no, mind mapping software is not the answer. I'm strictly a pen and paper person when it comes to that initial capture.

So I've decided to jump back to scketchnoting again. I looked at this a while back, but I didn't give it enough of a chance. Now that I'm armed with the Mike Rhode's book on sketchnoting, blank notebooks, blank index cards and a pen, I'm ready to give sketchnoting a fair try again.

The thing that I like about sketchnoting is that it's more freeform than mind mapping. While mind mapping is restricted to a radial layout, sketchnoting can take many different forms of layouts. You fill your page in a way that makes it easy to read. I'll be sketchnoting various things like book notes, quotes and other things just to get the practice in.