Entries : Category [ Technical ]
Wherein I pontificate, or more likely grumble about all things to do with computing and software.
[Life]  [Technical]  [Literary]  [Politics]  [Marginalia]  [Books on the Bedside Table]  [On the Jukebox]  [Reviews]  [Election]  [Photography]  [Experiment]  [The Venice Project]  [Joost] 

09 February
2009

FOSDEM 2009

The Setting of Sunbird and the clipping of Thunderbird's wings

I spent the weekend sneezing, coughing and drinking beer in Brussels at FOSDEM, in between there were a few sessions that proved interesting and irritating at the same time which is pretty typical for an open source conference.

First off Philipp Kewisch made a valiant attempt to get community support for QA'ing Sunbird only for David Ascher to have to say that Sunbird is canned after this clean up version and that Lightning won't be ready to integrate with Thunderbird 3 for the release. Asking around, it appears that Sun is withdrawing all resources for Sunbird. David Ascher didn't even seem that enthusiastic about Lightning as the calendaring component but I might have read too much into that.

More concerning is that the whole direction of Thunderbird is more about being appealing to the average user than it is to being a complete mail and messaging system. In answer to a question he made it clear he's not interested in trying to solve or even support the kinds of needs that corporate mail have, LDAP, Exchange integration and the rest of it.

They (Mozilla) seem more interested in how messaging is becoming proprietary with the increase in social networking sites doing their own email or messaging interface which forces the receiver of the message back to the particular web site.

Making Thunderbird another Gmail doesn't seem like the way to answer that 'problem' to me.


Posted by theSliver at 10:29 | Comments (0)
13 December
2006

Webit, Webit, Webit

Monday night, in the Dutch Chinese Indonesian restaurant we have a habit of eating in, I may have contributed my own neolgism to the technical vocabulary. Or I may not.

I didn't purposefully invent it I just smushed two words together, web and editing and said webiting.

I haven't googled for it to see if it already exists, except in a poor spelling of Wabbit kind of sense, but it performs as a perfectly good verb.

So what does it mean to webit?

Well I was never happy with the term 'blog', this is a journal, I began it as a journal and not as a blog, I'm pretty sure when I started it the term didn't exist, even if it did its an ugly word and as an ugly word its just waiting for a presentable replacement.

So webiting is to purposefully editorialise on the web:

Webit
Webited
Webiting

Use freely. Donations welcome.


Posted by theSliver at 09:56 | Comments (0)
26 November
2006

Desire Lines

J taught me something yesterday. We went to Worcester to shop and have something to eat before going to the ballet and parked up in the car park towards Shrub Hill which is just by the canal. Its a relatively new car park and there's a path that runs from the bridge over the canal down onto the towpath that passes by at the lowest point and the most direct path to the road for the pedestrian. And its fenced off, there is no way round except by the planned entrance.

If it wasn't fenced off then there's no doubt that there would be a well worn, if muddy in the wet, path tramped by all the people that used their heads and worked out which was the best route for them.

In Planning these are called Desire Lines, the routes that people prefer over and above whatever it is that Planners would themselves prefer.

Which started me thinking as we trundled around Worcester how that applies to software and to the interfaces we allow people to use.


In the software I've written in the past and especially when I've been responsible for the interface I have explicitly included many routes through the interface. I've used menus, buttons on forms, keystrokes and toolbars to get to the same form, the same functionality from as many places as I could think of.

Sometimes those paths haven't been signified at all well and often some of the routes were suggested by users rather than myself after using the software and quite often I've found users navigating through software in ways that might seem to be less than optimal to myself but to them followed the internal map of the application that they'd formulated for themselves and which according to that map made it the most understandable route.

I can't claim any credit for doing this religiously, I follow my own Desire Lines in the creation of the software, I make well travelled paths that make sense to me. In designing interfaces, realising that other people have different Desire Lines even perhaps counter intuitive ones feels like it could be the difference between a well accepted application and one which is grudgingly used because it has some overriding requirement that makes using them necessary.

It feels as if making Desire Lines for individuals possible should make it easier for those individuals to fall in love with the application. At the same time signifying those Desire Lines could become very confusing in itself.

Falling in and out of love with products and applications is something I've been thinking a lot about recently.

Posted by theSliver at 11:38 | Comments (5)
16 November
2006

Letting comments flow

As I'll be keeping an eye on this more I'm letting the comments go through un moderated (comments, what comments?), so get your unrestricted medications here.


Posted by theSliver at 07:49 | Comments (3)
15 October
2006

Being brought to my knees

No this is nothing in the least bit salacious and there are no pictures of me on my knees, kindly pass on by.

Two events did bring me to my knees this week, my own personal virus which started at the top of my head and then made a semi permanent home in my throat and upper respiratory tract. It is currently still causing my nasal membranes to pump ever more quantities of mucus and I have no energy.

The other event, or series of events, was Microsoft's second Tuesday in the month which I forgot all about. I don't know why, perhaps its like your partner's monthly cycle that you manage to forget about it until it gets in the way of what you want to do or something.


