05.02.07
Posted in SQeaseL at 12:37 pm by Bernard
SQeaseL is a web-based database design tool that lets you easily and quickly design your database structure, then automatically create and share documentation and code.
Easy to use. The easy to use design tools allow you to quickly create your database structure. Then use the simple transform tools to turn your design into SQL code, source code skeletons, or plain English documentation you can share.
Infinitely flexible. Create code or documentation in any style or language you choose by creating your own templates or just tweaking the ones provided.
Available everywhere. Because SQeaseL is web-based you don’t have to install anything, you can get access to your work from any computer, and you can share your work and documentation with anyone.
No risk. Use SQeaseL free for 30 days then pay just US$7 a month or US$79 a year. Cancel whenever you want. Even if you cancel your subscription we will always keep your data safe and give you access to it.
Go to www.sqeasel.com for a quick tour and free registration. Let me know what you think in the comments here or privately at help@sqeasel.com.
Permalink
28.07.06
Posted in Programming, Javascript, Dojo at 12:34 pm by Bernard
Problem: With multiple Editor2 components in existence, clicking toolbar buttons only has any effect for the most recently created widget.
Read the rest of this entry »
Permalink
26.06.06
Posted in Books at 7:51 pm by Bernard
My current read is Bob Walsh’s Micro-ISV: From Vision To Reality.
The quote at the top of chapter 4 is from Jospeh Heller (of Catch-22 infamy):
I think maybe in every company today there is always at least one person who is going crazy slowly.
I’m not sure that’s good news for one-person companies…
Permalink
16.06.06
Posted in Programming, Javascript, Prototype, Dojo at 4:31 pm by Bernard
Why do we love Prototype? The $() function to replace the unwieldy document.getElementById() of course!
Even more unwieldy is Dojo’s dojo.widget.manager.getWidgetById() function.
Bring on the Prodojotype library:
function $D() {
var results = [], element;
for (var i = 0; i < arguments.length; i++) {
element = arguments[i];
if (typeof element == 'string')
element = dojo.widget.manager.getWidgetById(element);
results.push(element);
}
return results.length < 2 ? results[0] : results;
}
Hmmm, “library” may be stretching it a bit…
Permalink
Posted in Programming, Javascript, Dojo at 3:46 pm by Bernard
While creating a tree in Dojo with inline edit capability on the nodes I came across a problem which stumped me for a while. I could get the text element and the input element to swap places to make the node editable but in Firefox the text box wouldn’t show a caret or any highlighting. In Internet Explorer it all worked fine.

The solution was quite simple once I’d found the problem. When Dojo’s Tree widget creates its DOM node, it calls a disableSelection method which, in Firefox, sets the div’s -moz-user-select style to ‘none’ thus knee-capping the input element.
The solution is simple. Find the Tree widget and reenable selection on it:
tree = dojo.widget.manager.getWidgetById('theTree');
dojo.html.enableSelection(tree.domNode);
Now the input element will not only accept focus but will also give the user a clue what’s going on.
Permalink
29.05.06
Posted in Programming, Javascript, Prototype at 2:58 pm by Bernard
There are many good things in the Prototype library. One of them is the Periodical Executer, used to call the same function repeatedly. Trouble is once the thing gets going it just carries on and on and you can’t stop it, like some mad thing out of The Sorcerer’s Apprentice.
What you need to do is modify the Periodical Executer’s prototype. Replace the registerCallback function so that it records the interval id that is returned:
PeriodicalExecuter.prototype.registerCallback = function() {
this.intervalId = setInterval(this.onTimerEvent.bind(this), this.frequency * 1000);
}
Then add a new stop function:
PeriodicalExecuter.prototype.stop = function() {
clearInterval(this.intervalId);
}
Obviously do this in your own script file, not by altering the prototype.js file, otherwise any updates will ruin your changes.
Permalink
28.05.06
Posted in Programming, Javascript, Ajax, Accessibility at 3:13 pm by Bernard
After Darren Fittler’s screen reader presentation at Webstock (mentioned a couple of posts back) there was some discussion of how screen readers cope with Ajax and/or DOM scripting. The standard response seems to be to shuffle your feet, look down, and mutter something about “too hard”. As luck would have it, the same day Juicy Studio posted an article called “Making Ajax work with Screen Readers“.
Hat tip: Ajaxian.
Permalink
27.05.06
Posted in Webstock at 3:18 am by Bernard
Russell, Kiwi blogging - you’re the man (apologies to DPF) - you had so many useful things to say about the way that ultra-fast news turnaround favoured bloggers vs MSM on 9/11 and London 7/7. Why did you waste the first three (potentially most powerful) minutes of your presentation playing a frickin’ audio file?
Yes, David Lange was a terribly clever speaker but replaying a terribly clever speech does not a dynamic introduction make. You should know better. The fact that you’d done something really important (no sarcasm, cynicism, or general evilness intended, I really do believe we should preserve our history), like digitise David Lange’s Oxford debate presentation does not substitute for the fact that you didn’t present the most important part of your presentation (ie the start).
Controversy-wise, we had Ben Goodger vs Tony Chor (program manager for IE7). The very fact that I parenthesised Tony’s position and not Ben’s should indicate the chosen winner. Sadly, twas not to be. Ben talked about the past and Tony talked about the future.
The breakout sessions were priceless - Heather Hesketh and Donna Maurer both gave highly valuable advice about the small things that improve user experience. Amongst the descriptions about how tiny changes can accumulate to eventually create revolutionary change it was beautiful to hear the word “evolution” in a Southern drawl used as a positive.
The final injunction from Kathy Sierra was to “go change the world”. We probably will. In time.
As usual people will have tagged more useful reviews at Technorati.
So, now it’s three in the morning. My wife has already stolen my Webstock conference bag because it’s too cool and I need to get to bed before I lose anythng else.
Permalink
25.05.06
Posted in Programming, Webstock at 10:10 pm by Bernard
Webstock 2006 began in Wellington today. Despite living in Wellington, I first found out about Webstock via Joel on Software.
Joel gave a presentation this morning called “Shiny Geegaw vs Great Design”. He looked into why products get to the top of their markets despite often being more expensive and functionally inferior to competing products - the classic example being the iPod at $399 with no off switch and some less pretty no-name clone at $249.
He used examples from anthropological research into automotive design and America’s obsession with movie stars. By synthesizing two of his discoveries I can exclusively reveal here that people adore Angelina Jolie because curves make them feel comfortable. And he mentioned software as well.
Joel was followed by Darren Fittler, who spoke on usability from the user’s perspective. He powerfully demonstrated how hair-tuggingly infuriating it is to “see” a website through a screen reader. He also showed how blind people ignore the aesthetics of products and purchase iRivers for their wives instead of iPods, leading to no end of trouble.
More comprehensive reviews can be found at Technorati.
Permalink
24.05.06
Posted in Programming, SVG, Javascript at 10:20 am by Bernard
Embedded documents, e.g. an SVG document inside a standard HTML document, add an interesting wrinkle to event handling. Imagine a split-pane page with three DIVs - the left holding a menu or tree, the right holding an enbedded SVG document, and the middle being a skinny little draggable DIV that acts as a movable divider between the two.
Dragging the divider to the left works fine. Dragging the divider to the right doesn’t work at all if you do it too quickly. Why does this happen and how can it be fixed?
Read the rest of this entry »
Permalink
« Previous entries ·