Comfortable tools

Software developers love their text editors. Those developers that invest a significant amount of time in one particular text editor are able to wield it with the proficiency a level 20 warrior. They’ll slice and dice the code with the mininal number of gestures needed. They have all the commands they need memorised right down to the last keystroke combination. Text editors are the primary weapon of software developers and so they need to know how to this tool with great effect if they want to make their day a productive one.

I chose Sublime Text 2 as my main text editor a couple of years ago. I just find it easy to work with. I know the commands that I need, I spent a fair amount of time getting the right plugins and setting them up so that they work well for me and of course I’ve tried hundreds of themes before getting the one that just feels right. So if I’m so happy with my chosen text editor, why the hell do I keep wanting to try another tool?The other tool I am referring to is Vim. It’s a text editor that is used by thousands of people and is over 20 years old. Every year, I ask myself, “Did I give Vim enough of a chance?”

I’ve tried Vim a few times as a replacement for Sublime but every time I try it, I find something that I don’t like and go back to Sublime. Fast forward a few months and I do the same thing again. For the last three years, I think I’ve tried Vim about five times. I’m not talking about a couple of days, I’m talking about a full on month of use. However, at the end of each month I simply switch back to Sublime. Is it a comfort thing? It might be.

Vim is a great text editor but I just don’t feel that comfortable using it.​

Are you automating?

Automation. The programmer’s best friend. Programmers automate as much as they can. Setting up a new computer, building servers and testing software are just some of the areas where we like to automate things. We hate typing in four commands where one will do. Automation saves so much time.

Not everyone is a programmer though. So how can you automate your interactions with your computer so that you’re not doing as many manual tasks?

###Check your application settings

Lots of applications and services now integrate with other applications and settings. Instapaper for example allows me to save the articles that I like to my Pinboard account. After I set this up in the Instapaper settings page, I can then like an article and it will be saved to Pinboard for me. This is just a small example of the automation you can achieve. Baked in settings to applications is great but what if you want more automation?

###Checkout IFTTT

IFTTT is a service that allows you to create recipes for the different services that you use. It will then run these recipes when they are triggered. Each recipe contains a trigger and an action. When the trigger is fired the respective action is carried out.

An example of this in action is the monthly redux blog post that I put out at the start of each month. It is a list of the previous month’s blog posts on my blog. Rather than writing this by hand though, I can let IFTTT do the work for me.

When my recipe detects a new item on my blog’s RSS feed, it then writes the title of the blog post and a link to it to a text file in my Dropbox account.

At the end of the month I cut the contents of this file and paste it into my blog’s content editor and use it as the content for my new monthly redux blog post.

In order for IFTTT to work effectively, it needs to have access to the services that you use. You may not be comfortable doing this, but I find that it’s a great way to automate tasks that I would normally do by hand in the past.

Being able to defer manual tasks to services that automate them for you saves you time. Not only that, it lets you get on with more important tasks. This week watch out for manual tasks that you could be automating. Even if you can save a few minutes off your day, it’s going to add up over the year. And that’s time not wasted.

Talk to your client

One of the greatest challenges I’ve had in my career as a software developer is that of expectations. Twenty years ago when the waterfall methodology ruled, you developed in isolation for months on end, passed it to a test team and then onto the client. After months of work, it was common to get the final product passed back to you. The reason was that the client’s expectations were not the same as yours. Months of work wasted.Now though, we have agile methodologies that allow us to work closely with the client and work in much smaller chunks, delivering code weekly or even daily for the client. At this fast pace it’s easy to meet the client’s expectations as we are only working in smaller periods and only delivering smaller sections of the final product for the client.

I’ve been working this way for a couple of clients over January and February and it’s been really successful but the reason isn’t just the continual delivery of features and fixes for the client, the main reason is that I am always in communication with my client. I chat to my clients daily, often more than once a day when working with them.Foggy details are a sure fire way to miss the clients expectations, which leads to wasted time for both you and your client. You can’t assume to know what your client will want, but you can make an educated guess. However, what you should be doing is talking to your client and clarifying any details you are not sure about.