I tend to leave everything switched on as 100% of all the hardware failures I've ever had in over 25 years have happened when I've switched something on (that's not true of course but it sounds good). That also gives Microsoft the opportunity to do the good which is known as updating the OS with the critical patches and rebooting the machine leaving it at the login prompt.

Mostly that's just the inconvenience of waiting for everything to be reloaded that infests the system taskbar and which seemed like a good thing to install at the time but now you've no idea where it is or whether its really uninstallable now. As an aside, this is where hard disk failures really come in handy they get you to clean up by starting from scratch.

On my enormously sinister and extremely fast Alpha Super Micro, called Bridge of Sighs and that's a clue Super Sekret Project fans, (now I'm beginning to sound like Jerry Pournelle for God's sake), that takes less time than my nose to fill up with mucus to reboot and get logged in but that doesn't help when rebooting screws up what you were doing.

I was in the middle of a very long SVN merge from trunk to the stable branch, actually I was in the middle of the third attempt. I was away (probably coughing or attempting sleep), when Microsoft stole the tiller and it was still in the middle of the merge.

The merge didn't complete so the stable branch was unaffected, which was good. My tree was foobarred, no that's too much of a euphemism, it was fucked. Reverting the tree did nothing at all and svnmerge was wrecked.

So that meant recreating a working copy of the branch and starting all over again since in the meantime of course there had been other checkins into the trunk that were needed.

So, given the sluggishness of my brain this week and the time it takes to merge, fix collisions and then commit, it took up the whole of Friday.

Then I could say something about build machines not being immune to the Microsoft reboot of joy, but I won't.

Posted by theSliver at 11:38 | Comments (0)
27 October
2005

Volunteering

There's an application I use every day and that I depend upon, its not broken, its few shortcomings I've learned to live with and its been rescued once already from zombiehood and now the distributor is without a developer for it again and so its currently stalled.

I fired off an email giving my CV and saying I was a long time user and as they need a developer to bring it up to the next version I was available.

And they're considering it, possibly along with other offers.

We know about Deathmarch projects where they become so leviathan or mangled or feature creep has pushed all the schedules out into some far flung future where everyone will have retired by the time the product finally emerges from its black silty birthplace. Picking up zombies though is slightly different, its either a case of no matter how little you do, no matter how insignificant the attention everyone loves you because at least there's someone;or you become the Aunt Sally and inherit everyone else's crap that ever stuck their finger in the pie and stirred it around.

If they want me to pick it up, I'll let you know.


Posted by theSliver at 19:00 | Comments (0)
24 October
2005

Housekeeping

Because I've had a small date stamp issue with the Zope data.fs file I haven't been able to pack the database for a good long while. Several gig of temporary session data to be accurate.

So as it was getting close to filling the disk partition, it became time to fix the problem. As I didn't want to hack Data.fs directly to fix up the datestamp I decided to handle two birds with the same stone by upgrading to Zope 2.8 at the same time. So I exported all the objects I really cared about, leaving some of the dross behind that naturally accumulates in any file system.

All went pretty well and within 90 minutes or so I had a 2.8 running. And then it went bang.

One of the major differences in 2.8 is the ZODB, the database and the way persistent objects are implemented. Essentially they've moved classes so that other objects that import them have to be modded to point at the right class hierarchy. TinyTable and TinyTablePlus both failed because of that and rather than fix those two products and then discover that then this product needed it and then this dependancy I decided to step back a little.

Which meant that I re-did the whole thing but with 2.7.8 instead.

And now its back up. Right now I'm recataloguing the IJustHeard site so that's being a little irresponsive at the moment and there's some slight issue about adding new stories from the email (but I had that beforehand anyway) but everything else seems to be holding together pretty well.


Posted by theSliver at 15:36 | Comments (0)
16 October
2005

Tools of the Trade

For no particular reason I can think of here are the current tools I'm working with.



I'm not entirely sure what this exhibits other than I have a lot of software installed I'm not currently using.


Posted by theSliver at 10:41 | Comments (0)
05 October
2005

Don't Google at the Sun without your Rose tinted specs

The level of disappointment felt at the long trailed joint Sun/Google announcement could only have been topped by the reaction at the Tory Party conference to David Davis's speech.

A Technology tie up that just gets Google's toolbar out to Java SDK users isn't going to make anyone sit up except to wonder what all the fuss was going to be about. But, if the web applications I saw demonstrated at FOSDEM this year really were financed by Google as hinted then a tie up with Sun makes considerably more sense.

You heard it here first.


Posted by theSliver at 12:53 | Comments (2)
23 September
2005

We can rescale it for you wholesale

I've just had the Channel 9 video of Raymond Chen's presentation running in the background and he was good value as always and then right at the end you get the whammer.

Part of the presentation was the difference in Vista in how differently sized system fonts are handled. In previous versions of Windows the user could choose a different set of fonts and they had (because they are fonts and not pictures) different scaling attributes. In order to get a well rounded app at all available system fonts you really had to run a system at that resolution and fix any artefacts that might arise, like enormously stretched dialogs with itsy bitsy text because the font was specified directly or labels that crash into the text box they labelled.

Well in the effort to improve and fix all that and make things nice (and transparent and glassy no doubt), Microsoft have dumped the large fonts (with hopefully considerable testing from the accessibility groups and labs), and instead every application gets told its dpi (dots per inch) is 96, regardless of what the system dpi is and then some Windows font munger rescales everything afterwards.

The result will be more or less ok but it won't be exactly right but it will be right enough if the application hasn't done any special work to handle different resolutions.

If an application has done that work and knows about Aero and the Font Munger then it can tell it, look I know what I'm doing I'm big enough to do what I need to myself thanks.

Which is fine. For applications that are built for Vista. For applications written prior to this change that did do the work (and that user's already have), instead of looking good and reasonable and designed they're going to look crap.

And Raymond Chen did say he was going to take that back to the developers and that, without promising, one way out of the hole would be a user determined flag that says this application can handle different font resolutions.

However, like all such fudges, the chances on a particular user knowing this about a particular application at a particular resolution approaches zero.


Posted by theSliver at 17:30 | Comments (0)
20 September
2005

A stream that lies

Subtle weirdness this morning. For some reason I Just Heard suddenly decided it was Content-Type text/stream rather than text/html. Nothing had changed on it so it looked like it was something screwy in the virtual hosts mapping.

Rather than restart Zope, which takes a while if you've got gigabytes of junk in data.fs, I dropped a line of dhtml in at the top of the header file to force the Content-type to be text/html.

<dtml-call "RESPONSE.setHeader('Content-Type','text/html')">

What's known as a patch that hides the problem, still it may help someone in the future if they have a similar problem with Zope.


Posted by theSliver at 13:18 | Comments (0)
16 September
2005

Wheel recreation

As a kind of therapy for feeling so crap, I had thought I was suffering from the ghost of yesterdays migraine but my daughter having said 'You look really ill', when she came home this afternoon from school has convinced me I must have some leurgy or other, I've been (you thought I'd forgotten the subject of the sentence hadn't you, well fever, other than inflating my libido, increases my tendency for Proustian sentences) working on a clone of the Joel on Software Off Topic Forum.

I took this blog software as the basis as it really is a blog in essence it just allows anonymous individuals to post to it.

Changing COREBlog to allow anonymous posting wasn't too bad, mostly a matter of giving Add CoreBlog Entry permission to anonymous users and hacking a version of the manager_AddEntry form.

Its a peculiarity of Zope that most of the Products presume that whoever is going to administer or interface with the product is going to be someone used to the ZMI (Zope Management Interface). In reality this is rarely so and without going to all the extremes of Plone, Zope could do with a User management layer for all Products. Its something i had to do for the Client portfolio product.

(I must do something with that product and turn it into a Gallery product properly).

I'll be merciful to RSS watchers and continue this in the extended area.


The other major byproduct of getting anonymous users working is that the initial Entry assumes its an authenticated user and so picks up their name and so on.

This meant that there was more information stored for those making comments than those making entries. I had to add a couple of properties to the Entry class, emailaddress and url and then hack my user management function (which for the sake of speed I just copied the real management function). Then it was simply a matter of plugging those variables into the form.

I added an Issue Tracker (and in doing so broke anonymous access as in adding a Tiny Table I forgot to reset the View permissions back to anonymous, permissions are inherited in Zope), so that I can document the changes properly and keep everything under control.

The vast majority of the time, though, is messing with styling and getting it to look somewhat reasonable. The Add Entry form was pretty tatty to begin with some issues about what actual entries are required and which not. There are still a few of those to tidy up.

There are two major elements to add, moderator handling of entries and bayesian filtering of entries. Though entries can be moderated now its an all or nothing thing, so i think I'll do the Bayesian filter first and then add the moderator UI to the existing code.

If guilt on doing the work I should be doing doesn't get in the way that is...

Posted by theSliver at 16:36 | Comments (0)
06 September
2005

There's a hundred thousand stories in the Naked City

Or rather I Just Heard passed the 100,000 stories mark sometime at the end of August and did so all on its own without anyone around to congratulate it or bake it a cake.

The only slight problem I Just Heard has had has been with some broken comments that look like someone trying to email in a comment through some automatic connection. I tidied up all the mess and switched on moderating.

I have been surprised at the number of comments that I Just Heard actually gets I'm not entirely sure why people comment on such an impersonal site but if they enjoy it they're welcome to it.

The real problem is the amount of space its taking up. The entire Zope site is now 21Gb, before I Just Heard started it was around 2Gb and if I'm generous that's still around 16-17Gb of data of stories sitting on the server. So I'm going to have to come up with a strategy of archiving with the oldest stories going the way of all flesh. I was hoping to make it to a year before getting into this but ho hum.

Apart from any of the other reasons for the Experiment it does at least show how scalable Zope is.


Posted by theSliver at 18:17 | Comments (0)
22 August
2005

Dealing with Intrusions

Hans Bjordahl's piece on Interruptions started me thinking on how I deal with signifying events to users.

I loathe and detest all forms of intrusive 'look at me! look at me!' dialogs. I get so much spam, whether its 99% identified as spam really doesn't matter it still arrives, that I don't want to be notified every time someone offers a sure fire way to extend my anatomy, my anatomy extends quite happily on its own.

Instead I try to find applications that gently indicate a change in status by changing their icon or some such (not flashing it at a rate which would send a sufferer into a petit mal seizure), and letting me decide, once I notice, whether to do anything about it or not.

On the other hand, there are times when I really do want to know when something has happened and then I look to the rules of that application to see if I can manipulate it to do what I want. So far there are only email clients that really approach this, to an extent Mozilla browsers do it with the bookmarking scheduling but it is a rare feature.

For instance, if I'm getting an email from my wife it plays an excerpt from a Dr Who 'So this is what you do with Unit Funds, Doctor!'. Well it amuses me.


So, do I follow my own preferences and generally use subtle indicators or intrusive dialogs? On the whole I try and use status messages and non-blocking methods and reserve blocking dialogs for those kinds of processing where the user is sitting still at the application and you want their specific confirmation that everything is right with the world.

An example of this is confirmation that a print job is successful. This is one of those dilemmas in applications that can never be resolved. The user has determined that they want to print something, they may have previewed it and then chosen the printer and gone through all of the OS mechanisms to print it. All of that is outside of your application. You can interrogate the spooler and see if its left the queue but even then the print job itself might have failed on the printer, it could have disappeared into that vast and virtual black hole that print jobs seem prone to enter.

If it doesn't matter to the application whether it was printed then simply letting the user reprint the information is sufficient (though in the case of documents such as Invoices you need to give them the opportunity to say whether its a copy or an original). If the application needs to record that the print was successful then the only way to know that is by asking the user, 'Did the label print successfully?' and then you have to use a dialog.

So far I haven't implemented anything such as changing the form of the application icon or using a system taskbar notification but given that Magpie in its various forms does accept email I think I'm probably going to have to do something like that.

In any event it will be a preference for the user as to whether they want a dialog to pop up or some more subtle and less annoying (to me at any rate) signifier.

Posted by theSliver at 10:08 | Comments (0)
05 July
2005

There's a Patent, All Over the World Tonight

It is good to see that the resistance against trivial and innovation sapping patent applications is worldwide as this article shows where a South African FOSS organisation and an New Zealand organisation are separately objecting to Microsoft's patenting of translating XML files for the purpose of word processing.


Posted by theSliver at 08:40 | Comments (0)
04 July
2005

Pointless Anti-Patenting Poodling

This is the text of an email I've sent to Liz Lynne, our local Lib Dem MEP, today.


I wanted to write to you and express my view as a professional in software development for over 25 years and separately from any of the standard positions taken by FFII, which I don't disagree with but they have a slightly different view to mine.

It is my direct professional experience that software patents limit and restrict innovation and penalise small companies in favour of large corporations. The very idea of patenting an algorithm or method is against the point and purpose of the patent system which is not to protect ideas but to protect novel processes and machines.

There isn't a single software solution that isn't derivable from the problem that it is intended to solve. All software resides upon a solid base of technical accomplishment, there is no novel method that can be applied in software, they are all discoverable. They may be differently named they might identify moving data from one form to another but essentially there is no difference between moving it between formats A and B and formats C and D. The principles are the same. Every single software patent involves the translation of data and for the most part rely upon that translation for their application. Any extension of the patent system, no matter how small, threatens the livelihood of all software developers not working within a large corporation able to finance the patenting of every trivial process.

How are software developers threatened?

Because of the proliferation of software patenting in the USA any independant software developer that creates a new application which does not rely upon libraries and APIs developed either by large organisations or so old that no one could patent them but instead relies upon their own libraries and basic methods runs a high risk that they will infringe one of those large corporation's patents. Thus we see the contraction of the software component industry and not its growth, we have seen the reduction of available operating systems and the stifling of alternative graphical libraries. Software patenting reduces competition in a market place already badly distorted.

If this were not so why would Microsoft corporation not announce that they will indemnify any developer using Microsoft products to develop their applications against patent infringement?

If this were not so why would IBM Corporation not grant large numbers of patents to the Opens Source community and so encouraging developers to use their Open Source products and allow them to control those products?

The opportunity for any other company or organisation to enter into direct competition in any area of primary software development is removed because of software patents.

In the EU there are still markets for localised applications which are able to gain market share against multi-national publishers without the need for patent protection yet those same companies are too small to patent what are essentially trivial processes because even with a single EU patent office, patenting is for organisations with very deep pockets. Within days of enabling legislation passing you can guarantee that patent applications will be made for all of the fundamental processes used by software and they will be made by the usual suspects.

The ironic thing is that these multi-nationals, pleading for software patenting, patent only so that predatory companies will not themselves patent processes and then blackmail those same large multi-nationals. The answer to this is not to grant them the ability to register patents but to create a safe haven where no software or method based patents can be made and all companies and software and business professionals can operate on a level playing field.

If you and others vote for the extension of patenting then you put at risk my livelihood and the livelihood of others.


Posted by theSliver at 07:30 | Comments (1)
28 June
2005

Feed me Sugar and Tickle my Tummy

In comment to the Google Earth product via which one can inspect the merest spec of the planet and gain more information than you could ever possibly want

I am ineluctably reminded of a science fiction story by the Brothers Strugatsky where the town is seduced by smart young men in suits (who are alien), into giving away their gastric juices and in giving them away agree to all sorts of changes in their way of life, freedoms and liberty, they become gastric fluid cows.

So Google, throws its gee gaws and bright shiny things in our faces, delicately twisting the fabric of our little Interweb into a means of distributing and consuming everything via its own Google shaped mouth.

You can't detect the sourness of the bile when its lubricated with so much corn syrup.


Posted by theSliver at 21:27 | Comments (0)
22 June
2005

Irish Software Association sells Software Developers a Pup

The EPO CII proposal

In Silicon Republic they report that Bernie Cullinan, of the Irish Software Association, believes that software patents are a good thing for the software industry in general and SME software developers in particular I cannot see how he can justify this on any basis at all. Software patents are a misuse of the purpose of patenting, there is nothing in software which cannot be derived or reproduced from the problem which it is designed to solve. This is entirely different to a manufacturing process or a physical artifact or engine.

It will not be cheaper for small companies to protect themselves with patents, the patent process is expensive and it is incorrect to say that gaining an EPO is sufficient to gain protection throughout Europe, the local language issue essentially means that the patent has to be tested in all of those languages and before the patent is secured it has to be searched within 25 jurisdictions instead of just one.

Software patents are not gained in general in order to protect a new process or a methodology from being used by others, rather they are used defensively to so that the organisation patenting will not themselves be prevented from using that process or methodology. This is precisely why companies such as Microsoft and IBM patent so heavily in the US and patent trivial applications and designs. There is no way whatsoever that a small company could pursue the same strategy. The only strategy that would make sense for a small company is to patent a process or methodology and then hold others accountable, essentially blackmail them. There are organisations in the US whose sole reason for existence is to buy up or create trivial patents and so exert leverage on large companies and hence large companies themselves patent such trivialities.

The result is that US software developers have to be wary of creating or using any algorithm created by themselves without using a large companies API or Library set because they may, without realising, infringe patents and leave themselves open to legal action. This means that innovation and competition is stifled and we can see that by the relatively stagnant state of software produced by American companies, regardless of Microsoft there is virtually no competition outside of the major vendor in any one area of software supply and this can to a great extent be put down to the iniquitous use of the US Patent system.

It is claimed that the EPO will not be misused in the same way and that the wording 'technical contribution' is sufficient to protect it. This is false and those that claim it are at the very least being disengenuous. From the workshops conducted by the UK Patent Office it is apparent that not only a coach and horses could be driven through the regulations but that an entire transport system could fit with such adequate space into the gaps that even Virgin Trains could run on time.

It is also entirely false that if CII fails that Microsoft and others in the US have sufficient clout and resources to prevent software developers in Europe from reaping the benefits from their own developments. If CII fails then the current US patents will still not apply to EU companies just as they do not apply now. If CII is passed then the day after all of the trivial patents granted in the US will be made as applications in the EU and even if many don't succeed the resultant effect will be that further uncertainty in the industry will increase the stifling of development and competition.

I urge all those that actually understand the real issues of software patents to join in the pressure on the EU Parliament not to grant CII.

For news on patenting and software patenting specifically see the Patent category on I Just Heard.


Posted by theSliver at 08:24 | Comments (2)
17 June
2005

Lookless or Luckless

Crossposting those Longhorn Blues

Ok I admit I haven't exactly kept up to the minute on Longhorn, largely because everytime I looked at it I started yawning but today yesterday, out of sheer devilment, I wandered onto the Longhorn blog and found this.

Which is no doubt very informative but talks about something called 'lookless metaphor' and not breaking it by being so cavalier as to create a custom control just for the sake of the way it looks.

So I googled 'lookless metaphor longhorn' and it returned a googlewhack (ok a 3 word googlewhack) which was the entry in the blog that mentioned it in the first place.

Removing the superfluous Longhorn shows that the concept of 'lookless' is entirely meaningless outside of Longhorn itself, which was what I expected it being such an ugly word, but I hadn't expected just 3 returns including the original.

So, it really means controls where the visual context is separated from the definition of the control (which I suppose means that all the behaviours are defined and the visual aspect styled). Just like XUL/XBL then, and pretty much like any XML/script rendered UI element.

Sometimes I think engineers and project leads should be given coloured pens to play with rather than language. Lookless, jeeze.

Originally posted on JOS


Posted by theSliver at 11:50 | Comments (0)

When Start means Oh I Didn't Mean Right Now!

There's the /. effect, the JOS effect, the del.icio.us effect and the Scoble effect, by which I mean if some site or other is mentioned by one of those sites, Slashdot, Joel of Joel On Software, the delicious bookmarking site or Scoble's blog then that site immediately goes into meltdown as the crazed technical folk can't resist clicking the link to see what they're missing.

Links are intentionally missing in the above paragraph

When that's some tiny little site or some momentary diversion it doesn't really matter but when its a site which is one of Microsoft's and is being praised to the skies (by Scoble anyhow), as the beginning of a new way of developing by Microsoft (lean, mean and XP) and then that site just sits there like a juiced lemon, well then the marketing effort has shot itself in the foot.

It's certainly true that Start is in beta, or Preview but if all that happens is an extremely minimalist Googlish looking without the nursery colours web page that is unfortunately connected to the most useless search engine in existence (MSN Search) then the whole point of the Preview is destroyed.

Hint, if you click the downward pointing chevrons in the tastefully indistinct and almost invisible Start logo then you get a drop down menu. As all it does for me is say 'Loading...' I can't say whether it really is a "this really killer RSS Aggregator. as Scoble says I can't honestly say but the people involved look like really nice people though the driving habits of the Product Manager sound pretty dubious.


Posted by theSliver at 11:45 | Comments (1)
01 June
2005

Does your product have a blog?

It's fairly understandable that project management and collaborative processes should have issue trackers, bug collectors and so on. Now it's becoming de rigeur that they have blogs as well.

Fogbugz is an obvious example of course, and we use IssueTracker for similar kinds of things. Does this apply to other kinds of process and other kinds of products though?

Does it make sense for the users of an accounting and BI (new jargon business intelligence, or an oxymoron if you prefer), set of software to have a blog to blog about ummm well work.

In the past we've tried conferencing systems to join users together, especially those kinds of systems where there are myriads of memos attached at the account and transaction level. Latterly there has been emphasis on IM systems to enable immediate access, and then there's the good old message area on a form for broadcasting messages such as 'Sell Pfennigs now!', or whatever.

But would a blog, somewhat disconnected but connected be any more attractive?

My natural cynicism says not, general users have little time or motivation to document what they do, the interweb is for looking up pictures of cats in clothing, or people with little clothing.

So this press release was intriguing. That a Patent Search Engine publisher would think it sufficiently important that a blog be attached to the product for its users to blog amongst themselves about the process of patent search. I must admit its a kind of horrified fascination that people use such tools to discover the most fundamental and trivial process that hasn't been patented and then go ahead and patent it.

In the end its all same old, same old. Those conferencing systems, Bix and Cix were more than adequate for interacting and documenting that interaction; Issue Trackers can do exactly the same job if approached in the right way; blogging is just being latched upon because someone manufactured a verb for the activity.

There's a lesson for someone, if you want to popularise something which does something other stuff did but does it in a slightly different way and you need it noticed, make a verb out of it.

But that's a differently shaped topic.


Posted by theSliver at 08:55 | Comments (0)
24 May
2005

Adding the News

For those that read this on the main site, http://sliver.livejournal.com, rather than on livejournal or via rss the observant amongst you might have noticed (apart from me playing about), that there's now a News Section on the right hand column.

It's a pickup from I Just Heard's Software Category. I might change the Category from time to time. It will always be the latest news item on the category at the current time, if there isn't any news that day yet then it will say so.

Incidentally, the pick up is just a Zope DTML method on the IJustHeard site but its an external python script on this site with a hard coded server address so that no one can jump on this and misuse it.

If you want the latest news item as a feed (and its just one news item), then the url as http://www.ijustheard.com/last_category_entry?cat_id= and then the number of the category, any number from 1 to 36 right now. Oh, and I forgot, the RSS for the entry is embedded in there as well...


Posted by theSliver at 17:17 | Comments (0)

Minimize and be Damned, continued

In the first part of this I generally described how I created the object for showing a minmised form, the standard icon and label.

To restore the form I could have used one of two different methods, either tightly bind the individual icon object with the form that it was attached to, or use the system UI messaging abilities of the Codemine Class Library that I use for all Visual Foxpro applications.

I decided, partly to make it a more general solution, to do the former. This really just meant adding an object reference to the Form to the obicon class and then attaching code to the DblClick event to restore the Form, make it visible and kill the icon object.

After testing the code, I took it out of the test form and amended a custom version of the underlying form class. In Codemine's case that's the frmFormCustom class in the custom folder.

Now all forms which inherit from this class (which is all the ones I use), now get the minimise to icon behaviour without any further work.

In the extended entry (or on LJ behind the cut) is the code.


the minimize method on the form:
* create an obicon object with our form icon, the caption and the name
* so that we can restore it afterwards.

nNewPosition = _screen.nLasticon
oIconname = "_Screen."+ALLTRIM(this.name)+"icon"
_screen.AddObject(ALLTRIM(this.name)+"icon","obIcon")
WITH &oIconname
.imgImagecustom1.picture = thisform.Icon
.top = nNewPosition
nNewPosition = nNewPosition + .height+3
IF nNewPosition > (_screen.Height - 75)
nNewPosition = 0
ENDIF
_screen.nLasticon = nNewPosition
.cname = this.Name
.cTitle = this.Caption
.lbltextcustom1.caption = this.Caption
.lbltextcustom1.alignment = 2
.form = this
.visible = .t.
ENDWITH
this.savesizeandposition()
thisform.Visible = .f.
_screen.Refresh

When the icon is created the init code includes the following to handle the drag and drop:

=DODEFAULT()
BINDEVENT(_SCREEN,"DragDrop",this,"HandleDragDrop")

The DragDrop code itself is really very generic:

Handledragdrop
LPARAMETERS oSource, nXCoord, nYCoord
width = oSource.width
newx = nXcoord - (width / 2)
height = oSource.height
newy = nYcoord - (height / 2)
oSource.Move(newx,newy)

And then finally the code for when the icon is double clicked:

* restore the minimised window
this.Visible = .f.
this.form.WindowState = 0
this.form.restoresizeandposition()
this.form.visible = .t.
this.form.show()
_Screen.RemoveObject(this.Name)

And that's all that's needed.

There are a couple of limitations at the moment which I'll get to if they cause a nuisance. The icons are only created in the first column of the available desktop right now (users would have to move them around themselves if they needed more), I could add code to store the current column position as well but in practice I don't think users will have that many forms minimised and its probably a bad idea if they do have that many open at one time for the health of the application.

Secondly, right now the drag drop is just on the container so you have to click outside the icon or label, this is non inutitive and it will be fixed before put in front of a user.

There is one situation when I should automatically restore the minimised forms and that's when the user closes the application. if they have unsaved data then they'll be asked correctly if they want it saved, and the dialog will have the necessary title to let them know which form but it should be restored so that they can see the details and the icon be cleanly removed.

Posted by theSliver at 12:54 | Comments (0)
15 May
2005

Minimise and Be Damned

This is largely about Visual Foxpro so most of those that generally read this can probably skip it.

There's been an irritation under my skin for the longest time. VFP apps tend to be MDI, that is you have multiple windows open within the application, one for this another for that. It's a data oriented language so it lends itself to applications that deal in data, like accounting systems and in accounting systems you often have a need to look at data in different ways or different sets at the same time.

You can minimise most open windows (unless they're modal) to the application's background area, kind of like Windows' Desktop. But instead of a nice icon and caption underneath you get a little lozenge of a titlebar with the app title, and generally too short to make any sense. It also doesn't take account of the current size of the _SCREEN (the base object of the displayable area of the application), so if you've created your own status bar for example (as in Codemine applications), the first minimised lozenge slips underneath the status bar, there's just enough peeking out to grab it but it looks silly and amateurish.

I've resolved a number of times to fix this but never got around to it, one of the small stumbling blocks was that I wanted the user to be able to drag the minimised apps around the 'desktop' and this was a little tricky.

The other day I got down to beginning this and after a few minutes had a working class and a method to kick off the creation of the object.


The class (called obicon), consists of a container inside which is a picture element, 48x48, and a lbltext element for the caption.

When a Window gets minimised it generates a Resize event, though the actual window size properties are unchanged. The only way to tell if the Resize has been caused by a minimise is to check the value of the WindowState property on the form, if it's set to 1 then the Window has been minimised.

I usually already have code on the Resize event to call the scaling code for resizing forms and if a Window is minimised this code gets called anyway so I decided to kill two birds with one stone and not call the scaling code if the Window was being minimised.

The obicon object has to be created within _SCREEN so we use .AddObject.

So that we know where to put the icon I've already created a new property on _SCREEN called .nLasticon. The name for the icon is generated out of the Form name and the suffix icon. Then its simply a matter of copying the name of the form icon to the obicon along with the title of the form to the caption.

To enable dragging the icon around the 'desktop' I made the container handle dragdrop automatically and then because its the containing object that actually moves the DragDropped element I bound the DragDrop event of _SCREEN to a method on obicon (using BINDEVENT() in VFP 9.0) that actually calls the Move and lo and behold you can click and drag the icon around the desktop.

That's the point at which I've got to. Next is to implement restoring. There are two major methods, the plain VFP one and one using Codemine's system methods and actions.

to be continued.

Posted by theSliver at 11:59 | Comments (0)
06 May
2005

Rumours and the Shape of Things Still to Come

I'm hearing rumours that the Company behind the remarkable set of Office Applications I saw running on Firefox at FOSDEM in February is actually Google.

This would give them remote Office applications equivalent to Word, Excel, Filemaker Pro and so on living not only in a Mozilla browser but also on any browser using their XUL plugin.


Posted by theSliver at 15:57 | Comments (0)
05 May
2005

Full Text RSS

Due to popular demand, well one anyway, I've added a full text RSS feed, its the extremely elegant link on the right called 'Full Text RDF', and I'll put the full address in the excerpt which is what goes to the current RSS 1.0 feed.

The reason for creating a separate feed is that, a) its an experiment and b) other aggregators tend not to like it and c) you don't get the nice paragraph layout, just a slab of text. If I start writing all HTML entries then that latter problem will probably go away but then I'm lazy so it may not.


