Tagged with "blog" http://www.addedbytes.com/feeds/tag-feed/ en Web Development in Brighton - Added Bytes 2006 120 What Makes a Great Developer? http://www.addedbytes.com/blog/what-makes-a-great-developer/ What makes a truly great developer? Some might say a positive attitude. Some might say a high-sugar, high-caffeine, high-bacon diet. Some might say an absence of sunlight and as many monitors as a desk can support.

Certainly, everyone has anecdotes about developers they've worked with who they thought were brilliant. Unfortunately, most of the time that judgement is made not based on code quality, or hitting of deadlines, but on less relevant criteria, like whether or not the developer knew the names of their colleagues, how many lines of code they output or how confident they sounded when talking about their work.

Unfortunately, the best developers don't always come across positively. While this list may not be applicable to every development environment, here are a few of the traits to look out for to spot a great developer.


Great developers are almost always pessimistic with regard to their work. That doesn't mean they're not upbeat, lively or even cheerful - just that they will always be thinking about what can go wrong and how it can be dealt with.

They'll assume that at some point they'll need to undo work already completed, that hardware will fail, that all security will be compromised, and that your office will burn to the ground. The really brilliant ones will assume that will all happen on the same day. And they won't be happy until there is a specific, actionable, testable - and fully tested - plan for dealing with these sorts of issues. Even then they won't be completely happy.

Pessimistic developers will be the ones that find constant flaws in ideas, and the important thing to remember when working with them is that they're not doing that to tear down other people's ideas - they're doing it to ensure that the ideas that turn into projects are properly thought through and that as many problems as possible have been anticipated in advance. That neurotic, paranoid, pessimistic attitude is exactly what you should be looking for if what you want from your developers is robust, secure, reliable code.

By contrast, an optimistic developer will be more likely to simply assume code will work, or that it is secure, or give a deadline for a project without considering all the potential pitfalls.

Likely to be heard saying: "And what happens when that goes wrong?"


Laziness is not usually viewed as a desirable trait, and in this case I don't mean turns-up-late-and-pretends-to-work laziness or just-move-that-logic-to-the-view laziness - both entirely unwanted. I mean a desire to not do tasks that are repetitive, or to waste time doing things a machine can do for you, or even to avoid future work by writing better code now. A lazy developer is one that builds a reusable code library, or wants a fully automated build process rather than a manual copy-and-paste one, or wants comprehensive automated unit testing, or writes code to be scalable even though that wasn't a requirement (rather than revisit it later).

As a bonus, a lazy developer is also usually one who will try and keep a project focussed on its core goals, rather than try and cram more work into the same time, providing a buffer against feature creep.

For example, when writing a category structure, a lazy developer might be likely to assume a many-to-many relationship between parent and child categories, even though the project specification says it will be a one-to-many relationship. Why? Because it might be needed one day and it would be better to write it that way from the start than to revisit it later.

Likely to be heard saying: "We could automate that."


Good developers are often rather like Gregory House. They're very easily bored by repetitive work (see laziness) and spend most of their time ploughing through it looking for an interesting and challenging (and hopefully new) problem to solve. The less time they can spend on the repetitive, the higher the frequency of the challenges.

Curious developers will be constantly looking for new problems to solve, and better ways to solve previous problems. They'll be the ones encouraging new ways to work and constantly tweaking and trying to improve existing systems. They'll also be the ones most conscious of existing problems in the current working environment, and trying to correct those problems. Curious developers will usually have a wide breadth of knowledge, not just of their primary language(s), but of supportive, associated and alternative technologies.

