Archive for the 'Development' Category
Fantastic article that Charl sent through to me today that ALL web designers and developers should read so they get an informed idea of both how the industry works and the reasoning behind the decisions from the web giants - Martian Headsets - Joel On Software.
Quote the article:
The consumer is not an idiot. She’s your wife. So stop laughing. 98% of the world will install IE8 and say, “It has bugs and I can’t see my sites.” They don’t give a flicking flick about your stupid religious enthusiasm for making web browsers which conform to some mythical, platonic “standard” that is not actually implemented anywhere. They don’t want to hear your stories about messy hacks. They want web browsers that work with actual web sites.
So you see, we have a terrific example here of a gigantic rift between two camps.The web standards camp seems kind of Trotskyist. You’d think they’re the left wing, but if you happened to make a website that claims to conform to web standards but doesn’t, the idealists turn into Joe Arpaio, America’s Toughest Sheriff. “YOU MADE A MISTAKE AND YOUR WEBSITE SHOULD BREAK. I don’t care if 80% of your websites stop working. I’ll put you all in jail, where you will wear pink pajamas and eat 15 cent sandwiches and work on a chain gang. And I don’t care if the whole county is in jail. The law is the law.”
On the other hand, we have the pragmatic, touchy feely, warm and fuzzy engineering types. “Can’t we just default to IE7 mode? One line of code … Zip! Solved!”
Without the standards Nazis the web would still be as it was in the 90s - but they also need to understand that the web for the most part is by the people for the people and nobody will get any traction with breaking the web for the sake of “cleaning it up”. *IF* the browsers decided to be strict with standards by default - all that would happen is the average user would download the new browser, test their favourite sites, see it all broken - and BLAME THE BROWSER; not the site - for the resulting ugliness. At which point they would revert to their old browser and the standardists would be back to square one.
The only way to approach this from both sides is transitionally. Provide a token for standardists who want full features to enable them for their sites and default to non-standards for all other sites. Whilst standardists might not like this approach - it will give them the full featureset without breaking the web; and they will find that EVENTUALLY more and more developers and designers will get sick of not working with standards and create all new sites with this standards friendly approach. Once the overwhelming majority of sites (at least all the popular ones) have been written this way the default behavior can be at this point switched without the average joe wondering why the majority of sites they visit on a day to day basis all of a sudden dont work with the new browser.
read comments (0)
Okay, so Jack Slocum over at EXTJS has put together a very cool example on how to develop new Vista sidebar gadgets using the ExtJS Framework - opening up a huge realm of posibilities for developing advanced sidebar gadgets *without* ending up looking like so many of the tacky ones released on Windows Live. Take a look at this entry from Jack’s Blog:

Quote Jack’s Blog:
A while back in the Ext forums I mentioned a Forum Gadget I was working on for Windows Vista created with Ext 2.0. The gadget gives the ability to monitor the Ext JS forums (all posts or by individual forum), perform fast searches and supports both docked and undocked mode.
Demo Girl (http://demogirl.com/) has put together a great screencast on website/application user friendliness. I’m currently working on a fairly large web application and usability is one of the key areas that so frequently suffers in web applications - both in part to inexperienced/lazy developers and/or “overly creative” designers.
Quote:
“I sign up and navigate through a lot of different Websites and services every single day so I can create screencasts to help my readers decide if they want to try them out or not. In doing this, I notice every little detail from arriving to the site, to locating my account settings, to signing out. It’s my job to know where the help pages are, how to change a password, and how to generally navigate through whatever site I’m currently creating a screencast for. I can’t tell you how many times I’ve ditched a service that I actually thought was kind of cool, but navigation was so horrible that I didn’t want to share it with you here - And that’s the topic of the screencast today. “
It’s only a few minutes long and well worth taking a look at if you have any influence over the design and development of web applications: if you care about your users experience anyway!
Interesting discussion going on over at the EXT forums at the moment re a new convention that has sprung up with putting the seperating comma at the begging of a line rather than the end with a list of value-pairs in an object - under the proviso that if an error occurs in Internet Explorer - the line that IE detects the error on will be the line with the surpurflous comma. Take a look at the thread for more info…
I was interested in profiling the differences between the two, as logically having the comma on the following line forces the javascript interpreter to have to do more guess work as to whether the previous line is supposed to terminate or continue (javascript automatically does this check for each line to enable developers to leave out semicolons). Thats the theory anyway.
Interesting though. From my ‘experiment’ it appears (as expected) that putting commas before items rather than after does have an effect on the interpreter - average 74ms on my quad core machine (in firefox). Keep in mind though that this object has 300,001 properties which is huge for a javascript object. I don’t think anybody is going to cry over a lost 74ms when creating an object with that many properties. Still - this kind of thing might have a larger impact on less powerful devices such as handhelds.
See below for the results of my experiment:
Okay… so I decided to do a little test over my lunchbreak. Keep in mind that with almost all profiling its completely subjective as cosmic rays hitting my processor could affect the results - but here is what I got anyway:
Code:
Average Min Max After 1434.8ms 1382ms 1498ms Before 1508.1ms 1434ms 1680ms
I ran the below tests 10 times each using the firebug profiler. Whilst there is a difference I doubt many people would be creating objects with 300,000 boolean properties :p
This was to create a simple object with 300,000 properties in both styles. The code I used for this is:
COMMA BEFORE:
PHP Code:
<html>
<head>
<title>JS Profile</title>
</head>
<body>
<button onClick=”eval(document.getElementById(’objectCode’).innerHTML);”> Click Me!</button>
<div id=”objectCode”>
var k = {
“First Item”: false
<?php
for($x=0;$x<300000;$x++){
echo “, \”item$x\”: true “;
}
?>
}
</div>
</body>
</html>
COMMA BEFORE:
PHP Code:
<html>
<head>
<title>JS Profile</title>
</head>
<body>
<button onClick=”eval(document.getElementById(’objectCode’).innerHTML);”> Click Me!</button>
<div id=”objectCode”>
var k = {
<?php
for($x=0;$x<300000;$x++){
echo “\”item$x\”: true, “;
} ?>
“First Item”: false
}
</div>
</body>
</html>
So… The windows command line has a bunch of commands built in for common tasks such as creating directories, renaming stuff, moving things about, yada yada yada. Its kind of stunted though when I compare it to the kind of file operations I do all the time in my development work.
I just finished sorting a huge number of files into appropriate directories, and noticed annoyingly that about 10,000 files (images in this case) had signatures in the file name making them ugly when displayed on my HTPC as a slide show. For example “Blue Iris (!downloaded from precariouspanther.net!)”… (The site link obviously changed in this case). Rather than having that garbage show up on my screen, I much prefer it to just be “Blue Iris”.
The easiest way to do this is just selecting the file, pressing F2 (or right click/rename) and editing the name removing out the garbage. This is normally fine - however with this collection of around 10,000 images it would take, oh I dunno… three years???
Frell that for a joke! After five mins scouring google I didn’t find a quick and easy solution, so whipped up a quick php script to enable simple find/replace on file names in a directory, opened up trusty CMD, typed in
findReplaceName * ” (!downloaded from precariouspanther.net!)” “”
and within 2 minutes all the work is done. I used to use perl for my shell scripting in linux all the time on the web servers, but given I’m coding php all day every day (and setting up perl on windows is annoying) this worked out much much better for me.
My uncle wanted to take a look at some of the sites I’ve done dev and or design (sucky) work on so thought it would be easier to throw the list up here. Most of the development site of things is login only which makes it a little difficult to show off, but I’ll put together a proper screen-shot and possibly a locally hosted demo of some of them here when I get a chance.
Wildtribe
- Australian Walkabout Park - inc completely custom eccommerce, CMS, stats packages, booking system, multi-user authentication etc
- Inconjunction Real Estate - Another completely custom CMS with built in property listing and image galleries, open time bookings, etc.
- Asquith Girls High School - BIG Custom project, major customised CMS with separate events management, news system, multi-user access (including admin, teacher and student) with cascading permissions system inc stats etc.
- Calabash Kennels - Very simple image rotation stuff to dynamically load images from a directory and cycle them as a css background property on page load. Looks cool though!
- Neetacity Shopping Centre - Very rapid simple CMS with single user login system. Completely flat file based due to requirements, rapid job of about 1 week.
Expertise Events
All of the following websites are running from the same customised events management CMS - dubbed Xerxes. Xerxes, along with quite a few other smaller projects was developed to facilitate complete control over the look and feel of the sites by the web team (design and development), whilst still giving less “web experienced” staff the ability to add and update large quantities of content across a significant portfolio of events management web sites. It includes things like Cascading permission systems, advanced statistical analysis, “drag and drop” emphasis GUI for simplifying interaction with a powerful engine, completely dynamic menu systems and ordering, drag and drop stand planning for exhibitors, advanced feedback forms using simple drag and drop mechanics with modules for stats tracking, compositing into CSV, etc, e-cards and special promotional systems, seo focused code generators and templating system, segmented templating engine allowing designers to simply implement advanced functionality within their designs without knowing *any* “code”, integration with third party services such as google maps/earth, and much much more.
A list of all of the current sites including:
- Craft and Quilt Fair
- Gardening Australia Expo
- SMPTE
- Auto Trade Fair
- Salon XPO
- Home Improvement Expo
- Event Conneqion
- Pet XPO
- Travel XPO
- etc
can be found at the Expertise Events corporate website - http://www.expertiseevents.com.au which automatically lists and cycles through all the upcoming show websites.
Melon Media
- Melon Media Corporate Website - Setup and customisation using ExpressionEngine
- Melon Stork - Custom email spam analysis tool
General
- precariouspanther.net - This site, using Wordpress with a bunch of custom modifications (mostly server side inc fetching photos automatically from my mobile phone).
- Ragajac Ragdoll Cattery - Ragdoll cattery website that I did for my mother who breeds Ragdoll cats over a Christmas break a few years ago. Customised CMS system and pedigree/family tree system for the cats. Also some cool photo gallery stuff I played around with at the time.
There are quite a few others that are now defunct as is always the way in the web world - but 404/server not found pages are hardly worth listing here :p
Had a chance today to throw together a quick Wordpress plugin to fix the trouble I was having with the hotlinked (from Blogger) images auto-uploaded from my mobile phone.It automatically caches ALL hotlinked images locally, no matter what kind of tag references them - even if its a link. Dumps cached images into a pantherCache folder within your uploads directory.
Caching occurs when the post is being saved so that your blog doesn’t lag up
Anyway for anybody who wants it, the link is below. Its very unsupported though so be gentle with it.
As you may have noticed, the lightboxes on the photos posted from my phone are currently borked… Unfortunately blogger.com (provided by google) is the blogging service my phone is tied to, and so I have had to put together a bunch of trixy hobbit scripts to fetch posts as they are made from the blogger account and repost them (inc inline images) into precariouspanther.net which is a Wordpress powered blog. Problem being, the full sized image is blocked from being hotlinked from the blogger page, and in a rather unpleasant way that makes it difficult to simply curl grab a copy to proxy locally. SO. I’ll have to put together a script to parse the hotlink result from blogger and automatically cache a copy of the image locally and subsequently update the original posting with the new local URL.
Anywho, until then I’ll disable the light-boxes so that the images just link directly to the blogger hosted copy. Sorry for the ugliness!
Soo.. I finally got a chance to slice and dice my new theme for precariouspanther.net - which *should* theoretically be active and working correctly. Anyway its going to take a little while before I’ve ironed out all the kinks given this is the first template I’ve done for Wordpress and there is a lot of fiddly stuff behind it. Either way I think it looks much cooler than it did before :p
Hopefully I get a chance to start posting something interesting soon - I’ve up until now been flat out with work and all the family stuff that happens around Christmas.