Posted by theSliver at 09:31 | Comments (0)
20 March
2005

The FOSS way

In the Off Topic space recently, Philo has been asking about and prompting discussion about proprietary software products and Free and Open Source software and when if someone isn't willing to pay for the software who will pay the developers?

Which is a fair question and one I've partially answered there but as its become more of an essay than a comment I thought I'd use my own real estate rather than Off Topic.

--------------

Any published author knows that no matter how many copies are sold they will never make the same amount as the publishing company, the marketing companies, the agents, the accountants or the lawyers.

Authors rarely write solely for the revenue from the copies sold. Publishers sell acreage of paper (they may have all sorts of ideals and principles as well).

And in this I agree, surprisingly enough, with Richard Stallman, copyright was something invented by printers for the purpose of printers (who in its creation became publishers).

The creation of a proprietary software package is not anything like the creation of a car it is much more like the production of a motion picture.

The argument about Ultraedit is specious. Both Philo and I are users of Ultraedit and long time users but I'm stuck on version 9.10a it would be trivial for me to pay for the upgrade and go on to version 11 but so far I don't need any of the feature changes and as my copy hasn't rusted I don't need to get a shiny new version.


If there were an open source version of Ultraedit the only real effect would be those that didn't want to spend $39.95, or those that wanted to incorporate their own features, would use the open source version (and I've wanted WebDAV support for a long time).