If I have a question or I’m not sure, I ask the client to clarify their expectations on what I am hoping to deliver for them. I hate to be wrong and I hate to be wasting my clients time by not meeting their expectations.​

Tips on getting through your RSS feeds faster

Let me get this clear to start with. I only use my RSS reader to scan feeds from blogs that I am subscribed to. This post is just tips for getting through your RSS feeds without taking the time to read anything.

Group your feeds

Grouping your feeds is a great way to batch feeds for scanning. I group my feeds into a number of groups based on the general topics of each feed. I have groups for web development, tech businesses, bikes, picture blogs and online products and services I use.

Grouping feeds in this way means that when you scan the feeds, you’re scanning a particular topic rather than scanning a list of feeds of completely different topics.

Scan the headlines

Don’t read everything. Unless you’re following between 10 and 20 blogs, you’ll never be able to read everything in a short period of time. Instead scan the headlines of your feeds for interesting posts.

I used to read everything in my feeds in case I missed something, but reading everything takes a long time. Yes, scanning the headlines of your feeds might means you miss an interesting post, but you’ll get through your feeds a lot faster.

Use a read it later service like Instapaper

RSS readers are great for categorising and scanning your feeds, but I like to use a separate service for reading. Many RSS readers let you favourite individual articles and send them to another service like Instapaper so that you can read them at a later date.

Read it later services also let you collect articles for reading at a later date when it suits you. I tend to get through my feeds first thing in the morning. I favourite posts I want to read later. When I favourite my posts, they are sent to my Instapaper account so that I can read them later on. Many RSS readers have this feature built in and read it later services like Instapaper also have settings that let you import favourite posts from your RSS reader.

Keep a list of blogs to scan daily

I have a group of feeds that I want to scan on a daily basis. I scan this group every day first thing. It’s a collection of blogs of varying topics, but they’re blogs that I find highly valuable and therefore they’re the blogs I scan every day.

Trim dead or rarely posted feeds

I don’t subscribe to a feed that posts once a month or less frequently. I like content on at least a weekly basis from a feed. Every 2 or 3 months I check the feeds I am subscribed to determine if they’re still delivering a steady stream of content. Google Reader is great for this as it tracks the stats of each the feeds you have subscribed to. Staying on top of your feeds this way means that you can delete stale feeds and therefore have less headlines to scan.

RSS feeds and readers have fallen out of fashion with many on the Internet, but as long as people are still blogging, there will always be a place for RSS readers to consume these blogs.

The Daily Checklist

In an effort to be more productive, healthy and fit I’ve decided to keep a daily checklist for work days so that I can start tracking progress on my day. Here’s the list I’ve decided to center on for weekdays:

  • Do one major important task - Ideally this will be completing some work for a complete or working on a feature for one of my own products.
  • Do one minor important task - This is really a secondary bit of work for a client or for myself. If my major task is for a client, then I will always try and complete a task on one of my own products for that day.
  • Eat a healthy portion of fruit and vegetables - I’m not fanatical about my weight, but I do like to eat sensibly. Making sure I have a good portion of fruit and vegetables at least once a day is a good starting point to eating better.
  • Workout or go for a walk - To coincide with changes to the diet, I’m also looking to get some exercise in during the day. Starting from next week, I’ll be walking my son to school every morning and I’m also going to fit in a couple of runs a week. Sitting at a desk all day as your job can be brutal on your body, so it’s a good idea to stretch your legs when you can.
  • Journal - Lastly, the journal entry. A time for reflection on the day and to log idea, progress, notes and other stuff. I do this a few times a day but I try to write a summary at the end of the day.

I haven’t bothered setting a list for the weekend, as it’s not really important to have a checklist on days like this. The weekend should be a work-free zone anyway and as long as I get some time to spend with the family and relax then I’m happy.

