Teach Yourself Programming in Ten Years

Peter Norvig - Teach Yourself Programming in Ten Years:

“Why is everyone in such a rush?
Walk into any bookstore, and you’ll see how to Teach Yourself Java in 7 Days alongside endless variations offering to teach Visual Basic, Windows, the Internet, and so on in a few days or hours. […] The conclusion is that either people are in a big rush to learn about computers, or that computers are somehow fabulously easier to learn than anything else. There are no books on how to learn Beethoven, or Quantum Physics, or even Dog Grooming in a few days. […]

Researchers (Hayes, Bloom) have shown it takes about ten years to develop expertise in any of a wide variety of areas, including chess playing, music composition, painting, piano playing, swimming, tennis, and research in neuropsychology and topology. There appear to be no real shortcuts: even Mozart, who was a musical prodigy at age 4, took 13 more years before he began to produce world-class music.”

Wed, 28 Sep 2005 10:13:00 +0000

HOWTO Avoid Being Called a Bozo When Producing XML

Henri Sivonen - HOWTO Avoid Being Called a Bozo When Producing XML:

“There seem to be developers who think that well-formedness is awfully hard - if not impossible - to get right when producing XML programmatically and developers who can get it right and wonder why the others are so incompetent. I assume no one wants to appear incompetent or to be called names. Therefore, I hope the following list of dos and don’ts helps developers to move from the first group to the latter.”

Tue, 27 Sep 2005 23:54:00 +0000

I’m wikied out

François Joseph de Kermadec - I’m wikied out:

“Wikis and Forums are awesome. They allow the community to improve the documentation, build upon it, provide feedback to the developer. But they cannot replace the documentation. By definition, a Wiki is written by someone who feels comfortable enough with the application to need “tips", forums require long searches to extract information: none of these wonderful concepts can replace linear, logically organized documentation.”

Fri, 23 Sep 2005 13:09:00 +0000

Etsy’s Excellent Visualizations

Marc Hedlund - Etsy’s Excellent Visualizations:

“I had seen Etsy, the marketplace for handmade goods, but not its excellent visualizations, until Upendra showed them to me this week. Check these out:

* Etsy ColorSpace
* The 3d Etsy Time Machine (I love that the clock runs backwards)
* The Etsy Geolocator

Fri, 23 Sep 2005 10:07:00 +0000

The Next Generation of Genealogy Sitebuilding

The Next Generation of Genealogy Sitebuilding ("TNG") is a powerful way to manage and display your genealogy data on the Internet, all without generating a single page of HTML. Instead, your information is stored in MySQL database tables and dynamically displayed in attractive fashion with PHP.”

Fri, 23 Sep 2005 09:45:00 +0000

Dreaming of an Atom Store: A Database for the Web

Joe Gregorio at XML.com - Dreaming of an Atom Store: A Database for the Web:

“Imagine that you just have a huge glob of storage that you can store Atom Entries in, and which you can edit using the APP, and then search over using OpenSearch. That idea, that big blob of Atom Entries, all editable and searchable, is an Atom Store.”

Thu, 22 Sep 2005 10:11:00 +0000

An activity based Workflow Engine for PHP

Tony Marston - An activity based Workflow Engine for PHP:

“This document will describe the activity based workflow system which I have constructed as an extension to my Development Infrastructure for PHP. […]

In order to implement a workflow system it is first necessary to find a suitable means of designing and modeling a workflow process. For this I take advantage of the work done by Carl Adam Petri who was the first to formulate a general theory for discrete parallel systems which gave birth to what are now known as Petri Nets.”

Mon, 19 Sep 2005 09:28:00 +0000

PostgreSQL Gotchas

PostgreSQL Gotchas:

“PostgreSQL is a fully-featured, robust open-source database with strong SQL standards compliancy. As with all RDBMS products it has its odd little idiosyncracies, which while documented, are not obvious, counter-intuitive or just head-scratchingly odd.”

I’ve already run into some of the problems described there - “unquoted object names fold to lower case", and “COUNT(*) very slow".

Sun, 18 Sep 2005 23:41:00 +0000

Links to essays in Best Software Writing I

Neil Kandalgaonkar - Links to essays in Best Software Writing I:

Joel Spolsky has compiled a book of essays on software, which he calls The Best Software Writing I. The essays all came from online sources, but when Spolsky released the chapter listing, I didn’t see anywhere online where he posted links to the originals. So here they are.”

Fri, 16 Sep 2005 14:45:00 +0000

Why Web Apps Suck

In “On Browser UIs”, Richard S. Tallent has a comprehensive list of reasons “why web apps suck". On “missing widgets":

“Tree views: even the best ones out there suck. MSDN, for example. They also almost invariably lead to using frames to avoid population and rendering on each page refresh. […]

Context menus. This alone is responsible for any number of cases of over-busy interfaces in web apps. Without the right-click ability (sorry Mac users), the interface must display every possible action and provide an alternate method of selection. Combined with a lack of drop-down menus, the result is a busy interface that must show too many possible-but-unlikely actions.”

