Handling Programming Errors

Posted by Brian R Cline | Experience,Programming | Tuesday 24 August 2010 6:12 pm

Handling errors, sometimes called defensive programming, isn’t really something I have been taught very well at Athabasca or Niagara College. Over the last few years, while handling customer support and internal user support I have come to realize that what the dialog box says and the frequency of errors is probably the single biggest user experience issue.

I use the following guidelines for developing and when to show error messages.

Visual Attributes The error message should immediately grab the user’s attention: on a web application it should be exactly in the middle of the screen using some sort of popup, in regular desktop applications it should be in the middle of the screen in a log box. For text, I usually use a bold and red coloured font.

Message The error message must be clear to your average user: if the printer is out of paper tell them that! Don’t give your user just an error code, because they won’t know what that means and they won’t want to read your manual or contact support.

Where? Your user wants to know where it occurred, and how to fix the error. If possible some sort of visual attribute should also be set if the error occurred on a data entry screen. Set the border of the element reg, set it bold if the text is invalid, or even use some sort of icon.

Always make sure your error messages are clear: users don’t want to have to search through some user manual for software they bought, or have to pick up the phone and call for technical support. Apple has really shown us that users just want things to work, and it should of course look pretty. :)

How To Post Great Freelance Gigs

Posted by Brian R Cline | Experience,Programming | Monday 12 July 2010 1:26 pm

I have been trolling Craigslist and Kijiji lately in hopes of finding some additional freelance work to add to my portfolio before I become a full time freelancer/consultant. Read the advertisements has proven to be a terribly frustrating experience. Advertisers need to always remember that the more details they provide will lead to a much more realistic budget and a system that better meets their needs.

Advertisements need to be as detailed and as short as possible. If the programmer is expected to modify or write plugins for an existing application or website you need to provide details on how the previous system is implemented. Ideally, you will answer all of the following questions. What programming language? What database is it using? Who is hosting it? Is there any sort of documentation? Do you have programming guidelines?

Regarding the actual project or changes to an existing project require you to answer additional questions. Is it completely new project? Who will own the work (source code, graphics, etc)? What’s the timeline? What should the application do? What is the scope of the project?

Always remember that you also get what you pay for and that if you pay minimum wage or outsource to another country (China,India, Brazil, etc) you will likely get inflexible crap that will have to be redone if your site or application goes through some sort of expansion.

Reducing Download Speed in Firefox (Throttling)

Posted by Brian R Cline | Experience,Firefox,Windows | Monday 28 June 2010 7:20 am

At work, I often need to download extremely large files (software updates, etc) that can severely cripple internet usage for other staff. Unfortunately, additional bandwidth or internet providers aren’t currently available in our area and purchasing new hardware is out of the question because of budget constraints. Typically, I use Mozilla Firefox on Windows XP so finding an addon to better throttle my downloads shouldn’t be difficult. I also would like to be able to restrict only bandwidth to certain sites and not restrict any internal network traffic whatsoever.

Conveniently, Firefox Throttle meets my needs exactly and allows exclusions for specific websites or specific IP Addresses.

  • Included Features:
  • Limit download and upload rates for all open Firefox windows/tabs and downloads
  • Bursting mode (allow short rate “bursting” after inactivity)
  • Preset and custom limits
  • Configurable lists for IP addresses and domains that should be throttled or excluded from throttling
  • Automatically excluded LAN IPs

After running, Firefox Throttle for four hours I have found it to meet my needs and have also found out there’s a plugin for Internet Explorer too called IE Throttle.

Book Review:The Passionate Programmer

Posted by Brian R Cline | Book Review,Experience,Programming | Friday 25 June 2010 11:42 pm

“The Passionate Programmer” (ISBN: 978-1-934356-34-0) was written by Chad Fowler. According to the back cover the book is a revised edition of “My Job Went to India: 52 Ways to Save Your Job.” Surprisingly, I didn’t really find anything in the book regarding jobs being outsourced. Chad has included a collection of informative exercises titled “Act on it” at the end of each chapter which generally have lengths under five pages.

I haven’t programmed professionally very long ( < 4 years), still there are so many things that just make sense found in the book. Throughout The Passionate Programmer, Chad’s underlying theme is we should always be working with better programmers, choose the places we work carefully, carefully choose associates because they have such a strong influence on the quality and passion you have while at work. Currently, I feel that i am stagnating because of a situation similar to what Chad discusses in the book: many of my coworkers are very negative, and the other programmer is extremely careful how much of the code he documents / shares so that he has built in job security.

Feeling irreplaceable or creating your own job security as Chad discusses really means that you are probably performing tasks in a way that others can’t do them and that doesn’t necessarily mean you as a software developer are a genius. Unmaintainable code really does end up painting your back with a bright red bulls eye because you are likely not a very good team player, and probably it would prevent you from moving up the hierarchy into a better job.

My favourite chapter of the book is titled “Learn to Love Maintenance” and this is because Chad has shown a different perspective. Chad encourages the reader to use the time doing maintenance to interact directly with customers, create a large base of advocates, and to use it as a time to truly learn the inner workings of the business because business rules are so heavily encoded in important software.

Overall, I would say that “The Passionate Programmer” is an excellent read and that I feel I have learned more about myself than I would have ever thought. I would never say that it is the next Code Complete or Code Craft, but it can definitely help you develop a meaningful career.

1and1.com – Web Hosting Review

Posted by Brian R Cline | Experience,Programming,Uncategorized | Friday 25 June 2010 5:16 pm

Purchasing web hosting service is extremely easy; however, purchasing great web service is extremely difficult. Some of the web hosts pretty much register the domain and give you access almost immediately to some temporary space while the DNS wait period occurs.