The mistake seems to be where people place the value. Philo is placing the value on the distributed product, it has a price and that is what its worth and that's where the revenue comes from. The economics of the business model depends upon setting the right price and that determines the allowable development cost.

That's right. You don't develop the software and then work out how much it should sell for, you work out what market you're aiming at and what price point will maximise your sell through to that market. Then, given all the rest of the budgets allocated to the production of the software including the marketing, the direct sales cost and the rest of it, then you get the development budget. And above all, above everything else is your margin, it is the margin that determines the development cost.

Now it isn't always precisely like that since you can amortise cost over the life of the product, especially if you capitalise the development cost (which you should) but the fact remains you don't (if your business is large volume medium price software publication) just develop then after developing work out how much to charge for it.

On the other hand, FOSS has an entirely different dynamic. Someone, usually just an individual, both sees a need for a solution and understands how to create that solution and produces a useable and reliable product. They don't, for whatever reason, equate a copy of the software with a value, though they probably value the effort they put into the software and they value it as an asset (just as capitalising development costs for the publisher makes it an asset). That asset could be seen as reputation, experience or coolness or any combination of all of them. It varies from individual to individual.

That asset value is far more valuable than people realise. For some, yes the Usual Suspects, it gets them a sinecure as a job and sufficient exposure in the industry for them to name their own price if they wish. For some companies, that asset value can also be used because anyone can package that product and if they package it (using all of the same principles as the regular software publisher), at the right price point for the market then they will get their margin and a supportable business model.

