Disability Discrimination and Website Accessibility

August 31st, 2010

Most of us take for granted how easy it is to use the web. We look at the visual presentation of a web page, quickly scanning the content and navigation then homing in on the part of interest using our eyes, the mouse and keyboard. The web works so well as a medium if you can see. Ignoring the vagaries of a particular design and the quirks of the various browsers the web presents information in a largely visual format that suits most of us.

Now what happens if we take away some of the things most of us take for granted. How easy is it to use web pages when our sight is taken away, can we navigate pages when our mouse or keyboard is taken away? Now the web doesn’t look like such an attractive place – barriers are in place. This is the predicament of many disabled people.

It is a tragedy to discriminate against disabled people on the web simply through lack of thought, consideration or awareness. Many websites that are designed without considering accessibility could result in alienating visitors and losing potential sales.

The internet should be a wonderful tool for communicating, learning, interacting, shopping, entertainment … for everyone.

Doors have been opened for disabled people with the internet providing new opportunities and more freedom so they have potentially more to gain than the able bodied. Disabled people represent approximately 12% of the adult population in the UK, so why exclude them? The internet has huge potential for people with disabilities!
Standards and Guidelines

To address this issue the Web Accessibility Initiative (WAI) is a working group set up within the World Wide Web Consortium (W3C) responsible for setting web accessibility guidelines. Read more about the W3C Guidelines.

The UK Disability Discrimination Act 1995 has bought about changes in legislation resulting in the need for companies to adhere to accessibility issues. Disability discrimination is illegal in the UK and companies could find themselves being sued if their website is not accessible. Read about the legal issues in the UK.

Compliance with the standards and guidelines takes a significant effort on the part of the website designer and the content editors. The principles are straight forward but the detailed implementation is not so straight forward. The basic principles are:

* Pages that transform gracefully
o Separate content from presentation.
o Provide text and text equivalents of all auditory and visual content. Text can be rendered in ways that are available to almost all browsing devices and accessible to almost all users.
o Create documents that work even if the user cannot see and/or hear. Provide information that serves the same purpose or function as audio or video in ways suited to alternate sensory channels as well. This does not mean creating a prerecorded audio version of an entire site to make it accessible to users who are blind. Users who are blind can use screen reader technology to render all text information in a page.
o Create documents that do not rely on one type of hardware. Pages should be usable by people without mice, with small screens, low resolution screens, black and white screens, no screens, with only voice or text output, etc.
* Make content understandable and navigable
o Making the language clear and simple
o Providing understandable mechanisms for navigating within and between pages. Providing navigation tools and orientation information in pages will maximize accessibility and usability. Not all users can make use of visual clues such as image maps, proportional scroll bars, side-by-side frames, or graphics that guide sighted users of graphical desktop browsers. Users also lose contextual information when they can only view a portion of a page, either because they are accessing the page one word at a time (speech synthesis or braille display), or one section at a time (small display, or a magnified display). Without orientation information, users may not be able to understand very large tables, lists, menus, etc.

There are specific checkpoints associated with all of the basic principles. Each checkpoint is set a priority level (1, 2 or 3) so that comformance can be assessed against each level. Read more about conformance levels.
Why you should not ignore website accessibility requirements

To ignore website accessibility raises moral issues (discrimination), business issues (why exclude potential customers) and legal issues (in the UK and elsewhere).

For some this will already be important as government and public sector organisations are directed to follow the accessibility standards. In the private sector there is less direct pressure as yet as the full force of the law has not been in the UK however the momentum is gathering. Allowance is being made for the issues the designers and web site owners face in complying fully with the standards.
What is involved in making a website accessible?

For some building in accessibility into your website will be straight-forward and can be handled as part of the ongoing development and maintenance of the website. For others accessibility guidelines will mean a more in depth look at the website design and technologies used, setting targets and standards for on going maintenance.
Our commitment to accessibility

This site has been set up to create and promote an awareness of the issues involving website accessibility, in particular, website access for disabled people.

We intend to help website owners understand accessibility issues in their own sites and provide a place for people (disabled or not) with accessibility problems to bring their issues to the attention of web site designers and owners.

We invite contributions to this site from people who

* have accessibility issues themselves
* want to promote awareness of website accessibility
* want to highlight good and bad cases of websites accessibility
* want to help make this site more useful

If you have a contribution to make, why not fill in our contributions form.

In addition, our Accessibility Survey will assist us in learning and understanding more about the different problems faced by disabled people when using the Internet. So if you are disabled and would like to contribute your concerns and ideas, we would love to hear from you. We will take an active interest in your comments and keep our readers informed.

Please note that all personal details will remain confidential.

admin Web

101 Blog Tips I learned

August 31st, 2010

1. if you are not, start blogging today
2. write about something that you love
3. if you are serious about blogging buy your own domain
4. make sure your domain name is equal to your blog name
5. use a short and easy to remember name
6. use WordPress
7. use WordPress plugins
8. blog with consistency
9. write at least 5 posts a week
10. proofread
11. proofread one more time
12. interact with other bloggers
13. leave meaningful comments
14. leave funny comments
15. leave the first comment
16. backup your blog
17. get rid of the sidebar calendar
18. choose your niche wisely, not too big and not too small
19. participate in online forums
20. put a link on your signature
21. use blog carnivals
22. content is king
23. customize your blog template
24. use trackbacks
25. simplicity is the way to go
26. leverage social bookmarks
27. consider joining a blog network
28. write “Top 10″ lists
29. use tags
30. use pings
31. write “How to” articles
32. make your posts scannable
33. list your blog on directories
34. ask questions to your readers
35. use Feedburner
36. use sense of humor
37. be generous
38. encourage readers to subscribe
39. have some spare posts for emergencies
40. encourage readers to digg your posts
41. put an RSS subscription icon on every single page
42. use “series” of posts
43. return comments
44. return links
45. use readable fonts
46. gather .edu and .gov backlinks
47. break long posts in more parts
48. experiment with different revenue sources
49. write “pillar articles“
50. use Google Analytics
51. study those numbers
52. use email interviews
53. be yourself
54. avoid duplicate content
55. use an RSS reader
56. read as many blogs as possible
57. focus on timeless content
58. have an “About” page
59. have a picture of yourself on the “About” page
60. crate your own “Advertise Here” page
61. use meta tags wisely
62. learn the basics of SEO
63. use pictures whenever possible
64. create value for your readers
65. place ads wisely
66. be patient
67. consider getting a co-blogger
68. submit your articles to directories
69. share what has worked for you
70. share what has not worked for you
71. read Problogger.net
72. do not clutter your sidebar with icons
73. get rid of looooong blogrolls
74. experiment with Google Adsense
75. experiment with Text-Link-Ads
76. link to other blogs as often as possible
77. make it easy for visitors to contact you
78. use titles effectively
79. offer email subscriptions
80. always answer to questions
81. always answer to comments
82. use Technorati
83. enable subscription to comments
84. offer useful tools or resources
85. write with a personal touch
86. become an expert in your niche
87. do not rely on “linking posts”
88. always give your opinion
89. use simple colors
90. participate in blogging projects
91. get to know other bloggers personally
92. list your best articles
93. have a voice
94. organize your categories
95. talk directly to your readers
96. make your URL structure efficient
97. put functional links on your footer
98. mention your sources or references
99. do monthly roundups
100. consider adding podcasts
101. create a “101 list”

