Web Tech

  • : Function split() is deprecated in /hsphere/local/home/guruj/guruj.net/modules/filter/filter.module on line 1200.
  • : Function split() is deprecated in /hsphere/local/home/guruj/guruj.net/modules/filter/filter.module on line 1200.

Seamonkey 1.1 Calendar extension

So I don't lose this -- Howard Chu has posted a Calendar extension compatible with SeaMonkey 1.1:

http://www.highlandsun.com/hyc/mozilla/calendar-win32.xpi

Link Bundles (aka multi-linking)

Tim Bray recently ran into the problem of choosing between resources when linking information, and wondered if the best option was to not choose, and instead link to multiple things from a single resource.

Having recently been reading about the benefits of Unobtrusive JavaScript (also known under the Hijax moniker), I thought I would try and build a solution that degrades gracefully. My criteria for success were:

Classes using R3

[For the basics of R3 syntax, see the R3 Draft.]

One of the primary things which makes semantic markup useful is that it allows inferences and deductions based upon knowledge. For example, if I know that John is the father of Susan, and Greg is the brother of Susan, then I can create semantic rules like this:

  A brother is a male sibling
  The father of a sibling is the sibling's father.

and deduce from these rules that John is Greg's father.

R3 allows for these kind of relationships to be expressed through using special nodes that are known to belong to an ontology schema. R3 syntax remains exactly the same except for the introduction of a <template/> tag, which defines spaces for placeholders which need to be filled in accordance with certain critera for a relationship to hold. For example:

R3: Reasonably Readable RDF (draft)

[Read my earlier post to understand why I object to RDF/XML, and the need for this replacement.]

R3 is an RDF dialect that is intended to be an isomorphic replacement for the RDF/XML dialect. In addition to the base syntax, R3 may be extended to allow inferences and relationships to be drawn on the basis of class (an alternative to the W3C Web Ontology Language (OWL)).

While a RELAX NG schema is planned, at present the language is primarily defined through a series of examples:

The getting of wisdom

Although very verbose, The REST dialogues discusses why the REST paradigm provides important benefits when writing web applications, and how SOAP and/or RPC web applications can be rewritten to utilize REST principles. It's only up to Part 3 (of 9) -- I'm going to keep an eye out for the next one!

On much the same note (but much shorter), S stands for Simple pretty concisely sums up why I don't want to touch SOAP with a 20 foot pole.

Using UL to create wrapping image galleries

One of the most annoying things about HTML is that it is not easy to create an arbitrary set of objects which automatically wrap to the next line once the screen width is filled.

It turns out that the best way to do it is a combination of unordered lists (the UL tag) and some CSS. I've known about this for a few years now, but I keep forgetting how it's done. So, for posterity, here is a sample suitable for use in image gallery layouts.

Google feeds from anywhere, without a Google Account

Google Reader gets better and better by the day. One of its newer features is the ability to create a "clip" of any shared RSS feed and embed it into your web site.

The problem is that you have to use your Google Account to subscribe to the account, tag it, and then share that tag. This is a problem is you are wanting to monitor frequently-modified RSS feeds that aren't strictly "news" -- eg. module updates, weather forecasts, and so on.

Well, it's not official, but by tinkering with the JavaScript code a little, you can build a set of Google scripts that will convert any RSS feed into a nice little package. For example, this displays the latest forecast for Canberra, Australia:

(Courtesy of rssweather.com)

The URL format is pretty straightforward to decipher. Use the Google Reader interface if you want to experiment with more options.

UPDATE: Here's the Google wizard for the clip creator. You will need a Google Account to access the page, though.

Yahoo! Mail Beta rocks

I know I can be a bit of a Google fanboy, so here's props where it's due: the new Yahoo! Mail Beta is really, really good.

Like really good:

  • AJAX-y features that make the app more usable rather than just being flashy (awesome drag and drop)
  • Tabbed interface that allows you to click on actions and different folders without losing that email you spent 20 minutes composing

It's effectively a DHTML Outlook clone -- probably even better than the Outlook 2003 webmail interface, and that's sayi

Rob Enderle is an Idiot

I've known that Rob Enderle has had a bad reputation for some time. In most technology circles, people see him as being (a) a Microsoft shill; and (b) hopelessly inaccurate.

But his "review" of IE7 takes the cake. In the space of just 1200 words, Rob trots out the following doozies:

  • "[E]xploits were written against the Mozilla based browsers. Viruses and phishing style attacks worked equally well..."
    Um ... what? Most flaws were theoretical and very rarely, if ever, exploited in practice. The Mozilla coding community has without exception responded quickly to address any flaws discovered. And let's not forget, without ActiveX support Mozilla instantly removes a large chunk of their exposure to security flaws.

Other People's Code

This is a list of the best frameworks, libraries and toolkits I know about for the web in 2006. Obviously, this is entirely a personal opinion but these codebases have annoyed me the least while giving me the best outcomes:

Drupal (PHP) - A flexible content management framework with robust security, modularity and taxonomy features. More effort to get a working solution but often easier than taking an "out-of-the-box" product that really isn't designed to be tinkered with ... and tinkering with it.

Think of Drupal as "website lego" whereas a package like Joomla is more of a remote control car in a boxed set.

Syndicate content