What about the regular developers, the ordinary joes? Well when you look at it, if you build an OSS company the one group you need less of is the marketing and sales group. You need some marketing, some product management, and most FOSS projects fail more for lack of product management than lack of will or developers, but you don't need all the lesser fleas to bite-em.

Successful FOSS is of two types, large scale many eyed service projects, the Apache, Mozilla (which is a service provider much more than a browser developer), and so on and the individual small scale projects that are probably implementations of FOSS apps and services with their own necessary development and implementation, a hybrid of development and support.

For instance, we have a set of Zope products that enable a client to store pictures of ad campaigns so their clients can see where their ads are being placed in the environment. Its an OSS set of products built on top of an OSS platform. We sold the development cost, plus margin to them, in that sense its no different to the client than a closed source development, they still have the source. The advantage to them was that the development cost was cheaper and the development was faster because we used OSS components and the advantage to us as developers was that the marginal cost was much less.

There's also something that needs to be said about proprietary software that becomes OSS and what typically happens. The Mozilla release was both unique at the time and revolutionary, and like all revolutions not all its imitators are as successful. In truth, nothing really happened in the first year to 18 months of the Netscape release because as jwz says he couldn't get the version 3 source released only the buggy version 4 which no one could get to work adequately and that led to the rewrite.

The Open Office release of Star Office also took about a year or 18 months to get momentum and to gain its own traction.