admin Web

6 Ways to Speed Up Your Site

August 31st, 2010

The load time of websites is one of the most important factors affecting its usability; most Internet users will just skip a site altogether if it fails to load within a couple of seconds. Below you will find the summary of the “Speed Up Your Site” series. Those are simple yet effective ways to make sure that your website is running fast. You can click on each point to read the article with comments from the readers.

1. Optimize Images: always use the “Save for the web” feature included on image editing software. Images represent the heavier load on virtually any website so make sure you are optimizing them. Alternatively you can also turn to an online image optimizer.

2. Image Formats: apart from optimizing images it is important that you choose the right format. JPEG format is suitable for photographs or true-color images. The GIF format should be used with flat-color images like logos or buttons. PNG works very similar to GIF but it supports more colors.

3. Optimize Your CSS: most websites are designed with CSS nowadays. Make sure to aggregate and clean your CSS. CleanCSS is an online tool that will merge similar selectors, remove useless properties and remove the whitespace from your code.

4. Use a Slash on Your Links: when a user opens a link on the form “http://www.domain.com/about” the server will need to figure what kind of file or page is contained on that address. If you include a slash (/) at the end of the link the server will already know that this is a directory page, reducing the load time of the site.

5. Use the Height and Width Tags: many people forget to add the Height and Width tags on image codes. Those tags will make sure that the browser knows the size of the image before loading it. The result is that it will reserve a spot for the images while loading the rest of the page, speeding up the whole process.

6. Reduce the HTTP Requests: when opening a web page every object (images, scripts and the line) will require a round trip to the server. This latency can add several seconds to the load time of your site. Make sure to reduce the number of objects and to combine CSS files and scripts together.

admin Web

43 Web Design Mistakes You Should Avoid

August 31st, 2010

There are several lists of web design mistakes around the Internet. Most of them, however, are the “Most common” or “Top 10” mistakes. Every time I crossed one of those lists I would think to myself: “Come on, there must be more than 10 mistakes…”. Then I decided to write down all the web design mistakes that would come into my head; within half an hour I had over thirty of them listed. Afterwards I did some research around the web and the list grew to 43 points.

The next step was to write a short description for each one, and the result is the collection of mistakes that you will find below. Some of the points are common sense, others are quite polemic. Most of them apply to any website though, whether we talk about a business entity or a blog. Enjoy!

1. The user must know what the site is about in seconds: attention is one the most valuable currencies on the Internet. If a visitor can not figure what your site is about in a couple of seconds, he will probably just go somewhere else. Your site must communicate why I should spend my time there, and FAST!

2. Make the content scannable: this is the Internet, not a book, so forget large blocks of text. Probably I will be visiting your site while I work on other stuff so make sure that I can scan through the entire content. Bullet points, headers, subheaders, lists. Anything that will help the reader filter what he is looking for.

3. Do not use fancy fonts that are unreadable: sure there are some fonts that will give a sophisticated look to your website. But are they readable? If your main objective is to deliver a message and get the visitors reading your stuff, then you should make the process comfortable for them.

4. Do not use tiny fonts: the previous point applies here, you want to make sure that readers are comfortable reading your content. My Firefox does have a zooming feature, but if I need to use on your website it will probably be the last time I visit it.

5. Do not open new browser windows: I used to do that on my first websites. The logic was simple, if I open new browser windows for external links the user will never leave my site. WRONG! Let the user control where he wants the links to open. There is a reason why browsers have a huge “Back” button. Do not worry about sending the visitor to another website, he will get back if he wants to (even porn sites are starting to get conscious regarding this point lately…).

6. Do not resize the user’s browser windows: the user should be in control of his browser. If you resize it you will risk to mess things up on his side, and what is worse you might lose your credibility in front of him.

7. Do not require a registration unless it is necessary: lets put this straight, when I browse around the Internet I want to get information, not the other way around. Do not force me to register up and leave my email address and other details unless it is absolutely necessary (i.e. unless what you offer is so good that I will bear with the registration).

8. Never subscribe the visitor for something without his consent: do not automatically subscribe a visitor to newsletters when he registers up on your site. Sending unsolicited emails around is not the best way to make friends.

9. Do not overuse Flash: apart from increasing the load time of your website, excessive usage of Flash might also annoy the visitors. Use it only if you must offer features that are not supported by static pages.

10. Do not play music: on the early years of the Internet web developers always tried to successfully integrate music into websites. Guess what, they failed miserably. Do not use music, period.

11. If you MUST play an audio file let the user start it: some situations might require an audio file. You might need to deliver a speech to the user or your guided tour might have an audio component. That is fine. Just make sure that the user is in control, let him push the “Play” button as opposed to jamming the music on his face right after he enters the website.

12. Do not clutter your website with badges: first of all, badges of networks and communities make a site look very unprofessional. Even if we are talking about awards and recognition badges you should place them on the “About Us” page.

13. Do not use a homepage that just launches the “real” website: the smaller the number of steps required for the user to access your content, the better.

14. Make sure to include contact details: there is nothing worse than a website that has no contact details. This is not bad only for the visitors, but also for yourself. You might lose important feedback along the way.

15. Do not break the “Back” button: this is a very basic principle of usability. Do not break the “Back” button under any circumstance. Opening new browser windows will break it, for instance, and some Javascript links might also break them.

