Mylos

Migration

After three months of development, I have finally migrated from Radio to Mylos, my home-grown weblogging software. It is far from finished, but there comes a point where you must just do it (the fact my laptop’s hard drive died on me was also a good catalyst). I have tested it with major browsers and RSS aggregators, but if you notice any errors, specially on the RSS feed, I would greatly appreciate it if you could email them to me.

Mylos

I switched to WordPress at the end of 2009 for the reasons expressed elsewhere, then to Hugo in 2017, which is going back in the opposite direction, and this entry is here for historical purposes only.

Mylos is my home-grown weblog management software. I wrote my first web pages by hand in Emacs and RCS in 1993, but stopped maintaining them in 1996 or so. I only restarted one with Radio last year. After a year of weblogging, however, I find I am frustrated by the limitations of Radio as well as its web-based user interface (I am one of those rare people who prefer command-line user interfaces and non-WYSIWYG HTML editors). I guess I could have extended Radio using UserLand’s Frontier language it is implemented in, but I have no interest in learning yet another oddball scripting language.

I decided in April 2003 to roll my own system, implemented in Python. In my career at various ISPs, I had to kill home-grown content-management system (CMS) projects gone awry, and I was certainly aware that these projects have a tendency to go overboard. Still, it has taken me three months of (very) part-time work to get the system to a point where it generates usable pages and imports my legacy pages from Radio without a hitch.

The implemented requirements for Mylos are:

  • Migration of my existing Radio weblog entries and stories (done, but not in an entirely generic fashion, is theme-dependent)
  • All pages are static HTML, no requirements for CGI scripts, PHP, databases or the like
  • Implemented and extensible in Python
  • Separation of content and presentation using themes (based on Webware Python Server Pages and CSS)
  • Support for navigational hierarchy
  • Articles are stored as regular files on the filesystem where they can be edited using conventional tools if necessary, no need for proprietary databases
  • Extensible article metadata
  • Atom 1.0 syndication, with separate feeds for subcategories
  • Use only relative URLs in hyperlinks to allow easy relocation
  • Automatic entry HTML cleanup for XHTML compliance
  • A CSS-based layout where the blogroll doesn’t wrap around short bodies (e.g. on permalink pages for short articles).
  • reasonable defaults, e.g. don’t try to create a weblog entry for an image that is colocated with an article, just copy it
  • Built-in multithreaded external link validation.
  • Automatic URL remapping (/mylos/ becomes relative to the Mylos root, relative URLs in an entry are automatically prefixed in containers like home pages).
  • Ability to review an article before publishing
  • Lynx compliance
  • Automatically cache external images in weblog entries in case they disappear (but do not use them as such due to potential copyright issues)
  • Set robots meta tag so only permalinks are indexed and cached by search engines, for better relevance to search engine users (albeit at the cost of lower rankings for the home page).
  • Sophisticated image galleries fully integrated with the navigation
  • Automatic code fragment colorization using Pygments

These features are planned but not yet implemented:

  • Keyword index.
  • Enhanced support for books via Allconsuming and Amazon.
  • Automated dependency tracking to re-render only the pages affected by a change (via SCons)
  • Multi-threaded rendering (via SCons)
  • Automatically add height, width and alt tags to img tags
  • Auto abbreviation glossary as tooltip help using tags
  • Typographically clean results, as done by SmartyPants
  • Feedback loop via on-page comments
  • Notification of new comments by email
  • Ability to promote a weblog entry to a story if it reaches critical mass

These features are “blue-sky”, don’t hold your breath for them:

  • Updates by email
  • User-submitted ratings for articles
  • Support for multilingual weblogs

Features thet are not planned at all (anti-requirements) include:

  • Synchronization or upload to server – rsync does this far better
  • Text editor – use $VISUAL or $EDITOR, whether Emacs, vi, or whatever
  • Web user interface – Radio’s web interface has very poor usability in my personal opinion, and this is due to the fact it is web-based, not any fault of Userland’s
  • RSS 1.0 – RDF seems like an exercise in intellectual masturbation
  • Blogger API or similar – although someone else could certainly write a bridge in Python if needed

The software is currently not in a state where it can be used by anyone else. I am not sure if there is any demand for such a tool in any case, if so, I would certainly consider documenting it better and making a SourceForge project out of it.

By the way, the system is named “Mylos” after a city in the magnificent illustrated series “Les Cités Obscures” by Belgian architects and writers Schuiten and Peeters, more specifically L’Enfant Penchéee

Cover for L'Enfant Penchée

The Cognitive Style of PowerPoint

Edward Tufte

Graphics Press, ISBN: 0-9613921-5-0 Publisher

Edward Tufte is probably the single most influential authority on communicating complex information graphically. He pretty much wrote the book(s) on the subject in his classic series The Visual Display of Quantitative Information, Envisioning Information and Visual Explanations.

In this short booklet (24 pages), he devastatingly takes to task the shoddy quality of Microsoft PowerPoint presentations, and makes the case this information poverty is intrinsic to the tool itself, due to its limitations such as low resolution (cannot use complex data), poor typography, strong bias towards hierarchical outlines and fluff over substance. In Tufte’s own words:

The PP slide format has probably the worst signal/noise ratio of any known method of communication on paper or computer screen.

This echoes one of the reasons why Sun Microsystems banned PowerPoint slides, their abysmal information per kilobyte ratio. More worryingly,

In day-to-day practice, PowerPoint templates may improve 10% or 20% of all presentations by organizing inept, extremely disorganized speakers at a cost of intellectual damage to 80%.

The booklet is short and sweet. Tufte’s wicked sense of humor comes out in comparisons to Stalinist propaganda or in a set of slides by Peter Norvig showing how PowerPoint could have denatured the Gettysburg Address.