In both cases the owning corporations were willing to sink resources and money into the continuing development.

In all other cases where a proprietary product was made OSS it was because the owning company abandoned it.

Abandoneware rarely gets taken up because, as in my Ultraedit example, nothing has rusted and no one is impelled to carry on development. This is not to say that version 11 of Ultraedit isn't a fine thing, folding code and 64bit support are worthwhile features, I just don't need them right now.

Are there examples of companies that employ developers that create open source products? Yes there are, mozilla.org for one, Mozilla Europe has hired for translation management, IBM's development is now predominantly OSS.

Is FOSS a panacea, the best way?

No. On the whole as Matthew Thomas says, the useability of OSS software generally sucks. But that is more about the barrier to entry of HCI experts into FOSS than it is about any excellence in proprietary development companies.

The question who is going to pay the developer when no one wants to pay for the software is that the cost of not paying the developer is always going to be greater than the saving the user makes in not paying for the software.

The cost of not paying developers at all means there is no purpose. Developers are getting paid now, some of them are willing that that payment is in something other than cash but the payment is taking place.

Will non-cash payments buy the daily bread? No but they can turn bread into caviar by accumulating as personal capital that the developer then exploits. Will all developers exploit it in this way? No. Are they all worth paying, either in cash or some non-specific kudos? No.