16. Do not use blinking text: unless your visitors are coming straight from 1996, that is.

17. Avoid complex URL structures: a simple, keyword-based URL structure will not only improve your search engine rankings, but it will also make it easier for the reader to identify the content of your pages before visiting them.

18. Use CSS over HTML tables: HTML tables were used to create page layouts. With the advent of CSS, however, there is no reason to stick to them. CSS is faster, more reliable and it offers many more features.

19. Make sure users can search the whole website: there is a reason why search engines revolutionized the Internet. You probably guessed it, because they make it very easy to find the information we are looking for. Do not neglect this on your site.

20. Avoid “drop down” menus: the user should be able to see all the navigation options straight way. Using “drop down” menus might confuse things and hide the information the reader was actually looking for.

21. Use text navigation: text navigation is not only faster but it is also more reliable. Some users, for instance, browse the Internet with images turned off.

22. If you are linking to PDF files disclose it: ever clicked on a link only to see your browser freezing while Acrobat Reader launches to open that (unrequested) PDF file? That is pretty annoying so make sure to explicit links pointing to PDF files so that users can handle them properly.

23. Do not confuse the visitor with many versions: avoid confusing the visitor with too many versions of your website. What bandwidth do I prefer? 56Kbps? 128Kbps? Flash or HTML? Man, just give me the content!

24. Do not blend advertising inside the content: blending advertising like Adsense units inside your content might increase your click-through rate on the short term. Over the long run, however, this will reduce your readership base. An annoyed visitor is a lost visitor.

25. Use a simple navigation structure: sometimes less is more. This rule usually applies to people and choices. Make sure that your website has a single, clear navigation structure. The last thing you want is to confuse the reader regarding where he should go to find the information he is looking for.

26. Avoid “intros”: do not force the user to watch or read something before he can access to the real content. This is plain annoying, and he will stay only if what you have to offer is really unique.

27. Do not use FrontPage: this point extends to other cheap HTML editors. While they appear to make web design easier, the output will be a poorly crafted code, incompatible with different browsers and with several bugs.

28. Make sure your website is cross-browser compatible: not all browsers are created equal, and not all of them interpret CSS and other languages on the same way. Like it or not, you will need to make your website compatible with the most used browsers on the market, else you will lose readers over the long term.

29. Make sure to include anchor text on links: I confess I used to do that mistake until some time ago. It is easier to tell people to “click here”. But this is not efficient. Make sure to include a relevant anchor text on your links. It will ensure that the reader knows where he is going to if he clicks the link, and it will also create SEO benefits for the external site where the link is pointing.

30. Do not cloak links: apart from having a clear anchor text, the user must also be able to see where the link is pointing on the status bar of his browser. If you cloak your links (either because they are affiliate ones or due to other reasons) your site will lose credibility.

31. Make links visible: the visitor should be able to recognize what is clickable and what is not, easily. Make sure that your links have a contrasting color (the standard blue color is the optimal most of the times). Possibly also make them underlined.

32. Do not underline or color normal text: do not underline normal text unless absolutely necessary. Just as users need to recognize links easily, they should not get the idea that something is clickable when in reality it is not.

33. Make clicked links change color: this point is very important for the usability of your website. Clicked links that change color help the user to locate himself more easily around your site, making sure that he will not end up visiting the same pages unintentionally.

34. Do not use animated GIFs: unless you have advertising banners that require animation, avoid animated GIFs. They make a site look unprofessional and detract the attention from the content.

35. Make sure to use the ALT and TITLE attributes for images: apart from having SEO benefits the ALT and TITLE attributes for images will play an important role for blind users.

36. Do not use harsh colors: if the user is getting a headache after visiting your site for 10 consecutive minutes, you probably should pick a better color scheme. Design the color palette around your objectives (i.e. deliver a mood, let the user focus on the content, etc.).

37. Do not use pop ups: this point refers to pop ups of any kind. Even user requested pop ups are a bad idea given the increasing amount of pop blockers out there.

38. Avoid Javascript links: those links execute a small Javascript when the user clicks on them. Stay away from them since they often create problems for the user.

39. Include functional links on your footer: people are used to scrolling down to the footer of a website if they are not finding a specific information. At the very least you want to include a link to the Homepage and possibly a link to the “Contact Us” page.

40. Avoid long pages: guess what, if the user needs to scroll down forever in order to read your content he will probably just skip it altogether. If that is the case with your website make it shorter and improve the navigation structure.

41. No horizontal scrolling: while some vertical scrolling is tolerable, the same can not be said about horizontal scrolling. The most used screen resolution nowadays is 1024 x 768 pixels, so make sure that your website fits inside it.

42. No spelling or grammatical mistakes: this is not a web design mistake, but it is one of the most important factors affecting the overall quality of a website. Make sure that your links and texts do not contain spelling or grammatical mistakes.

43. If you use CAPTCHA make sure the letters are readable: several sites use CAPTCHA filters as a method of reducing spam on comments or on registration forms. There is just one problem with it, most of the times the user needs to call his whole family to decipher the letters.

admin Web

25 Web Development Blogs You Should Be Reading

August 6th, 2010

To stay ahead in the web development game, it’s utterly vital that you’re up-to-date with advancements in your chosen field. As we all know, the best way to get current information is from blogs, but which ones to look at? There are loads of great web development blogs out there and tons of terrible ones too. If you were to read them all, you’d have absolutely no time left for building websites or anything else for that matter.

We’ve whittled the best web development blogs down to a top 25. By adding these great blogs to your RSS reader, you’ll be able to get all the industry information, tips, tutorials and, very importantly, freebies, that you could ever need. Sit back, read and let your knowledge grow!

1. A List Apart

A List Apart is one seriously classy blog. Its content is every bit as slick as its design and layout. Focusing on web standards and best practices, this is the place to come for in-depth information.

2. Nettuts+

Nettuts+ offers tutorials and insightful articles covering HTML, CSS, JavaScript, CMS’s, PHP and Ruby on Rails. It has a regularly updated page devoted to freebies!

3. Smashing Magazine

Suitable for designers and developers alike, Smashing Magazine’s popularity grows year-on-year. Its articles, which address everything from graphics to coding, design and even inspiration, are always written with personality and a dash of humor.

4. WebAppers

