Matthew Lang avatar

Matthew Lang

Family guy and web developer

Considering a Standing Desk

Last week I hurt my back while lifting my youngest son. Five days on and the pain is still there. This latest episode of back pain and many more before it are now putting ideas in my head that it might be time for a standing desk or even a desk that can switch between standing and sitting. There's still a few obstacles though to this.

Is it really beneficial?

I know there's been a lot of talk in the developer community about the benefits of a standing desk but like many of the new ideas that come from the software community, I take each one with a pinch of salt. It's not that I think sitting all day is fine and healthy, it's not, it's just that I've just yet to see a link to the medical research done to back up this claim that standing is definitely healthier for you than sitting.

The last thing I want to do is move from a sitting desk to a standing desk and then run into even more problems with my back. As humans, we're all unique. What works for some people may not work for others. I'm quite a big guy in terms of height and weight. Would I really benefit from switching to a standing desk or would I be causing myself even more pain?

I enjoy sitting

The other problem is that I do enjoy sitting. It's not because I'm lazy or over-weight, I just enjoy sitting. Programming, writing or even sketching, I enjoy it more when I am sitting. My work space is setup to compliment my sitting position and everything around me is within easy reach. I could change all this with a standing desk, but then I would need to change a number of things like my monitor, my keyboard and mouse space, and basically everything else on my desk. This isn't just a switch from one keyboard to another, this is a big change in the way that I work.

I'm already productive

At the moment I am fairly productive through the day but that's because I get up and take frequent breaks, I eat a balanced diet through the day and of course I opt to drink water through the day rather than soda. These don't take away the back pain, but it keeps me healthy and stops my energy levels dipping in the afternoon. While I try to keep as healthy as possible, would having a standing desk really benefit me in the ways that so many other standing developers have seen?

I'm not convinced that I would switch to a permanent standing desk, but having the ability to switch between the two would be something I would be interested in. I'm still thinking on this for the moment and I don't see me making any drastic changes over the next year. Perhaps I might try standing for a couple of hours a day and work solely on my MacBook so that I don't need to move too much about on my desk.

Before I consider a standing desk seriously, there's also the issue of finding the right chair to sit in. Before all the frenzy around standing desks happened, people were quite happy to sit while working. The Herman Miller Aeron proved to be a very popular choice of chair for many developers, but I couldn't justify spending that amount of money on a chair when I first started working from home. I'm currently using a chair purchased from IKEA. It provides me with a comfortable place to sit during the day but it definitely lacks in any adjustability I need to do to change my sitting position through the day.

Maybe a better chair is all I need for the moment?

Things To Do With A Bad Back

All this week I had the pleasure of taking my youngest to nursery in the morning. It's been great dropping him off and seeing his place of learning. It wasn't without incident though. On Wednesday morning my back twinged while lifting the little guy so that he could press the buzzer at the nursery door. The last two days have been very uncomfortable.

After a painful day yesterday, I had to lie down. A couple of pain killers later and I'm lying on my bed wondering what to do next. I picked up my phone and started writing. 500 words, 1000 words, 1500 words. The milestones were just flowing past. When I started feeling tired I had written 2500 words. Not a bad start to a book.

It took me to being flat on my back before I started writing, and once it started it just kept going. I've probably made dozens of spelling and grammar mistakes, but that's what the first draft is for. It's not about details, it's just about writing. Getting the idea on paper using words. I've made that first step in getting something down and I'll be continuing with it now over the weekend.

Who Are You?

Social networks are a funny thing. They allow people who are shy or uncomfortable in crowds to be as vocal as they like. I often wonder though if this is less common than people might think. I assume that there are many others like me who use the internet hundreds of times a day. Announcing their arrivals at locations, updating their status on an hourly basis and posting their lives to the world as if they are the star in their own reality TV show.

I definitely don't do this.

My social networking habits have rarely changed in the last few years. I keep to myself mostly, engage with others when I want to and only contribute when I'm sure that I am correct in what I am saying. It's a reflection of who I am when I am around people. A quiet listener. I don't say much unless I'm confident in what I am going to say.

