Thursday, December 6, 2007

All time top tech innovations compiled a list of top 100 technology innovations of all times. The list acknowledges the hardware and software innovations that went into making technology the domain that it is today. What is you take on it?

The roster of top 20 innovations from the list is:

    1. USB (1996) - Bought in several concepts such as drawing power, swapping of devices without shutting down PC, and to this day is the killer of port woes.
    2. 3dfx Voodoo 1 (1996) - To put it in brief, this card started the era of separate cards on your motherboard and 3D gaming was born.

Wednesday, December 5, 2007

10 tips for writing a job-winning

As seasoned job hunters know, the first step on the road to finding work is to write a resume that gets you the interview. Unfortunately, some of the traditional resume writing rules just do not work well in the software development industry. Here are 10 tips for writing a programmer resume that will increase your chances of getting the interview.

1. Provide a skills list up front
The hiring manager wants to know if you have the skills the company is looking for. An "experience" section gives managers a good idea of how much experience you have, but if you have a "skills" section at the top of the resume, their eyes go there first. Sure, you may be making it a bit easier for them to weed out your resume. But on the flip side, you might bring to their attention some skills they would otherwise overlook. At the very least, the hiring manager will appreciate the skills list.

2. Make the experience interesting
Most developers on the market have written a data-driven Web site or desktop application. To give a bunch of examples of these on your resume is not impressive. What does impress a potential employer is experience that has something unique about it, showing you've done more than just “Hello World” level work. If you've been working under unique constraints or in environments with high levels of transactions or zero tolerance for failure, that looks very good to the person reading the resume. So show me how your experience is different, and I will see you as different.

3. Root out grammar, spelling, and other common mistakes
Over the course of my time hiring, I have seen all sorts of grammar and spelling mistakes on resumes. One of the most embarrassing was when someone misspelled the name of the college he graduated from. Resumes do contain some unique grammatical conventions, and software development work in particular often revolves around acronyms or oddly spelled words. But that is really no excuse. Check your spelling and your grammar. This tip appears on just about every resume advice article I have ever read, but it clearly needs repeating.

4. Education counts, but not for much
Unless you are just entering the job market for programming or are applying for a very specialized position, your education is not terribly important. Sure, you need to put it on your resume, but list it last, please. The hiring managers who need or want to know about it can find it, and the others won't have to spend time on it. The world of programming changes often enough so that somewhere around seven years later, most schooling (except for “principles and theory” subjects, like mathematics or “pure” computer science) and certifications have little in common with the current working world reality.

5. Get to the meat, quick
The traditional resume format includes a lot of information that's just not needed, in the mind of the development manager. Your summary and possibly even the objective are two such sections. There really is no way to provide a summary that describes most programming pros in a way that is accurate, yet shorter than a resume itself. This is why most summary sections read like so much useless drivel: “Seasoned programmer with 10 years development,” followed by highlights of the skills section. Thanks, but no thanks.
The objective is often (but not always) just as useless. If you are looking for a change of pace, it offers a great way to keep the reader from pigeonholing you based on your skills and experience. The intermediate programmer looking to slide into a senior developer position can safely skip the objective. The senior programmer who wants to become a software architect or a DBA needs to state an objective. So avoid the summary at all costs, provide only useful objectives, and let the reader get to your skill set as quickly as possible.

6. Formatting matters
The formatting of your resume is important. While the days of mailing resumes printed on premium stationery are long past, it is still a document that someone needs to read on a computer screen and on paper. That can be quite a balancing act, believe it or not. This is not the time to show off your inner Picasso, unless the position you are applying for is of a visually artistic nature. This is the time to enhance readability. That means using a larger font (10 to 12 points), a common font that all computers have (if your document format does not bundle fonts within it), and one that looks good both on the screen and off. My recommendations are Verdana, Arial, Tahoma, Calibri, and Helvetica.
Use enough whitespace so that the document does not seem too dense, which will turn readers off. At the same time, don't waste so much space that it takes eight pages to print 200 words. Of course, the format of the file itself is important. My experience has been that 99.9% of the recruiters out there will ask for your resume in Microsoft Word format if you send it in any other format, so make sure that you can provide a document in the standard .doc format. Always keep in mind that the resume is your primary tool for selling yourself. If readers can't consume the information in it, whether due to technical issues or readability problems, they will quickly move on to the next resume.