WebAppers is your guide to the best open source resources around. It’s an absolute goldmine, jam-packed full of free JavaScript and Ajax components. Everything available has been hand-picked and quality controlled.

5. Woork Up

Woork Up is one of the most polished blogs in this list. Aimed at both designers and developers, you’ll find the latest tech news alongside in-depth tutorials and other resources.

6. Ajaxian

Ajaxian is a site run by Dion Almaer, director of developer relations at Palm, and Ben Galbraith, an experienced Chief Technical Officer and Enterprise Java Architect. Besides tutorials, you’ll find information pertaining to jobs, training and conferences.

7. Oneextrapixel (OXP)

OXP was created by two Singaporean developers and designers who really know their stuff. Luckily for us, they’re only too happy to share it. You’ll find tips, tutorials and resources aplenty.

8. EdgeRails

EdgeRails, your resource for all things Ruby, is an example of “open blogging”. Authors are encouraged to fork the site and submit articles as pull requests. This way, the latest RoR news filters through as quickly as possible.

9. Inspect Element

Inspect Element is a blog based on the sharing of ideas and resources. All information supplied is highly accessible, as useful for beginners as it is for experts.

10. Position Absolute

Position Absolute is headed up by Cedric Dugas, a quirky Canadian who’s fanatical about CSS and jQuery. Besides news and articles, you’ll find loads of JavaScript snippets to use.

11. Script & Style

As you might have guessed from its name, Script and Style is aimed at both developers and designers. You’ll find loads of fascinating information in the easy-to-access archives, which run for a whopping 67 pages.

12. Cats Who Code

Everything that Cats Who Code does is executed with humor and real artistic flair. The site receives 8,000 unique visitors a day and is a member of the Smashing Network, so you know it’s good!

13. Web Developer Plus

Web Designer Plus covers Ajax, CSS, Flash, jQuery and PHP, as well as Photoshop and WordPress. Articles are always highly informative and freebies, which include WordPress themes, are always top-quality.

14. XHTML-CSS-CODE.com

XHTML-CSS-CODE.com is much more interesting than its name suggests. Far from being a dry repository of data, it’s full of fascinating HTML, XHTML and CSS info. You’ll even find articles covering creativity and inspiration.

15. Webitect

Webitect, a relatively new site, founded in October 2008, is a useful resource for web developers, as well as designers, bloggers and freelancers in general. There really is something for everyone here. Much of the content is written by Nick Parsons, a designer, developer and proud Texan.

16. A Fresh Cup

A Fresh Cup is a blog written by Mike Gunderloy, covering all aspects of software development. Much of the blog’s content is geared towards Ruby on Rails users and enthusiasts. Every day, links are provided to great articles from the rest of the web.

17. RailsTips

RailsTips is written by John Nunemaker, Chief Technical Officer at Ordered List. If you know of anyone more passionate about Ruby on Rails, I’d like to meet them. John also writes blogs on MongoDB and blogging in general.

18. DailyJS

DailyJS is a regularly updated blog on all things JavaScript. It’s written by Alex Young, London based software engineer and founder of Helicoid; Ric Roberts, founder of Swirrl; and Gus Knowlden, web satirist and technical whiz-kid.

19. wtfjs

wtfjs is a rather irreverent collection of JavaScript irregularities, inconsistencies and annoying abnormalities. Sometimes enlightening and often hilarious, it’s strictly one for the geeks.

20. Sitepoint

Currently the 952nd most visited website in the world, and proud of it, Sitepoint’s blog is updated with new articles on a daily basis, covering all aspects of development and design. Sitepoint is an online media company which offers advertising, sponsorship, software and content-based products.

21. Web Development Blog

Web Development Blog’s primary focus is on PHP scripts and tutorials. However, readers will also find bbpress plugins and Google gadgets, as well as information regarding SEO, Ubuntu/Linux and Google services.

22. Robby on Rails

What Robby Russell doesn’t know about Ruby is not worth knowing. He’s the founder of Planet Argon web design/development agency and author of soon-to-be-released book, Programming Rails. Robby shares his thoughts and knowledge on this highly informative blog.

23. HTMLCenter

HTMLCenter is Full Sail University’s Web Design and Development degree program blog. The site’s currently in a state of transition, but the blog is still updated regularly with information and tutorials related to CSS, HTML, JavaScript, PHP, VBScript and more.

24. Viget Extend

Viget Extend is the blog of Viget Labs, a 40-strong commercial team of web developers, designers, marketers and strategists. The blog covers technology, trends, tips, best practices and industry events.

25. Cool

Cool by name and by nature, Heidi Cool has built up a strong following for her blog, which is specifically intended for those who build academic and corporate sites. You’ll find plenty of tips and advice from a lady who’s been in the business for over 15 years.

admin Uncategorized

HTML 5

July 31st, 2010

Here is an example document that conforms to the HTML syntax:

<!doctype html>
<html>
<head>
<meta charset=”UTF-8″>
<title>Example document</title>
</head>
<body>
<p>Example paragraph</p>
</body>
</html>

Below is an example document that conforms to the XML syntax of HTML5. Note that XML documents must be served with an XML media type such as application/xhtml+xml or application/xml.

<?xml version=”1.0″ encoding=”UTF-8″?>
<html xmlns=”http://www.w3.org/1999/xhtml”>
<head>
<title>Example document</title>
</head>
<body>
<p>Example paragraph</p>
</body>
</html>

admin Web

Charasterics of good web developer

July 29th, 2010

Everyone could be a web developer. Yes – that’s true. It’s not so difficult to learn how to build a website (especially when you don’t need to pay for any tools and you can build your website even using simplest text editor ever). True art is to be a good web developer.

