Martin Brennan

Web developer, tech aficionado, liquor connoisseur.

Development Blogs Using Jekyll

I decided today to start writing separate development blogs for my various projects in order to take better notes, record any issues I have and how I fix them, and also to document my though process behind developing certain features and experimenting with new technologies. The blogs can be found at http://martin-brennan.github.io.

So far, I’ve just begun writing about my dev.focus project, and I used Jekyll to set up the site using GitHub pages. You can read the first post on how I set everything up. Hopefully these will prove useful to someone other than me!

Getting It Done

I’ve been a bit lost lately at home. Where I used to be constantly working on personal projects, I’ve found myself more frequently looking aimlessly at huge time sinks like forums and tumblr. I’ve been finding myself lacking the drive to work on personal programming projects even though I know I’ll enjoy it a lot once I get started and I’ll most likely learn some cool stuff from it. I’ve been suffering from a distinct lack of “Getting It Done”, in that I haven’t even done anything on any of my projects, or so much as looked at them in the past month or so. The slump may be from my work life; I’ve recently started to hit my stride as supervisor after being promoted near the end of last year but that has come with tradeoffs.

More time supervising and ensuring that a high quality of code is at work has left me with less “Getting It Done” time at the office as well, and by that I mean actually writing and shipping software myself instead of planning and architecting it for others and finding work for my team. I’m enjoying being the supervisor, it is an entirely different role with different responsibilities and I’m sure I’ll find myself writing less and less code at work. It’s all about letting go and firing yourself from your own role. That’s why I’ve decided to start “Getting It Done” at home instead, and start working on my personal projects again. There is a couple of different motivational methods that I’ve found today that has gotten me working again, and I hope that these will help anyone else who may be feeling burned out on their personal projects as well. Here is how I started getting it done:
(more…)

Callback Hell

If you’ve ever written any Javascript that contacts or lives on the server, you’ve probably experienced Callback Hell by now. It is a horrible affliction that Javascript can suffer from as a result of many nested callback functions that are triggered once a request has been completed. Often times, this results in a whole bunch of anonymous functions that make your Javascript nested 2^84 levels deep which causes a  lot of messiness and unreadability. There are a few simple ways you can avoid callback hell; you can read about them more in-depth with code examples by following the link but here is a good gist:

Name your functions! - Having named functions makes your code much easier to read and keep track of, especially when debugging or making changes!

Keep your code shallow! – If your Javascript is indented more than about 3 levels, consider breaking it up further into smaller functions. This makes much more manageable chunks that are easier to test and maintain.

Modularize! - If you are using nodejs or requirejs you should be keeping related functionality in separate module files then require-ing them as they are needed. This makes the code easier to read and keep track of for other developers, and avoids polluting the global namespace.

Check out the examples over at callback hell for more information, and hopefully you will be able to avoid the fiery depths!

Custom VisualSVN Post-Commit Hook Using Visual Studio

At work we use VisualSVN for our source control needs, which is great. Their SVN server software is really simple and reliable, and the Visual Studio integration is awesome and works like a charm. VisualSVN comes with several predefined scripts that you can attach to your pre- and post-commit and other SVN hooks, but they are quite narrow in scope and not easily customisable. I decided to start searching for a way to make a customisable VisualSVN post-commit hook that I could code myself, and I found that it was much easier than I first anticipated.

(more…)

Using Reserved Words as Identifiers in VB.NET by Theo Gray

I came across a problem at work the other day when the plugin that I was using, jQuery file uploader, required specific properties to be returned to it from the VB.NET object deserialisation when an error occurred. One of these properties was Error, which is a reserved language keyword in VB.NET. Ordinarily I would never be using reserved words as identifiers in VB.NET, since you can’t anyway because the compiler doesn’t allow it and it’s usually a very bad idea. But in this case it was either use a reserved keyword or have to modify the plugin source which I wasn’t too keen on doing.

I came across this article by Theo Gray that outlined that it was as simple as surrounding the property in square brackets [], much in the same way you can use reserved keywords as column names in MSSQL. This worked great and it was a perfectly simple solution to my problem, but I certainly won’t be making a habit of it!

Child of the Nineties Internet Explorer Commercial

Microsoft has produced this great commercial for Internet Explorer that speaks to generation Y, who grew up using browsers like IE and Nestcape Navigator in a time when the internet was new. It’s an effective commercial because it is very relatable and it reminds us of the simpler times of the nineties when we were kids, when the best we had was dial-up and there were no social networks outside of school. Whether or not this will increase IE’s market share as they try and get back into the modern browser market as a contender remains to be seen, but even if it doesn’t help them out the commercial is still a nice trip down memory lane for the children of the nineties out there.

Blog Redesign

For the past week and a bit I’ve been redesigning martin-brennan.com for a fresh look and feel, and today I’m launching the new design! Let me know what you think on twitter @mjrbrennandev or in the comments, or take a bit more time to bask in my new design and read about my process in the article!

(more…)

A Baseline For Frontend Developers by Rebecca Murphey

This article has been around for some time now, but I only recently discovered it. In A Baseline For Frontend Developers, Rebecca outlines some essential skills that one requires to be successful as a frontend web developer in the current climate. What’s particularly interesting is how Rebecca highlights how much things have changed for frontend developers in recent years.

No longer is it enough to be able to use CSS and HTML and when it comes down to it, a little bit of JavaScript and jQuery. Now, to stay up to speed a developer is expected to have extensive knowledge of JavaScript, test-driven development, Git and GitHub, modularity and dependency management, production builds, the command line, preprocessors for CSS and process automation. Frontend development has evolved way beyond making simple websites; it has become its own form of software development, requiring much more specialised expertise and tools.

I think that this is a great thing for frontend developers and web developers in general, as it turns the profession into something with much more craft and discipline, that takes dedication and hard work to become proficient in. Applying software development processes to frontend development is evolving our industry into something much different, and in my opinion much better, than it was ten years ago. I’m excited to see where web development heads in the next few years and judging by what has happened so far, we only have good things to look forward to.

Why Rails by Claudio Ortolina

I’ve been coding another app recently to learn Rails and by extension Ruby. I thought I’d link to Claudio’s article that recently appeared on Nettuts+ that outlines some reasons why you might want to start learning Rails and Ruby. Why Rails by Claudio Ortolina.

For me, the main reasons that I wanted to start learning Rails was because there is always plenty of buzz about it in the web development community, and I’d started learning the syntax of Ruby and I really liked how simple and expressive it was.

The MVC architecture of Rails also appealed to me, and I was looking for a change from .Net. I’ve found that its great for MVC and RESTful URLs, and I’ve been really enjoying how easy it is to separate concerns, and the ease of use of creating business and database logic using Models has been a godsend.

I’ve had a couple of hiccups so far with my learning but I can already see that I am going to enjoy learning and using Rails.

Progressively Fade Elements Using jQuery

I’m currently working on a Rails app to learn the framework and Ruby as a language a bit better. The app displays a list of elements in order of date created on the main page, and I decided that I would progressively fade the elements using jQuery depending on how old they were. I decided to share the algorithm I came up with to help anyone else who is trying to do the same thing. (more…)