Matthew Lang avatar

Matthew Lang

Web developer with a preference for Ruby on Rails

Choosing My Next Games Console

The console war has begun for the next generation of gamers, but choosing between either of these consoles as my next gaming platform has still left me mostly undecided. In a games shop, I even asked one of the staff what they thought of the specs and which one they would buy. His answer, "buy both", is hardly the best answer you're looking for when you're an occasional gamer.

Currently I have an Xbox 360 with a handful of games. I don't play very often and I certainly don't have the time to co-ordinate myself enough to play online against friends and family, but I do like sitting for a couple of hours each weekend and working my way through a few games.

The first consideration is my oldest son. He likes playing a few games on the Xbox 360 including his favourite game, Minecraft. Most of the games he does play are usually available on both consoles and there will be a version of Minecraft available for the PS4. However, what other titles are there on the PlayStation that are suitable for him to play? Mostly the same titles that he's played on the Xbox previously, so I'm not concerned about availability of suitable games for him.

There's very little between the two consoles in terms of specifications, but having had previous experience with the Kinect, I would have to say that I wasn't completely enamored with it. There just hasn't been enough games for it since its release. Yes, there's all the usual fitness and dance games but that's not the games I play.

If I had to choose between the two, I would choose the PlayStation 4. Simply out of curiosity really, nothing else. I've had a an Xbox for a couple of years now, might be time to try the other camp. Still I've got a few months to think it over before I commit to a purchase.

My Sublime Text 3 Setup

The text editor. The programmer's most important tool and the center of an ongoing debate that will occupy programmers for years.

I'm not going to debate on the best editor as that would be stupid. Everyone has their own preferences and needs. Vim does offer some nice advantages for those familiar with all the necessary keystrokes, but for my needs I just want a nice, extensible text editor that I am comfortable with. I chose Sublime Text 2 a couple of years ago and more recently I have started using Sublime Text 3 for my day to day coding needs.

The Essentials

Okay they're not really essentials, but if you can't even look at your text editor then you're already hitting your first hurdle. Not only does Sublime Text allow you to change the colour scheme and fonts for the different languages you code in, but it also allows you to change the theme of the editor. A nice touch I think you'll agree.

Theme

I settled on the Flatland theme a few months ago. Its non-gradient look might be a bit bare for some, but I do like this theme. It's very dark and I prefer the dark background in my sidebar and tabs.

It also allows you to customise the height of the folders and files in your sidebar. By default Sublime does have a fair margin around these, but Flatland allows you to specify a smaller size, so that you can fit more into your sidebar.

Colour Scheme

Long before I started using Sublime Text 2, I was already using the Solarized colour scheme. I've stuck with it ever since and even use it as the colour scheme for my terminal. I prefer the dark version as the light version does have too much of a stark contrast with the Flatland theme.

Font

I've tried lots of fonts for programming with, but I find that Monaco, a font shipped with OS X, is best suited to my needs. It looks nice on my MacBook Pro and on my external monitor with just a small difference between the two screens.

Installed Packages

I do have a fair number of packages installed for specific things like Cucumber, RSpec, Rails and other language and framework specific needs so I'm going to list those packages that are independent of language and therefore get used on a frequent basis.

AllAutoComplete

Sublime Text 2 just came with autocomplete listings for the file you had currently open, so this plugin is a welcome addition as it includes all currently open files for your autocomplete listing.

SublimeGit

This package is a great package with plenty of integration with Git. It's also the first paid package that I have used with Sublime Text 3. As I use Git all the time, this plugin been worth every penny.

GitGutter

GitGutter allows you to see which lines have been inserted, deleted and modified. It's basically a diff for your editor. Little symbols appear in your editors margin to signify where code has been changed. At a glance it's nice to see where I have modified a single file.

Origami

You can't use Vim and not be impressed with being able to split panes with just a few keystrokes. It was one of the few things I have managed to remember from my many sojourns to the land of Vim. Sublime Text does have the same ability to split panes, but the keystrokes for this are difficult to remember.

Origami makes splitting panes much easier by providing easier to remember keystrokes for manipulating and navigating through panes as well as having the same commands available in the command palette.

MarkdownEditing

I handle a lot of files in Markdown. It's the default markup for the majority of files that I create and use. Brett Terpstra's MarkdownEditing package provides some sensible defaults for editing Markdown files. It also provides some handy keyboard shortcuts for manipulating Markdown files such as inserting headings, pasting links and adding footnotes.

CTags