Now, have a look at the list below. Good web developer:

  • needs to know that it is possible to work without specifications. I can even say much more… good web developer should be ready for a lot of projects, in which nobody has a time to create this useless document.
  • needs to know that the most important thing in this job is to create project using the easiest possible methods, as fast as it could be done, the cheapest possible ways. The easiest possible methods? Yes, all of that is because time is the most important. Why does time is so important? Because a lot of similar firms could create similar project much faster than you and then – they can simply take your users away from you. Besides… if you are not Warren Buffet, Bill Gates (read: you don’t have too much money) or you don’t even work for Google, Yahoo!, Facebook or Twitter… most likely you don’t need to pay for dedicated server (huge traffic? maybe a bit later). Good web developer should know about it.
  • needs to love Internet and be interested in it. Good web developer simply MUST love Internet and be interested in all kind of stuff related with it. Web developer need to have an account on most popular social media sites, he (or she) need to be interested in technology used by the biggest IT companies, he (or she) need to be interested in all kind of new web trends.
  • needs to like to learn new things, read tutorials and documentations, test new frameworks, tools and engines. From time to time there are new releases of popular tools, programming languages, technologies. Good web developer need to know about it and need to be interested in it. Good web developer wants to learn new things and from time to time – he (or she) wants to try build the same thing using other (most likely: better) methods.
  • needs to know what is SEO. Yeah! SEO is one of the most important things in web development. Good web developer needs to know what is SEO (search engine optimization) and how to build good website for search engines.
  • needs to know what is usability. Users like easy-to-use tools and websites. Good web developer needs to know why is that and how to to build this kind of website. In addition, it’s really nice if web developer know what is Alertbox and heard about “Don’t make me think” book.
  • needs to know what is image optimalization and why to compress images. There won’t be easy-to-use and good web site, if this website won’t be fast. And… there won’t be a fast web site without methods of image optimalization.
  • needs to know how cache and CDN works. Good web developer can build web sites, that can handle huge traffic without too many servers. This means… caching SQL queries, CDN for static files and a lot of other mechanisms, which good web developer can use, if he (or she) need to.
  • needs to know differences between Internet Explorer (6/7/8), Firefox, Opera, Google Chrome, Safari. I don’t mean cross-browser design – this is the job for a web designer. However good web developer needs to know about differences; as well he (or she) needs to know that in some browsers some functionalities can be done, but in some others browsers – the same thing could be impossible to do.
  • web developer needs to know what is a web server, how Internet works and what kind of protocol does he use. Good web developer needs to know what is a web server (it’s really good to know what is Apache, nginx, Tomcat, JBoss, etc) and who is the client. Good web developer knows what is thin client, web browser, telnet, ssh, TCP, IPv4, IPv6, HTTP and knows the differences between methods POST and GET.
  • needs to know how to use PHP + at least one more programming language. Why does he need PHP? Because each web developer knows PHP, because WordPress is created in PHP, because it’s easy to find good hosting for PHP, because it’s the famoust scripting language. Why does he need to know at least one other language? Thanks to that his (or her) life will be much easier… he can run python or perl scripts in almost all unix systems (without installing new applications or web servers); he can create fast and powerfull software using C++, C; he can create multi-platform desktop applications using Java, Adobe AIR, etc.  If you know more languages… you can choose which language would be the best for the project and what is more important – you can handle more requests and earn more money. In addition, it’s trendy and… trust me – try to work with python or ruby and you won’t be back to programming in PHP anymore.
  • needs to know how to work with MySQL. You can know how to work with Oracle, MS SQL, PostgreSQL, etc. But… without knowledge of how to work with MySQL – you won’t be a good web developer. Fortunately, MySQL is similar to most of the other databases. Btw… I just said, that web developer “needs to know how to work with MySQL”. This means: good web developer can do much more things with his database, than create simple query such as INSERT or DELETE. Good web developer knows how to use indexes and foreign keys; how to work with triggers; how to rollback transaction; what is the difference between MyISAM and InnoDB table.
  • needs to know how to use (x)HTML, JavaScript, CSS. Web developer doesn’t need to design. Web developer doesn’t need to create (x)HTML, CSS or JavaScript scripts. This is the job for a web designer or a frontend developer. However… good web developer has to know how to use these technologies, because… try to imagine that web designer or frontend developer is your client. You need to know client’s needs and possibilities, otherwise you won’t sell anything.
  • needs to know english. Did you born in USA, UK, Canada, Australia or any other english speaking country? You’ve got lucky. All the people from non-english-speaking countries need to learn this language. Why is that? Because most of the biggest companies in the world are from the USA (and propably can speak just in english); because most of famous people can speak english; because most of technical documentations are in english.
  • needs to know how to read (and write) UML. It’s not really “must know”… but it’s worth to know it, because it’s a great method to represent web (and not only web-) applications.
  • needs to know what version control system is, and how to use it. Good web developer see lots of benefits of using SVN, CVS or Mercurial. Yeah, that’s right! Web development (especially in teams) could be much easier thanks to this kind of systems.
  • doesn’t need to know how Flash works, because good web developer thinks that flash sucks. Flash is nice… I can’t say, that it isn’t. I know few people, who can create really nice projects in this technology. However flash projects are also heavy, difficult to use, slow, etc. So it’s simply in opposite to the rules, in which web developer believes.
  • doesn’t need computer science degree. Sometimes it’s usefull, but commonly… on the contrary. Programmers with computer science degree are really good in creating fast algorythms (commonly – really good ones). However in web development… you need something more. If you want to be a good web developer – you need to have an open mind, you must think like a client, like a potential user… not like a mathematician or even not like an IT guy. Good web developer needs to focus on users’ needs, not on his code.
  • doesn’t need to like write documentations, user guides, etc, but know why he (or she) need to comment his (or her) code (and do it!). From time to time… web developer has to write some documentation for himself, for a client, for other members of his team. Trust me – nobody likes it. That’s why someone invented javadoc, phpdoc, maven site and all other similar things for automatic creating technical documentations. This kind of tools are based on comments, so that could be the first reason why to use them. The second reason could (has to) be… it is much easier to find something, fix something or add some new functionalities, if you have a description for most of functions in your code. Good web developer likes to work fast, likes to know where he (or she) can find something in someone’s code… and likes all automatic tools, thanks to which – he (or she) doesn’t need to write documentations manually. Btw… web developer shouldn’t create user guides. He has got too “technical brain”; he knows too much about project. That’s the work for project manager or eventually – for a client.
  • doesn’t need to like talking to clients, but he needs to like talking with other team members and other web developers/designers/entrepreneurs. Good web developer should talk to other web developers, web designers, frontend developers, entrepreneurs, internet evangelists. Thanks to that… he (or she) can learn a lot. That’s why he (or she) should write on web forums/dashboards, should write tutorials, comment on blogs, be on conferences and trainings, etc. What about talking to clients? Not really. I know this from my own experience. Some time ago… I gave some kind of promotion to one of my web developers – he became a project manager (it wasn’t really a promotion. I just wanted to ask him for help, because I didn’t have a time for manage next project). What was the result? He was too scared to talk to the client and finally I had to manage this project by myself, too. However… he was really good web developer and that was a pleasure to work with him.
  • doesn’t need to like UNIX/Linux, but he needs to know how to work with unix terminal, and how to use ssh. Why is that? Simply… unix shell is so powerfull. Commands and tools like ‘grep’, ‘ps’, ‘kill’, ‘convert’, ‘python’, ‘chmod’, ‘chown’ are so much often use by web developers, that they can’t simply imagine life without them. Good web developers use shell accounts to start/stop/restart web servers or daemons; debug applications; checkout projects via version control system; etc.

