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.
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…)
Name your functions! - Having named functions makes your code much easier to read and keep track of, especially when debugging or making changes!
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.
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.
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!
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.
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!
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.
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.
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.
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…)