I can’t remember how long it took for me to get access to the temporary space on 1and1, because I started hosting with them around 2003 / 2004. I have used 1and1 pretty much exclusively since purchasing my first domain name and can’t say I have a lot of complaints although there are definitely somethings I wish they did differently.

Hosting
I haven’t had any issues with the actual web hosting although I do find it frustrating that things like FTP accounts are so limited. I was thinking about including hosting in my web design/development projects and allowing the company FTP access but that would limit me to 50 clients per package. An important thing to keep in mind is that if you are going to use a 1and1 database (MySQL / MS SQL) is that it is behind a firewall and you must use their web based tools.

Customer Service
The four times, I have had to deal with 1and1 I was extremely disappointed with the level of customer service. For example, there was a severe email outage for about two days and staff seemed to be indifferent to the issue. Before you go with 1and1 make sure that you know exactly what you are doing, and that you have patience because their technical support/customer service is terribly slow. The FAQs aren’t exactly great and often don’t really contain remedies to the problem: for example why is DOMDocument disabled and how do I fix the problem? Well, 1and1 doesn’t actually say at the time of this writing!

Billing Practices
I’m not exactly thrilled with having to pay for a full year’s service at a time and not getting any sort of deal for allowing them to use my money for free for like 12 months. Cancelling domains and packages is quite tricky on the billing/cancel application partly because you have to respond to an email at least once and then wait some period of time (2 months?) and make sure again that the item is actually cancelled.

Final Thoughts
1and1 was the cheapest host that I could basically find around 2003/2004 and still seems to be one of the cheapest. I wouldn’t describe the experience as great but I also wouldn’t say it was terrible. If you are price conscious, willing to learn, and have patience then your 1and1 experience will probably be similar to mine.

Dell Studio: Epic Fail

Posted by Brian R Cline | Computer Maitenance,Dell,Experience,Uncategorized,Windows | Friday 5 February 2010 12:26 pm

At work today, I had a user come see me regarding his keyboard suddenly not working on his Dell Studio 1550 laptop which the company bought about a month ago. Keys being pressed weren’t being sent properly to Windows 7, and LEDs weren’t properly lit.

Solution:

  1. Remove the battery
  2. Press and hold the power button for about 10seconds

Apparently, this solution removes static build up?

Open Source Week 2009

Posted by Brian R Cline | Experience,Programming,Ubuntu,linux | Thursday 1 October 2009 1:09 pm

I am so excited to say that I finally booked everything I need to attend the Toronto Open Source Week. In a couple of weeks time, I will be spending a couple of days in Toronto while attending the many conferences, workshops and presentations on open source software (GNU Linux, PHP, etc.)

I am hoping to do some serious networking for my consulting business, along with getting more experience with web programming and the rest of the LAMP stack which seem to be creating an IT revolution.

I hope to see you at some of the events!

Questions to Ask In An Interview

Posted by Brian R Cline | Experience | Tuesday 8 September 2009 8:43 pm

I’ve been involved in interviewing people, and like everyone I have also been interviewed. I believe that when you are interviewing for a company, it is a time for both parties to determine if you will fit into the corporate culture so everyone should ask questions. I strongly believe that if something really bothers you in an interview that you should walk away if you have any doubts.

I usually ask at least these four questions, although sometimes I will ask more to clarify something I’m concerned with or to show that I don’t quite understand but would like to understand.

Do programmers have quiet working conditions?
This question really determines if I will be able to get into a really productive mind set or if I will struggle most of my day getting in and out of the zone. I believe that there’s no harm with a programmer sharing an office with someone else, but it wouldn’t be very logical to put a programmer beside someone else that is always on the phone.

On average, how long does an employee remain with your company?
You should never suggest or use the phrase “turnover” because you will probably just receive a simple response like “low.” Obviously, if the company is younger or a startup this question might be completely meaningless. Ideally, you will hear that there are some programmers that have been with the company for several years.

Could you explain to me how the development process works here?
I don’t usually expect much of a response to this question if the person works in Human Resources, but hopefully you will hear about processes being documented.

How do you track/follow bugs/issues?
This question is used to probe how organized the development and maitenance processes are. Ideally, the team will be highly organized which should make your time used effectively and software released with fewer bugs.

Books I’ve Read

Posted by Brian R Cline | .NET Framework,C#.NET,Excel,Experience,Programming,asp.net | Tuesday 8 September 2009 9:24 am

Sometimes, when I have applied for full time employment in the past I have seen job ads or received responses from companies asking what books I’ve read. Nearly every time, I have heard this question I was so shocked because I didn’t ever keep track of what I had read or where I had gleamed those little bits of valuable information.

This list will be updated at least monthly, although when I have an abundance of extra time I might be able to read an additonal book or two. Please note that this list only contains books I am interested in professionally and in no specific order.

Books Finished:

  • ASP.NET 2.0 Unleashed
  • Beginning Ubuntu Linux
  • C# How to Program
  • Code Craft: The Practice of Writing Excellent Code
  • Don’t Make Me Think: A Common Sense Approach to Web Usability
  • jQuery In Action
  • Network+ Guide to Networks
  • Learn to Program With C++
  • Practical Web 2.0 Applications with PHP
  • Systems Analysis and Design in a Changing World
  • Teach Yourself HTML 4 in 24 Hours
  • Visual Basic 6 Complete
  • Web Style Guide: Basic Design Principles for Creating Web Sites

Currently Reading:

  • Operating System Concepts

Although the list is getting pretty extensive, please understand that these are books I can verify as of September 7th 2009. The title suggests this is only books, so please remember that I definitely have visited many websites along the way.