Although Sublime Text has built in support for finding symbols in the current file, having ctags support just makes navigating between methods a lot easier. Rather than switching to a file and searching for the symbol, I can simply use ctags to pull up all symbols for the project navigate straight to the method I need.

So there we go, a quick run down of my Sublime Text 3 setup. If you're looking for preferences files then I must do an update of these on Github, but I'll provide a link here when that's done in the next couple of days, so be sure to check back.

Bored of the Hype

Yet another big Apple announcement goes by and yet again we see just marginal improvements on the products that Apple have become famous for. Not that I was expecting anything grand or game changing, it's just that the hype around these things by tech sites and magazines is reaching the scales of ridiculous.

It seems common place now for magazine sites like The Verge to live blog these events even though we know 90% of what's coming. I wasn't surprised by anything that was announced at the event. 64-bit processors in the new iPhone 5S ... not surprised. Fingerprint security ... thought it was coming. It comes in gold! We already knew that.

Then there's the analysis and opinions of millions of people on whether this is Apple at their best or not. A million pointless questions being asked and everyone has their own answer. Not that it matters of course, because Apple will do what Apple want to do regardless of the views and opinions of others.

Debating on topics is fun, but I'm bored with the Apple debate now. Let them do what they do best, it's clearly working for them. If you like their products then fine, buy them. If not, go find an alternative. The world doesn't need a million different view points on a phone or a computer or anything materialistic like that.

There are more important things happening right now like state surveillance, war, chemical weapons and conflict. Maybe if these were debated with the same energy as the latest iPhone, we might actually make enough noise for those who should be listening to invoke change. It's a long shot, but it's worth a try.

A Thank You to All Open Source Developers

Right now all over the world, open source software is being used by millions of people. Most of these people probably don't even know it, but the services they use on a daily basis are more than likely being powered by open source software in some form. Since it's birth in the early eighties, open source software has become more and more prominent and should now be considered a mainstream topic that hopefully even non-programmers know about.

I've used open source software in my most of my career as a programmer, but it hasn't been until the last five years where open source software has comprised of the majority of tools in my tool belt. From software languages and frameworks to the tools and libraries that I used on a daily basis, open source software has given me a career that I feel very positive about and enjoy working in.

So to all the open source developers who give up their precious time to build software for others to use and enjoy, I just want to say thank you.

Your selfless acts of contributing your time and effort to the world of code for free is reflected in all the greatness that open source software has achieved.

Blog Heroes #5 - Patrick Rhone

Patrick Rhone. Writer, curator, Mac fan, thinker, family man and blog hero. Did I miss anything? It's hard to put Patrick into one box when his blog lets you know that he isn't just good at one thing. He's great at many things.

Patrick's blog first came to my attention when I first started using Twitter. I was simply looking for other people to follow who were interesting. His recommendation came up and I have followed his blog ever since.

Patrick's blog has a mixed bag of topics. Personal thoughts, productivity insights, technology usage and of course writing. The thing about Patrick is that despite his love of technology and its advantages, he still writes about tools like pens, notebooks and index cards and how he uses them. I see it as the perfect balance between man and machine. His blog is a reminder that there's more to getting things done than just buying the next killer app.

Patrick's blog has been daily reading for me for over five years and will continue to be so in the future.

The Sticker Business Model

Path, the social network that limits you to just 150 people, just pushed a new update to their app that offers a premium model with complete access to their shop. At the moment their shop comprises of only stickers for use in messages with your family and friends and filters for the pictures you send. The option to upgrade to premium gives you access to all these items in the Path shop for an annual cost of $14.99.

While I applaude Path's decision to finally offer a premium model, it's not the premium model that I envisioned. I don't want stickers, filters or anything like that. I'm looking for the ability to share my posts to other networks like App.net and to others by email. I also want to export the data in my Path so that I have complete access to all the moments I have accrued since I started using Path. There's a lot of good memories in there.

These are the features I would pay for, not stickers and filters. I'm all for supporting the products and services I use, but the product must offer something in terms of real value to me besides it's core functionality. Full access to a sticker book and some Instagram-style filters isn't going to make me upgrade to their premium model.

Perhaps those extra features I described will be available in the future but the for the moment, I'll be staying away from the sticker premium model that Path are offering.

An Unproductive Day

I just had a very unproductive day trying to implement a search addon for a customer. From first thing in the morning to early evening I have spent trying to get a simple search library to work. It's days like this that I end up getting frustrated and annoyed with my lack of progress. A wasted day if you will.