I’m doing this for the month of March to see if I can get some kind of order in my work day. One thing I’ve found about freelancing is that the day can quickly run away from you and before you know it, you haven’t completed any of the things you set out to do at the start of the day. Embedding these five habits should ensure that I keep my clients happy, I make progress on my own projects and I keep myself healthy.

I’m using Habit List to track my daily habits but there’s a lots of other habit tracking apps or methdos you can use instead.

Learning

As a web developer I tend to focus on the back end of the implementation of web sites and applications. It’s what I do and what I am good at, however I’m not shy to put together a basic front end design for a website if I have to. However that’s where my skills start to dwindle. I understand all the concepts of front end design and I know enough best practices to get by but I lack the confidence and knowledge to really put out a professional design.

There’s always the argument for professionals as to whether they should generalise or specialise. I would like to specialise in a couple of web frameworks that use my favourite programming language, however the web and the technology that is used by it and on it is increasing daily. Which is why I want to generalise on these fringe technologies.

I’m starting to consider expanding my skills by signing up to Treehouse for some online learning in web design, building iOS applications and Wordpress.

As a web developer you should be familiar with the building blocks that make up a web page and how it can be styled but this can only get you so far. I’ve worked on this basic knowledge for a long time now, but now I want to take my work to a higher level of quality which is why I’m looking towards learning more about web design.

Mobile applications are everywhere. There’s simply no getting away from them. Most online services and products have a mobile application to connect to their service, and while I prefer the idea of using websites on my smartphone, there is a place where native applications definitely excel. As a first learning exercise I am going to start building an iOS application for my Journalong product this year. Journalong works well on my iPhone but I want less in the interface of Journalong when it’s used on the go. I just want to write and save it to my journal. It will be a good initial project to start on with Jouralong.Finally there’s Wordpress. Like or not, Wordpress is still the king of blogging platforms. It’s been a success story on the Internet form the early years and today there is such a vibrant community of Wordpress designers and developers that have formed as a result of the success of the open source blogging platform. Why am I interested in Wordpress? Curiosity really. I want to know how difficult it is to pick up Wordpress from a developers point of view and implement a small website with it.

I would like to say that the current range of content management systems offered in the Rails community are better, but the truth is that Wordpress is so much easier to work. If a client approached me and asked what blogging platform would I recommend then I would have to say Wordpress.

At the end of the day taking care of your career is something that everyone needs to do. If I can improve my career with a few new skills then why not. After all, it should improve my appeal to clients as a web developer with a more rounded set of knowledge on not just web development but also the technology that makes use of the web.

We need more simple products

The fixed gear bike. Two wheels. One gear. Brakes, optional. Simple really. And that’s the reason why the fixed gear bike is loved by many cyclists. It’s a simple bike. Amongst it’s carbon fibre, multi-geared brethren, it looks out of place, but it has a special place in the hearts of many cyclists. It’s a bike with a single function, it just lets you ride.

Now take a look at Pop, the text editor for iOS from Minimal Tools. A single page text editor that offers no settings, no file management facilities, no synchronising with Dropbox. In fact there aren’t any features about it. All you can do is write something with it and then copy what you have written to the clipboard. Why the hell would you want to buy this app then when all editors for iOS do this?

Well Pop does one thing that no other editor I have does. It doesn’t distract me. It doesn’t have anything to distract me with. It just lets me write.

We need more products like Pop and fixed gear bikes. Simple things that do one thing really well. Simple products let you do what you really want to do without any distractions.

Be Present

This was supposed to be this year’s theme but I opted for being independent instead in light of my recent foray into the world of freelancing. I thought I would take a minute to outline what being present is, and why I was going to make it my theme for the year.

The world we live is increasingly dominated by technology and distractions. Ironically what you’re reading right now is a distraction, but let’s just say it’s a good distraction.