In my experience, PowerPoint slides are mostly used to vehiculate marketing garbage presentations. As such, there isn’t much content to damage in the first place, and the act of showing a PowerPoint presentation is in itself an excellent cue to the audience that they can do their crossword puzzles, tick off their grocery lists on their Palm Pilots or whatever other discreet way is at hand to salvage otherwise completely wasted time.

Tufte’s suggestions for improving the quality of presentations (give high-content handouts, eschew PowerPoint for anything but projecting low-resolution images, and above all, do not read out slides) are mostly useful for scientific or engineering presentations, which is probably a tiny proportion of PowerPoint’s market.

Kicking the tires on Firebird

I installed Mozilla Firebird today. As I am encouraging my father to migrate away from the stale IE (since Microsoft obtained near-monopoly status, that browser hasn’t been updated to include such vital features like tabbed browsing), and I have already switched to Safari on my Mac, I also decided to have a new look at Firebird (I had tried an early version of Phoenix, 0.3 I believe). Firebird (formerly Phoenix, soon to be renamed Mozilla Browser) is based on Mozilla, but is less resource-intensive because it does not try to be all things to all people and is just a browser (and not a HTML editor, email program, newsreader, IRC client, dessert topping and floor wax). Firebird will be the official Mozilla browser, replacing the current Mozilla suite in the medium term.

The core rendering engine is the same, and it uses the same XUL cross-platform UI toolkit, so migrating from Mozilla is relatively painless. Bookmarks are compatible. You can even copy over saved passwords, albeit at the cost of removing strong cryptographic password protection on them. To do so, reset the Master password to empty, uncheck the “Use encryption when storing sensitive data”, and copy a file called XYZ.s from your Mozilla profile to your Firebird profile, where XYZ is a random series of digits, for more information see this article.

First impressions:

  • It certainly loads faster.

  • It honors the Windows default mail and newsreader settings, so when a mailto: URL is encountered, it starts Outlook for me as I would like it to, not the half-baked Mozilla mail client. Big plus!

  • The toolbars are customizable

  • It does not yet have the DOM inspector and Venkman JavaScript debugger, both very useful for web development, but they will eventually be available as extensions

  • No annoying download manager to clean up, instead, a simple download box like IE and Netscape 4

  • With a few simple changes to the config files, ads and popups are blocked without having to install a blocker such as WebWasher.

  • The “Add bookmarks” command opens a dialog with the complete bookmarks folders hierarchy flattened into a single list (as opposed to a Tree control in Seamonkey). When you have a bookmarks hierarchy as large and complex as mine, this is unusable. I could use the bookmarks sidebar instead, but a more efficient way is to drag-and-drop into the menu, in a way reminiscent of how the Windows Start menu can be rearranged. Neither method is as efficient as Netscape 4’s “File as” functionality, but this comes close.

  • The tabs don’t quite look as nice as Seamonkey’s. You do not have the ability to add a group of tabs as a single bookmark, but you can add them as a bookmarks folder, and all bookmarks folders havean “Open in tabs” option. Gain some, lose some.

  • Bookmark keyword searching is amazing. For example, I can search IMDB for Hank Azaria by just typing “imdb hank azaria in the URL bar. Admittedly, Seamoney had that capability as well.

  • Bookmark separators can have names, which makes for cleaner organization of bookmarks when subfolders are overkill.

I will try it a little bit longer, but I think I might well migrate to Firebird as my primary browser.

The true cost of externalities

Economists use the term “ externality” to describe a situation where economic agents’ decisions are distorted by the fact they do not have to pay for some of the costs of their actions. This is usually addressed by regulation. The textbook example is pollution, but I find security to be at least as interesting.

In the US, the level of security associated with credit cards and credit reporting is abysmal. Most of Europe has switched to smart cards for their credit cards over a decade ago, leading to a much more secure system for offline purchases (which must be authenticated by the smart card and a PIN), rather than easy to tamper magnetic strips (which are kept, to allow visiting US tourists to make purchases). As the PIN code must be entered by the cardholder, a waiter in a restaurant verifies the card at the dining table and does not have the opportunity to engage in skimming.

There is usually no national credit bureau equivalent to Experian, Equifax or Trans Union in most European countries, because these would fall afoul of privacy laws. For this reason, credit card fraud is much rarer in Europe than in the US, and identity theft is almost unheard of.

In both cases, the externality is lax security, leading to lost time for consumers, whether simply an annoyance (credit card fraud) or a serious nightmare (identity theft). Credit reporting services do not bear most of the cost of identity theft, the hapless victims do. For online purchases, merchants are liable for fraud they have limited means to detect, and to add injury to insult, they also have to pay fees for the chargeback. Credit card companies figure the cost of processing claims and absorbing what little fraud they are liable for is less than the cost of upgrading the whole card reader infrastructure to use smart cards. They also think keeping perfunctory verification procedures will reduce barriers to impulse spending and thus increase profits.

They can do this, of course, because industry lobbying groups have been very effective at defeating consumer-friendly legislation in Congress or state legislatures. The time for action has come, however, because credit card fraud is now a primary source of funds for terrorists, whether abroad or in the US. To quote an interesting article in The Economist, it seems Al-Qaeda sometimes acts as a kind of venture capitalist for terror:

Units of his organisation are believed to raise money through financial and other sorts of crime. For example, Ahmed Ressam, an Algerian who plotted to bomb Los Angeles airport but later co-operated with American authorities, says he was given $12,000 of seed-money to set up his operation. When he asked for more cash, he was advised to finance himself by credit-card fraud.

For the sake of all, the credit industry cannot be allowed to continue in its complacent ways any more.

Updated 2003-06-02 following comments from “Saffiyya” regarding merchant liability