7. Be cautious with the length
Regardless of how your document is formatted, try to keep the length between two and four pages, unless there are extremely special circumstances. People who spend a lot of time doing short-term contract work can have longer resumes, and people just entering the job market can have shorter resumes.
Overall, it is tough to properly highlight your technical skills and more than one position in the traditional one-page resume format. Two pages should be the baseline for any intermediate or senior developer. But after about four pages, the reader’s eyes start to glaze over. Much like your education, the experience you had more than seven or eight years ago is not terribly relevant, but the hiring manager does like to see an arc of increasing responsibility or project difficulty.

8. Properly document your history
Programming is not like most fields when it comes to employment history. For one thing, many programmers are contractors, which leads to an employment history that can look like a train. In addition, the dot-com bust is not too far behind us, and IT has always been an industry with a lot of bankruptcies, mergers, and acquisitions.
The problem is, no hiring manager likes to see a long list of short-term jobs. If your resume has a string of such jobs, with job titles that get bigger and bigger, you look like someone who has no loyalty. On the other hand, if the jobs seem basically the same (or worse, get lower on the totem pole), it makes the reader think that you may simply be unemployable. If you have a legitimate reason for the short-term jobs, make sure that the reason is obvious. For example, mark the contracting/consulting positions clearly.

9. Don’t put the reader at legal risk
No hiring manager likes to be accused of prejudiced or discriminatory hiring. Not only is it unethical, but it is illegal. So hiring managers who are trying to do the job right will be familiar with the list of questions they can't ask an applicant. Your part of the equation is to exclude this information from your resume. The hiring manager does not need to know your marital status, ethnicity, nation of origin, age, religion, or sexual orientation. There are a lot of other things the hiring manager does not need to know, either. If you include these irrelevant details on your resume, the hiring manager will feel scared and skittish. Leave these details out, please.

10. "What a geek!"
In high school, you may have hated being called a geek. But today, you are trying to find work as a programmer. “Geek” is “gold” to hiring managers. Find a way to show them that you are smart, love programming, and are constantly growing, learning, and exploring new ideas. Talk about your relevant hobbies if you have any, like contributing to open source projects or volunteering to teach local kids programming. Let them know if you like programming or computers enough to deal with them outside of work.
It is a really simple equation for the hiring manager. While two candidates may be equal today, the candidate with passion will be far more advanced tomorrow than the candidate who treats it as “just a job.”

courtesy @TechRepublic

AddThis Feed Button

Piracy rate for Vista is half that of XP

Microsoft on Monday said that piracy rates for Windows Vista are half those of Windows XP.

There appears to be a variety of reasons for that, chief among them is probably the fact that Vista machines that are not properly activated become useless pretty quickly when they enter into “reduced functionality mode.”

Amazingly, in a significant change, those with non-genuine or non-activated copies of Vista SP1 will still be able to use their systems.

According to CNET

With Service Pack 1, Microsoft is doing away with reduced functionality mode in favor of putting prominent notifications on systems that are not found to be genuine. Non-genuine systems with SP1 will display a warning at start-up that the system is not properly activated.

Users will have the option to “activate now” or “activate later,” though the second option won’t show up for a time. Users will also have their desktop background changed to white and a prominent notification placed in the lower right hand corner saying that the machine is not genuine.

I don’t know about you, but harder to pirate none withstanding, the first thought that comes to my cynical mind goes along the line of “Even the pirates can’t be bothered with Vista!”

And as to why Microsoft is making it easier is probably due to pressure from irate users who are wrongly locked out of their own system due to things like device driver upgrades.

And the final puzzle I shall leave you with is — just how did Microsoft figure out the piracy rate anyway? Via Windows update perhaps?

AddThis Feed Button

Tuesday, December 4, 2007

Build better Web forms with these eight user interface tips

Overview: Web forms are an excellent way to gather and exchange information with your Web site's users, especially when that exchange is part of an e-commerce transaction. However, a Web form that users don't complete is a waste of everyone's time. These eight interface-enhancing tips, originally published in TechRepublic's Design and Usability Tactics newsletter, will help you gain maximum value from your Web forms and the users they serve.

1: Determine the goal and value
Assess what value the outcome of the task will provide to your organization and the user. If there's little or no value, why should you build it, and why should users take the time to fill out the form? Once you determine that both parties would benefit, start thinking about what to put in the Web form.
The key is don't get greedy. Many organizations believe that you must have excessive amounts of information flowing to them from the users. In reality, smaller, more targeted chunks of information are more useful. Also, users don't want to provide more information than they think the organization should have (i.e., don't give the impression that you're prying).
In other words, tread lightly when you consider what you're going to ask users. Ultimately, if your organization can't glean any information from users, not only do you not get any value from the Web form, but you also risk tarnishing the brand image you've worked hard to build.