Curious (or easily-bored) developers are often the least stuck in their ways - the most open to change. They may well need convincing of why a new way of working is better (and that's no bad thing) but as long as it's an improvement, and likely to release more time to spend on the interesting problems, they'll embrace it with a minimum of resistance.

Curiosity also breeds creativity, another highly desirable trait in any developer. A strong desire to work out what has caused a problem and how to solve it is highly likely to motivate someone to continue once obvious avenues are exhausted. It is that sort of mentality that fosters "outside the box" thinking and creative coding.

Possibly the most useful attribute of a curious developer is that desire to find and cure a problem rather than just paper over the crack.

Likely to be heard saying: "Maybe there's another way to do this."


Many great developers are sticklers for detail. They will demand consistency in their work and the work of their team (they're likely to care about common code standards and naming conventions, for example). They'll want unit testing and peer review of code. They'll want everyone in their team to comment on and document code. They are likely to be fussy about version control log messages.

They'll also be fussy about details in communication, and happy to ask what might seem like obvious questions, simply to be sure they have properly understood. This is especially true of things like bug reports. While they may not be terribly motivational communicators, they will usually be able to explain concepts clearly and effectively. That clarity is a tremendous advantage in any development environment, especially if teaching and learning are encouraged.

Likely to be heard saying: "I just have a couple of questions ..."


Thu, 17 Apr 2008 13:03:00 +0100 http://www.addedbytes.com/blog/what-makes-a-great-developer/ Dave Child ,,,,,,,,
Mutual Blog Promotion http://www.addedbytes.com/articles/online-marketing/mutual-blog-promotion/ Launching a new site can be tricky. Unless you have a platform on which to announce your new site (usually an existing popular site), you'll need to go on a campaign of link building. While there are a lot of techniques for this, initially the main technique used by bloggers is to simply comment on other people's blogs, especially those in a similar niche.

This serves to get your name "out there", first and foremost. A lot of people will follow links in blog comments, so regardless of whether "nofollow" is in use on a blog, any comment has some inherent value. There is also a fair chance that a blogger will follow the links of the people that comment on their blog - and if they are in a similar niche, they may link to your blog.

That is where things start to get interesting. If you have link-worthy content, you still need people to see it in order for them to be aware it is there, and good enough to link to (this can be another problem with launching a blog - some of your best content may be posted at the start, when you have no readers and therefore not get nearly the attention it deserves).

Comments are the quickest way to get that exposure. The more you comment on other blogs, the more likely people are to find yours and link to your content.

A comment is also essentially a tiny taster of your own site. Many people's first impression of you and your site is your comments - making a good impression with your comments is incredibly important.

Comments also add value to the commentee's blog. Visitors like to read comments, and they like to see activity on a blog. It adds a sense of community to what otherwise can seem like little more than a soapbox. And good content deserves comments - a lack of comments, conversely, can indicate poor quality content.

This makes bloggers who visit the blogs of their commenters, and comment in turn on those blogs, extremely valuable. These are the people who create a good impression for their visitors. They are complimenting their commenters - saying "your comment made me want to find out more about you".

And in turn, while these people are out commenting on their commenter's blogs, they are finding content to link to (it seems to me that the most prolific return-commenters often link to some of the freshest and most difficult to find content out there).

All of this in turn brings me on to how I apply this to marketing a website or blog: I keep a list of the people in each niche I work in who "return" comments. If I'm marketing a new website, I use that list as the basis for any commenting work (on that subject: all commenting work I do is strictly white-hat - genuine, considered comments all the way, no keywords in the "name" field and no spam - quality not quantity).

My list serves as a sort of white-list. If I'm going to spend time commenting on blogs, and by doing so increase the exposure of a site, I want two things:

  1. I want high value "tasters" out there - I want people who see a comment as an intelligent response to an article (which it should always be), not a boilerplate or automated SEO-comment.
  2. I want to spend time commenting on sites run by people who are known to visit the sites of their commenters and engage with those people and sites.

Essentially, this means that site launches are now relatively simple affairs. I can spend more time writing better comments on the sites that I know I'll get the best return from. I can safely ignore nofollow (because commenting can be about exposure, not SEO). I can avoid commenting on the sites of people who do fire-and-forget blogging (where they post and then ignore the post, never responding to comments or visiting the sites of their commenters).

Best of all, it is really enjoyable work - rather than trying to generate a massive number of links for SEO purposes with generic thoughtless garbage comments, I can justify spending quality time on a site, getting to know the author from their work, and engaging with them in a very real way - better for them, and better for me.

Sat, 30 Jun 2007 07:52:36 +0100 http://www.addedbytes.com/articles/online-marketing/mutual-blog-promotion/ Dave Child ,,,
Jargon Explained http://www.addedbytes.com/articles/online-marketing/jargon-explained/ Anchor Text

Anchor text is the text used to link to another site. In this example - Google Web Search - the anchor text is "Google Web Search".


Atom is a file format used for web feeds. It is a type of XML document, and is used in syndication.

Black Hat

Black Hat is the term used to describe techniques used by some search marketers to promote websites. These techniques are those that go against guidelines published by search engines, and in many cases their use can result in a site being penalised or removed from search engine listings. Black Hat is the opposite of White Hat.


A ccTLD is a country-code top level domain. .uk, for example, is a ccTLD, as are .au (Australia), .de (Germany), .fr (France), .ca (Canada) and .nz (New Zealand).

Click-through Rate

See CTR.


Cloaking is a technique used to show content to a search engine and different content to a user. The content shown to the engine is usually designed to help a page rank very well for a certain phrase or word, and the content shown to the user usually designed to maximise the conversions from that page. Search engines dislike this technique and many sites are banned for using it. It is a Black Hat technique.


A conversion is when a website user completes a specific goal. With some sites that can be to complete a sale; with others, to sign up to a newsletter; and with others to make an enquiry.

A cookie is a small text file stored on a website user's computer. It identifies a repeat visitor to a site, often with a unique code, allowing people to shop online and removing the need to log in to sites repeatedly. Cookies are often considered dangerous by less experienced web users. You can find out more about cookies in Are Cookies Dangerous?


CPA stands for "Cost-Per-Action", and is a form of advertising model. The idea is that an advertiser pays a specific amount for each successful conversion, be that a sale or a signup.


CPC stands for "Cost-Per-Click", and is a form of advertising model. The idea is that an advertiser pays a specific amount for each visitor referred to their website, regardless of whether that user converts to a sale or not.


CPM stands for "Cost-Per-Mille", and is a form of advertising model. The idea is that an advertiser pays a specific amount for every thousand times his advert is seen on a site, regardless of how many of the users who see the advert click on it and visit the advertiser's site.


See Spider.


CTR stands for "Click-through Rate". It is an indicator of the percentage of people who see an advert who actually click on it. For example, if one out of every hundred people who view an advert click on it, the advert with have a CTR of 1%.


A directory is different to a search engine in that it organises the sites it lists in categories. Sites are usually added by hand, rather than found using a spider, and often a small fee is charged for this addition.

Data Center

A data center is a large collection of computers that hold information for a search engine. Major search engines have several of these around the world. Their purposes is to process search queries.

Doorway Page

A doorway page is a page designed specifically to rank well in search engines. Often a visitor to a doorway page will not notice they have visited one, as they will be sent straight on to the target page instantly. Use of doorways is a Black Hat technique.


A feed is a file that users can download that contains information about recent updates and additions to a website. Often these feeds are used for syndication purposes. Using feeds and programs designed to use feeds, users can often keep up to date with many hundreds of websites.


FFA stands for "Free-For All". It is usually used in conjunction with links pages that allow anyone and everyone to add a link to the page.

Google Dance

The Google Dance is the name for the process Google used to go through very regularly when it updated an algorithm. As various data centres around the world were progrssively updated, people would be able to make the same search several times in succession and see different results each time. The Google Dance does not happen as often now, but can still be seen when major changes are made to the Google infrastructure or algorithms.


A "hit" can mean one of two things.

  • When searching the web, a hit can be a result found by a search engines that matches the search criteria.
  • In analytics, a hit is when a file is requested by a server. Some people have used hits as a measure of website traffic, however hits to a server include images and repeat visitors, and are a poor indicator of traffic. One thousand hits very rarely equals one thousand visits.


IBL stands for "Inbound Link", and refers to a link pointing to a website from a separate website (unlike an internal link, which refers to a link within one website pointing to somewhere else within the same site).


Impression is the word used to describe a single viewing of something. A page impression would mean a single view of a web page. In advertising, one impression is a single view of the advert.


A keyword is simply a word used to describe a page. It can also be a word used by someone trying to find a site, entered into a search engine.


A keyphrase is very similar to a keyword, except that it is a phrase made up of several words.

Keyword Stuffing

Keyword stuffing is the practice of repeating a keyword (or keywords) far too many times throughout a page. It may be that the keyword is repeated so many times in the text that as a result the text reads badly. It may be that it is repeated lots of times in meta tags, or elsewhere in code, or it may be a combination of these things. Common practice in the late 90s, this is now considered a technique that may harm a site more than help it.

Link Building

Link Building is the process used to increase the number of links to a website. This can include submitting a website to directories, creating more content for a website, link rental, and many more techniques. Most search engines now use link data extensively in their algorithms, and so link building has become far more common.

Meta Data / Meta Tag

Meta Data is information held about a page or document. It is usually held invisibly within the page, and may include a description of the page, a list of relevant keywords, or the name of the author. For a full explanation of common meta tags, and how to work out which ones are worth using, please read Meta Tags.

Page Title

A page title is an important part of a page - it is usually the part of the page that appears as a link in search results. It is usually visible in the title bar of your browser while you are viewing a page.

PageRank / PR

PageRank is an algorithm, developer by Larry Page and Sergey Brin, founders of Google. It allows you to find the "best" pages of a group of pages by looking at how the pages link to each other. The more links a page has, the better it is considered, and the more important its links, in turn, are considered. PageRank is named after Larry Page.

Pay Per Action

Pay Per Action advertising is the same advertising model as CPA, in that an advertiser will pay every time a user completes a specific action.

Pay Per Call

Pay Per Call advertising is a subset of Pay Per Action, and is the same advertising model as CPA, in that an advertiser will pay every time a user calls a specific number.

Pay Per Click

Pay Per Click advertising is the same advertising model as CPC, in that an advertiser will pay every time a user clicks on their advert.


PFI stands for "Pay For Inclusion". Some engines will charge sites to be listed at all in their results (notably Yahoo for many years). Prices vary greatly, and some engines charge annually, where others charge a one-off fee. This is a far more common feature of directories than search engines.


See Pay Per Click.


A robots.txt file is a simple text file that contains instructions for search engine spiders. It can tell specific spiders to slow down, or not to index specific area of a site. For more information, please read robots.txt.


ROI stands for "Return on Investment". It is a measure of the success of any marketing campaign. A marketing campaign that cost ?10,000 but made ?3,000 would obviously have a low ROI. A marketing campaign that cost ?10,000 but made ?100,000 would have a high ROI.


RSS is a type of XML file, and is the most commonly used file format for website feeds.


SEM is an acronym of "Search Engine Marketing". SEM is a broader topic than SEO, and can include, for example, an online PR campaign or PPC (and other forms of) advertising.


SEO is an acronym of "Search Engine Optimisation", and is the art of altering a website to improve a site's performance in search engines (note: an improvement in performance does not equal an increase in traffic!).


SERPs is an acronym for "Search Engine Result Pages".


SE is an abbreviation of "Search Engine".

Site Map

A site map is a page, or set of pages, on a website, designed to help users and search engines find their way around a site.


Spam has many different meanings on the web. The most common meaning is related to email, where spam describes unwanted email, often commercial in nature, and often sent out indiscriminately to millions of people at once. In a search engine context, spam refers to pages that are listed out of place. This can mean pages that are found for keywords unrelated to their content. It can also mean pages appearing unnaturally high in search engines. These pages are often promoted using Black Hat techniques, especially cloaking and doorway pages.


A spider, also often called a "crawler", is a program created by a search engine to index pages on the web. It visits pages on the web, collects their content, and finds links within that page. It then adds the links found on that page to those it intends to crawl.

Splash Page

A splash page is an introduction page to a website, often created using flash. They are much derided, as they slow down access to a website and often provide no useful information to the user.

Stop Word

A stop word is a word that is ignored by the search engines. It is a word that appears so often on the web as to be useless to a search engine. Examples include "a", "and", "I", "you" and "it".


Syndication is where a website makes information available for others to use. In the majority of cases, the information available is a list of the content most recently added to the site (a feed), to allows visitors to keep up to date easily with new content added to many sites.

Text Link Ad

A text link ad is a type of advert on a website, placed in return for a simple monthly fee. These types of advert can have a positive effect on a website's SEO campaign, and can directly generate traffic to websites.


A TLD is an acronym for "Top Level Domain". .com, .org, .net, .biz, .info, .name and .pro are all examples of TLDs. They are usually global TLDs, unlike ccTLDs, which are country-code domains.


A URL (Uniform Resource Locator), sometimes (more correctly) referred to as a URI (Uniform Resource Identifier), is in basic terms a web address. For example, "http://www.addedbytes.com" is a URI.


A visit is different from a Hit or an Impression, in that it indicates a single person's visit to a website. A visit may include many page impressions, and many hits.

White Hat

White Hat is the term used to describe techniques used by some search marketers to promote websites. These techniques are those that adhere to the guidelines published by search engines. White Hat is the opposite of Black Hat.


XML is a file format designed to create files that are easy to share and understand.

Wed, 03 May 2006 13:17:00 +0100 http://www.addedbytes.com/articles/online-marketing/jargon-explained/ Dave Child ,,,,,,,,
Dvorak vs Qwerty http://www.addedbytes.com/blog/dvorak-vs-qwerty/ If I might start by begging your indulgence - please look down at your keyboard. It's not very interesting, I know, but this won't take long. You see at the top left of the section containing letters a Q? Of course you do. To the right of that, you will more than likely spot W, E, R, T and Y. You might be surprised to learn that the reason you see those letters, and the others on your keyboard, in the position that they are in is because this makes your typing slower. That, and economics.

"Why", you may well ask, "would keyboards be designed to make typing slower?". A good question. Back when Christopher Sholes created the Qwerty layout for his new typewriter in the 1800s, it solved a problem. Economics has kept it in place ever since.

The main problem Sholes faced was that of bars colliding during typing. If two keys near each other were pressed quickly in succession, the bars they controlled sometimes collided or jammed. In order to avoid this problem, Sholes re-arranged his keyboard so that common combinations of letters were hard to type, thus making the keyboard slower and reducing the chance of jamming.

The other reason for the placement of some of the Qwerty keys in certain places was to boost typewriter sales. In order for salesmen to be able to sell typewriters, it was important that they not be seen 'hunting and pecking' during demonstrations. R was moved for this reason, and replaced the period on the left of the T.

That is why, if you look once again at your keyboard, you will see that commonly typed pairs of letters are well spaced out, and that the word "typewriter" can be typed using just the letters on the top row.

Dusty typewriter.

Once the Qwerty layout was in place, it was simple economics that kept it there. Typists were trained to use it, which meant that makers of newer typewriters had to use the same layout, otherwise potential customers would need to re-train staff. The same has applied ever since - people make Qwerty keyboards because that is what people are trained to use, not because it is the best layout.

The Qwerty layout

The Qwerty layout

The Dvorak layout

The Dvorak layout

Dvorak is an alternative to Qwerty. It is a keyboard layout designed to minimise movement, and make typing as easy and painless as possible. The idea behind it is to have the most commonly typed keys under the fingers, and make it as easy as possible to type common words and combinations of letters. To give an impressions of just how big a difference this makes, consider that the average Dvorak typist's fingers will travel about one mile in a day of typing. A Qwerty typist's will travel anything from 16 to 20 miles. Try to consider, for a moment, the effect that must have on your fingers.

Dvorak is easy to pick up, taking about half as long as Qwerty. That is little comfort to those who are already familiar with Qwerty, as it means starting over. However, the benefits certainly make it worth spending a couple of weeks learning to type all over again. For many of us, that is actually a benefit, since many computer users never learned to type properly in the first place.

Changing your PC over to Dvorak is actually quite easy. In your Control Panel, in the Keyboard settings, you will see a tab for "Input Locales". If you want to use Dvorak, simply select a Dvorak layout from the drop down on this screen (please note - you may have to re-start running applications for the change to take effect within them).

Changing the keys themselves is actually the trickiest bit of the process. You have a few options though. Before you try and change your keys though, I recommend you learn to use the keyboard. If you wait before changing your keys over, you will avoid hunting and pecking, and your typing will be all the better for it. If you do want to change them, you can use stickers (probably the quickest technique), and some keyboards make it very easy to move keys around. There are also suppliers who offer specific Dvorak keyboards, though these are rare.

Take another look at your keyboard. Are you really happy using something that intentionally slows you down? Something that makes you move your hands and wrists far more than is necessary? Would you not rather use something that was designed to make your life easier?

Update, 4th April 2007: Josue Salazar changed his Macbook to Dvorak - in part, he says, because of this article. Check out the photoset: Dvorak Black Macbook Photo Set.

Fri, 28 May 2004 18:09:00 +0100 http://www.addedbytes.com/blog/dvorak-vs-qwerty/ Dave Child ,,,,,