Increase productivity - Ditch your mouse!

  (2008-01-15 17:16:56)
  by Simon Lang

A data entry specialist once told me that the mouse is the perfect device for a computer user... who has three arms. I've since taken this on comment on board and found how much quicker you can get things done by using only the keyboard - you just need to know which keys to press!

This will be the first post in a series listing some of the best keyboard shortcuts you probably don't know. Today these listed shortcuts are for Microsoft Windows - which means they will work in most Windows programs you use. The next programs posts will cover more specific programs like Photoshop and Firefox.

Most people know Ctrl+S means save and Ctrl+Z means undo (Ctrl+C is copy, and so on... *yawn*) - but hopefully these ones should be not as obvious, but equally useful to you.

Ctrl + w Close current window
Win + d Minimise all windows
Alt Menu
Ctrl + up,down,left or right Jump whole words in a text editor
Ctrl + Shift + up,down,left or right Highlight whole words in a text editor
Ctrl + Home Start of document
Ctrl + End End of document
Alt + Tab Switch active window
Shift + Tab Change focus in the opposite direction to normal tab
Context button (between windows key and Ctrl) Same as right mouse click
Alt + Enter Properties
Win + r Run
Win + f Find

16 comments - Leave a comment


2007 Survey of Web Professionals

  (2007-10-20 00:00:00)
  by Talita Kindermann

In April 2007, A List A part and An Event Apart conducted a survey of people who make websites. Close to 33,000 web professionals answered the survey’s 37 questions, providing the first data ever collected on the business of web design and development as practiced in the U.S. and worldwide.

The results have been compiled into a freely available 80+ page pdf document. A very interesting read for any web professional! Amongst other things, the survey covers salary, geography, education, age, gender, skills and years in the workforce.

Being female, I was particularly interested (although not surprised) to learn that the industry is dominated by males - 80% to 20% females!

Download the survey from the A List A Part website:

2 comments - Leave a comment


The importance of client input and communication

  (2007-10-18 00:00:00)
  by Simon Lang

Client input is the foundation on which all successful websites are built.

Did you know that 80% of all errors in software (or websites) are a result of developers and clients not communicating well enough? That figure can be further broken down: [1]

  • incorrect assumptions (49 percent)
  • omitted requirements (29 percent)
  • inconsistent requirements (13 percent)
  • ambiguities (5 percent)

When you look at the steps in your average development project it's not hard to see that a miscommunication in the early phases of the project can easily become serious errors later on.

So what does this mean for developers? It means actually sitting down and talking with your clients to determine what they expect, what they want and what they need is far more important than the actual development.

2 comments - Leave a comment


8 things I wish I knew before I started writing Javascript

  (2007-09-13 00:00:00)
  by Simon Lang

This article leans towards the more technical audience, but should be of interest to anyone who wants to use Javascript to give their site a bit more of an interactive feel.

1. The web is littered with many BAD examples

First and most importantly: Don't trust the first Javascript example that pops up in a Google search. Chances are it uses invalid HTML, teaches bad habits and is probably not even written that well. Which leads me to my second tip....

2. Get a proper resource

With a good source of tutorials (such as a book), and a solid up to date reference, you are all set to start writing Javascript the proper way. A few resources I have found invaluable to learning are: w3schools js reference, Sitepoint and Quirks Mode.

3. Get a great debugging tool

In my early days of writing Javascript I would often sit and scratch my head wondering "where the hell are the compiler errors?". Writing in an interpreted language (and one that gets interpreted differently by different browsers at that!) can be a bit of a change if you are more used to compiled languages. Get yourself a tool like Firebug and it will not only make it crystal clear where you are going wrong, but make fixing it even easier.

4. Use an existing library

Whatever you plan on doing with your Javascript - chances are someone has already done it. Check out some of the great, easy to use libraries out there. My favourites are jQuery and mootools but there are plenty more out there.

5. Use a code verifier

Even though Javascript seems like a very forgiving language, good coding practices still apply! Don't fall into bad habits: try verifying all the code you write using a tool like JSLint.

6. Learn to use the DOM

The Document Object Model may seem a little bewildering at first, but once you understand it, it makes modifying your HTML/XML documents a lot easier. w3schools has a good DOM reference for beginners.

7. Ensure you have a firm understanding of what Client side actually means!

