Explore the Articles

General

How to be a Programmer: A Short, Comprehensive, and Personal Summary

To be a good programmer is difficult and noble. The hardest part of making real a collective vision of a software project is dealing with one's coworkers and customers. Writing computer programs is important and takes great intelligence and skill. But it is really child's play compared to everything else that a good programmer must do to make a software system that succeeds for both the customer and myriad colleagues for whom she is partially responsible. In this essay I attempt to summarize as concisely as possible those things that I wish someone had explained to me when I was twenty-one.

This is very subjective and, therefore, this essay is doomed to be personal and somewhat opinionated. I confine myself to problems that a programmer is very likely to have to face in her work. Many of these problems and their solutions are so general to the human condition that I will probably seem preachy. I hope in spite of this that this essay will be useful.

Read More
Content Management

Is it document management or content management?

There is considerable confusion in the market between document management systems (DMS) and content management systems (CMS). This has not been helped by the vendors, who are keen to market their products as widely as possible.

These two types of systems are very different, and serve complementary needs. While there is an ongoing move to merge the two together (a positive step), it is important to understand when each system is appropriate.

Read More
General

Definition of information management terms

There is considerable confusion in the marketplace regarding the definition of various information management terms. The scope and role of specific information systems is particularly blurry, in part caused by the lack of consensus between vendors.

With the aim of lessening this confusion, this briefing provides an at-a-glance definition of terms for a range of information systems.

Read More
JavaScript

A Simpler Ajax Path

Things have steadily improved for web developers with the advent of standards-compliant browsers, CSS, DHTML, and the DOM. Pervasive broadband access has made web apps feel a lot snappier. Now something called the XMLHttpRequest object makes it even easier to develop full-blown, superinteractive applications to deploy in the browser.

While not exactly new, the XMLHttpRequest object is receiving more attention lately as the linchpin in a new approach to web app development, most recently dubbed Ajax (asynchronous JavaScript and XML), which powers the cool features found on sites like Flickr, Amazon's A9.com, and the new poster children for whizzy web-based interactivity, Google Maps and Google Suggest. The snazzy Ajax moniker seems to be getting some momentum--it's popping up in all sorts of places, including the Ajaxian weblog and the recent Ajax Summit put together by O'Reilly Media and Adaptive Path.

Read More
Design

Practical (and Cheap) Usability Testing

When building interactive Web sites or applications, the success of our work is not based solely on marketing strategy and design. The real challenge is providing Web customers with clarity, control and satisfaction.

The only real way to ensure understanding and ease of use is to watch representative customers use your site—otherwise known as usability testing, a one-on-one test during which you give participants open-ended tasks to perform on your site. As they use the site, you gain understanding from their confusion.

Read More
General

How To Eliminate The Ten Most Critical Internet Security Threats

The majority of the successful attacks on operating systems come from only a few software vulnerabilities. This can be attributed to the fact that attackers are opportunistic, take the easiest and most convenient route, and exploit the best-known flaws with the most effective and widely available attack tools. They count on organizations not fixing the problems, and they often attack indiscriminately, scanning the Internet for any vulnerable systems. System compromises in the Solar Sunrise Pentagon hacking incident, for example, and the easy and rapid spread of the Code Red and NIMDA worms can be traced to exploitation of unpatched vulnerabilities.

Two years ago, the SANS Institute and the National Infrastructure Protection Center (NIPC) released a document summarizing the Ten Most Critical Internet Security Vulnerabilities. Thousands of organizations used that list, and the expanded Top Twenty, which followed a year later, to prioritize their efforts so they could close the most dangerous holes first. The vulnerabilities that led to all three examples above - the Solar Sunrise Pentagon incident, and the Code Red and NIMDA worms - are on that list.

Read More
Databases

Database Security (Common-sense Principles)

Lately, database security issues have been flooding the media and Internet news-wires. First with the Slammer worm and most recently criminals accessing over 8 million credit card numbers.

So [I] sit back and say to myself, "Did the sysadmins fall asleep behind the wheel?" As the internet has boomed and we've increased our reliance on the convenience and relative low cost of web-enabled information systems, we have become lazy in our implementation of basic security practices.

Read More
Design

The Canonical Intranet Homepage

In recent years, intranet homepages have become very similar in their basic layout. Intranets that look the same can nonetheless differ drastically in usability due to different features and content.

Over the past five years, I've reviewed several hundred intranets and have seen a clear trend: homepage layouts are becoming more and more similar over time. We've now reached the point where one specific intranet homepage layout is so common that it makes sense to anoint it as the canonical design.

Read More
HTML

Introduction to XUL, Part 1

Would you like to learn how to make rich user interfaces with nothing more complicated than a text editor? Welcome to XUL, a subset of XML used to describe user interfaces. This article will get you started.

Many of you may not have heard of XUL. [I] hadn’t until recently. If you’re excited by the prospect of making rich user interfaces, quickly and easily, using nothing but a simple text editor, then you’ll want to learn all about XUL, because that’s exactly what it’s for. It’s pronounced to rhyme with "cool" and is a W3C compliant subset of XML that is used specifically to describe user interfaces. It stands for XML User interface Language, and was designed to implement the user interface of the Mozilla suite (including the browser and the Thunderbird email client.)

Read More
Server Side

Extended Operations on ColdFusion Sessions

This article overviews a number of undocumented functions which can be performed on ColdFusion sessions to extend their usage.

Read More
Newer articles Older articles