2: Provide incentives for completion
The user must feel that the value or outcome outweighs the cost (or time) of having to fill out the form. Therefore, unless you provide users with something of value in return, the chances diminish that the user will finish the task.
Incentives can be whatever you're willing to provide. Here are examples of possible incentives:
􀂃 Give away a gift certificate for some of your products in return for the user's contact information.
􀂃 Provide the user a chance for entry into a sweepstakes or other type of contest.
􀂃 Offer a free download of some expert content or information pertinent to the business at hand.
Before even building a Web form, you should determine what you hope to accomplish with the form and then decide what incentive you'll provide to users in order to entice them to complete the form.
Once you pinpoint why the particular Web form is necessary and why users will be willing to fill it out, it's time to focus on constructing a usable online form that virtually anyone can understand, as well as finish.
Even for short forms, we can't just put an input box on the screen with a Sign Up or Register button and expect the user to know what to do. We also cannot assume that users will know what everything means, or exactly where to put their answers. History has shown this is true (think: Florida and the butterfly ballot).

3: Make sure the form requires no scrolling
First, present your Web form in a space on the screen that the user can see without scrolling. This space should be directly within the main content area of your Web site, as it's the primary piece of information on the page.

4: Be upfront about the form's length
Figure out the length of the form. At this stage, the worst mistake you can make is to create a gigantic one-page form. Instead, pre-determine how many questions or inputs you're going to produce, and then break the form into smaller steps.
From the beginning, let the users know how many steps the form will entail, and then continue to show them how far they have to go with each new step in the process.

5: Clearly identify fields, buttons, and boxes
Every field, button, or box must be clearly labeled and associated with its proper function. For instance, use bold to signify the input designations (e.g., First Name), and always display errors using red type. (Do not make the user search for the error.)

6: Use a table layout
To ensure that your form lines up, you should employ a simple HTML table layout. Adjust the cell padding or cell spacing to create space variances between all fields and to adjust to your taste.
For example:

7: Retain pre-filled-in user information
One of the most annoying parts about filling out an online form is experiencing an error, and then seeing that all of the information you previously input has vanished.
Asking a user to completely reenter his or her information is a touchy subject. The best course of action is to make sure your programming team carries the user's information from step-to-step automatically.

8: Give a big thank you
Last but not least, you should provide each user with a confirmation or thank you page upon the completion of each form. This page will offer users a sense of accomplishment and make them feel that you realize their time is important.
By working within these guidelines, you should be able to design Web forms that provide you and your users with enough value to make it worth everyone's while.

AddThis Feed Button

How do I… Create a customized JavaScript jump menu in Dreamweaver CS3?

If you are in charge of maintaining a Web site, one of your recurring tasks is likely accommodating a committee of supervisors or clients that want to add links to the site on a continuing basis. This can often lead to a cluttered navigation interface, if it doesn’t destroy your layout altogether.

Fortunately, Adobe Dreamweaver CS3 has many tools that can provide quick and easy solutions to problems like these. One of the more practical solutions to an ever-expanding list of navigation links is a JavaScript “jump” menu, which is a pull-down form menu that automatically directs the user’s browser to another Web page as soon as they select an option from the menu. And the best part is that no knowledge of advanced scripting techniques is required to implement it. You can even use some simple CSS code to give your Jump menu a distinct look.

If you don’t own a copy of Dreamweaver CS3, you can download a fully functioning 30-day trial.

This blog post is also available as a TechRepublic gallery and TechRepublic download. The download includes an example of the JavaScript described in this How do I… blog post.

Let’s begin by opening Dreamweaver and creating a new HTML document (Figure A) by selecting the New option from the File menu. In the Dialog box that appears, Select HTML in the Page type column. Ignore the other options in the box, and click the “Create” button.

Figure A

Creating a new HTML document in Dreamweaver CS3

Before you do anything else, save your document. It is always a good idea to save a new HTML document in Dreamweaver in the directory that houses your parent Web site before you begin coding. This will help avoid broken and misdirected links later on if you decide to link to internal site pages.