admin Other

10 Mistakes You’ll Make When Starting a Business

July 29th, 2010

Are you thinking about starting a business? Well if you are, make sure you avoid these mistakes or else your business is probably going to fail.

1. Slow and steady doesn’t win the race

Most new business fail because they don’t have enough money. If you move slowly, it will take that much longer before you make your first buck. And even if you are already bringing in some cash, that’s not enough… you have to be profitable.

Time isn’t on your side, so do whatever you can to get your business out there and making money. And I know you probably don’t want to cut any corners, but the reality is, you’ll have to cut a lot of corners to survive.

2. Don’t hire too quickly

Doesn’t it sound nice to kick back, relax, and just watch all your employees do all the work for you while the money rolls in? You know you want to do this, so how do you make this dream come true?

Well, it isn’t by hiring people right away. When you are first starting out you are going to have to do more work than you’ll want to.

Hiring is a great idea, but if you don’t understand what the employees job duties are, how they are going to accomplish their tasks, and what roadblocks they are going to face, you’ll just end up hiring employees that don’t meet your expectations.

Before you hire someone for a new position in your company, make sure you first put yourself in their shoes. Once you understand what they are going to go through, you can then hire someone.

3. Emotions and business don’t mix

Let’s face it, you think with your emotions whether you like it or not. And don’t worry, it’s not just you, we all do it.

You are going to have to train yourself to make decisions based off of logic. Even if your emotions are telling you to do something else, you need to make the logical decision.

Emotions don’t mix well with business because they cause you to do whatever will fix your hurt feelings instead of whatever is the best for the business.

4. It doesn’t matter what you want, it’s what the customer wants

Do you have a cool idea for your new business? Maybe it’s a revolutionary product that is going to change the world, or better yet maybe it’s something that you dreamed about creating since you were a child.

I hate to say it, but it doesn’t matter what you want. You should only be doing what your customers want, as they are the ones who are paying you.

So before you invest too much time and money into a cool idea, find out if your customers really want it. You can do it through surveying them and by trying to understand the problems they are facing.

5. There’s nothing wrong with being in the trenches

Being a CEO sounds sexy, but it really isn’t. Being a CEO doesn’t mean that you get to boss people around and tell them what they have to do. It means that you are responsible for the company’s well being.

And the only way you can ensure that the company is going to do well, when you first start out, is by being in the trenches.

You should be taking with customers, understanding their pain points with your product/service, and even deal with customer service issues. By being in the trenches, you’ll be able to determine what steps your business needs to take to hit profitability.

6. Money doesn’t grow on trees

I know, it technically does grow on trees, but you know what I mean. Because capital is the one thing that new businesses lack the most, you have to be cautious with your spending.

Save every penny you can because you never know when you are going to need it. This may mean that you have to pay employees less than they need to survive, or bargain down your supplier’s prices, even though your supplier is your best friend.

Do whatever you can to save a buck. And don’t be shy, because if you never ask you’ll never receive.

7. The best partner is a business partner

There is only so much you can do on your own. And when you are starting out, you won’t have a ton of cash to hire employees.

So how do you get work done without paying people?

You find a business partner! A business partner will not only work harder than most of your employees, but it won’t cost you a dime to get them… well other than equity in your business.

And if you don’t think having a co-founder is worth it, just for a second think of some of the big companies out there. Now think about whom the company was founded by? The chances are, there were at least 2 co-founders.

8. Stop thinking about tomorrow

One big problem that you’ll run into is that you’ll continue to plan for the future. And although it is typically wise to be prepared, as a new company, there isn’t enough time for you to be thinking about next year, next month, or even tomorrow.

Everyday, you should just be working on things that are going to help make the company more profitable. And that’s it! Don’t waste your time planning for the future.

All that matters is that your company has enough cash to survive, and if you don’t work on achieving profitability, you’re going to be closing down your doors.

9. There’s nothing wrong with asking for help

You’re not a jack-of-all-trades. No one is! You’ll always have questions and hopefully you’ll always be learning how to solve them.

So in the mean time, when you are looking for solutions for your questions, make sure you ask other entrepreneurs. There is nothing wrong with having a few mentors that you can rely on for advice.

The best part about it is that most mentors will do this for free… it’s their way of giving back to the entrepreneur community.

So go out there and look for a mentor, because if you think you already have all the answers you need, you’ll be in for a treat.

10. All work and no play will make you a dull boy

If all you are doing is working, you’ll end up getting burned out. You need to take a break and have some fun so that way when you go back in work, you’ll be productive.

And having some fun doesn’t mean that you have to go to an amusement park. It could be spending time with your family or friends… or better, it could be going to networking events.

Networking events are a great place to meet other entrepreneurs, gain some free advice, and maybe you’ll even end up closing some business deals at these events.

The bottom line

Don’t expect miracles with your first business. No matter what, you’ll make some mistakes, but the key to success lies within learning from your mistakes.

Don’t be afraid of the unknown! We all make mistakes, but what separates the great entrepreneurs from the mediocre ones is that the great ones don’t repeat the same mistakes.

So what other business mistakes do you think people make when starting a business?

admin Business

10 Things Every Good Web Developer Should Know (A Checklist)

July 29th, 2010

My favorite thing about web development is the wide variety of skills it uses. Being a good developer means staying on your toes and always learning, because there are so many important skills and these are constantly changing.

Here’s a checklist of 10 skills that are some of the most important for good web developers to have. These focus a bit on front-end skills, but they apply to all developers:

  1. Regular expressions
  2. Basic SEO
  3. A good Javascript library
  4. Cross-browser debugging
  5. Image processing and optimization
  6. Layouts with valid HTML/CSS (and no tables)
  7. Copyright / cyber law basics
  8. Apache rewrites
  9. Debugging software
  10. Version control

