Appear to have no love for each other! There's a shiny new Hash extension on the block, which is a headfuck for me - do I see if it can be brought to 5.0.5, our production version, and change our code; or do I switch to 5.0.5 for development?
:(
Half person, half home automation, an under loved blog for all things Ruby, python and more in Adelaide
Saturday, February 25, 2006
Friday, February 24, 2006
MPAA on How Pirates Hurt the Consumer
Quality movies are expensive to make and are valuable products. If consumers want to continue to see the movies they have grown to love, they have to stand up against movie thieves who steal DVDs from the Internet or buy counterfeit DVDs on the streets.
Piracy is the single biggest threat to US Copyright industries in movies, home video, music, book publishing, periodicals, radio, television, video games and software. These Industries contribute to the US economy in job growth, contribution to the Gross Domestic Product (GDP) and Foreign sales and exports. In fact, The US Motion Picture Industry employs over 750,000 people nationwide, not to mention the thousands of peripheral jobs that rely on the movie industry such as advertising to popcorn manufacturers.
... but it hasn't told me how, as a consumer of their product, piracy is impacting on me.
Well, enough is enough. I'm taking a stand. You filthy seadogs, why won't you think of the people who can lose their jobs through piracy!
That is to say... should the "advertising to popcorn manufacturers" industry collapse...
Wednesday, February 22, 2006
Monday, February 20, 2006
My Ideal SemWeb Editor
Criteria:
Is fast.
Has graphs to visualise my data.
Has built in validation.
Has SPARQL support.
Has templates to build up whatever it is I am describing (Book, Person, Catfish, etc).
Has lightweight web services to find suitable ontologies - ie, seamless swoogle integration.
Works.
Tested so far:
Altova SemanticWorks
Against:
For:
IzaWiz RDF Editor
Against:
For:
Is fast.
Has graphs to visualise my data.
Has built in validation.
Has SPARQL support.
Has templates to build up whatever it is I am describing (Book, Person, Catfish, etc).
Has lightweight web services to find suitable ontologies - ie, seamless swoogle integration.
Works.
Tested so far:
Against:
- Unclear on how to add triples.
- Can't focus on just one ontology, ie FOAF, which means i get a lot of extra crap I don't want.
- Graphs don't make sense.
- Requires registration & isn't free. At least just let it work out of the box for 30 days and don't heckle.
- Where's the SPARQL?
- I want templates
For:
- Appears quick
- Graphs are eye catching if nonsensical
Against:
- Unclear on how to add triples: much better than Altova SemanticWorks, but adding a simple foaf:Person, foaf:name, "Daniel O'Connor" was far too much clicking. I got it wrong too quickly.
- Can't drag items about.
- Clunky feeling - I just want to throw out a whole bunch of things and fill in more detail as I go.
For:
- It's more obvious about what you want to do, and sets itself up nicely - where do you want to set your temp directory, etc.
Ball & Stick Triples
WINDS is a neat little interface to show the CIA world fact book thingy in a graph / ala Triples / RDF.
Sunday, February 19, 2006
If Papers Weren't Ugly...
Thursday, February 16, 2006
Wednesday, February 15, 2006
For Clarity...
Updates: Everything, including James Hall is sentenced.
Just to reassure people who have heard about the unfortunate death of Nina Starr in Loxton in the recent past...
Who might live overseas and be prone to panic...
Who might know the people I live with...
I AM NOT A $#%$%$^ MURDERER. YOUR RELATIVES ARE SAFE, UNHARMED, AND FACE ONLY THE DIRE THREAT OF A HANGOVER, AT WORST.
I'm glad we're all clear on that now.
Just to reassure people who have heard about the unfortunate death of Nina Starr in Loxton in the recent past...
Who might live overseas and be prone to panic...
Who might know the people I live with...
I AM NOT A $#%$%$^ MURDERER. YOUR RELATIVES ARE SAFE, UNHARMED, AND FACE ONLY THE DIRE THREAT OF A HANGOVER, AT WORST.
I'm glad we're all clear on that now.
Hate Java Less Today!
StringW makes me hate Java less.
God help you if you want to (easily) remove a file extension from a filename: you can String.split() but you cannot join, you can StringBuffer.replace() but it is not nice...
StringW make me happier
God help you if you want to (easily) remove a file extension from a filename: you can String.split() but you cannot join, you can StringBuffer.replace() but it is not nice...
StringW make me happier
Tuesday, February 14, 2006
YUI: Yahoo! Javascript
Yahoo toolkit - thank god, now I don't have to bother with most of this or worry about things becoming unsupported.
Putting Code out to Pasture: DontBeRetardedExceptions
Say you've got a Really Bad Implementation of something. You go right ahead and refactor it, but you can't be sure you've nabbed everything, so you add in a @deprecated javadoc flag and prepare to kill off the code.
Your resident specialist then proceeds to actively ignore @deprecated and make use of your old code in ever more interesting ways, duplicating functionality and causing headaches.
How do you stop it?
Stops specialists in their tracks!
Your resident specialist then proceeds to actively ignore @deprecated and make use of your old code in ever more interesting ways, duplicating functionality and causing headaches.
How do you stop it?
class Logger {
public static function debug($message) {
//Your standard debugging logger method(s)
}
public static function deprecated($message) {
if (Config::isTestSite()) { throw new DontBeRetardedException($message); }
self::debug($message);
}
}
function UglyCode() {
Logger::deprecated("Don't use UglyCode()");
}
Stops specialists in their tracks!
UI: Syndicated Serialized Stories
I didn't realise until just now, the Analog magazines I fed on as a child showed me the very obvious way of going about serialized stories that would come in parts, perhaps months apart.
You need a quick synopsis at the start of each day's reading, or the last few lines so you can recall it all.
I did well reading The Magician's Nephew, it was short and relatively uncomplicated; so very suited to syndication. However, Someone Comes to Town, Someone Leaves Town did my head in - it didn't have the appeal of his previous works, or even his Stross collaborations & short fiction; combined with the writing device of changing the lead character's name every time it was used....
So; I need a 'smart synopsis'. Does anyone know how MS Word automatically summarizes the most salient points of a document?
You need a quick synopsis at the start of each day's reading, or the last few lines so you can recall it all.
I did well reading The Magician's Nephew, it was short and relatively uncomplicated; so very suited to syndication. However, Someone Comes to Town, Someone Leaves Town did my head in - it didn't have the appeal of his previous works, or even his Stross collaborations & short fiction; combined with the writing device of changing the lead character's name every time it was used....
So; I need a 'smart synopsis'. Does anyone know how MS Word automatically summarizes the most salient points of a document?
musiCal: last.fm & upcoming.org mashup
musiCal mashes up your upcoming.org metros with our last.fm artists - so you can see who's going to be where.
If only it could suggest nearby metros for me to visit...
If only it could suggest nearby metros for me to visit...
Monday, February 13, 2006
Sunday, February 12, 2006
jEdit, you suck!
I remember learning java in a friendly little text editor. It wasn't fancy, it did syntax highlighting and all sorts of fun little things, and then you pressed a button - resulting in either your code compiling, or some vaguely comprehensible error messages.
I turn, recently to jEdit, with fond memories. The first sign that something is wrong is that I cannot see where the "turn text into working, magically good java" button is. Oh, it's become a text editor, mainly. No worries. Plugins... plugins... oh, it looks like I can download extra functionality and it just works like magic.
jEdit folk: if a plugin does not work, do not list it. Simple. Don't let people download 87 dependancies and find ONE cannot tell that a version 1.5.0 is > 1.4.0
Sadly, after hours of fucking about, I can't get simple Java turned into Working Things.
Next attempt: Eclipse.
If you wonder why python or ruby are so popular, here's a massive hint. One editor. It works. Out of the box. Is it so hard to get this right?
I turn, recently to jEdit, with fond memories. The first sign that something is wrong is that I cannot see where the "turn text into working, magically good java" button is. Oh, it's become a text editor, mainly. No worries. Plugins... plugins... oh, it looks like I can download extra functionality and it just works like magic.
jEdit folk: if a plugin does not work, do not list it. Simple. Don't let people download 87 dependancies and find ONE cannot tell that a version 1.5.0 is > 1.4.0
Sadly, after hours of fucking about, I can't get simple Java turned into Working Things.
Next attempt: Eclipse.
If you wonder why python or ruby are so popular, here's a massive hint. One editor. It works. Out of the box. Is it so hard to get this right?
Stylish
Stylish is to CSS as Greasemonkey is to Javascript.
User stylesheets! HURRAY!
This neatly improves my issues with pirated ebooks, scientific papers, and generally icky sites.
User stylesheets! HURRAY!
This neatly improves my issues with pirated ebooks, scientific papers, and generally icky sites.
Songbird pleases me....
Songbird.
It just works.
It's found my media, and kept an eye on it even when I had iTunes reorganise it.
Performance is fine - iTunes gave me the shits minutes ago by refusing to play my music well.
Winamp had the right idea: play the damned music even if it means you have to take the highest thread priority you can. Why can't iTunes do this?
Complaints so far for songbird:
I can see that firefox's rendering engine, gecko, is embedded right into this application. Where's my damned address bar, in that case? (Oh: I didn't realise it was an address bar! But ctrl+l to focus it, ala firefox, is sorely missed).
Also: the icons for shuffling, etc, aren't very meaningful.
It doesn't grok video files and just spits them out as audio.
I can't open things in tabs - ctrl + click is disabled, and I miss it. Tabs make firefox wonderful.
How do I customise the bookmarks sidebar content?
Have you tried it yet? What gets you?
It just works.
It's found my media, and kept an eye on it even when I had iTunes reorganise it.
Performance is fine - iTunes gave me the shits minutes ago by refusing to play my music well.
Winamp had the right idea: play the damned music even if it means you have to take the highest thread priority you can. Why can't iTunes do this?
Complaints so far for songbird:
I can see that firefox's rendering engine, gecko, is embedded right into this application. Where's my damned address bar, in that case? (Oh: I didn't realise it was an address bar! But ctrl+l to focus it, ala firefox, is sorely missed).
Also: the icons for shuffling, etc, aren't very meaningful.
It doesn't grok video files and just spits them out as audio.
I can't open things in tabs - ctrl + click is disabled, and I miss it. Tabs make firefox wonderful.
How do I customise the bookmarks sidebar content?
Have you tried it yet? What gets you?
Thursday, February 09, 2006
Every now and then....
... I remember why I love the internet.
Newsbreakers.org break into live news feeds in full costume :)
Newsbreakers.org break into live news feeds in full costume :)
Songbird
Songbird perks my interest - built on the same engine as firefox; so does this mean I can expect to write extensions easily (greasemonkey for a media player)?
I wonder what can be done with it...
I wonder what can be done with it...
Where's the Monkey - Pointers
<?php
function wheresTheMonkey() {
//A
$months = array();
for ($i=6; $i>=0; $i--) {
$months[$i]["start"] = mktime(0,0,0, date("m")-(1*$i), 1, date("Y"));
}
print_r($months);
//B
foreach ($months as &$month) {
$month["end"] = strtotime("now +1 month", $month["start"]);
}
print_r($months);
//C
foreach ($months as $month) {
printf("%s\t\t%s\n",date("d F y", $month["start"]), $month["start"]);
}
}
print '<pre>';
wheresTheMonkey();
print '</pre>';
?>
This caused me a headache today - monkey business everywhere. If you don't get the gotcha;
$month is still a pointer / reference to an array element in $months, so doing another foreach assigns a new value to $months[0] when you set $month!It's too easy to forget in PHP...
Wednesday, February 08, 2006
Wanted: gaim conversation logger -> gmail storage.
I want to log conversations I've had via gaim/msn/whatever in gmail - if gtalk can manage it, surely it can be done with either a Google Desktop search extension or a gaim plugin.
OpenZoep
OpenZoep looks exciting simply because of the XMPP (Jabber) integration.
Email Stamps
Seth Godin expands on the idea of 'stamps' for email - but am I the only one who thinks that treating every email as hostile by default is a dangerous idea?
I am constantly amazed by the ability for me to find any random person and drop them a line out of the blue - if I had to pay for this, I would worry. I wouldn't pay. I would tend to send the free email and it would get ignored.
I am constantly amazed by the ability for me to find any random person and drop them a line out of the blue - if I had to pay for this, I would worry. I wouldn't pay. I would tend to send the free email and it would get ignored.
Tuesday, February 07, 2006
Gmail adds Conversation Logging from GTalk
4:00 PM me: when did gmail start letting me log my chats from gtalk?
4:01 PM holy crap its instantmagicialtaneous
Or at least I just noticed it!
Proving Yourself....
Proving logic isn't as hard to code as I'd originally thought - possible in under a hundred lines of javascript!
EPaper
Flexible displays are going to rock!
E-newspapers sound like a fascinating idea to me.
If you've seen minority report, you grok this idea...
E-newspapers sound like a fascinating idea to me.
If you've seen minority report, you grok this idea...
In the scene we're interested in, a Metro passenger is reading a USA Today. It LOOKS like a USA Today in that it's a full-page newspaper (called a "broadsheet") but instead of a handful of papers, it's a paper-thin video screen, thin enough to fold up and put under your arm. Instead of static photos and text, it's constantly changing text, video and perhaps sound. Think of it as a combination paper, television and Internet, presumably wirelessly connected to a futuristic Wi-Fi, perhaps the next generation of the new Wi-Max super hotspots that are rolling out and cover several square miles instead of several square feet.
Monday, February 06, 2006
PHP & Text Fun
Word Stemming in PHP, Syntax Highlighting in PHP, Language Detection in PHP (and another method, and Diff Detection in PHP, Inflection in PHP.
You'd be surprised how badly your end users can abuse your spellchecker.
You'd be surprised how badly your end users can abuse your spellchecker.
MFAOP (Aspect Oriented PHP)
MFAOP is a PHP based aspect oriented programming package - no new language constructs, just Plain Old Classes.
I'm going to tinker with it for the moment, until AOPHP can make a windows friendly release or two!
Update: Upon looking at the source, I begin to worry a touch - coding style is a finicky thing, and this style of inline documentation seems excessive and obvious - if documentation can be overdone, how will the code feel to use?
I'm going to tinker with it for the moment, until AOPHP can make a windows friendly release or two!
Update: Upon looking at the source, I begin to worry a touch - coding style is a finicky thing, and this style of inline documentation seems excessive and obvious - if documentation can be overdone, how will the code feel to use?
// JoinPoint Class
class JoinPoint {
// Private variables
// Class of this JoinPoint
private $joinClass = '';
// Method of this JoinPoint
private $joinMethod = '';
// JoinPoint Constructor
function __construct ($joinClass, $joinMethod)
{
// Verify the joinClass and joinMethod do exist
if ($this->verifyJoinPoint($joinClass, $joinMethod))
{
// If so, set the private variables
$this->joinClass = $joinClass;
$this->joinMethod = $joinMethod;
return true;
}
// If not, return false
else
{
return false;
}
}
//ETC
}
Saturday, February 04, 2006
Google Techtalk & The Semantic Web
I was excited when I saw Google techtalks were available - particularly the Knowledge Representation on the Semantic Web talk.
I listened in and much to my dismay, the whole description of RDF & the Semantic Web was talked about in a really abstract fashion. If I didn't already know what I do, I would get confused in an instant.
I don't know about you, but teaching by demonstration isn't bad - throw out some examples of triples, RDF, SPARQL queries... etc! Don't wait until you are 15 minutes into the whole thing to get to it!
Further more, alot of the talk seemed to be about laying the boots into RDF/XML syntax, the underlying concepts and problems with it all. Disappointing :(
The speaker doesn't like to use simple terms in the slightest, either. I got lost somewhere in the word padding :S
I listened in and much to my dismay, the whole description of RDF & the Semantic Web was talked about in a really abstract fashion. If I didn't already know what I do, I would get confused in an instant.
I don't know about you, but teaching by demonstration isn't bad - throw out some examples of triples, RDF, SPARQL queries... etc! Don't wait until you are 15 minutes into the whole thing to get to it!
Further more, alot of the talk seemed to be about laying the boots into RDF/XML syntax, the underlying concepts and problems with it all. Disappointing :(
The speaker doesn't like to use simple terms in the slightest, either. I got lost somewhere in the word padding :S
Friday, February 03, 2006
Flash Earth
Flash Earth is just about right - the implementation details are hidden in a flash object, but oh well: the ability to switch data sources and the general smooth feel to it is more than enough to make up for that.
Thursday, February 02, 2006
Holy Crap: Enlightenment with Aspect Oriented Programming
PHPAspect.org explains it simply and well: Aspect Oriented Programming.
TopDesk & How I'd Change It
Problem: TopDesk makes the best use of available screen realestate to stuff in varied sized thumbnails. If you close a window, this order is recalculated, leaving the user with no idea of where his firefox window just went.
Evidence:
I used topdesk and it gave me a headache. General feelings of grumpyness ensued.
Explanation:
If something isn't where I left it last, it upsets me. For instance, I lose my house keys and spend much time wandering about aimlessly rechecking the same spot that I looked 18 seconds ago, eventually finding them in the "safe spot" I put them last.
By the same token, it's distracting to the point of near unusability to keep losing my firefox windows.
Solutions:
Organise the windows in a circle, similar in essence to a clock face. Try to keep applications in the same "quadrant" across many sessions. See below.

When a thumbnail is hovered over, a dim but visible, larger shot of the window should appear in the center of the circle. If I close a window, then go back to topdesk, Firefox should have started in the upper left and *stayed* in the upper left. Applications should be grouped by window name too.
Other solutions: Dim tinting of the application windows depending on how much I use them - the more often I switch between two applications in TopDesk, the more yellow / red those two get.
Evidence:
I used topdesk and it gave me a headache. General feelings of grumpyness ensued.
Explanation:
If something isn't where I left it last, it upsets me. For instance, I lose my house keys and spend much time wandering about aimlessly rechecking the same spot that I looked 18 seconds ago, eventually finding them in the "safe spot" I put them last.
By the same token, it's distracting to the point of near unusability to keep losing my firefox windows.
Solutions:
Organise the windows in a circle, similar in essence to a clock face. Try to keep applications in the same "quadrant" across many sessions. See below.

When a thumbnail is hovered over, a dim but visible, larger shot of the window should appear in the center of the circle. If I close a window, then go back to topdesk, Firefox should have started in the upper left and *stayed* in the upper left. Applications should be grouped by window name too.
Other solutions: Dim tinting of the application windows depending on how much I use them - the more often I switch between two applications in TopDesk, the more yellow / red those two get.
Nina Starr, #3
Updates: Everything, including James Hall is sentenced.
I finally got around to publishing photos of the approximate area where she was found. I have a strong feeling she'll be really missed in Loxton...
STARR, Nina - (Tragically Taken) Dearly loved daughter of Brenda and the late Alec Starr.
Loved sister to Laura, Jane, Ruth, Helen, Peter and William.
Loved forever.
Funeral Arrangements to be advised.
O.E. BRADTKE & SONS
I finally got around to publishing photos of the approximate area where she was found. I have a strong feeling she'll be really missed in Loxton...
What is it with Code & Cheese?
Wednesday, February 01, 2006
Reveal Rocks!
What an ingenious idea for finding information - an extension to firefox in which you press ALT` (right above ALTTAB), and are presented with an overview of your tabs as thumbnails.
Big whoop you say - Every man and his dog is doing this, and Internet Explorer 7 does it better than f0xpose, etc.
The *kick ass* feature which makes this actually usable is the find-in-page search across multiple tabs. For instance, I have 10 tabs open for work, 6 for gmail, blogging, what have you, and 20 billion that I just haven't read. I hit ALT`, and type "Valex", and before you know it... wham! I've got only the tabs which contain "Valex" somewhere presented to me - I can then simply click the one I want.
If TopDesk could do this for all windows that are open, I would pay for it (currently, the only thing stopping me from shelling out dollars to an Aussie company is that they shift the thumbnails about when you close / open windows - so where MSN was a moment ago is now notepad. ICK. Don't fuck with my short term spatial / visual memory)
Big whoop you say - Every man and his dog is doing this, and Internet Explorer 7 does it better than f0xpose, etc.
The *kick ass* feature which makes this actually usable is the find-in-page search across multiple tabs. For instance, I have 10 tabs open for work, 6 for gmail, blogging, what have you, and 20 billion that I just haven't read. I hit ALT`, and type "Valex", and before you know it... wham! I've got only the tabs which contain "Valex" somewhere presented to me - I can then simply click the one I want.
If TopDesk could do this for all windows that are open, I would pay for it (currently, the only thing stopping me from shelling out dollars to an Aussie company is that they shift the thumbnails about when you close / open windows - so where MSN was a moment ago is now notepad. ICK. Don't fuck with my short term spatial / visual memory)
Thoughts on Internet Explorer 7
Random thoughts.
I have windows skinned to look 'classic' - no crappy skins for me, thank you very much. As a result, the browser looks... bad!
Switching to the olive green windows xp style removes that complaint pretty much straight away, though.
It stopped responding nicely for some reason when trying to submit a form.
Tooltip text is "faded" in on tabs, but if the window below it isn't loaded, it doesn't repaint over quick enough - leaving a nasty trail of ghost tooltips.
The location of the new tab button is surprising and a little unsettling.
Quicktabs is better than the foxpose + firefox - looks better.
It kills our menu popup script which renders fine in IE6, Firefox, & Opera. *Sigh*.
Ditto the customised select box hacks we use.
It breaks our valuer picker box, which relies on document.getElementById() - I'll need to peek into that.
It feels like firefox still - the zoom works on the same keys, the UI layout is very similar, etc.
Hotkeys like ctrl+a don't work in location bar/search box to highlight all text.
Not a bad offering, overall, but we'll have to see how it stacks up in some seriously abusive tests.
I have windows skinned to look 'classic' - no crappy skins for me, thank you very much. As a result, the browser looks... bad!
Switching to the olive green windows xp style removes that complaint pretty much straight away, though.
It stopped responding nicely for some reason when trying to submit a form.
Tooltip text is "faded" in on tabs, but if the window below it isn't loaded, it doesn't repaint over quick enough - leaving a nasty trail of ghost tooltips.
The location of the new tab button is surprising and a little unsettling.
Quicktabs is better than the foxpose + firefox - looks better.
It kills our menu popup script which renders fine in IE6, Firefox, & Opera. *Sigh*.
Ditto the customised select box hacks we use.
It breaks our valuer picker box, which relies on document.getElementById() - I'll need to peek into that.
It feels like firefox still - the zoom works on the same keys, the UI layout is very similar, etc.
Hotkeys like ctrl+a don't work in location bar/search box to highlight all text.
Not a bad offering, overall, but we'll have to see how it stacks up in some seriously abusive tests.
IE7 released publically... Browers, browsers everywhere!
IE7 is available for download - time to break the work system with it!
Seamonkey 1.0 is released too - the first release of the former Mozilla browser suite.
Seamonkey 1.0 is released too - the first release of the former Mozilla browser suite.
Subscribe to:
Posts (Atom)