The Universe isn't fairer in this sense, and in many ways it is more brutal.

There isn't a stark choice between proprietary and FOSS, both can co-exist and with some licences (MPL) are encouraged to co-exist. But if someone wonders why Microsoft Office is still bought and bought in numbers it has nothing, absolutely nothing to do with the current feature set of value of Office 2003 and everything to do with the previous 15 years development of most of the Office component applications. When you have that installed base you will, if you don't behave like Wordperfect/Novell/Corel, continue to churn your own users and if you get the release periods right you will churn relatively the same percentage each time.

Microsoft Office is not bought for innovation it is bought for security and continuation.






Posted by theSliver at 12:45 | Comments (0)
28 February
2005

FOSDEM III

why sponsoring can be a pain in the ass

One of the contacts I was glad to meet at FOSDEM was the representative of PeP Link, a Hong Kongese manufacturer of routers, wireless access points and embedded stuff generally, and all powered by Linux and gunk.

I was interested because he (Phillip Stevens), was showing off MANGA, an ADSL router cum wireless access point that has two ADSL connections and aggregates that bandwidth and load balances it for the retail cost of $400. Distribution discounts seem to begin around the 30% mark but probably elevate quite high for good OEM volumes.

The idea is very interesting, though the price seems right on the edge of being affordable and they aren't going to win any awards for box styling.

The pain came in two waves for PeP Link, first off on Saturday the network infrastructure just couldn't take it and there wasn't a network even reaching the PeP Link table which is a bit awkward if that's what you're marketing and you have your devices littered around the developer rooms; secondly it seems the devices on offer at FOSDEM weren't the dual PCBs that he was talking about but regular single connections. That said the company is offering everyone that bought one a €50 rebate, you get to keep the old router and get the new one free when its available in March.

It reminds me too well of past history and I hope it goes well for them.


Posted by theSliver at 23:08 | Comments (0)
04 February
2005

48 bits of Joy

One of the things I hate getting into is creating icons for applications, at the time I'm creating an app I never have the money to pay a graphic artist to come up with a consistent and coherent set of icons and so I either end up re-using cruddy ones or fumbling myself. So I was very pleased with myself when I came up with this one for Order Forms (if you can't see it properly because you're using IE that's not my fault, get a decent browser).

Once I've got the current paying job out the way, which should be Monday/Tuesday, I'll go back to the Bluebell development but I'm also going to spend some time on my-photos.org and IJustHeard.com. For those I have asked a graphic artist to create the logos and banners and then I and I can get on with the rest of it.


Posted by theSliver at 12:29 | Comments (0)
02 February
2005

Digital Skin

Whilst this flexible sensor is being touted as a possible skin for robots I can forsee some future applications as they get the material thinner and thinner. As a human integrated interface you could stroke, for example. If you're blind you can still stroke out letters and numbers, not to mention if there were indentations and bumps for controls.



Posted by theSliver at 11:38 | Comments (0)
31 January
2005

PREcisely

Well I discovered what was messing with the layout of the main blog. The <pre> block of text in the entry about Companies House was just too long and pushed the whole set of divs out.

The standard COREBlog layout uses a table to split up the content and side bar but uses divs within the single table row so it really gives it no benefit. I'll put replacing that tiny use of table for layout with divs and CSS onto the ToDo list.


Posted by theSliver at 23:35 | Comments (0)
27 January
2005

DDE Dah-Dah-Dah

There's something of the lemming in software development, some new technology is brought out and at first a trickle try it and then they begin to swarm, with those not swarming shouting something about a cliff. The next new technology and the wave moves again leaving a few more in its wake.