Fri, 16 Sep 2005 12:37:00 +0000

Listen kids, AJAX is not cool

Marcus Baker - Listen kids, AJAX is not cool:

“If you writing a user interface, make sure it responds in 1/10th of a second. That’s a pretty simple rule, and if you break it, you will distract the user. […]

Suddenly we have lot’s of web developers “enhancing” the browser experience with behind the scenes XML fetching back to the original site. I cannot think of a worse collision of technologies than low level user interfaces with requests over the internet. The delays and failures of internet traffic are especially painful in this environment and, from the AJAX demos I’ve seen, the developers aren’t helping. […]

I don’t think I am alone in being habituated to the way the web behaves as pages. When you write AJAX applicatons you drive a horse and cart through one of the most successful metaphors of all time.

AJAX has possibilities, but it’s not there yet. Not as a community and not with the tools. Web developers cannot become GUI developers overnight. We need time.”

Ajax Blog has a good follow-up - AJAX: telling it like it is…:

“The more I think about it, the more it’s clear that some kind of delaying HTTP proxy, that I was suggesting here, is badly needed to make people see how badly AJAX can suck when you inject a little latency - AJAX@localhost is always going to look good. […]

From where I stand, Javascript is today where it should have been about 5 years ago as people were discovering DHTML - you can now write code which has a pretty good chance of running under all the modern browsers for the sake of neat web page gimmicks. But what Javascript isn’t is a sane environment for building MVC applications where the data model is available courtesy of AJAX. […]

Of course this not going to stop anyone from trying - we’re talking holy grail here. But what is worth remembering is if you decide to go AJAX, realize that you’re significantly increasing the risk that your project will ‘fail’.”

Fri, 16 Sep 2005 09:24:00 +0000


Backbase provides Rich Internet Application (RIA) software that radically improves the usability and effectiveness of online applications, and increases developer productivity. With Backbase you can build web applications with a richer and more responsive user interface.”

Thu, 15 Sep 2005 10:00:00 +0000

PHP OCI8 Driver Updated!

Andi Gutmans - PHP OCI8 Driver Updated!:

“Antony just sent an email that he finished commiting the updates to the PHP OCI8 driver and giving a short overview of the bug fixes and improvements.

The OCI8 extension has had a lot of bugs in the past few years, and it became clear that if this extension was to become supportable, it would need a serious face lift and architectural improvement.”

Thu, 15 Sep 2005 09:49:00 +0000


This web service software takes multiple word processor files (typically .doc) and converts them to Oasis OpenDocument v1.0 format, and then optionally runs them through an XML pipeline. The result is returned in a .zip file.

Docvert builds upon OpenOffice.org because it has the best chance of dealing with the vagaries of the MS Word format.”

Wed, 14 Sep 2005 12:04:00 +0000

WinFS and social information management

Jon Udell at InfoWorld - WinFS and social information management:

“I saw my first demo of Microsoft’s Cairo OFS (Object File System) back in 1993. It was briefly unveiled at the Professional Developers Conference that year, and then shelved. This week I installed the beta version of its successor, WinFS.”

Thu, 08 Sep 2005 14:27:00 +0000

php|architect’s Guide to PHP Security

php|architect’s Guide to PHP Security, written by security expert (and frequent php|architect contributor) Ilia Alshanetsky, provides you with a guide that covers everything you need to secure existing PHP applications and write new ones with security in mind.” (201 pages, published the day before yesterday)

Wed, 07 Sep 2005 12:31:00 +0000

Time for a stand-down review

Roger A. Grimes at InfoWorld - Time for a stand-down review:

“I propose that one of the best cost/benefit security moves any company can make is to take a step back, review the current security configuration of its assets, and fix the basics before looking into more advanced solutions. Spending a week or two doing this can provide immediate returns, compared with waiting for a three-year payback on an unproven device or solution.

I have to admit that this idea isn’t my own – it’s stolen from the military. For example, every few years the military suffers from a spate of “random” incidents such as, say, airplane or helicopter crashes, accidental weapons fire, or unpredictable cases of post-traumatic stress. When management (the generals, admirals, or commanders) note a spike in such events, they often order a stand-down, which requires the entire affected force to drop all non-essential duties for the entirety of the stand-down period.

Everyone must re-examine current SOPs (standard operating procedures) to see if they need to be modified or, more likely, how they aren’t being universally applied. Either way, after the stand-down review period, the spate of random incidents always seems magically to decrease.”

Fri, 02 Sep 2005 16:16:00 +0000

How to Decide What Bugs to Fix When

Scott Berkun at ONLamp.com - How to Decide What Bugs to Fix When, Part 1 and Part 2:

“This two-part essay is a primer on those rules and survival kits, giving you basics to follow. But more importantly, I’ll provide the core ideas needed to make your own rules. The advice is organized into four levels, from scrappy first aid (level 1) to higher-caliber planning (level 4).”

Fri, 02 Sep 2005 08:57:00 +0000