Matthew Lang avatar

Matthew Lang

Web developer with a preference for Ruby on Rails

Time to leave Twitter?

It's a well known fact that if you're a reader of my blog, you'll know that I love the App.net service. A subscription based network for those that want something more than just ads in their timeline. Since taking up residence on App.net, I've found that I am no longer as active on Twitter.

These days I check it about once a week. Only out of habit really. Previously I was following just 50 accounts on Twitter and today I cut that number in half. I'm now following just 25 accounts. The plan over the next few weeks is simply get this following count down to zero and then delete my account.

I just don't get as much value from Twitter these days. I don't find client work on Twitter, I don't use it for marketing myself as a freelancer (that's what my website is for) and it's been a long time since I marked anything as a favourite there. Really it's just another placeholder for me on the web, but is it really that important to have a Twitter presence now? Once I delete my account it will be gone forever. I might be lucky enough to get my username back if I sign up again but the chances of that happening are remote.

Anyone else out there considering giving Twitter the chop?

The Today Card

I've adopted this idea of Patrick's for my own stuff. The card only contains things that I want to do personally for that day.

Client work goes in my Moleskine where I need a more permanent record of day to day progress.

Starting a re-design

After reading Matt Gemmell's post on designing blogs for readers, I decided to assess my own blog for a re-design.

Here's the parts of my blog I'm not that happy with at the moment:

  • I used another template for my site that was similar to the default Octopress theme. They're fine themes to use but I've always wanted to design a theme that suits my requirements.

  • The side bar is a busy place. Perhaps too busy. While I do want to have extra information like links to other accounts and other information, I feel this information would be better suited at the bottom of the blog. This way the reader isn't distracted during the reading of my post.

  • The fonts used in the current theme make it difficult to differentiate headings from paragraphs. Easy to fix, but I don't want to put a band-aid on the current theme. I want to start from scratch.

With this information I've decided to put together a new layout for the site over the next few weeks. I'm putting a couple of products to the side for the moment. For the next few weeks I am really busy with client work, so I want a side project that doesn't demand too much of my time. This will fit the bill nicely.

A great idea: Weekly pricing

Dedicating yourself to a project weekly means you don't have to switch contexts. I wake up in the morning, get myself ready and then I start on the tasks for a weekly project. I don't have to decide what clients gets my priority today, I just work on the project for the week.

Weekly Pricing for Web Development by Curtis McHale

I love this idea. Basically it amounts to charging for iterations or sprints. Nice to see Curtis picked up on my task switching post as well.

I can afford to lose some time during the day as I am working with mostly one client at the moment on a number of their applications, so a little lost time is to be expected.

Google Free

Tonight I took the final step in making the move away from Google. After much deliberation I made the move to migrate my Google Apps email account to FastMail. It was certainly less painful than I thought it would be and took the best part of an hour to get all three email accounts over to FastMail.

As for the other services from Google, I've found suitable replacements for many of their services over the last few weeks.

  • Switched to Pages and Numbers from Google Docs - I don't have that many documents to manage and I don't need them when I am on the move, so setup will be sufficient.
  • Switched to Feedbin from Google Reader - Feedbin is still young but it's growing and it's supported by the Reeder app for the iPhone. A no-brainer decision there.
  • Switched to Gauges from Google Analytics - Github's analytics service is ideal for my needs at the moment. It's dashboard provides all the information that I need at a glance and of course it has a greap API that's easy to use.

There are of course other Google services that I never really took too like Google+, Chat, Picasa, and their Drive service. I already use alternatives for these that I find to be much better so I never really got round to using these.

So why move from Google?

It was the all your eggs in basket argument. Google aren't going to go away anytime soon, but simply having all my information in one place was nerving. I wanted more control over my data, so I elected to find alternatives that would do just that.

I'm happy with the choice that I made in Google free. It's not for everyone, but having more control and investing more into products and apps that provide a better service certainly does give a better feeling than handing all my information over to one provider.

Have annual reviews had their day?

Yesterday I talked about annual reviews and how organisations can often get a simple process wrong, but are annual reviews immediately flawed due to their annual occurrence?

