Archive for January, 2006

Introduction
Welcome to the Seagull Framework project, created and maintained by Demian Turner and the Seagull community. Seagull is an object oriented framework written in PHP that focuses on best practices, clean code and reusable components. The core libraries are free for you to use in your own projects and a number of modules developed by the community are also available. The design goals of the project play an important role in the code’s direction as does Open Source philosophy. Since it’s the code that sells a framework, please take a look at some code examples to see what’s on offer.

(Shanti mentioned this in our conversation tonight, looks pretty impressive. I like how it uses PEAR and seems to be all-in-all pretty well thought out. Of course like anything, the proof will be in the pudding.)

Like it? Share it:

Really nice article for all you developers out there about good coding practices and specifically the issue of letting go when the time is right.

There’s plenty of information out there about how to write code. Here’s some advice on how to delete code.

The best way to delete code

This may seem obvious, but I guess it isn’t, because of the variety of other ways developers have of deleting code. Here’s how to delete code:

Select a section of code in your editor, hit the backspace key, and be done with it.

Most developers don’t like getting rid of stuff. They want to keep chunks of code around in case they need them again. They worked hard to write that chunk of code. They debugged it, it works. They don’t want to just throw it away.

These developers want to keep their old code around, and they do it by disabling it in some way: commenting it out, conditionalizing it, or just not calling it anymore.

To those developers, I say, “Use the source (control), Luke”. A source code control system (like CVS, Perforce, or Subversion), means you never have to worry that something is gone forever. CVS will have the old code if you need it again.

If you don’t have a source control system (!?!?!) or just don’t want to be bothered digging back through the revisions, then copy the chunk of code to a separate file some place, and save it away. But don’t leave it where it doesn’t belong: in your source code.

Various people have, over the last few years, done studies into the popularity of authoring techniques. For example, looking at what HTML ids and classes are most common, and at how many sites validate (and yes, we know that we’re not leading the way in terms of validation).

John Allsopp’s study is the most recent one we’re aware of, where he looked at class and id attribute values on 1315 sites. Before that, Marko Karppinen did a study in 2002, looking at which of the then 141 W3C members had sites that validated; in 2003 Evan Goer did a study into 119 Alpha Geeks’ use of XHTML; and of course in 2004 FranÃ§ois Briatte did a study covering trends of Web site design on 10 high-profile blogs. In addition, in the last year, microformats.org contributors have done a lot of research into the use of class and rel attributes, amongst other things, in their pursuit of bite-sized reusable semantics. We are also aware of some studies being done by for the Mozilla project, covering thousands of pages.

We can now add to this data. In December 2005 we did an analysis of a sample of slightly over a billion documents, extracting information about popular class names, elements, attributes, and related metadata. The results we found are available below. We hope this is of use!

Thank goodness we can all now see how “normal” our coding practices are, as compared with… a lot of other people who make websites.

Check out all the cool SVG graphs (Firefox 1.5 is recommended for viewing them.)

Like it? Share it:

So, after reading on Slashdot about the hot new Opera Mini web browser I just HAD to go and try and download it. To my Samsung i300 Palm phone. Which is conspicuously missing from their supported devices page.

I should have known better.

I mean, I already HAVE a graphical web browser on my phone (albeit a somewhat crappy one that was supplied as a replacement for the version of Blazer that originally came with the phone). So it’s not like I really NEEDED this software from Opera. I kind of thought, well, they have another Palm device (the Palm Tungsten C) listed, so maybe my phone will work, and well, Opera is pretty cool, right? And maybe their new browser will be better than the one I’ve got right now…

So, I dutifully browsed to the http://mini.opera.com address using my phone’s browser. I clicked the link to download the application. I clicked Yes to say, yes, I really really want to download this. And thats when, once it got mostly through downloading (I think…) things went TERRIBLY WRONG.

As in, now, my phone won’t boot.

It’s bricked. As in, I can’t even HARD RESET (due to another issue, totally unrelated to this of course, the fact that the ONE KEY on my phone that DOESN’T WORK ANYMORE is the freaking UP key, the specific key that you NEED to press in order to DO a hard reset. Gaaaaaaaaaaaaaaaaaaaaaaaaaaaaa!

So, now I’m waiting with the battery taken out, hoping that it will run out of it’s internal reserve of power that lets it remember things so that it will forget everything and play nice again so I can resync it with the lappy.

This is the error message that I get when I try to boot the phone, happens during the Initializing Phone… sequence:

Fatal Alert
TapiClientGlue.c, Line:112, null pointer use.
Reset

Let this be a lesson to you — sometimes, even when you think that the rules and “supported hardware” lists don’t apply to you… they do.

Guess it really is time for that Treo 650, huh. And yes, I did submit a bug report to Opera… Might be a good one for their FAQ.

Like it? Share it:

May have to try this out, cool how Mozilla can be extended. I wonder if it works with Firefox too?

Mozilla-based Spiders Version 0.0.1.7

Author Bob Clary
Created 2004-07-10, Modified 2005-12-14

Web Spider applications have a multitude of possible applications ranging from search indexes, web site quality assurance testing to testing browser implementations. This article introduces an improved mozilla-based Web Spider application framework which can be adapted for many different uses.

* What’s New
* CSpider.js – A New and Improved Spider Framework
* Spider – A Mozilla Application based upon CSpider.js
* Real World Applications of Spider
* Links and Stuff

In Web Site Quality Assurance Testing using Mozilla, I introduced the use of a mozilla-based web-spider application called CSpider to perform web site quality assurance. CSpider was based upon work I originally published on DevEdge. While the application did provide useful information for quality assurance testing, it did have a number of limitations which became more and more apparent to me as I used it to test web sites for compatibility with Mozilla-based browsers. Some of the limitations in the older versions are an inability to handle web pages which use “frame-busting” javascript to break out of html framesets, overly complicated and buggy logic for handling page loading and a lack of clarity in how the user-defined spider “event handlers” could be used to extend the basic framework.

Spider eliminates the limitations of the earlier version by separating the cross-browser JavaScript Class CSpider and implementing a basic framework for implementing spider applications in Mozilla for HTML, Remote XUL and Chrome applications.