Anyway, technology and distractions. Being a dad of two kids means that you are inevitably in the presence of other parents and their kids a lot of the time. One thing that I notice is the number of parents that are glued to their mobile phones when they are in the presence of their kids.

On one of our frequent trips to the driving range last year, I decided to treat my son to a round of crazy golf there. During our game, I noticed that the mum in the family in front of us was checking her phone every minute. She spent more time with the phone in her hand than her putter. The sad part was that while her kids were trying to impress her with their putting abilities, the mum was too pre-occupied with her phone to even notice. She wasn’t being present with her kids.

Being present for me means your undivided attention. Since observing this I’ve become more aware of the time and attention I am giving to my family. I generally turn my phone off at night now after dinner. It’s so that I can be present at home, mentally and physically, without any distractions putting me off. I don’t want my kids to remember me as having my head buried in a phone all the time. I want them to remember all the times that I was present for them.

It doesn’t always work out this way though, but I’m learning to schedule my freelancing work during the day and to limit my time using technology at night and at the weekend. Being present might not be this years theme for myself, but I’m more and more aware of it every time I go to check my phone or pick up the iPad for a quick surf. 

Always be learning

One of Patrick Rhone’s latest posts is his list of tools for daily learning. Patrick’s list is a great place to start for daily learning and I’m glad to see that there’s a couple of tools there that I use myself. I’ve never considered them as learning tools but that’s what they are really. Tools for discovering new things and learning.

My take on it is to always be learning. Never stop learning.

My first exposure to computer programming came when I was about ten when my Granpa bought an Atari 800XL. Right from the moment he got it, he immersed himself in programming books and magazines. As a kid you wouldn’t give it any thought, but now when I think back I think it was amazing that given my Granpa’s age, he was still learning on a daily basis.

This way of thinking that you should always be learning is something I’ve tried to do for the last few years, but along the way I usually forget things. I’ve learned the hard way that I need to keep a journal for such things so that I can review it at a later date.

My daily learning comes in the form of technical things like programming languages, web frameworks and other web development related topics. I’ve also read up on topics like decision making, writing and of course I’m reading through the Aubrey-Maturin series, which his made me much more knowledgeable of 19th century naval warfare.

The benefits of daily learning are just that. Daily learning. Being that bit more wiser on a daily basis. I’ll never stop reading, writing, learning and discovering new things. Having a blog to write about my learning experiences when I’m in my seventies? I hope so.

One to one networking

I previously wrote about the importance of maintaining your professional network. Today we’re going to talk about the same thing, except in the real world.

I’m not one for attending mass networking events. These events are good if you want to find new contacts or be introduced to someone for the first time, but for existing contacts I prefer a more focused meeting. One to one networking if you like.Let me tell you about my mate John.

We worked together about ten years ago for a software vendor specialising in risk management software for health organisations. I loved the job and I loved working with John. He frequently used mind mapping to discuss problems in our software and always provided a great service to our customers. When we were all made redundant, me and John decided to stay in touch.

Over the last decade, I’ve met up with John about every four months. When each of us are armed with a coffee and a cake, the conversations goes from family life to careers and technology. We talk about ideas for software products, interesting applications, risk management, decision tools and more. The majority of the conversations always falls back to ideas for risk management and decision tools for the web.

It’s a great chance to catch up with a good friend, but it also gives me the chance to find out what’s happening in his career, his contacts and whether they are any opportunities for career moves. It’s times like this that I appreciate the one to one nature of conversation. The conversation is fast, detailed and always leads to an idea or two. No email, no messaging, no smoke signals. You can’t file this meeting away for later like you would an email or message, and then forget about it. While networking through the digital world is necessary, so is meetings like this. Whether it’s frequent or not, the chance to find out what’s happening, discuss ideas and ventures can always lead to an opportunity to further your career or skills.

The next time you find someone on LinkedIn that you want to connect with, remember the people you currently have in your network. When was the last time you had a one to one meeting with someone who influences you?