One of the problems I have is that initial reach out to someone, whether that person is physically in the room, or another avatar in the world of social networking. Reaching out online is easier, but I still hesitate a bit when I'm making that initial introduction. I always thought that when social networks started with Facebook and Twitter, I would be more engaged with people than I am at a conference or meet up. Turns out I was wrong and the reason is that if that person is in the room or on the other side of the world, I always will be hesitant in making that first introduction. It's just who I am.

And that's enough for me as an individual. I use my voice online when I have to or want to. Mostly when I want to. If I have to say something, I usually think about what I am going to say first before committing to clicking the button that publishes your inner thoughts for the world to see. In that case, most of the time I'll scrap the idea of posting what I have to say and let it slide.

Does your online personality reflect who you truly are as a person?

How to Keep a Programming Journal

Keeping a journal is great for anyone looking to record their thoughts and experiences but I have also been keeping a programming journal for some months now and I have found it to be a great resource to help me through the day.

I got the idea for a programming journal from my late Granpa. During his retirement years he spent a lot of time learning to code. He kept a number of notebooks where he would scribble notes or code from what he did that day. Sometimes he would even write the code in the notebook in his armchair before taking to his PC the next day to try it out. Sadly these notebooks were thrown out before I could get a hold of them, but I still remember watching him scribble away in his big armchair.

For my journal I've opted to use a plain text file written in Markdown. Pen and paper would be okay for daily reviews, but copying snippets of code and urls is just much easier to do on your computer rather than transferring it to paper.

Choose a journal tool

First we need to choose a journal. Use a tool you're familiar with like Evernote, a plain text file or even pen and paper. Use whatever works best for you.

The reason I would encourage you to use a tool that you're already familiar with is that it will help you make a habit of this. If you want to try something new then feel free to but I think using a tool you're already familiar with makes it much easier to make this a daily habit.

What to journal?

There's several things that I like to keep in my programming journal. The first is the date. It acts as a reference and let's me review my past week or month in terms of work. I would say this is an essential element to your journal. Anything else that follows is optional but I find that a good mix of the following means I don't miss anything.

1. Snippets

There are snippet managers that let you save snippets of code for future use but the one thing I find lacking with these tools is the context in which why I would want to re-use code. Storing the snippet in a journal means that I can provide a background to how I discovered the snippet and any benefits or drawbacks there are to using it.

2. Articles

Bookmarking these in your favourite bookmarking application is good for a reference point, but what did you learn from reading the article. Is this information going to be easy to find in your bookmarks again when you need to find it? Maybe, but I find that storing the programming articles that I read in my journal means that it's easier to find them again.

3. Problems

Sometimes the best way to think through problems is to write about them. I've faced a number of difficult problems in code in my experience. Each time I've faced such a problem I write about it. I ask myself a few questions about the code and what needs to be done in order to maintain the code or write a new feature for it. Writing through such problems can often expose a chain of thought that might not have been immediately clear when you first faced the problem.

Such writing like this goes in the journal along with a summary indicating whether writing through the problem was successful or not.

4. Reviews

How many of you as programmers review your day? Did you record that big win you did today in refactoring that monster class into six separate service classes that are now fully tested and don't break the single responsibility principle?

If not why not?

I'm not the most confident of people so when I'm staring at some code that's holding me back, I find it useful to review my previous wins just to tell myself that yes I can overcome this problem. Sometimes just a review of what we did in the past is enough to get us in the right frame of mind to overcoming programming problems.

Do it daily

Perhaps the most important thing to remember about keeping a journal is to make sure that you fill it in daily. Don't worry about holidays or weekends where you're not working or programming. Missing days is fine.

I find that the easiest way to remember is that if I wrote any code that day, I record a journal entry on it. It doesn't need to be an epic monologue to describe the two line change you made to an open source project. Keep your journal entry relative in size to the amount of code you wrote that day.

In the past I would have articles bookmarked in one place, notes on code saved in a commit and snippets stored in a snippet manager. That's a lot of information spread out. Having it in one place makes it easy for me to review past experiences, search for snippets of code and find articles I have read. At the end of the week, I can pick out anything that requires a follow up.

It's working well for me as a learning and review aide and thanks to my Granpa for the idea!

One Gesture, Multiple Actions