1. Regular expressions

regex

Regular expressions are used to parse strings, basically to find and replace bits of text. While this may seem trivial, the versatility of regex makes it quite powerful. There are a wide variety of methods for optimizing a regex string, which can mean huge performance differences for your app.

Regular expressions can be used with just about any language, they work great with Javascript’s replace() and PHP’s preg_replace() to name a few. They are also great for Apache rewrites.

It’s surprising how few web devs use regex considering how useful it is. So if you haven’t already, make sure to learn regular expressions.

2. Basic SEO

SEOmoz

A knowledge of basic SEO is essential for any good web developer. While you can leave keyword research to your clients, a developer should have sound strategies for targeting those keywords on the page. This means clean markup and good use of <title>, <meta>, <h1> and <h2> tags on the front-end, as well as solid link and directory structure organization on the back-end.

The best resources I’ve found for learning SEO are the Beginner’s Guide to Search Engine Optimization and Search Engine Ranking Factors v2, both from SEOmoz.

3. A good Javascript library

jQuery javascript library

Even if you don’t write much Javascript, knowing a good Javascript language can make that little bit so much easier. Whether it’s jQuery (my personal favorite), Mootools, or whatever, learning a Javascript library will cut your Javascript dev time in half. First, these libraries take the cross-browser guess-work out of Javascript programming so you can stop feature checking and start animating. Additionally, they provide a ton of easy animation options and make selecting nodes in the DOM a piece of cake.

More adventurous Javascripters might even want to tackle a Javascript UI language. There are plugins for the libraries above, but I’d recommend Dojo with Dijit.

4. Cross-browser debugging

cross-browser

In order to reach as many viewers as possible, your websites need to work in all the major browsers (IE6, IE7, IE8, FF2, FF3, Safari 4, Opera 9). Everyone hates cross-browser debugging, but the better you get the less you’ll have to do it.

The best cross-browser debugging is preventative, starting with valid HTML and a good reset stylesheet. For my reset CSS, I just use * { margin: 0; padding: 0 } but you can also use a more robust option.

Beyond this it helps to understand the various quirks specific to certain browsers. Top of this list is usually Internet Explorer, and in particular IE6 (yes, still). And while most IE issues boil down to the infamous haslayout bug, you shouldn’t rely on something heavy-handed like * { zoom: 1 } to solve these.

5. Image processing and optimization

photoshop

Although most developers rely on professional designers for design assets, it is just as important for devs to know their way around Photoshop. A strong knowledge of image processing not only allows you to make quick changes to comps without bouncing them back to the designer, it also helps you to understand what is possible when asking for design changes.

One Photoshop skill that is particularly important for webdevs is image optimization. Image file sizes are probably the largest threat to bandwidth and optimizing images can make or break a site’s load time. Photoshop and Illustrator’s “Save for Web” option makes image optimization a lot easier: simply press Ctrl-Alt-Shift-S on PC or Command-Alt-Shift-S on Mac to access this wizard.

6. Building layouts with valid HTML/CSS (and no tables)

CSS box model

Let’s face it: it’s not 1996 and even back-end developers need to know how to write good front-end code, meaning valid HTML and CSS—not a bunch of tables. The markup should be clean and validate according to it’s doctype and the CSS should be separated from the HTML, which means no inline styles and especially no <font> tags.

For starters learn the various CSS tags and the CSS box model. From there you should learn W3C specifications on how to write valid code.

Whenever you write HTML it should naturally be valid xHTML; meaning properly nested nodes, closed image tags with specified alt attributes and other basics. Then you can go on to learn which nodes can be nested within which, and other more complex validation issues. In the end you’ll find that the w3c’s HTML validator hardly ever throws an error, which is a really good feeling.

7. Copyright / cyber law basics

law

You don’t need a law degree, but it’s best for all developers to have at least a basic knowledge of copyright and cyber law wherever they do business.

Since websites are essentially publications, copyright issues tend to be the most common legal issue for sites. From user generated content with stolen Flickr photos to quoting paragraphs from the New York Times, it’s important to know when you’ll get sued, when you’ll get an angry letter and when you’re okay. It’s also good to know when to sue and when to send an angry letter :) .

Beyond copyright laws it’s good to understand privacy and COPPA regulations as well as read carefully through any agreements you have with registrars / hosting companies (and clients!).

8. Apache rewrites

apache http

Apache rewrites make it easy to take messy URLs and make them clean and easy to type (if you know regular expressions). You can take something ugly like index.php?section=about&page=bio and rewrite it to the much prettier: about/bio.

But beyond simply cleaning URL’s, Apache’s mod_rewrite can be used to quickly turn a simple page into a complete app with a directory structure. Simply rewrite the various query string variables to be directories, and you’re all set.

However be careful: Apache rewrite issues are notoriously hard to debug. The rewrites can’t provide any debugging info themselves and will often skip over info you include through other methods. So be aware, rewrites can cause a nightmare that you can’t track down.

9. Debugging Software

firebug debugger

A good debugger will make your web programming go so much quicker.

When it comes to the front-end, I like Firebug, which allows you to click elements on the page and analyze which styles are being applied and from which stylesheet. You can additionally add or remove styles on the fly, as well as edit the page markup.

Firebug also helps with Javascript debugging, providing a better analysis of Javascript errors, as well as a console for running Javascript on the fly and displaying output from console.log(). Finally it provides NET info, showing you the loading time of various front-end assets as well as anything that is 404′ing or otherwise not loading.

I don’t use a back-end debugger but I hear xDebug is good for PHP.

10. Version control

Mercurial VC

Last but definitely not least, every good developer should know and use version control. Version control not only is the best way to backup files as you work on them, it is really the only way to effectively collaborate with other developers.

Version control works by keeping a record of the changes in a directory’s contents. As you work you can commit any changes to this record, or roll back to any previous version.

I personally like distributed as opposed to centralized version control, since it provides two levels of VC: you can commit changes to your local repository and then push these changesets to a centralized server. This allows you to make a number of small or potentially unstable changes locally, then push a set of final changes to your team.

When it comes to distributed VC I like Mercurial, and for centralized I like Subversion.

admin Web

Interviewing Web Developers – 20 Good Questions to Ask

July 29th, 2010

