Tim’s Weblog Tim's Weblog
Tim Strehle’s links and thoughts on Web apps, managing software development and Digital Asset Management, since 2002.

Protecting Your Enterprise Network from Vendor App Servers?

Slashdot - Protecting Your Enterprise Network from Vendor App Servers?:

"I work for a company with a large IT infrastructure. We have lots of applications in our environment. For a number of applications, vendors provide the apps, and provide core support to those app servers. Our vendors are notorious for demanding superuser access to the boxes that support their applications. To protect our enterprise network from attacks allowed in by well-meaning but less-than-perfectly-competent vendors, we have set up a quarantined network for each vendor.

[...] Frequently vendors can't restrict their applications to run on a limited set of ports. Most of the time they stare blankly when we want their application to run as something less than superuser.

Our biggest challenge is keeping track of all of the dependencies and managing what ports need to be allowed to which destinations. Of course, when security is tight our business-types say 'you're breaking my application.'"

Sat, 27 Nov 2004 23:25:35 +0000

InfoWorld: The top 20 IT mistakes to avoid

Chad Dickerson - The top 20 IT mistakes to avoid:

"18. Underestimating PHP

IT managers who look only as far as J2EE and .Net when developing scalable Web apps are making a mistake by not taking a second look at scripting languages -- particularly PHP. This scripting language has been around for a decade now, and millions of Yahoo pages are served by PHP each day. [...]

19. Violating the KISS principle

Doug Pierce, technical architect at Datavantage, says that violating the KISS (keep it simple, stupid) principle is a systemic problem for IT. Pierce says he has seen “hundreds of millions” of dollars wasted on implementing, failing to implement, or supporting solutions that are too complex for the problem at hand. According to Pierce, although complex technologies such as CORBA and EJB are right for some organizations, many of the organizations using such technologies are introducing unnecessary complexity.

This violation of the KISS principle directly contributes to many instances of project failures, high IT costs, unmaintainable systems, and bloated, low-quality, or insecure software."

Thu, 25 Nov 2004 13:03:48 +0000


Tim Bray - More Relax:

"[...] that RelaxNG is the world's best schema language, and that anyone who who's using XML but not RelaxNG should be nervous."

Thu, 25 Nov 2004 12:14:12 +0000

Adam Bosworth's ISCOC04 Talk

Adam Bosworth - ISCOC04 Talk:

"That software which is flexible, simple, sloppy, tolerant, and altogether forgiving of human foibles and weaknesses turns out to be actually the most steel cored, able to survive and grow while that software which is demanding, abstract, rich but systematized, turns out to collapse in on itself in a slow and grim implosion.

[...] What is more, in one of the unintended ironies of software history, HTML was intended to be used as a way to provide a truly malleable plastic layout language which never would be bound by 2 dimensional limitations, ironic because hordes of CSS fanatics have been trying to bind it with straight jackets ever since, bad mouthing tables and generations of tools have been layering pixel precise 2 dimensional layout on top of it. And yet, ask any gifted web author, like Jon Udell, and they will tell you that they often use it in the lazy sloppy intuitive human way that it was designed to work. They just pour in content. In 1996 I was at some of the initial XML meetings. The participants' anger at HTML for "corrupting" content with layout was intense. Some of the initial backers of XML were frustrated SGML folks who wanted a better cleaner world in which data was pristinely separated from presentation. In short, they disliked one of the great success stories of software history, one that succeeded because of its limitations, not despite them. I very much doubt that an HTML that had initially shipped as a clean layered set of content (XML, Layout rules - XSLT, and Formatting- CSS) would have had anything like the explosive uptake.

Now as it turns out I backed XML back in 1996, but as it turns out, I backed it for exactly the opposite reason. I wanted a flexible relaxed sloppy human way to share data between programs and compared to the RPC's and DCOM's and IIOP's of that day, XML was an incredibly flexible plastic easy going medium. It still is. And because it is, not despite it, it has rapidly become the most widely used way to exchange data between programs in the world. And slowly, but surely, we have seen the other older systems, collapse, crumple, and descend towards irrelevance.