I've been using Unread on my iPhone since it's launch and it is a joy to use. I star the articles I want to remember so that I have a list of them in my Feedbin account, then I share the article to my reading list. Simple right.

My only niggle is that I have to do these as two separate actions. Why can't they be combined?

Far be it from me to dictate the features of an application written in a language I have no knowledge of, but if these steps are coded into the app, then why do I have to do them individually? Surely there must be a way of allowing me to combine the actions I want to take when I star an article?

This isn't a dig at Unread or it's developer but what I'd like to see more of in applications is automation. One gesture or action to star an article and share it to the places I want to.

The argument against this would be that some people might just select every network and blog they're connected to and share it everywhere which is silly, so maybe limit the number of actions that can be combined to three maybe?

With a growing number of social networks, bookmarking sites and other blogs, it can take some people a number of gestures to share an article to the places that they want to. Why can't we combine these into one?

Plain Text Data Please

Being a fan of plain text files means that I am particularly picky about the services and tools that I sign up for. A service could have all the killer features that I need but if it can be made simpler by some scripting and text file, then I'll opt for that instead.

It all about data access. If I can access my data that your service stores and export it to something else, without too much fuss might I add, then I'm already going to like your service.

Todoist are an example of a good service in my eyes. I have their app on my iPhone and MacBook and I use it daily. It's a great service for managing your to do lists. The export facility though is a winner for me though. It does backups of all your to do lists on a regular basis for you. These backups can be downloaded (or exported if you want) to your computer. When you open them, the backup consists of a text file for each list with all your to dos listed in simple plain text.

At the other side, there are two types of services you need to watch for if access to plain text data is your key concern.

1. Services that don't allow access to your data.

These services are thankfully becoming less frequent now thanks to the fact that of those services that don't allow access to your data, there are some where you can at least access it through an API. Although this is only of benefit to developers, it does mean that with a little scripting you can grab your data and save it to a format that makes it easier for you to use.

The last time I checked, Path still doesn't allow access to your data in any kind of format and their API isn't published either which makes getting your data out and onto another network or journaling app much more of a manual process.

2. Services that allow access to your data but in a format other than plain text.

When I say a service uses something other than plain text, what I mean is that the format that they export to might be readable by any text editor but could be in a less friendly format like XML.

This is definitely down to personal choice and experience, but I am more comfortable working with JSON files than I am with a format like XML.

I use Evernote a lot now. Mostly for my freelancing work. When I exported some notes I created as part of my evaluation of it, I found that the notes were exported to a format of XML. Not user friendly at all if you don't have any experience with programming and you want to take these notes to another package.

Thankfully though Evernote does export to HTML which is far easier to read and while the HTML can't be imported back into Evernote should you need to, HTML is easier for reading your notes into another service.

This is the best of example I have of a service that exported to an unfriendly format. The reason why I still stuck with Evernote was that I can export the notes to HTML which is easier for me to script than XML.

Plain Text Please

If a service exported to anything more complicated than flat file with XML based markup then I wouldn't use that service. It's just a matter of having my data accessible in a format that doesn't inconvenience me.

Data access is a key criteria for me when assessing services that I want to use. My data should be accessible and ideally in a format that doesn't need a programmer to make sense of. Plain text formats win in this aspect due to their instant readability. Everything else is just a hindrance in my eyes.

Write from the Beginning

I need answers. Not right now, but definitely later on.

I've an idea in my head to turn my Grass Roots Productivity series into a book. This involves what many in the trade refer to as 'writing'. Therein lies my first problem.

Where do I begin?

For my only attempt at NaNoWriMo I just wrote a short introduction to a story. Each subsequent day I wrote more and more. No planning, no outline, no overall story to start from. Needless to say I struggled some days and faired better on others.

Is an outline really necessary though? I don't know. I've never written an actual book before. Some people say just write, others say outline first.

I suppose at the end of the day what I have as a first draft is not going to be the finished article and it will need to be read, edited and reviewed a number of times before I publish it. I'm not looking for a the winning recipe to writing a prize winning novel. I'm looking for practical advice to starting a book.

  • Do I outline the book?
  • Do I just write to see where it takes me?
  • Do I build on my existing blog posts?

I've got too many questions and no answers. Bugger it, I'll draft an outline and start writing from there. I need to start somewhere.