November 2002
Nov. 1, 2002
Doc’s thoughts on Linux Lunacy
Doc Searls is back from the Linux Lunacy cruise, and has been talking about the future of the software industry in What I learned on Linux Lunacy:
[... 161 words]JSP bits and pieces
I’ve been reading up on the Jakarta Struts MVC framework, courtesy of Simon Brunning. Struts, an open-source MVC implementation is a great starting point, and the ONJava JSP/JSTL series (also found via Simon) were very informative as well.
Nov. 2, 2002
Excellent introduction to XSLT
Rescuing XSLT from Niche Status is A Gentle Introduction to XSLT through HTML Templates
. It is something of a hybrid article, consisting of a discussion of the problems involved with both teaching and learning XSLT followed by an excellent (if somewhat brief) tutorial covering the most important XSLT tags and concepts and how they can be used to convert a simple XML document in to XHTML.
Sexy DHTML
The trend for DHTML using structural markup and the DOM continues with Using Lists for DHTML Menus. Dave Lindquist uses identical XHTML markup combined with two different sets of JavaScript and CSS to implement both a set of dropdown menus and an expandable, tree style menu. The code is standards compliant and remarkably lightweight (menuExpandable.js weighs in at less than 20 lines) and fully accessible thanks to intelligent use of the accesskey attribute.
[... 99 words]Joe Gillespie does CSS
Joe Gillespie has been introducing CSS to the readers of Web Page Design for Designers.
[... 210 words]Nov. 3, 2002
Inline XML
Inline XML explains how different XML languages can be embedded in XHTML documents using namespaces, and how they can then by styled using CSS.
OperaShow
It’s been a while since I last looked at 30 Days to becoming an Opera Lover so it was a nice surprise to see that not only is the series now complete but Tim has started up blog to continue the momentum. Flicking through the days I hadn’t read before the single feature that impressed me most was OperaShow, described on Day 17. OperaShow is a variant of the full screen mode present in IE and Mozilla, but with the added ability to run PowerPoint style presentations. This is implemented using CSS and the projection media type, in conjunction with the page-break-before : always;
CSS property. Opera defaults to rendering the page normally (with whatever screen/all stylesheet the page author has provided) but as soon as you press F11 the projection style sheet comes in to effect. PgDown / PgUp can be used to cycle through the “slides” and the whole thing works just like a PowerPoint presentation.
Zend re-design... terrible!
Zend (the commercial company behind the PHP scripting language) have launched a redesign of Zend.com. My verdict on the new design ... terrible.
[... 161 words]Nov. 4, 2002
Blogroll with a twist
Spotted in my referrals today: ReadingEd.com. A promising new blog, well worth checking out for the innovative “Outside Reading” panel which uses the DOM and some very funky javascript to pull in the RSS feed (via a PHP proxy) of the selected blog and load it in to a panel which appears on the left hand side. Browsers lacking in DOM support are served up standard links to the blog in question. The feature is explained in a bit more depth here.
Nov. 6, 2002
Girlfriend as a case study
I’ve been helping my girlfriend recreate her site using CSS and structural markup. She’s new to web design and has been taking to CSS like a duck to water—as a veteran of Microsoft Word globally defined styles come to her naturally and she took very little time to cotton on to the importance of seperating presentation from content. I’ve shown her tables as well but she isn’t really interested as she sees CSS as a much better solution for general presentation. I’m hoping to help run an HTML/XHTML/CSS training course at the University early next year with a heavy emphasis on structural markup, standards compliance and accessibility so it’s great to have a guinea pig to play with :)
[... 201 words]Asilomar Institute
The Asilomar Institute for Information Architecture—very promising organisation, great site but I have to admit I’m not too keen on the name (though I’m sure it will grow on me). The highlight of the site for me has to be the 25 Theses, which provide an excellent condensed description of what IA is and why it is necessary. The site lead me to make my first impulse buy in quite a while, so with a bit of luck from Amazon Christina Wodtke’s Information Architecture: Blueprints for the Web should be with me in the morning.
Funky new use for CSS backgrounds
Jeffrey Zeldman points to the newly redesigned v-2 Organisation site, which features a clever technique whereby a large background image is displayed “widescreen” style with different amounts of the photo visible depending on the resolution / width of your browser. Try doing that with standard tables ;) The (unaltered) colours in the photograph cleverly match the colours of the site itself.
Hide Mozilla Flash ads
Michel: How to hide Flash banner ads in Mozilla using a few lines of CSS added to the userContent.css
file. A great example of CSS2 selectors at work.
CMS roundup
It seems CMS news is like buses—nothing for weeks, then three items come along at once. Jeremy Zawodny has been very impressed by Bricolage, an Open Source CMS built on mod_perl, the HTML::Mason template system and PostgreSQL. Meanwhile, Scott Andrew has been praising liveSTORYBOARD on the WaSP site. liveSTORYBOARD is a hosted solution which promises ease of use through a web based interface and fully standards compliant output (hence the plug on WaSP). Finally, Think Secret have broken the news that Macromedia are soon to announce Contribute, a new CMS built on top of their popular Dreamweaver WYSIWYG editor (via webgraphics).
Nov. 7, 2002
aqTree 3
Stuart has released aqTree3, an upgrade to previous aqTree versions which takes in to account some of the best ideas from both Eric Meyer’s pure CSS menus and Dave Lindquist’s recently released drop-down / expandable trees. aqTree’s great strength is that it requires no additional markup at all on top of the nested lists, other than a class definition which the script will pick up via the DOM. All presentation and positioning is now controlled with CSS applied to the list structure (previous versions of aqTree used the DOM to transform the list in to DIVs) and Stuart has included an extra script, aqdd, to handle drop down menus as well. The article includes a mini-essay on how elegant DHTML should be implemented, which is well worth reading.
Validating weblog entries
webgraphics have an interesting discussion running about the need for a weblog entry XHTML validator. Dave Lindquist suggests using his JavaScript XML Parser to perform validation on the client side, which seems like an excellent solution. I already use PHP’s XML parsing functions on this blog to check my entries are valid XML when I post them (and extract links for use with my pingback client) but additional client side validation would save the round trip to the server. The discussion also covers the idea of using the W3C’s validator to check entries—as soon as they finalise their XML interface (as used by my validator web service) I can see a lot of interest forming in this kind of automated validation.
Javascript XML parser
I’ve added Dave Lindquist’s Javascript XML parser to my blog entry form using the code he posted in the discussion on webgraphics. It works an absolute treat—it even pops up an alert message telling me what is wrong with the post (usually ’End tag does not match opening tag’) and won’t let me submit the form until I have fixed the error. The actual XML parsing library is a truly impressive piece of work, despite the lack of documentation. Dave suggests that it is pretty much obsolete now that most modern browsers have a built in XML parser accessible through scripting, but his parser is easily fast enough for my purposes.
Nov. 8, 2002
Web services in action
All Consuming is another one of those information-about-weblogs sites, but with a heavy emphasis on books:
[... 252 words]URLs matter
Jeremy Zawodny talks about URLs, and describes a recent internal Yahoo discussion over how the URLs for their stock tickers should work. His points in favour of short, simple URLs are particularly worth noting:
[... 121 words]Content to code ratio
Adrian Holovaty has been investigating the content-to-code ratio of various news sites compared to various blogs. Unsurprisingly the blogs win hands down due to the tendancy to use CSS to separate structure from presentation. Adrian has put together a PHP script to calculate the ratio which can be accessed online or downloaded for personal use. Incidentally, from the comments in the code I learnt that PHP’s strip_tags()
function neglects to strip the --> at the end of an HTML comment.
Object persistence
Simon Brunning talks about persistence, and how much more complicated it is now that objects are involved. The best explanation I’ve seen of how objects and relational databases can be used together was in Martin Fowler’s Patterns of Enterprise Application Architecture, but now that the book has been published he has removed the online version. IBM’s DeveloperWorks has a new article up describing persistence management in Python, which talks in details about Python’s native serialization method (pickling) but only mentions ZODB in passing. I agree with Simon—object databases just don’t seem as elegant a solution as RDBMSs. Object databases may provide persistence but they don’t seem nearly as powerful as relational databases when it comes to flexibility of accessing data.
Clean URLs
Handy bookmark for bloggers who wish to validate: cleanURL. It gives you the URL of the current page with all &s replaced with &, ready to be posted in to a blog entry. Unescaped ampersands are one of the most common causes of invalidity on my blog so this is going to come in very handy.
Nov. 9, 2002
Dspace
Dspace (via Swannie) is an open source platform that helps institutions archive, manage and distribute “digital works” over the long term. It appears to be a variant on the idea of a content management system, but with a heavy emphasis on academic works and multiple formats. The system is implemented in Java (with a JSP front end) and uses a PostgreSQL for the metadata (based on Dublin Core) and relataional information. The assets can be stored in a variety of ways (filesystems, WebDAV, database BLOBS are all mentioned) via an abstraction layer known as a “bitstream”. The system was developed by MIT and HP and has gone live for use by MIT’s academic departments. Interesting stuff.
Standards compliant Flash
And here it is: Flash Satay—Embedding Flash while Supporting Standards. It involves jumping througg a few hoops but the end result is a nice chunk of standards compliant code that can be used to embed flash movies without invalidating the markup of a page. The article also includes a nice example of how to use the object
tag to serve up alternative content—by nesting an image (or other HTML) inside the tag browsers that do not support content with a mime-type of application/x-shockwave-flash
will have something to display in place of the Flash file.
PHP4 and Apache 2 on Windows
I’m now running PHP 4.3.0pre2 and Apache 2 on my Win98 machine, thanks mainly to this excellent tutorial on installing PHP and Apache 2 on Windows. The PHP manual’s Servers-Apache page also has a bunch of useful installation advice for Apache 2 in the user comments.