Dreamweaver lets your author a page via its WYSIWYG tools as well as by hand-coding. Its best to have both options visible at all times so that you can switch back and forth and see how modifying the code affects the browser preview and vice-versa. If both the Code and Design view are not visible, click on the button that is labeled “Split”. You will find it in-between the Code and Design buttons near the top of the screen, under the document tab (Figure B).

Figure B

Clicking the Split button lets you see both the Code and Design windows

Now it is time to build our Jump menu. Go to the top of the screen and in the horizontal Insert menu (it runs across the screen just under the Application menus) click on the Forms tab to bring up the Form objects. (Figure C)

Figure C

Select the Forms tab to bring up the Form objects palette

Next, click on the Jump Menu button. This will make a dialog box appear, as in Figure D.

Figure D

Click the Jump Menu button to bring up the Jump Menu authoring box

Let’s have the first item in our Jump Menu take us to The field labeled “Text:” is the text that will appear in the menu when the user views it in his browser. It can be whatever you wish, including most special characters. For now, let’s keep this simple. In the “Text;” field, enter the word Google (Figure E). The field below it, labeled “When selected, go to URL:” is the Web address that will be the destination tied to the copy in the “Text:” field. Enter the URL

Figure E

Creating the first item in the Jump Menu

Next, let’s add two more items to the Jump menu. Click the Add Item button two times and you’ll see the Jump menu add two more blank entries. (Figure F)

Figure F

Adding two blank items to the Jump Menu

Click on item1 in the Menu Items list and fill out the Text and Selected URL fields just as you did before, linking the new item to an absolute URL. Repeat the process again with item2. (Figure G)

Figure G

Linking the two new menu items

Now let’s say that you want to rearrange the order of the items in the menu list. This is easily done with the two arrow buttons in the upper right area of the dialog box. Click on the last entry in the Menu items box to select it. Then click on the up arrow until the last item is now at the top of the list, as in Figure H.

Figure H

Re-ordering the Menu items

When you are satisfied with the content of your Jump Menu, click the OK button to return to Dreamweaver’s main authoring area to see your menu. (Figure I)

Figure I

The newly-created Jump Menu

Before we test it, let’s use some simple CSS code to make the Jump Menu a little more distinguished. Go to the top of the screen and from the Window menu, select the CSS option. The CSS palette will open, as shown in Figure J.

Figure J

The CSS palette

Click on the Add CSS Rule button to bring up the CSS Rule dialog box (Figure K). In the Selector Type options, choose the Tag option. In the Tag pull-down menu, choose the “Select” tag. Finally, click the Radio button at the bottom that is labeled “This document only.”

What these options do is define the appearance of your Jump Menu automatically, so that you do not have to assign a CSS class to the menu later or worry about an external Style sheet. Click OK to continue to the CSS Rule Definition dialog box.

Figure K

The New CSS Rule dialog box

The CSS Rule Definition dialog box will open at the Type Category, From the Font pull-down menu, select the font set “Arial, Helvetica, sans-serif”, then give it a size of 10, as shown in Figure L.

Figure L

Defining Type options for the New CSS Rule

Now select the Background Category and select a light value color, as shown in Figure M.

Figure M

Defining Background options for the New CSS Rule

Click OK to return to Dreamweaver’s authoring area. The styles you defined should be readily viewable in the Jump Menu. (Figure N) Save your document, and then open it up in a Web browser to test it.

Figure N

The completed Jump Menu

There is no limit to the number of items the Jump menu can list, and of course, you can even link it to Web pages within your own Web site. Use the CSS customization to make it fit right in with your site’s unique look and feel.

courtesy @Techrepublic

AddThis Feed Button

Plugging Aptana into an existing Eclipse configuration


To plug Aptana (Milestone 8+) into an existing Eclipse (v3.2) configuration:

  1. From the Help menu in Eclipse, select Software Updates > Find and Install... to open an Install/Update pop-up window (shown below).


  2. On the Install/Update pop-up window, choose the Search for new features to install option, and click the Next button.
  3. Add a new remote site to add the Aptana plug-in:
    1. Click the New Remote Site... button to open a New Update Site pop-up window.
    2. On the New Update Site pop-up window, type Aptana in the site Name text box.
    3. In the URL text box, type the URL for the Aptana update site: (shown below) and click OK.


    4. Click the Finish button to switch to the Updates window.
  4. On the Updates window, check the Aptana box (shown below), and click the Finish button.


  5. On the next screen, check the Aptana box, and click the Next button.
  6. Choose the option to accept the terms of the license agreement, and click the Next button.
  7. Click the Finish button.
  8. Click the Install All button.