The truth is that no all days are going to be straight-forward or marked with progress. The trick is to learn from your unproductive day and adjust your plan for the following day.

Tomorrow I'll be approaching the problem from a different angle and reviewing my steps one at a time until I can be absolutely sure what the problem and see where I am going wrong. That's my plan.

What's your plan for following up on an unproductive day?

Micro Changes

Reviewing and adjusting your workflow is good practice as a freelancer if you want to minimise the time you spend on admin duties. Even the smallest changes can make a big difference.

Take my time sheet for example. The actual inputting of entries into my time sheet can take me a few minutes to do at a time. Doing this multiple times a day can lead to lost time. Sometimes I even just take a notes of what I have worked on through the day and then take 10 minutes at the end of the day to fill in my time sheet.

I started looking for an alternative method of inputting into my time sheet last week. I needed a timer that I could start and stop and record the entry in my time sheet quickly. I tried a number of apps, but I eventually found a suitable app that sits in the background and works with FreeAgent.

Slips is a menu bar app that allows you to quickly record entries for your time sheet in FreeAgent (my preferred invoicing tool). Now when I say quickly I do mean quickly. I find it much easier and quicker now to update my time sheet from this app than finding my way through my browser and it's many open tabs. Of course there's the added benefit of me not getting sidetracked by something open in my browser.

Micro changes such as this might only get me back a few minutes a day but adding those minutes up over the year and could be a significant amount of time that I am getting back.

My iPad Setup

I wrote last week about finding purpose for my iPad, a tool that I feel was underused. Over the weekend I managed to sort out the various apps that I needed and re-arranged my screens so that the apps I use on a day to day basis are on my home screen and other apps are just a slide away.

In a departure from my iPhone, I have foregone the use of folders for grouping applications. I did this for two reasons. There's more screen space on the iPad and I don't need to use as many apps as I do on my iPhone.

Another change I made that is different from my iPhone setup is the number of apps on my home screen. I almost filled the screen with apps. Om my phone I just use the top two rows for apps on my home screen, but I don't mind having so many apps on my iPad's home screen,so I just fill the screen with the apps I need and pick a pleasing wallpaper.

One of the key decisions in picking apps for my iPad was whether to use the same apps on my iPhone for my iPad. The devices run on the same platform, but the bigger screen on the iPad means that I can afford to pick apps that offer more in terms of functionality, even if it does come at the cost of some screen estate. So I ditched PlainText for Editorial and of course there is no Reeder support on the iPad yet, so I have opted to use Mr Reader to read my RSS feeds.

My iPad Home Screen

So there we have it, my iPad setup. Simpler than I thought it was going to be, but it did require a different approach if I wanted to get the most from using it. And if you're questioning whether it will work for me or not, I'm writing this on my iPad in a cafe. That's got to count as a good start.

Finding Purpose for my iPad

A while ago I wrote about my iPhone setup. I wanted to follow it up with a post on my iPad setup, but so far I've yet to find purpose for my iPad. I do most of my work at my desk on a laptop and I use my phone when I am out and about. So where does my iPad fit in?

What I initially wanted to do was to only have apps on my iPad that allow me to write. I mostly use it for reading and writing, but I haven't had much of a chance to do either of these in the last month.

Now I think that I want my iPad to do everything that I can do on my laptop. I'd much rather be working on my iPad than my laptop if was away from the house. Some tasks are a lot easier to do than others though. Reading and writing are easy to do on the iPad, but tasks like programming are not so straight forward.

Over the weekend I'll be tackling this and making sure that I can do most of what I want do from my iPad by installing any apps that I need. I'll let you know how I get on next week.

Doing More with Less

A little reminder from Michael Wade that even with ten minutes, you can do a lot.

But for small tasks - the "next actions" that David Allen writes about - 10 minutes can be a nice chunk of time. Each minute is valuable. Those portions eventually accumulate and result in the completion of the project.

The Power of Ten Minutes by Execupundit

A Web Developer's Playground

I’m ashamed to admit it, but I don’t have enough of my code for others to see. I’m not talking about finished websites and applications for clients. I’m talking about ideas, prototypes, and other stuff—things I have just hacked into or built for fun. I can’t remember adding or updating any projects on my GitHub account for a long time.

Being a web developer means all my work, or at least the bulk is visible on the web. This isn’t always going to be the case, though. Most of the work I do is for the back end of websites—the wiring and plumbing side of it—the parts you don’t see. That’s no excuse, though, for the lack of code I have published.