Never ever use javascript for password protection. This is not a server-side language and that means your code can easily be viewed and modified by anyone. I am often amazed by the amount of IT professionals who do not understand this distinction.

8. Understand what graceful degradation means, and live by it.

If your website can not work without Javascript you should seriously have a rethink. Sure, only 1% of your target market may have browsers that don't support Javascript - but if you average sale is worth a few thousand dollars losing even one potential customer because they can't see your website is a pretty devastating loss.

1 comments - Leave a comment


Quick Colour Picker

  (2007-08-23 00:00:00)
  by Simon Lang

Ever find you use the same set of colours time and time again when designing webpages? I do, and I always get sick of digging through code of old projects to find exactly the colour I am looking for.

Well, inspired by this "Web 2.0 Colour palette" - I created a quick colour picker.

Click here to use the quick colour picker.

The idea is simple. Click a colour. Click the box, copy, paste, use...
Save to your computer and replace with your own favourite set of colours.

1 comments - Leave a comment


Reduce your exposure

  (2007-07-10 00:00:00)
  by Simon Lang

One of the first rules regarding internet security I was ever taught was this:

Reduce your exposure

Second only to "Never trust user input" in importance, this rule is an absolutely crucial one. The basic meaning of it is: the less opportunities a malicious user has to attack your system, the less likely they will be able to harm you. Common sense, really - if you only have one door into your house, it certainly makes the chance of you being robbbed a lot less likely.

So I was considering this recently, and a thought occurred to me: Why do we in the web business feel the need to make every system publicly accessible via the internet? For the shopping carts, advertisements, blogs and other sites of a public nature, the answer to this is dead simple: because they have to be to generate any business. There is no option.

But for the orders tracking systems, customer-relationship-management software, accounting systems and even for the content-management systems that administer publicly accessible website - there is quite often no need to have it at an address such as

Often it is useful to do so, as you gain access to your site from anywhere you have access to the net, but when you do not need that sort of access it is nothing but a security risk. If you only ever administer your blog from your home computer, or track your orders from your work network then there is a great solution: setup a local web server like WAMP5 and run your administration panel on that. While this example is specific to a mysql & php system, the principle is the same regardless of platform.

Doing so will effectively reduce your exposure to zero. Admittedly there are always going to be risks, and there is the disadvantage of reducing the number of points the system can be accessed from but take a moment to consider the sort of information you are managing, and ask yourself: is it worth it?

2 comments - Leave a comment


Bloated Code

  (2007-07-05 00:00:00)
  by Simon Lang

Generated code is:

The stuff generated by "What You See Is What You Get" editors like Dreamweaver or Frontpage

Generated code tends to be:

  • not standards compliant
  • not human readable
  • far lengthier than necessary (bloated!)

Which means:

  • they are a nightmare to edit
  • search engines are less happy with them
  • they take longer to download
  • they are semantically meaningless

The solution?

Write all code by hand!

But doesn't that mean wasted time?

Not at all. In fact, if you write good clean, reusable code once you may never need to change it again. Simply copy and paste into your new project, and you are on your way.

What other benefits?

  • You become a better designer / developer by understanding what you are doing
  • Other developers can easily pick up and continue your work (this is good!)
  • Your page is an optimal size which means quick downloads
  • You can guarantee your site to be Cross Browser Compatible: if you design in Microsoft FrontPage, chances are it is only guaranteed to work in Microsoft's browsers
  • Seperation of style, content and behaviour. Want a change of layout for your site? Simply change the CSS file. If you generated your site and you want to change it the style and content are too tightly intertwined to change quickly and easily.
  • Security benefits. When you write your own code, you know what it can and can't do (hopefully). When you use a lump of messy generic code spat out by some template generator or designed for some other system, there could be hidden vulnerabilities that you won't know about until someone exploits it and ruins your business.

Does that mean all "generator" tools are bad?

Definitely not! Some tools are incredibly helpful, and have obviously been made by highly intelligent people. These tools will not only give you good examples, but teach you how to become a better programmer, and catch your mistakes before you make them. But it is always a good idea to know WHAT the generator is generating before you go ahead and blindly use it.

A quick example

Compare the simple web page that contains one heading and one sentence:

I know which one I would rather work with...

Writing code by hand can be a daunting experience, especially if you have had no formal teaching in programming or similar. After all: how do you know if what you are writing is correct? I have found the following tools and resources to be of immense value, and are essentials for any beginner web developer: click here to visit resources page