Eclipse installs the Aptana plug-in. To finish the installation process, follow the prompts to shut down and re-start Eclipse.

To access all of Aptana's features as they are described in the Aptana documentation, you will need to change your Eclipse Perspective to the Aptana perspective. See Changing your Eclipse Perspective for instructions on how to change your Eclipse Perspective.


AddThis Feed Button

Build Web applications with Aptana Studio

A Web developer’s choice of tools is often driven by the needs of the client and the project, but a developer’s IDE is often a personal matter; after all, they spend the bulk of their time using this tool to build their applications. While .NET developers have limited choices, Web developers have a variety of options. This article focuses on one such offering: Aptana Studio.


Aptana Studio is developed and supported by the California-based company Aptana. The current version 1.0.0 is available as an Eclipse plug-in, as well as two standalone versions:

  • Community Edition: This is a freely available version of the IDE. It provides the core features of the product for building Web applications. It supports editing and debugging of Web applications using HTML, CSS, JavaScript and AJAX. Plug-ins are available for developing PHP and Ruby on Rails code.
  • Professional Edition: This is the commercial version of the IDE with a current price of $99. It includes the features in the Community Edition as well as additional features. Some of the extras include a JSON editor, viewing statistics via a reporting engine, secure FTP, a debugger extension for Internet Explorer, and full support from Aptana.

The edition you choose depends on your project needs and whether you want full product support. I find that the Community Edition meets most of the needs of my Web development projects.

How to get it

The Aptana Web site makes it easy to purchase a license for the Professional Edition of Aptana or download the freely available Community Edition of Aptana. The download is available as an executable or via a compressed file. The current version requires version 1.5 or later of the Java Runtime Environment. Downloads are available for Windows, OS X, and Linux.

Installation of the Aptana Studio IDE is as simple as running the executable or running the setup in the compression file. Once it is installed, you can get a closer look at the IDE and its many features.


The Aptana Studio IDE is based on the Eclipse code base, but it focuses on Web development via JavaScript (vs. Eclipse’s focus on Java). Like the Eclipse IDE, Aptana Studio organizes development work around a project. Once a new project is created, you may add one or more files. The default installation of Aptana Studio supports JavaScript, HTML, CSS, ScriptDoc, XML and plain text as well as others. Plug-ins are available for working with other file types including PHP, Ruby on Rails, Adobe AIR, and iPhone/iPod.

The Aptana Studio IDE includes standard features that most developers expect in their development tool. It provides a powerful interface for building Web applications. The following list provides a peek at some of these features:

  • Code assist: One of the best features of an IDE is the ability to help you with your coding. The code assist feature provides context-sensitive coding help to make sure your code is correct.
  • FTP: The ability to upload and download project files to and from a Web server makes it easy to work with code on a development or production server.
  • AJAX: AJAX development is a core feature of Aptana Studio. The installation includes many JavaScript libraries, such as Adobe Spry, Yahoo! YUI, JQuery, scriptaculous, and Dojo among others. With these libraries installed by default, you can begin coding AJAX applications in no time.
  • Debugging: A key piece of any IDE is a debugger. The freely available Community Edition of Aptana Studio provides a Firefox plug-in for JavaScript development, and the Professional Edition provides the same tool for Internet Explorer. With the debugger, you can easily set breakpoints and watch variables to get a better idea of what the code is actually doing.


Aptana Studio 1.0.0 is available via a dual licensing agreement. The two licenses are open source GNU General Public License (GPL) and the Aptana Public License (APL). The GPL license offers the Aptana IDE free of charge, as long as usage adheres to the terms of the GPL license. The APL license is available for organizations that want to use the product for free and modify, integrate, and distribute it for personal or internal use only, without any redistribution requirements.

An impressive development option

Over the years, the market for Web development tools has exploded. Some of these tools are for particular development platforms like Visual Studio .NET for .NET development, but others like Aptana Studio 1.0.0 target more general Web development using standard technologies as well as others like PHP. I would recommend the IDE to fellow Web developers.

The Aptana Studio IDE allows a developer to easily organize the many disparate files in a Web application. The many features of the IDE allow you to easily build and debug your JavaScript code to ensure proper functionality. It provides all features that I’d expect from an IDE.

courtesy @TechRepublic

AddThis Feed Button