The web is my playground. I should use it and publish more of my ideas in code form. Writing code and fixing problems is how I earn money. Perhaps showing problems that are being fixed with my code is a better way to market myself.

Giving Draft Another Chance

I'm writing this blog post on the web application, Draft. It's been a while since I used it. I stopped using it a while back in favour of Byword, but the problem with Byword is that it just isn't sticking as an app that I like using. Functionally it works like a dream, but there's something about it that I don't like.

So I'm giving Draft another go and already I'm enjoying using it. Yes it does do a few things extra than Byword, but that's not why I am using it again. Is it the preference for a web application over a native application? I don't know, it could be.

All I know is that if you're not happy with the tools you have then you should find the tools that do make you happy while you work.

Filtering the Signals from the Noise

I mentioned yesterday that the web can be a great platform for communicating and change, but is often misused. I gave an example of such a misuse, a petition that lacked worthy content. Not worthy of your time, which to you is precious. And that's another problem with the web. There's so much of it. How do we filter the signals, the content that you should be consuming, from the noise, the content that isn't worth even looking at?

Searching the web can yield some real finds like topical blogs, forums and e-books. This takes time though, and once we find an interesting source of content, we then need to spend some time validating the content. In my experience I have found that the best content is the content that is referred to you others. Two examples of this are content that is referred to you from others in your network and content from curated newsletters.

From Your Network

Over time I've built up this network of bloggers around me who put great content on their blogs. Michael Wade, Kurt Harden, Curtis McHale andNicholas Bate to name a few. I've been reading their blogs for a long time now, and when I see something interesting on their blogs that I would like to share, I link to it from my own blog.

It also works the other way. When any of these bloggers find something interesting on my blog they pass it on to their readers. This network of blogs is a great source of vetted content that I can be assured will interest me. Building a network like this can take time, but it's worth it in the end.

From Newsletters

I subscribe to a number of newsletters. Some for programming, some for writing and there's plenty of others. Email newsletters were once the crowning glory of the internet but then RSS came along. People found it easier to manage a feed reader than their burgeoning inbox. However newsletters have recently made a comeback.

The great thing about newsletters are that they are curated by someone else. Thought and time has been put into ensuring that the newsletter contains relevant content for its subscribers. And it's for this reason that I subscribe to a fair few newsletters. I don't want to invest time in searching for content when someone else can provide it for me.

These are two of the main ways in which I filter the best content for myself. There are others ways, but these two methods I find yield the best content for me.

Be a Good Netizen

The internet is an amazing platform for the world to communicate and innovate on. It can provide volumes of information at our finger tips, allow us to communicate with others on the far side of the world and if you're brave enough, it even allows you to publish your own creations such as books, music and more.

And yet, it is continually misused the world over. Where most people see it as an open communication tool, some see it as a surveillance system. Where most people see it as an e-commerce tool, others see it as a tool for defrauding and cheating. Where most people see it as a tool for change, others see it as a tool for control.

Unless you have been living under a rock for the last few days, you'll know that Ben Affleck was chosen to play Batman in the next Batman/Superman movie. It's been met with mixed opinions, but the decision to cast Ben Affleck has prompted a petition on Change.org to have Ben Affleck removed as Batman. It hardly seems a worthy use of the tools that the internet provides.

I've signed a number of petitions on Change.org that I have identified as being of benefit to individuals or whole populations. In each case, the petitions that I have signed would be of worthy benefit to others if action was to be taken as a result of the petition.

I refuse to sign a petition that calls for a casting choice for a movie to be removed. It simply doesn't rank as important enough a topic for me to get upset or passionate about it. And it shouldn't even have got as far having a petition on Change.org.

I'm not saying that the internet can't be used for debate and entertainment. I frequent a lot of websites on a daily basis where discussions take place over the best programming languages, the best text editor and other topics. Yes these are discussions that aren't a priority, but the debate is entertaining.

What I find wrong is when perfectly good tools for helping people are mis-used.

All around the world there people that require your help. As an individual you may feel powerless to do anything on your own but by taking the right positive action, you could be another cog in the wheel that will eventually turn and provide people with the beneficial changes they really need.

So with that in mind, why not be a good responsible netizen and use your web tools wisely. Used correctly, they can bring good to others.

Celebrate Your Success

Working as a freelancer can be lonely. When it comes to celebrating client and project success, Curtis McHale shares his successes with his wife and daughter first.

I remember sharing my first paid freelance invoice with my family. I haven't done it since then. I must rectify that when the next success comes along.