Matthew Lang avatar

Matthew Lang

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.​

Fixie Friday - Leader Kagero

Love the chainring on this Leader build.

via Pedal Consumption

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.

Wishlist Wednesday - Vintage Style Track Crankset

This crankset is superbly finished.

via Pedal Consumption

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.

Persistence pays off

Being a software developer means that I spend a lot of time debugging code for problems. Sometimes it's obvious where the problem is but not all bugs are that easy to find. It would be nice if we could quickly identify the problem, but the real world isn't like that. Most days debugging code requires at least a couple of hours of tracking down the problem but sometimes you find yourself spending the bulk of the day finding the problem. These days can end up being very long when you're debugging for hours on end.

Problem solving takes time and patience. Fortunately for me my client understands this and left me to my devices today. I spent the majority of today debugging some code and then once the problem had been found, the code to fix it took about a hour to put in place.For days like this, it pays to be persistent.

Exploring the freemium product

So Journalong has been tried and tested as a fully paid product, but I’m just not getting people using Journalong, so I’m moving the product towards a freemium product. The paid side of the service is still going to be $10 a year with all the trimmings, but the free service will be restricted in the settings that you can adjust. The free account will allow you to journal multiple times a day.

This isn’t the only change I’ll be making for Journalong in the next few weeks. It’s become apparent that writing with Journalong is somewhat restrictive due to the constraints of the textbox that you write in. It’s not focused and it’s only takes up so much of the page. What I really want is a full screen, no distractions, text entry. Just me and my journal entry.

The freemium changes will come in the next couple of weeks with the new journal entry screen to follow. It will be interesting to see if these changes can generate more interest in Journalong.​

The rule of three in decision making

Use the rule of three. Keep major decisions to three or fewer people. The more people involved the longer it takes to come to a consensus. Small teams coordinate and make decisions, while big ones quibble and form committees.

Limit major decisions to three or fewer people to avoid wasted time by Lifehacker

I suppose the benefit also with three people is that you will always get a majority vote.

Ideas do matter

In the end if you can come up with something you can feel good about working on, that's the real winner here.
Ideas do matter by Chris Forsythe

Getting it ...

... with Nicholas Bate.

The late adopter

I made a small purchase last week at the Apple store. A new MacBook Pro to replace my very old Macbook. with. It's only my second laptop in 5 years yet I know of developers that change their equipment yearly.

In fact all my technology purchases are extremely sporadic for a software developer. I haven't had a new laptop since 2008 and my first iPad was a third generation iPad. It has taken me until the iPhone 5 to own an actual iPhone. Needless to say I like to wait until technology pans out before I decide to make a purchase. I'm always late to the party.

Being late in adopting technology is no bad thing though. The first version of any new piece of technology is never the finished design. It's always the second generation version that is a more complete and feature rich product. The initial bugs and chinks have been ironed out and there's always some slight improvements elsewhere in the product.

Being a late adopter means that while I might not have the latest cutting edge equipment, I am banking on getting more value for my money with a second or even third generation product. Sometimes it pays to wait a bit.

Fixie Friday - FGGT Karena

via FGGT

Why I love being a Netter

Netter and netizen are just a couple of the words I've heard used to describe the people on
App.net. The social network (dare I use the term) burst onto the scene in 2012 with promise of being a self sustaining ad-free social network that will be paid for by it's users by an annual subscription fee. I joined in August 2012 and now six months on, I'm still thoroughly enjoying the experience on App.net.

I still have my Twitter account and I now use it purely as a marketing tool for freelancing. I was on Twitter during the week, doing a quick poll from other developers. Within a few minutes of posting my tweet, the first in about a week, I got two follower requests from spam accounts and I also got a couple of replies to my question from spam accounts.That's what really gets me about Twitter. It's the spam. With a majority of the tweets I make, I end up with a couple of new follower requests from vague accounts that I would rather didn't follow me. On App.net though things are a little difference. The subscription fee is the perfect entry barrier to weed out spam accounts. I've never have to block a vague account on App.net.Then there's the people. Okay, I'm missing a few people on App.net that are on Twitter, but then there's people on App.net who aren't on Twitter. It's a whole different crowd. On Twitter I mainly follow other developers who work with the Ruby programming language but on App.net I'm following a wider range of people. A wider range means different content to read on a daily basis.

Finally there's the features that App.net are rolling out. In the past few months, private messaging and file storage have been two big announcements in App.net. Now these might be conceived as typical features for a social network, but where App.net is different is that these features were built to be transparent and easily managed by App.net's users. Take the file storage within App.net. With just a click, I can export all the files I have stored in App.net so that I can take them elsewhere. Yes other social networks might offer this, but App.net built this in from the start. Features are built with the user in mind, not with advertising in mind.I'm glad to be part of a social network that puts its users first. It definitely beats being another cog in an advertising platform.