DDE was how you could move information between dissimilar applications, before components, COM, DCOM, ActiveX, .NET and all. There was some minimal housekeeping and you published your API (if you were good you made it discoverable with a Help topic) and et voila, you had yourself a peer to peer connection between applications that was about data and not about processes. Then when COM came along everyone was supposed to use the new funkier methods of embedding and linking, which were more about making Microsoft Office Applications ubiquitous rather than improving life for the user (in the beginning at least). DDE didn't go away and it still hasn't, it's still around, though someone informs me that there's no wrapper for it in .NET which appalls me.

For at least seven years now I've had an annual little job, its about updating the stock price lists for a client from their spreadsheet there's about 1200 products or so and four price lists.


If they didn't have some automated method to do it they'd have to go in and adjust iindividual prices. The solution was to use something we'd already created a few years before, a DDE Server. The DDE Server knows about the accounting system (Pegasus Opera) and it has modules for each Opera module and Topics or Verbs for all of the fundamental processes, navigating records, adding them, adding transactions and so on. It was a simple matter to add a stock update function to this with all of the validation. In Excel we created a short VBA macro tied to a button which ran through all the rows and called the DDE server with the text parameter string of all the stuff. So it takes under a minute to update and create the stock records and the prices in all the price lists. The client doesn't have to understand the underlying guts of Opera and the only grief I get each year is about them moving the columns around in the spreadsheet.

The point is, the DDE Server was originally written in Foxpro for Windows, now its in Visual Foxpro version 9, but the basic code is exactly the same, nothing has rusted, nothing has really broken.

For situations where you're simply moving data from one place to another DDE is still far more effective and efficient than using COM or any of its brethren.

Posted by theSliver at 09:52 | Comments (0)
26 January
2005

If it were a goat you wouldn't milk it...

I was trying to register this morning for web filing with Companies House. It began with their website using popups in such a naff way that I had to disable the whole popup blocker in IE for it to work at all (Firefox simply refused to open the window). You have to get a security code which they mail you, so you put that in their form and as the form has a field for the company number you put that in as well. The security code arrives pretty promptly, and then you need an authentication code which is snail mailed to you. So it says to apply for an authentication code you put in the security code and click continue, at which it displays the same form again with a cleared security code and exactly the same prompts so you do this a few times; then you read the text.

To apply for an Authentication code, firstly obtain a Security Code by selecting 'Not yet registered'. When you have received your Security Code by email enter it on this screen and click 'Continue'. On the next screen enter your company number and 'Confirm' then select 'Apply for an Authentication Code'. The Authentication code will be sent by post to the company's registered office address.

If you ever put the company number in, which is what it says on the first screen, you never get to the apply for an authentication code because its assuming you're trying to login and it suddenly dawns on you that you delete the company number and just put the security code in on its own. And there finally you get to where you wanted to get to ten minutes ago.


Posted by theSliver at 09:57 | Comments (0)
21 January
2005

I'm fairly chuffed

with myself for tweaking my addEntryHook script that sends the entry on to LiveJournal as a copy that it takes the extended entry field and places it inside an <lj-cut> set of tags. This is entirely trivial and took less than a minute or two to put in and it has pretty much no utility to anyone except me and no one will really notice it.


Posted by theSliver at 10:15 | Comments (0)
18 January
2005

Oooooh Shiny Thing

This is what I'm considering using for building a Home TV HDD recorder and possibly DVD writer box. Stick a wireless card in it as well and we can pipe it around the house, or play remote DVDs on the TV.

The company that builds the cases, Hoojum, is in Stroud Gloucestershire and their site is here.











Posted by theSliver at 13:23 | Comments (1)
14 January
2005

Methane, you Huygens

Today this little robot landed safely on the surface of Titan and started broadcasting the local news. The environment is reminiscent of Lucy in the Sky with Diamonds with Tangerine Skies.
I wait with bated breath for the pictures and sounds.


Posted by theSliver at 18:16 | Comments (0)
13 January
2005

Microsoft One Note

Not the Lost Chord

This was prompted by this entry in JOS asking opinions about using Microsoft One Note.

I've been trying, honestly I have.

The yellow sticky thing I've found most useful, but it has this side effect feeling of getting somthing stuck to your finger that no matter how you gyrate your hand all you manage to do is stick it to another finger, or the other hand or your wife's (or worse someone else's wife's) cleavage.

That's because of this weird UI feature it has of where you click the mouse is where the entry starts. No doubt this sounded like a Good Idea, because you just click and type but it is cloying and means things get added in peculiar places.

Then when you open the yellow sticky thing again its blank and you have to navigate to find the last entry. Until you realise this you don't trust it.

On the categorisation thing: yes its nice you can create new tabs and blah de blah but look if I was this organised in the first place I wouldn't need to have this piece of software anyhow. What I want is One Note's ease of chucking text at it with an automatic filter into categories, let software work out what category it is, not my head. My head has other things to do.


Posted by theSliver at 16:33 | Comments (0)

Wrapping it all up.

Including graphics

Now all we have to do is to make sure that an entry made directly into the management interface with HTML tags gets preserved correctly in LiveJournal. For instance this should be emphasised and to the right of this paragraph should be the photo of the ballet dancers from St Petersburg.


Posted by theSliver at 02:25 | Comments (0)

Try #2 in html


It's possible the html was stripped in the last post, so this is another attempt. Certainly the line wrap issue has gone, but in the first post there was a spurious IMG tag. This should be bold and this should be italic.


Posted by theSliver at 02:06 | Comments (1)

Emailing using rich text...


Now I'm going to try composing this using rich text, or HTML mail to see if this doesn't have the line wrap character problem. In any event for this purpose the rich text may well be better as I can add effects directly into the text without having to add html directly myself.


Posted by theSliver at 01:45 | Comments (0)

Another email test

This is with changing the encoding to plain old US ASCII. In order to see=
if this has worked we have to type sufficient characters for the linewrap=
to happen, which is at 72 characters, if memory serves.




Posted by theSliver at 01:38 | Comments (0)

Hooking email into the mix.

This is just another test to prove out posting an entry via email to the=
new Blog (whose address is still obscure and will change after testing),=
which will then add the same entry to the LiveJournal Blog.

Et voila.



Posted by theSliver at 01:33 | Comments (0)