5 comments - Leave a comment


Essential Web Development Software

  (2008-01-09 15:55:46)
  by Simon Lang

Most developers when asked can get pretty passionate about their favourite text editor. Take the age old vi - Emacs holy war for example.

Some, however, may feel nothing but apathy regarding their choice of IDE, image editing software or general development tools.

I, for one fall into the first camp. And if you are one of the ones that don't, the chances are you just havent found the right software yet.

The following list outlines tools that I simply could not do without in my day-to-day development tasks. If you haven't tried any of them out, I would strongly recommend it. If you have, but know of better tools - please contribute using comments, I would love to hear about them.

  • Text editor: EditPlus. The greatest text editor of all time. Extremely light weight and fast, yet supporting syntax highlighting, auto-completion, spell check, complex find-and-replace features. This editor deserves an entire post to itself. I'm yet to find a feature of this program that isn't fully customizable.
  • Image viewer: Irfanview. Same as above, but for viewing images. Who would have thought something so light weight and unobtrusive could be so powerful.
  • Image editor: Adobe Photoshop. Possibly one of the best pieces of software ever. I have been using this program for years and I still don't think I've encountered half of the features it offers. Unprecedented power.
  • Internet Browser: Mozilla Firefox. Pure refinement. If you are using another browser it's because you haven't tried Firefox yet. Fast, secure, convinient, attractive. I am such a Firefox fanatic it's shameful.
  • HTML/CSS/Javascript Tool: Firebug. I don't know how to sum up this Firefox extension. In short - if you are building webpages and have not heard of this tool you need to download it right now. Possibly the biggest time saving tool I have ever encountered.
  • Database Client: Navicat. Quick and easy to use, with some great filtering options. Makes database design and administration too easy.
  • .NET Development: Visual Studio 2008 Express Editions. I'm a little reluctant to add these to the list, since they only have one purpose - building Microsoft software. But they do it well. Quite lightweight, extremely easy to use. Beats the hell out of getting actual Visual Studio. Perfect for the casual programmer.

4 comments - Leave a comment


Are your customers dangerously naive?

  (2007-11-06 19:51:10)
  by Talita Kindermann

Lisa Barone from BruceClay wrote a great post about creating a strong web identiy which really made me think about the responsibility we, as web developers, have to educate our customers.

I’ve seen it time and time again – lovely, intelligent and enthusiastic potential customers – who are also dangerously naive when it comes to the web.

What it really boils down to is this:

Don’t assume that potential customers have any other plan other than:
investment in a great website = lots of new customers.

Don’t assume that potential customers have any understanding about online marketing or seo at all.

Don’t assume that potential customers have ANY CONCEPT of what it will take to really make their web project a success.

Never assume... as the saying goes, it makes an ASS of U and ME.

What do you know about making floral arrangements? Or caring for the elderly or kinesiology? I don’t have a clue. Just because we live and breathe the web, it’s unreasonable to take for granted that people in other professions will understand the fundamentals of our industry. In fact, most are intimidated by it.

It’s our job to help guide our customers through the digital wilderness with calm and confidence.
It’s our job to arm them with the knowledge they need.

As web professionals, I think we have an obligation to explain in no uncertain terms to all customers and would-be-customers the realities of what it takes to succeed on the web.

They need to know that:

  1. Building a website (no matter how beautiful, functional or professional) is only one aspect of a successful web presence

  2. To be successful, they need a website marketing plan and should be prepared to invest time and money in seo

  3. The more actively involved they are in the website marketing process, the greater the results they will achieve. This may include (amongst other things):
    • keeping their website up-to-date,
    • maintaining a blog,
    • participating in relevant forums,
    • seeking links from suppliers etc

  4. Patience is key. A flood of traffic won’t infiltrate their website the moment it is launched.
    However hard work and persistence combined with solid seo advice and assistance will usually pay off.
We’ve now made it a point to discuss these points with all potential clients. If they are particularly unprepared we sometimes encourage them to start on a smaller scale and test the waters first. You don’t want your customers to invest a lot of money in a web project that may not work (or in some cases is doomed to fail) simply because they underestimate the amount of time and effort required to make a real go of it.

In the end, we succeed if our customers succeed.

132 comments - Leave a comment