Wishlist Wednesday - More time

More time to read, write, code, watch, listen. That's the wish.

Realistically I simply need to acknowledge what's more important at this moment in time.

Abandoned technology

When the Xbox Kinect first appeared, I was all over it like a rash.  I was a big fan of Nintendo’s Wii before hand, so the progress to a controllerless mode of game play seemed like the next best move for my gaming preferences. I bundled all my Wii stuff together, put it up for sale and used the money to purchase an Xbox Kinect. A couple of years later and it seems that the Kinect has not lived up to my expectations.

When the Kinect first came out I expected games my favourite games to embrace the Kinect technology and provide a different way of playing these games rather than bashing away at a controller and some buttons. This wasn’t to be the case. Since the Kinect’s launch there has been very little big titles launched and so for the last year. Our Kinect sensor has just sat there under the television doing nothing. Another piece of abandoned technology.Until games can be controlled by your thoughts and eyes, I think that gamers and game publishers will continue to favour the hand held controller over any current controllerless technology.​

The reach of your words

A few years ago I ran a blog called MindMapSwitch. It ran for a couple of years before I had to give it up due to time constraints with work. It did have a small following of readers during its time, so even when I stopped writing for it, I decided to leave the website up for others to read.Last year though I was saddened to read that the service that MindMapSwitch was hosted on, Posterous, was shutting down for good. I knew then I had to move MindMapSwitch somewhere else but I wasn't too sure where. As MindMapSwitch wasn't on my priority list I decided to leave it for the moment.

Then last week, I received an email from Posterous that the service would shut down at the end in April and all accounts would be deleted. In order to keep the MindMapSwitch content I downloaded a backup of the content of the blog and deleted my account on Posterous until I decided what to do with the content.Today though I was pleased to receive an email from a university professor in Venezuela who has been using the MindMapSwitch content to teach the benefits of mind mapping to his students.

Unfortunately for him, I had deleted the blog, but I was more than happy to oblige him with a copy the backup I had. It's in a friendly format that can be easily distributed to his students.When I first started writing on MindMapSwitch, I never thought for a second that my words would reach that far round the world. I knew that I would be able to build up a number of loyal readers who were interested in mind mapping, but never did I think that it would be used a teaching aid for others to help them in their studies. It just goes to show that your words can reach far.

Be present with Nicholas Bate

Nicholas Bate on the importance of being present.

But being where we are, that's another story. In a world of distraction, 'the future is brighter', it's sometimes difficult to just 'be'. To be where you are. In the conversation, in the game of lego, pressing out the weights with focus and concentration at the gym, baking amazing bread, crafting a paragraph, watching the flight of a rare bird and realising it's along way to another planet where you can do that.

Knowing where are you vs being where you are by Nicholas Bate

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.

Apps for staying in touch with family

Staying connected with family in the modern world is great. Thanks to the Internet, the only thing to stop you contacting family on a different continent is whether it's an inconvenient time. Just recently though I didn't realise how many different ways technology lets me stay in contact with family.

So there's the usual forms of communication like phone, email and video are the most common forms of keeping in touch with family but what else is there?

Apps from social networks offer a very easy way to stay in touch with family, providing their all on the same network of course.

In our family we use Path to stay in touch and share photos and updates. Path's benefit is that it's a private network. Only people that you allow to follow you get to see your updates. Path is so simple that even my parents are on Path as well. It took them a bit of persuading to sign up, but now they can see photos of all their grandchildren at the touch of a button. With my sister in Dublin and my sister-in-law in Toronto it's great having them both on Path so that we share pictures of the kids as they grow up.

At home myself and my wife Jen use an app called Avocado. Getting more smaller and private again, Avocado is a service for just two people. Not only does it let you message each other privately but it also provides a calendar and todo lists which are shared automatically with your other half.

Of course there's the big three of social networks: Google+, Twitter and Facebook. Of these three I'm only on Twitter but these days I mainly use it for just connecting with other developers and not for staying in touch with family.

There's probably many others apps and services you can use, but what's great about technology now is that there are so many more choices.

Decisions, decisions, decisions

As a software developer I'm used to making hundreds, well probably thousands of decisions a day. Deciding on variables, class names and how I implement features is just part of the many decisions I make as a software developer on a daily basis. They're all small decisions, but they add up at the end up of the day when a section of code is tested and completed. These are just micro decisions. Really small decisions that I can afford to get wrong as they are easily rectifiable in a really short period of time.As you move up through the scale though, you see that the decisions that you make become less and less frequent as their impact becomes greater and greater.