A year is a long time. A lot can happen in a year. I left a job, started a new job, got made redundant from the new job and then started freelancing all within a year. I hope you're not as unlucky me to get made redundant, but maybe you move about a lot inside an organisation? What if you're never in the same job for more than a couple of years. Does that make the annual review a redundant process?

In the UK there has been a rise in the last few years of self-employed workers and recently portfolio careers have proved to be popular with workers who want more of a variety in their career. The job for life is gone, so why are organisations still subjecting their workers to annual reviews?

Perhaps a more agile approach is needed with more frequent feedback. A year between reviews is too long, but what about quarterly reviews of your work with your line manager? How about monthly? At what point would your line manager know that you are enjoying your job and making a positive contribution to the company?

As a freelancer I have to continually look at my skill set and improve on areas that are rusty and also consider new programming languages and frameworks every few months. I have a core skill set that I am strong with but I also have to consider other skills if I want to make myself attractive to future clients. I give myself a review every month so that I know what work I have completed, whether I have completed it on time and what is in the pipeline ahead for me. I can afford to do this though as it is just me.

I'm just glad I don't need to sit through anymore annual reviews for the foreseeable future.

The Annual Review Done Right

It was my oldest son's parents night at his school tonight. We had a fair idea what his teacher was going to say about him and his progress. We weren't disappointed.

The format is simple. You get 10 minutes with the teacher in which time they will go over the your child's progress (that you have already read the week before) and then you get to ask any questions about your child and identify any area where they can try and make improvements. Fortunately our son is doing great so there was just a couple of minor areas for him to improve on.

If you think the format is familiar then you would be right. Parents night is just the kiddie version of the annual review that many permanent workers go through. However, how is it that organisations can get this wrong when the basic format seems so simple?

I've experienced the annual review first hand in a number of companies. Very few of them actually did an annual review on a regular basis and even fewer followed through from the previous annual review.

A neighbour of mine worked in a really well known international bank where annual reviews were not done by your line manager but by someone even higher up. In an organisation such as this where the number of employees runs into thousands, there was a good chance that the person doing your annual review doesn't even know you to look at. In this case our friend did indeed get their annual review done by a director who had only met him twice. Not exactly a good example of an annual review.

Twice a year my son's school give a parents night without fail. They provide a report for your child that you get a week before parents night so that you can raise any questions during parents night. They give feedback on your child's progress and give suggestions on areas where your child can improve. They do it for all the kids in the school. That's hundreds of kids.

It's not hard to do.

I just want to ship code

Today I did my first Capistrano deployment. Yes, that’s right. My first. Any experienced Ruby developers might be wondering how I haven't used Capristrano in the past. I simply chose not to use it.

When Rails was in its infancy, Capistrano emerged as the default way for Rails developers to automate their deployments, but one thing that put me off was the amount of work that would be involved in getting it up and running. Scripts, SSH, source code management, web servers and databases. It all sounded a bit much.

Then Heroku came along and I smiled. I could deploy my application with a single command. In the past I’ve always opted to use Heroku and during my brief stint in an agile team we used Engine Yard for hosting our applications. Again deployment was as easy as a click of a button.

I’ll admit it. I’m lazy. I hate having to muck about with configuration settings, command line arguments, options and other little details to get things working.

As a developer I’ve come across hundreds of tools, editors, applications, libraries and services that help me do my job. One thing that sticks for my preferred selection of tools that I continue to re-use are the ones that just work and require little work to get working. Platform services like Heroku and Engine Yard fit this criteria perfectly.

Yes I probably should have some knowledge on using Capistrano but the ease of a single click deployment is hard to beat.

At the end of the day I just want to ship code.

The Pain of Task Switching

In my ideal day I would have one very important thing to do and that's it. Nothing else. I haven't had an ideal day for a while though due to the simple fact that they rarely happen in the real world.

At the moment I am trying to currently balance two projects for one client. They're similar projects with similar scope and similar terminology. Already today I have wasted 30 minutes looking at the wrong code base due to my brain not registering the task switch that happened 30 minutes ago.