The list is not specific to any particular type of development position, but I tried to balance it between both the design/html/usability side of things and the back-end/database/programming side. I’m just focusing on web development related questions – you should obviously ask the usual barrage of questions like “Why do you want to work for [some company?]“  I’m not covering those types here. Also, this list isn’t in any particular order.

  1. What industry sites and blogs do you read regularly?
    This question can give you an idea of how in-tune they are with the latest industry trends and technologies, as well as how passionate they are about webdev. It’ll help separate the people who do it as a career AS WELL as a hobby from those who might simply be in it for the big developer paychecks.
    _
  2. Do you prefer to work alone or on a team?
    This is an important question to ask depending on the work environment. If your project is going to require close interaction with other developers it’s very handy to have someone who has had that kind of experience. On the other hand, many developers thrive while going solo.  Try to find a developer that fits your needs.
    _
  3. How comfortable are you with writing HTML entirely by hand? (+exercise)
    Although their resume may state that they’re an HTML expert, often times many developers can’t actually write an HTML document from top to bottom.  They rely on an external publisher or have to constantly flip back to a reference manual.  Any developer worth a damn should at least be able to write a simple HTML document without relying on external resources. A possible exercise is to draw up a fake website and ask them to write the HTML for it. Keep it simple and just make sure they have the basics down – watch for mistakes like forgetting the <head> </head> tags or serious misuse of certain elements.  If they write something like: <image src=”/some/image.gif”>, it might be a good hint to wrap things up and call the next interviewee.
    _
  4. What is the w3c?
    Standards compliance in web development is where everything is (hopefully?) going. Don’t ask them to recite the w3c’s mission statement or anything, but they should at least have a general idea of who they are.
    _
  5. Can you write table-less XHTML?  Do you validate your code?
    Weed out the old-school table-driven design junkies! Find a developer who uses HTML elements for what they were actually intended. Also, many developers will say they can go table-less, but when actually building sites they still use tables out of habit and/or convenience. Possibly draw up a quick navigation menu or article and have them write the markup for it. To be tricky, you could draw up tabular data - give them bonus points if they point out that a table should be used in that scenario :)
    _
  6. What are a few of your favorite development tools and why?
    If they say notepad you’ve obviously got the wrong person for the job. Not only can this help you gauge their level of competence, but it’ll also see if they match the tools everyone else uses in-house.
    _
  7. Describe/demonstrate your level of competence in a *nix shell environment
    See how well they work without their precious GUI. Ask some basic questions like how they would recursively copy a directory from one place to another, or how you’d make a file only readable by the owner. Find out what OSs they have experience with.
    _
  8. What skills and technologies are you the most interested in improving upon or learning?
    Find out if their future interests match the direction of the position (or the company in general).
    _
  9. Show me your portfolio!
    A portfolio can say a lot about a developer. Do they have an eye for aesthetics? Are they more creatively or logically oriented? The most important thing is to look for is solid, extensive, COMPLETED projects. A half dozen mockups and/or hacked-out scripts is a sign of inexperience or incompetence.
    _
  10. What sized websites have you worked on in the past?
    Find a developer that has experience similar in size to the project you’re putting together. Developers with high traffic, large scale site expertise may offer skills that smaller-sized developers don’t, such as fine tuning apache or optimizing heavily hit SQL queries. On the other hand, developers who typically build smaller sites may have an eye for things that large scale developers don’t, such as offering a greater level of visual creativity.
    _
  11. Show me your code!
    Whether it’s plain old HTML or freakishly advanced ruby on rails, ask for code samples.   Source code can say more about a persons work habits than you think. Clean, elegant code can often be indicative of a methodical, capable developer. A resume may say 7+ years of perl experience, but that could mean 7 years of bad, unreadable perl. Also, make sure you ask for a lot of source code, not just a few isolated functions or pieces of HTML. Anyone can clean up 20-30 lines of code for an interview, you want to see the whole shebang. Don’t ask for a full, functional app, but make sure it’s enough that you can tell it’s really what their code is like.
    _
  12. What are a few sites you admire and why? (from a webdev perspective)
    Find out what inspires them. While it doesn’t necessarily “take one to know one,” a great developer should always have a few impressive favorites.
    _
  13. Fix this code, please.
    Give them some broken code written in the development language they are expected to know for the position. Have them go through it line by line and point out all the mistakes.
    _
  14. I just pulled up the website you built and the browser is displaying a blank page.  Walk me through the steps you’d take to troubleshoot the problem.
    This is a great question to determine how well rounded their abilites are. It tests everything from basic support skills all the way up to troubleshooting the webserver itself.
    _
  15. What’s your favorite development language and why?  What other features (if any) do you wish you could add to this language?
    Asking about feature additions is a particularly valuable question – it can reveal if they’re skilled in programming in general or if their skillset is pigeonholed into their language of choice.
    _
  16. Do you find any particular languages or technologies intimidating?
    I’ve often felt that the more I learn, the less I feel like I know. Solving one mystery opens up ten others. Having the interviewee tell you their faults can reveal a lot about what they know.
    _
  17. Acronym time (oh boy!)
    Some might argue that knowing what acronyms actually stand for is trivial, but there are certain acronyms that a developer should have hard-wired into their head ( HTML or CSS, for example). This is the kind of question that might be better reserved for the phone interview to weed out those who are very unqualified.
    _
  18. What web browser do you use?
    There is a right answer to this question: all of them. A competent developer should be familiar with testing cross-browser compatibility by using all the major web browsers.  Obviously they’ll have a primary browser they use for surfing, but their answer to this question might be a good way for you to segue to asking how extensively they test cross-browser issues. Also, if it’s some kind of css/html position seeing what toolbars they have installed can be a good metric of their skillset (I personally find the web developer toolbar for firefox to be invaluable)
    _
  19. Rank your interest in these development tasks from 1 to 5 (1 being not interested at all, 5 being extremely interested) Write up a list of tasks the job requires. Having them rank these items according to their interest level can help you find who is the best suited for the position.  I know debugging uncommented perl code from 1997 sounds seriously awesome to me.
    _
  20. What are a few personal web projects you’ve got going on?
    Almost all developers have personal web projects they like to plug away at in their spare time. This is another question that can help differentiate the passionate developers from the clock-punchers. It’s also a good question to end an interview with, as it’s usually easy (and fun) for them to answer.

admin Other