Right at the top of my tree is a decision to emigrate that will affect me and my family for a time period that can be measured in years. It's a decision that's been on my mind for the last few years, but with every passing year that the decision isn't made, the decision to emigrate becomes harder and harder. Get it right and everything will fall into place as expected. Get it wrong, well I don't really want to dwell on what would happen if we decided to emigrate and it didn't work out.

If only the decision to emigrate was as easy as one of those thousands of decisions I make on daily basis.

Wishlist Wednesday - The bike ...

... not the beard.

On-one's new 29er looks great.

Technology Decisions

For a long time now I've worked on my trusty black MacBook. Bought back in 2008, it has served me well for the last four years. Now though it's starting to get a bit slow and my need for a more modern computer to develop on is growing on a daily basis.

I abandoned the idea of ever having a desktop computer again about ten years. I had an extremely ugly desktop PC with an equally ugly monitor. I never wanted to see anything like it again, and my next purchase was a laptop to replace it. However ten years in technology is a long time, and I'm starting to consider a desktop again as my main development machine.

Working from home means that I need some that is powerful enough for day to day development, but if I was ever needed to work on site I need the flexibility of being mobile. I was considering going just for a powerful laptop and using that at home and on location, but wielding such a machine about might be a bit cumbersome. I would prefer to carry a smaller laptop about with me if and when I needed it.

Technology decisions such as this are never easy and everyone has their own preferences. In an ideal world I would have a powerful laptop that was lightweight and easy to carry about, but even today such a machine doesn't exist unless you are prepared to go all out on the latest MacBook Air with every upgrade possible. For the price of that I could get a decent desktop and laptop for just a little more. The best of both worlds.

I'm still on the fence about my decision and I won't be making it in a hurry, well just as long as my little black MacBook will keep going.

Microsoft: A shadow of its former self

I was a fan of Microsoft when I first started out in my career. It was everywhere. Jobs local to me were all about Microsoft technology and stacks. So I started working with Microsoft's development tools and languages more out of it being so popular than by personal choice. In those days Microsoft was a key player in technology.

Looking at Microsoft now and it's hard to believe that it's the same company that was set to take over the world.Yes they have the same set of development tools and updates languages for developers, and the market for developers using these languages is still strong. However there's other areas where they appear to be losing out.

The PC is dying. The Windows driven one that is. Tablets are the new home computer, and while Microsoft have released their own tablet, the Surface, they do have a mountain to climb in terms of opposition. Apple and Amazon both have had tablets out well before Microsoft and they both have their own apps market place to sell from. Apple's iPad is extremely popular and I've started to notice that more and more people are jumping on board with Amazon's Kindle tablets.

The PC might still be a success in the office, but I think time will reveal a new success in the workplace. As tablets become more powerful and better apps and services are written, I think they maybe the new success story in the workplace. As I said though, time will tell on that one.The other area Microsoft are fighting is open source software, which is now a serious consideration for business. It maybe wasn't so much 20 years ago, but now you can comfortably run your own e-commerce site with a suite of support applications to run the business without paying a single penny in licensing costs for the software or the operating systems it runs on.

Open source software has become so popular that there are even open source ERP systems that can help you run and manage your business. Having previously worked for a Microsoft partner, I know the licensing costs involved in such systems and they can easily run into tens of thousands for even an ERP backed e-commerce site.Microsoft was a great company back in the day, but today it seems that there isn't much to get excited about from it. Not only that, they are playing a game of catchup in other markets like tablets, software and of course the cloud.

I'm not writing off Microsoft and I know they have successes in other areas but looking at them now and you can't help but wonder where it all went wrong.

Taskpaper

I stopped using Wunderlist for maintaining lists last week. It just didn't fit with how I worked. I wanted something a bit more low tech, so I switched back to a master list in my moleskine and index cards for tracking the stuff I want to do that week.Since I started freelancing though, I've been spurred to keep my development knowledge up to date and I'm also interested in getting some side projects off the ground. I also have a growing client list to maintain. This means more actions getting added to the master list on a daily basis. Maintaining it in my moleskine was becoming a real struggle as it was strewn across a couple of pages. I still needed something that let me track my master list in a digital way, without it becoming too technical.

Enter TaskPaper.

TaskPaper is a todo list that stands apart from many todo list applications in that it uses a plain text file for your list rather than a database or remote data storage. I'm a big fan of simple software that uses flat files for backend storage, especially when that software can link to your Dropbox and let you sync it across all your devices.

Taskpaper is like an editor but it also had nice features that let you interact with your list easily. The best of a todo list and a plain text file really. TaskPaper is also heavily influenced from Dave Allen's GTD system. TaskPaper allows you to create projects in your list and also attach tags to actions.

It's another change in the workflow, but I just want something that works and doesn't get in my way.