Introduction About Site Map

XML
RSS 2 Feed RSS 2 Feed
Navigation

Main Page | Blog Index

Archive for the ‘Programming’ Category

Dangers of Abstraction

Significant news (particularly to ‘WordPressers’) have come out from Matt Mullenweg, Co-Founder and Lead Developer of the open-source publishing tool some us know as WordPress. In his recent message he announces that TinyMCE, a JavaScript-based WYSIWYG front-end to HTML code, will be incorporated and set as default editing mode in future releases of WordPress (version 1.6).

TinyMCE
TinyMCE in action

There is a real danger in moves such as this one. Even though ‘raw code mode’ should still be available, only few among the large ‘WordPress pool’ will opt for it. By hiding details from the user, a certain level of ignorance is permitted and standards begin to be compromised and degraded.

As one example of the very principle, Google Groups allow people to participate in UseNet without any knowledge of UseNet and without news reading software. The result is poor netiquette, the many faces of which include top-posting (replies at top of threads), multi-posting (duplication of messages across groups without indication of this) and spam. Some Google Groupies have become hit-and-run guests who ask a single question; once happy with the answer/s, not even a thank-you. As a matter of fact, this drove many newsgroups moderators as far as killfiling (removing) all messages posted via Google Groups. Needless to say, this reflects badly on Google.

As yet another example, it is not entirely rare for Average Joe to save horrific Microsoft Office documents as HTML and then publish the Microsoft-only HTML code on the Internet, thereby breaking the Net. Likewise, a certain proportion of Web programmers and developers bother to test their scripts and sites only under Internet Explorer, which is notorious in terms of standards compliancy and support.

It is rather worrying to know that hundreds of thousands of WordPress-driven sites will wind up automatically generating HTML code. In Matt’s defence, the WYSIWYG tool is said to produce “top-notch” HTML output. Knowing that Matt is also a real standards fanatic, I trust him when he approves the the quality of this WYSIWYG package, which was very recently added to WordPress.

I would be a hypocrite not to admit that I use LyX, a cross-platform front-end to LATEX, when composing my thesis. The result of PostScript/PDF compilation, however, does not suffer from unoptimised source.

Interfaces Commonality

KDE menu bar
KDE‘s Konqueror menu bar
Firefox menu bar
Firefox menu bar
Firefox is Mac OSX-themed (Download/install)

It is no secret that various software vendors use similar conventions for menu layouts, icons and so forth. As an instance, have a look at the one-to-one correspondence in the screenshots above (Edit, View, Go, Bookmarks, Tools, Help) where even menu accelerators are identical. It is inevitably so because consistency needs to prevail. Users who moves from one piece of software to another must be able to re-orientate quickly by identifying familiar phrases and labels (terminology) or images.

What impact does that have on innovation and diversity though? The most rational interface will not necessary make it easiest for the user to adapt to. For example, Windows users are accustomed to going to “Start” when they want to End the current session. Is that not preposterous? Yet, if this convetion gets changed, this will probably result in confusion.

Software that is most usable is one which implements control interfaces that most users are familiar with. Familiarity of the novice users is influenced by high-impact software such as Windows or Photoshop. Due to the nature of this trend, imitation becomes easier to claim. In fact, this would be one reason for the scare among anti-software patents activists. The main sufferer would be the user who needs to master different distinct interfaces and ends up in a lock-in situation, whereby migration between software packages become an ardonous experience.

Finally, let us consider a practical example where the damage of patents is apparent. Xerox sued Palm for the use of Graffiti — a one-stroke method for inputting text, which they claimed they had patented. As a result, Graffiti 2 (see criticism) emerged so Palm users had to throw away years of experience, learning a new ‘handwriting’ method, which involved 2 strokes rather than just one.

Palm Bliss

Palm Bliss

For quite some time I have been wanting to create a CSS Zen Garden style. This morning I spent about 2 hours designing a dark layout as I could no longer resist my desires. Shown above is a screenshot (Firefox 1.0.4 under Linux) which you can click to enter the actual page. As for the translucent PNG element at the top, I suspect that Internet Explorer would not render it properly. Support for transparency with a decent colour depth has always been poor in Internet Explorer (see related item).

I named the style Palm Bliss, which like any other hastily-chosen title, is a stupid name. All graphics were worked on under The GIMP version 1.2.3. The style is still considered “work in progress”, but I could not help exposing it already (despite its premature state). Knowing my past experiences, it will remain in its current form forever, never to be worked on again or even submitted. Nevertheless, I truly feel as if it was something that I had to do in order to challenge myself.

You may also wish to see an older item about Zen Garden galleries.

Open Source Content Management Systems

CogwheelsThe latest generation of Web development involves tools such as the one used for managing this Web log. Although many pages continue to be composed in the level of raw HTML code or using What You See Is What You Get (WYSIWYG) tools, their days appear numbered. Quite simply, both are antiquated methods of composing for the Web since development is usually done at the remote end — the user’s end. Both content and tools (software) reside on the user’s side. Content then needs to be transferred to the Web server and software is not guaranteed to work on any platform.

In the past few years, many free content management systems (CMS’s) have emerged. They typically re-use GPL‘d components for a more rapid development process, which is the power of Open Source. The result is the existence of many packages and some prominent ones are listed below:

There is no “best tool” as it all depends on the task in question and the nature of the Web site to be built. However, Plone is very mature, WordPress is highly user-friendly and PHP-Nuke is versatile. The best thing to do is visit the sites and view demonstrative flagship sites that run on each CMS package. A quick glance will give all the impression that is needed.

WordPress Printer-Friendly

Printer-friendly version

It is relatively simple to incorporate valid printer-friendly versions into WordPress (see above for example). I coded up the feature early this morning; it did not require much time or effort. This involved little more than stripping of styles as well as other heavy features which contributed to clutter. More details and code at the hacks and themes page.

Contextually-related: PDF version of WordPress posts

Firefox Mac

Having gathered statistics, I estimate that my Firefox theme adaptations had over 100 downloads from this domain. The more popular of the two themes is the Mac OS X clone (shown below). It can be downloaded or directly installed. Enjoy!

Note: this theme should be compatible with all platforms

Firefox Mac

Click image to see it full-sized

Deer Park

Deer Park

Caution Firefox enthusiasts

There is an alpha version of Firefox, codenamed Deer Park, which is used to test future releases of the Mozilla browser. The following page explains a little further about the purpose of the package. My advice is to avoid the use of Deer Park as it interacts badly with your Firefox profile and can conflict with your current settings, extensions and themes in particular. The Deer Park page clearly states:

Deer Park Alpha 1 is intended for web application developers and our testing community. Current users of Mozilla Firefox 1.0.x should not use Deer Park Alpha 1.

Retrieval statistics: 21 queries taking a total of 0.134 seconds • Please report low bandwidth using the feedback form
Original styles created by Ian Main (all acknowledgements) • PHP scripts and styles later modified by Roy Schestowitz • Help yourself to a GPL'd copy
|— Proudly powered by W o r d P r e s s — based on a heavily-hacked version 1.2.1 (Mingus) installation —|