I'm toying with the idea of a visual reminder on my desk to remind me what project I should be working on. Or maybe even a bigger zsh prompt is required so that it shows me the current branch in huge writing.

One thing is for certain. I need to make a bigger deal about switching contexts so that I don't lose anymore time like today.

Put the glowing rectangle down

I grabbed my first rectangle very shortly after waking. I will likely stare into several throughout my day. For work and for pleasure and as a way to simply pass the time. Heck, my regular gas station has them built into the pumps now. My guess is that when one is distracted by the local weather or the two-for-one beef jerky special they tend to buy more gas.

Glowing Rectangles by Patrick Rhone

Patrick Rhone is challenging himself to reduce his time spent on these wonderful glowing rectangles.

Maybe you should too?

Make this a movie

Yet when the units of the veteran 17th Waffen-SS Panzer Grenadier Division arrived to recapture the castle and execute the prisoners, Lee’s beleaguered and outnumbered men were joined by anti-Nazi German soldiers of the Wehrmacht, as well as some of the extremely feisty wives and girlfriends of the (needless-to-say hitherto bickering) French VIPs, and together they fought off some of the best crack troops of the Third Reich.

World War II’s Strangest Battle: When Americans and Germans Fought Together by The Daily Beast

How could this not be made into a movie!

via Execupundit

A Day for Making Improvements

I’m a terrible person for saying I’ll do something, then I never do it. I’m not talking about the big important things like completing client work or picking up the kids. I’m talking about making improvements in my work flow. Adding little things here and there to save time. Well no more!

Here’s three things I did today to make my day a little easier.

Installed Instacast for Mac and Became an Instacast Member

Instacast is awesome. My buddy in British Columbia, Curtis, put me onto it at the start of the year and it’s been a great product for managing my podcast subscriptions. I think the best two features are the syncing between devices and the playback of podcasts at different speed. I’ve got my playback set at 1.5 times normal speed just to get through the podcasts that little bit quicker.

I have Instacast installed on my iPad but having that, a laptop and a monitor on my desk means I have little space for anything else. When I first read about Vemedio releasing an Instacast for Mac app, I removed the Instacast app from my iPad but didn't get round to installing the desktop app. I resolved this today.

It was about two months ago that I decided that I wanted to support the Instacast product by becoming a member. Today I took a senator membership with Instacast because I want to support a great product. Just $10 per year as well. Bargain.

Installed aText for Text Expansion

Back when I was a .NET developer I used a text expansion tool called AutoHotKey. I used it for everything. After moving to Ruby I didn't look for a replacement text expansion tool for my MacBook.

One of the things that I frequently run into problems with is using templates for Markdown files. I use a number of different tools depending on what I'm writing. Being able to generate the template for the file regardless of what tool I am using would be good.

I installed aText due to the recommendation on the Lifehacker website. This should definitely make writing posts for my Octopress blog easier as well as anything else I can think of.

Installed Broom for Disk Space Analysis

Space is a premium on my MacBook Pro at the moment. While I wait for funds to be released so that I can buy a NAS drive for the house, I have to keep and eye on how much space I use.

I installed Broom (Mac App Store) and straight away I was able to save myself over 20 GB in disk space.

I need to keep more of an eye on the tools that I use and should use to make my day easier.

Building products that use email

At the moment I'm working on an application for a decision making tool for groups that uses email to track people's responses to a question that forms the basis of the decision. Basically this application sends an email to all the people you want feedback from regarding a decision. In the email are the responses they are allowed to reply back with. They click the appropriate response and it's done. With me so far? Good.

Collaboration tools like this in teams are okay because everyone knows one another and the team work together for the greater good of delivering a great product or service. In a team you expect to get emails from other team members that want your input on a decision.

What happens though when you receive an email asking for your input on a decision, when you know that person but not as well as you know your family or friends? Another way to look at it is this:

How would you feel about giving feedback on the decisions of others you know in only a professional manner?