Consider programming itself. There is an unacknowledged war that goes on every day in the world of programming. It is a war between the humans and the computer scientists. It is a war between those who want simple, sloppy, flexible, human ways to write code and those who want clean, crisp, clear, correct ways to write code. It is the war between PHP and C /Java. It used to be the war between C and dBase. Programmers at the level of those who attend Columbia University, programmers at the level of those who have made it through the gauntlet that is Google recruiting, programmers at the level of this audience are all people who love precise tools, abstraction, serried ranks of orderly propositions, and deduction. But most people writing code are more like my son. Code is just a hammer they use to do the job. PHP is an ideal language for them. It is easy. It is productive. It is flexible. Associative arrays are the backbone of this language and, like XML, is therefore flexible and self describing. They can easily write code which dynamically adapts to the information passed in and easily produces XML or HTML.

[...] I remember listening many years ago to someone saying contemptuously that HTML would never succeed because it was so primitive. It succeeded, of course, precisely because it was so primitive. Today, I listen to the same people at the same companies say that XML over HTTP can never succeed because it is so primitive. Only with SOAP and SCHEMA and so on can it succeed. But the real magic in XML is that it is self-describing. The RDF guys never got this because they were looking for something that has never been delivered, namely universal truth."

Mon, 22 Nov 2004 13:56:47 +0000

The Next Language

John Lim points to Peter Yared's (former CTO of Sun's application server division) article The Next Language (from September 2003):

"The Java API's grow into a morass of inconsistent and incomprehensible API's, even the most simple things proved to be very complicated.

[...] So let's look at the requirements for today's corporate applications:

  • * Handle XML (dynamic data with fluctuating types) well
  • * Quickly process text into objects and out of objects
  • * Most apps have limited logic consisting mainly of control flow
  • * No need for portability beyond Linux/x86 and Windows/x86
  • * Very thin veneer over the operating system for system services
  • * Tuned for 1-2 processor x86 machines

Given these requirements, Java does not fare very well:

  • * XML data is inherently unstructured and it has to be shoehorned into and out of Java, which is a strongly typed language that does not like new types of objects popping into its applications.
  • * Java is horrific at processing text since it can't manipulate strings directly.
  • * While Java is great for complicated applications, it is not ideally suited for specifying control flow.
  • * Java is a magically portable platform, but there is no longer a requirement for portability other than Linux and Windows.
  • * Since there is no longer a portability requirement, developers want only a very thin veneer over operating system services like sockets, while Java provides a huge virtual machine in between the application and the operating system.
  • * Most J2EE implementations are tuned for 4-16 processor SMP boxes

So if Java does not meet these requirements, what does? Apparently what is needed is a language/environment that is loosely typed in order to encapsulate XML well and that can efficiently process text. It should be very well suited for specifying control flow. And it should be a thin veneer over the operating system.

Most Linux distribution in fact bundle three such languages, PHP, Python, and Perl."

Fri, 19 Nov 2004 11:51:59 +0000

Colophon - Dunstan Orchard's Panorama

Dunstan Orchard on his site's dynamic panorama header:

"The image displayed across the top of the site (for those using CSS compliant browsers) is a 1600 pixel-wide panoramic view from the top of my parents' house, in Dorset. The scene was originally captured as a series of photographs, before being manually traced in Xara X and Photoshop 7 to produce the cartoony version you (hopefully) see here.

There are ninety versions of this panorama, each depicting the same scene under a different weather condition, time of day, and (at night) phase of the moon.

Thanks to an XML feed from weather.com, and some PHP jiggery pokery, the end result is a fairly accurate representation of what my parents see when they look out of their upstairs windows."

Fri, 19 Nov 2004 00:23:22 +0000

Web Usability - Accessible Forms

Roger Hudson, in Web Usability - Accessible Forms, explains:

* "label for and id to associate form elements * <fieldset> and <legend> to group form elements * tabindex to set the tabbing order"

Thu, 18 Nov 2004 11:32:59 +0000


"Stylegala aims to promote, discuss and inspire the web audience in the areas of design, CSS and web standards - combined."

Thu, 18 Nov 2004 11:26:50 +0000

PHP/SWF Charts

"PHP/SWF Charts makes the best of both the PHP and SWF worlds. PHP scripts provide integration, and Flash provides the best display quality.


* Web charts from dynamic data * Live chart updates without reloading the web page * Clickable charts, and drill-down * Simple and flexible chart generation * Quality Flash graphics including anti-aliasing, gradients, blends, etc."

Thu, 18 Nov 2004 11:16:52 +0000

Made in USA

Paul Graham - Made in USA:

"Systematic" is the last word I'd use to describe the way good programmers write software. Code is not something they assemble painstakingly after careful planning, like the pyramids. It's something they plunge into, working fast and constantly changing their minds, like a charcoal sketch.

In software, paradoxical as it sounds, good craftsmanship means working fast. If you work slowly and meticulously, you merely end up with a very fine implementation of your initial, mistaken idea. Working slowly and meticulously is premature optimization. Better to get a prototype done fast, and see what new ideas it gives you."

Wed, 17 Nov 2004 23:47:36 +0000

Delicious Library

"Run your very own library from your home or office using our impossibly simple interface. Delicious Library's digital shelves act as a visual card-catalog of your books, movies, music and video games. A scan of a barcode is all Delicious Library needs to add an item to your digital shelves, downloading tons of info from the internet like the author, release date, current value, description, and even a high-resolution picture of the cover. Import your entire library using our exclusive full-speed iSight video barcode scanner."

Wed, 17 Nov 2004 16:32:49 +0000

OracleEditor.php 1.17

Plugging my own OracleEditor.php project:

I started it in early 2003, and it's being downloaded more than 400 times a month (half of these hits coming from search engine bots, I suspect?). The freshmeat project counts 5,030 URL hits and 26 subscriptions. 40 people have e-mailed me so far regarding this script.

Not impressive, but I'm quite happy that there's actual users out there (besides the people in our own company, and our customers, using it).

In case you want to be notified when a new version is released, click "Subscribe to new releases" on freshmeat.

Wed, 17 Nov 2004 13:54:29 +0000


"The dbacl project consists of a set of lightweight UNIX/POSIX utilities which can be used, either directly or in shell scripts, to classify text documents automatically, according to Bayesian statistical principles."

Mon, 15 Nov 2004 15:52:48 +0000

Language musings

Robert Kaye - Language musings:

"Having gotten used to Python over the last few months, I found myself cursing Java every time I had to do a format conversion. Why do I have to instantiate a number of objects just to convert from a String to an int? First, I have to convert to an Integer, and then I have to convert to an int -- you can't just cast from an Integer to an int, even though logically the are the same thing. Lame. As I was hacking these little annoyances kept bugging me about Java.

[...] Recently, I spent a lot of time looking at Javadocs to find the right conversions between types, and I found that a large portion of the base Java API is made up of functions to convert types -- the API is literally cluttered with all these functions. Ick!"

Mon, 15 Nov 2004 12:57:59 +0000

Simplicity is 'next big thing' in IT

Macworld UK - Macworld UK - Simplicity is 'next big thing' in IT - Economist:

"The Economist Magazine this week has published an IT survey, which declares the single message of simplicity Apple to have preached since its inception as "the next big thing".

"The next thing in technology is not just big but truly huge: the conquest of complexity", the Economist explains. It talks about how "most of us" find technology frustrating, infuriating and sometimes tortuous at times. The title is trying to assess the work done by the IT industry to simplify matters.

The survey looks at two recent consumer-technology successes: Apple's iPod and Google. Writer, Andreas Kluth, said: "Google and the iPod are successful because each rescues consumers from a particular black hole of complexity"."

Sun, 14 Nov 2004 00:43:28 +0000

Mac OS X Tiger: Core Data

Mac OS X v10.4 Tiger: Developer Overview:

"Now in Tiger, Cocoa can manage your data objects themselves through the power of Core Data, providing automatic undo/redo support, additional user interface synchronization, and data consistency, correctness, and speed enhancements when it's time to write to disk.

Core Data gives you the ability to create a description of your data objects. Once defined, Core Data handles most of the heavy work of managing your data objects, both in-memory and on-disk. This allows you to focus on application logic and avoid the infrastructure work. In short, Core Data is a model-driven object management graph and persistence framework.

In Tiger, Core Data will support three different kinds of files for storage of data:

* A text-based XML file format * A better performing binary file format * A high-performance, SQLite-based database file format"

Fri, 12 Nov 2004 17:19:38 +0000

Sharedance - Centralizing data and PHP sessions

"Sharedance is a high-performance server that centralize ephemeral key/data pairs on remote hosts, without the overhead and the complexity of an SQL database.

It was mainly designed to share caches and sessions between a pool of web servers. Access to a Sharedance server is trivial through a simple PHP API and it is compatible with the expectations of PHP 4 and PHP 5 session handlers."

Fri, 12 Nov 2004 17:15:26 +0000