This is where I am having trouble with this idea. On one hand I know that teams are always going to respond to one another's questions, but say we have a decision making tool for the masses that anyone can use. You want feedback from a group of people that you know on a professional level who opinions you might value, especially when it comes to getting feedback on a key decision, but your worried that they won't participate in your decision.

If these people who opinions you value, mark your request for feedback as spam, are they really people you want feedback from or are they simply too busy to provide feedback?

This has been a stumbling block for me for a while and it's led to two different strategies to allow people to be included in decisions.

First Strategy: No Restrictions, Include Everyone

This was the initial idea for the product. The decision maker can include anyone they want feedback from on a decision. Whether it's a member of their team, someone from a particular social network they interact with, or just someone who opinion the decision maker values.

Emails are sent out to everyone requesting feedback on the decision. The main benefit to this is that you can include anyone in on a decision easily and quickly. However there are a number of drawbacks:

  • What if the email is marked as spam? - It doesn't do well for your product to be perceived an another form of clutter in the inbox.
  • Should the user have the option of blacklisting themselves from all future emails from my product? - To combat the possibility of the emails from my product being marked as spam, users could have the option of automatically blacklisting themselves out from all future emails. This gives a greater form of control but it does limit the decision maker in who they ask for feedback.
  • Should the user have the option of blacklisting themselves from this decision only? - A spin on the previous option, but again it does limit who the decision maker can ask for feedback from.

Second Strategy: Verify Respondents First

This is a more controlled form of getting feedback from the right people. You are pre-approving people to be included in your decisions, so you should be able to build a reliable network of people who you can ask for their feedback on any number of decisions. There are drawbacks to this though:

  • You just can't include anyone in a decision - Initially I wanted a platform where people can ask others for their feedback on anything.
  • More barriers to getting feedback - Even if a person does want to help we require extra steps to include them on your decision. After one click to verify who they are, they might just get bored and not bother taking part in the decision.

Test Group Will Provide Feedback

Thankfully, I have a test group who are keen to use this service to help them make decisions with regards to small investments as a group. I'll be providing a simple implementation of this application for them to use for a while as a group.

As an added test, I will ask the test group to use the application to create decisions that are not related to investments. I want to see if there is a difference in the number of responses depending on the topic of the decision. I expect investment decisions to generate more responses because that is what the application is for.

I still haven't decided whether to go ahead with this product in the long term, but sharing this here did give me a moment to weigh up the two options.

A day away

I'm in between work at the moment. It's an odd place for me to be. I've worked in the full-time job market for over 10 years. If I wasn't working, I was on holiday or I was made redundant and I was looking for another job. This freelancing lark is different though and with some time in between gigs and I want to use the time I have wisely.

With a few days free in between gigs I had two choices today:

  1. Work on products
  2. Get some chores done

I opted for the chores.

It was a lovely day here in Scotland so I thought it would be a good idea to simply step away from the computer and let my head rest while getting a few things sorted around the house and the garden.

We're not all fortunate to have a day away from out desks like this, but I'm so glad I'm in the position where I can do this and not worry about the implications on my income by taking a day away.

Goodbye Feedly, Hello Feedbin

Feedly has been my choice of RSS reader for about 2 years now. Initially I was won over by a service that provided a better user experience but still allowed me to continue to use Google Reader as my main RSS reader.

Feedly was a great application but lately I've become a little bit weary of it. One particular problem I have is the number of times I need to log back in. I've got Feedly running on my Macbook, iPad and iPhone. About once a week I would need to log back in on either the iPad or the iPhone. Logging in each week can be a bit of a pain. Especially as it's linked to my Google account.

It was time to look for something else.

After some searching I found the RSS reading service Feedbin. It's a subscription service with a web client that also works with the Reeder app for the iPhone.

At just $2 per month or $20 for the year, it's relatively cheap, but as a paid service it at least has more of a fighting chance of being around in the long term.

I've taken the $20 for the year offer as I want to try Feedbin for the long term. With the use of Reeder I have a supporting app for my iPhone that can let me use my Feedbin account. It will be interesting to see how Feedbin pans out as my main RSS reader over the next year.