Bypassing the primary interface

January 27, 2009 at 8:12 pm (User Interface Design) (, , , , , )

At CES a couple of weeks ago, toymakers Mattel demonstrated a nearly-ready-for-production release of a toy which is operated simply by concentrating.

Telekenesis? Not exactly

This device claims to translate brain activity (measurable via EEG) into a command which controls a small fan…this fan blows a stream of air which lifts a light ball into the air. The ball can then be moved around a sort of obstacle course. All this movement is apparently triggered by how much the player is concentrating.

My first reaction was that it would probably be quite easy to fake this…just make the fan blow randomly and you’d probably achieve a sort of placebo effect, where people convinced themselves that it was their concentration which triggered the fan. I’d still love to get my hands on one to try it.

Straight to the core

A researcher (fellow) at MIT has developed a relatively inexpensive device which allows images to be projected directly onto a retina, thus allowing people who are blind as a result of afflictions such as hemorrhages to ‘see.’

The device can be connected to to devices such as cameras and computers. It is effectively a miniaturisation of a scanning laser opthalmoscope which has achieved massive savings in terms of cost of production and size due to the development in technologies such as LEDs, which have replaced the laser in the original device.

Our methods and channels of interaction are changing

For the last few decades the speed of communication has been increasing at a much accelerated rate compared to the decades of the early 20th century.

The telegraph instigated the move to binary storage and transmission of data, but the same input/output channels were utilised – fingers which previously wrote now tapped keys, eyes which read letters on paper now read letters on screens, ears which listened to sound still listen to sound, albeit transferred through a different medium such as VOIP, and vocal cords are still used to generate that sound.

There have been some recent evolutions, such as voice transcription systems, and text-to-voice transcoders, but nothing which truly stepped outside established channels.

Now we have (if it’s not a hoax) a system which can translate brain activity – thoughts in their base form – into action in the world around us. Yes, this current implementation is barely more than an on/off switch, but it opens up the realms of possibility. Suddenly, controlling devices by thinking doesn’t seem impossible.

Imagine the combination of an evolution of these two devices – a paraplegic could ‘think’ into a computer, which could then create an image of that text and project it onto the retina of a deaf & blind person. It is an extreme scenario, but think of the possibilities it represents in terms of data communication, and the boundaries which it crosses.

Permalink Leave a Comment

Quickbooks – disable close button on application window

January 22, 2009 at 8:10 pm (Software, User Interface Design) (, , , , )

Quickbooks, while it is a very nice integrated accounting package, has long had a major usability flaw – it is very easy to accidentally close Quickbooks.

When its internal windows – reports, registers etc – are maximised the button to close the internal window sits directly inside the Close button on the application window…much like in Excel:

ex

Closed the program by accident…again

Unfortunately it is very easy to click the main application Close button instead of the internal window one. The first time you do this the program asks you if you’re sure you want to exit. If you tick the “Do not ask me again” box when answering this question, there is no way to re-enable the dialog (re-installing isn’t an option due to the difficulty of getting licenses for older versions of Quickbooks from Intuit).

This is more of a problem on older versions of Windows where the application Close button was identical to the internal one, but even on XP and later we had a frequent issue with people in the office getting frustrated because they closed the application by accident. When you’re running on old hardware and you’ve got a company file open which has hundreds of thousands of transactions, generating reports can take upwards of 15 minutes. Losing all that because one has accidentally clicked the wrong button is frustrating.

Searching the various user forums found several people citing the same issue, but with no resolution. Digging through the XML in various settings files didn’t turn up the option either.

It appears that Intuit may be fixing this in Quickbooks 2009, but they still don’t explicitly say that you can re-enable the option.

Solved by a script

So I looked at a couple of different options, but the only one which I had the confidence to attempt was to disable the generic Windows application Close button. The only scripting language I have much experience of is AutoHotKey.

This script polls for the existence of Quickbooks application windows every 5 seconds, and if one exists, calls the appropriate dll and removes the Application Menu Close option and button from the window, if it hasn’t already been removed.

It has only been tested on Windows versions up to XP, and on Quickbooks versions up to 2006, but as long as the Quickbooks developers don’t decide to change the (bizarre) name of the Quickbooks app class – MauiFrame – it should continue to work for newer versions of the software.

Its not the most elegant solution, but it works, and the users in our office, particularly some of the less technologically inclined ones, were very grateful for it.

Get the .exe here (codeplex isn’t the most appropriate place to host it but I don’t have anywhere else just now) and place it in the Startup folder. The source code is here – open it in any text editor.

Permalink Leave a Comment

Windows Live Writer plugin to prevent internal pingbacks on WordPress.com

January 21, 2009 at 12:08 am (Windows Live Writer) (, , , , )

As I wrote about and posted a workaround for not too long ago, internal pingbacks really annoy me (when you link to a previous post of yours and it generates a pingback in the comments of the post to which you linked). In general I think pingbacks are excellent, but when they are from me, to me, I think that they look untidy and unprofessional, and they annoy me. What also bugs me is going back and manually removing them, especially when I don’t write my blog posts using the in-browser editor.

Plugin solution

So I decided to write a plugin for Windows Live Writer which automatically turns absolute links to posts on your own blog into relative ones, preventing a pingback being generated.

Note: RSS READERS DO NOT LIKE RELATIVE LINKSif someone subscribes to your blog by RSS, if you have a relative link in your post, their RSS reader will not be able to handle the relative link (if they click on the link in the RSS reader they won’t be taken to the link destination). Source – thanks to Joe on the WLW dev team for pointing this out.

There are plugins for various blogging packages which prevent internal pingbacks, including WordPress, but as I host my blog for free on WordPress.com I can’t use plugins.

So I may well be the only person to ever use this.

How it works

What the plugin does is search through your blog post when you press Publish, and it it finds the string

<a href="<http://your blog.com>/<some blog post>

it changes it to

<a href="/<some blog post>"

(Actually it doesn’t include the “<a “ bit but I included that so that the Source Code Formatter plugin would get the colours right)

And that’s it.

To install, download the installer from codeplex (the source code is also available) and run it. Enable the plugin in Tools | Options | Plug-ins. The first time you Publish after enabling it you’ll be asked if you want to activate it for the particular blog, as it is a blog-specific (PublishNotificationHook) plugin – you can manually enable it per-blog by going to Blogs | Edit blog settings | Plug-ins.

Development and references

I originally coded this plugin as a ContentSource plugin which incorporated a form like Insert Hyperlink. However this seemed to me to be too fussy and annoying to have to remember to distinguish between links to your own posts and other links, so I re-created it as an inline “set and forget” plugin.

For the first version I found Scott’s guide very easy to read and helpful, and I also found Keyvan’s write-up useful.

For the second – final – version I did some more reading and found that Scott had already written a plugin which made all hyperlinks bold, which did almost exactly what I wanted. He wrote a very nifty WriterUtilities class (unsupported by him or the WLW team) which allows you to edit the contents of the blog post (by plugin) before it gets published. When I emailed him checking that it was ok to re-use his class he couldn’t have been nicer or more friendly.

I re-used Scott’s Bold Hyperlink Plugin almost in its entirety, so Scott, thanks for inventing this wheel!

When it came to building the installer I had a quick peek at Ben Hall’s post as I haven’t created an installer since I was coding in VB 6.0.

Codeplex project page: http://www.codeplex.com/RelativeInternalLink

Permalink 1 Comment

Obama: Inspirational. Dangerous. I wish he was an Irish politician.

January 20, 2009 at 6:36 pm (Irish Politics) (, , , , , , , , , , )

It was like watching a film. Or reading a novel where the hero makes a speech to inspire his forces before they enter battle against an overwhelming foe.

Speak to us as intelligent people

Even though he was careful to avoid the “They’re bigger than us, let’s stick it to them” cliché, he delivered an image of challenging choices and actions which nevertheless managed to celebrate and appeal to the common good.

Even though he bravely addressed themes which had to be addressed such as the economic hardship which is ahead of most developed countries and the supreme difficulty of fighting terrorists who are prepared to kill themselves, and didn’t tell everyone that everything was rosy, as it patently is not, he managed to convey a sense of unity and hope.

He didn’t pull punches.

The man has an oratorical ability which I have never before experienced in real life.

Its not just what he says, it’s the way in which he says it.

Watch the first part of his speech here:

More from the AP Channel.
Part 2:

Part 3:

Part 4:

Part 5:

A dangerous hero

He combined intellectual and emotional appeals in a fashion which could be incredibly dangerous. Firstly, because someone with that ability can persuade people to do things which might be against their nature or morality. Secondly, because if he fails to deliver, I cannot imagine anyone else in this generation who has the potential to capture people’s imaginations and hopes in the same way.

If he fails, the disappointment and disillusionment could be appalling. Fatal. Ruinous.

He brings home the pathetic parochialism, lack of vision and lack of aspiration which is omnipresent in Irish politics. Parochialism when applied to the village of Ireland is great. Parochialism which appeals to and serves only your local constituency so you can get elected one more time is not.

Irish politicians are pathetic

His vision illustrates in stark contrast the utter lack of credibility and inspiration present not only in the established government in Ireland – Fianna Fáil – but also in the opposition parties such as Fine Gael and Labour. The Greens had aspirations and ideals which they traded for the seat at the table. If they can leverage the experience which this time in government will give them, maybe, just maybe they could do something worthwhile with it. But looking at their current people I very much doubt it.

It’s time for a party such as Fine Gael to cease the pathological knee-jerk reaction which they make to every move by the government. Not absolutely everything which Fianna Fáil do is totally useless and bad. If Fine Gael could start making intelligent analyses of Fianna Fáil’s actions, and where they have a rational disagreement present a viable alternative (and there sure is scope for this), they might actually persuade people that they could lead the country.

They need to stop their idiotic habit of stating that the government’s (Fianna Fáil’s) plan is utterly misguided and contrary to the good of the country, and then issuing their own plans which are functionally indistinguishable from the one made by Fianna Fáil.

Permalink Leave a Comment

Simulation of US Airways plane landing on the Hudson & real time footage

January 19, 2009 at 5:34 pm (Airline safety) (, , , , , , , , )

The BBC commissioned a simulation of Captain CB “Sully” Sullenberger’s massively skilful landing of an Airbus 320 on the Hudson last week. The also included a brief clip at the end of just how badly this sort of thing can go wrong (see video further down for the full story).

US Airways Flight 1549 landing on the Hudson

Simulation of US Airways Airbus 320 landing on the Hudson

Here’s a short clip from a surveillance camera on a pier on the Hudson showing Flight 1549 skidding past on the river:

Flight 1549 landing on the Hudson, seen from surveillance camera

And here is some Coast Guard footage of Flight 1549 coming to a halt on the water and the rescue of the passengers starting:

Coast Guard footage of the Flight 1549 on the Hudson

Eithiopia Flight 961 highjacked and crash landing on the sea

Amazingly, there were survivors on that Eithiopian airplane, Flight 961 – see the full story:

Highjacked Eithiopian airplane crash lands in the sea

Permalink Leave a Comment

Anglo Irish chairman apologises – and it only took a month!

January 17, 2009 at 4:03 pm (Irish Banking Scandal, Irish Politics) (, , , , , , , , , , )

I apologise on behalf of myself and the board. I am really sorry that this has happened.

These were chairman Donal O’Connor’s words last night at the Anglo Irish Bank EGM held at Mansion House in Dublin. The episode to which he is referring is how the director’s loans held by his predecessor Sean Fitzpatrick were concealed from shareholders by some extremely immoral practices.

Having thought about it for a month, I suppose it was wrong…

Sean Fitzpatrick resigned almost exactly a month ago, but at the time the Anglo Board publically accepted his resignation with regret. It has taken until now for a representative of the Board to apologise to shareholders.

Pesky shareholders

The board had hoped that they would be able to quickly adjourn the meeting once it had been opened, as the meeting had been called to allow shareholders to vote on the bank’s proposed recapitalisation by the Irish government. However on Thursday the government announced that they no longer intended to go forward with this, and that they would instead nationalise the bank.

The hundreds of shareholders who attended the meeting however were having none of this – there was an almost unanimous demand for the Board to step down, andthey  were incensed when it emerged that the board, including now-resigned chairman Fitzpatrick have been paid their bonuses for 2008/

€179 million in directors’ loans

At the meeting the Board disclosed that directors’ loans currently stood at €179 million, of which €84 million was drawn down by Sean Fitzpatrick. They also revealed that the loans to Fitzpatrick stood at €129 million in 2007.

Incompetent auditors

Ernst & Young, the auditors, defended their processes in auditing the accounts, saying the audits were conducted

in accordance with the appropriate auditing standards

It is incredible that they expect what was either their failure to recognise or wilful omission of a reference to this annual temporary transfer back and forth of such sizeable director’s loans to Irish Nationwide to be accepted without criticism. If it is the former it an appalling reflection on their abilities as auditors, and if it is the latter it is massively immoral behaviour.

Largest shareholders

Among the largest patsies shareholders are the Quinn Group (Séan Quinn and his family) who have a stake of 15% which was worth approximately €1.22 billion a year ago, US investment manager Invesco, German institutional investor Dresdner, UBS, and Janus Capital. Current and former members of the Anglo Irish Board also hold relatively sizeable investments in the bank’s shares, including Sean Fitzpatrick who holds 4.9 million shares, the purchase of at least some of which must have been funded by his director’s loan.

All of these shareholders, plus the many private investors in Ireland, some of whom would have been hoping to fund at least part of their pension through these shares, may find their investment worth as little as 5% or less of their original cost when the bank is nationalised.

Financial Regulator chief executive resigns

The Financial Regulatory body stated on January 9th that it accepted that there were serious internal failures in its examination of the banking practices at Anglo Irish Bank.

Dermot Quigley told the Oireachtas Committee on Economic Regulatory Affairs that Sean Fitzpatrick’s loans were discovered in January 2008 by the Regulator. He refused however to disclose whether or not they had been reported to the chief executive.

The same day Patrick Neary, the chief executive of the Regulator, announced his decision to retire at the end of the month, a decision which was accepted with regret by the Regulator.

Permalink Leave a Comment

“Sully” was trained by the US Air Force – not a surprise

January 16, 2009 at 8:42 pm (Airline safety) (, , , , , , , )

Having seen the incredible feat performed by Captain C B Sullenberger yesterday, its not surprising to see that he was trained by the Air Force. The Smoking Gun has a good profile on him.

Well done Sully and well done the US Air Force for training him.

Permalink Leave a Comment

Airplanes CAN land on water

January 16, 2009 at 12:15 am (Airline safety) (, , , , , , , , )

I always believed that lifejackets were purely a placebo for passengers, but this story has proved that assumption incorrect. (pics courtesy of the TimesOnline).

New-York_3__466782a

This is the astonishing story of the US Airways Airbus which hit what was apparently a flock of geese a few minutes after taking off from LaGuardia and had to make an emergency landing in the Hudson river at Pier 83.

The engine blew. There was fire everywhere and it smelled like gas…People were bleeding all over. We hit the water pretty hard. It was scary.

Panorama-2_466783a

And this is a COLD day:

cold

Survivors and officials said that all 155 people on board left the aircraft through emergency exits, with some standing on the wing before being rescued by a ferry and police launches that sped to the fuselage after the aircraft hit the icy water – The Times

You’d wonder if it would be the same happy result if there hadn’t been river traffic nearby – they seem a little short of liferafts:

Panorama4_466694a

At a guess, the reason that they managed the successful water landing is the lack of waves and swell. I suspect that it would be a different story altogether in rough conditions.

Kudos to captain C B Sullenburger for pulling this off.

Permalink Leave a Comment

How to stop pinging your own blog on wordpress.com

January 13, 2009 at 1:36 am (Blogging) (, , , , )

Part of the wordpress.com functionality is that when you link to a blog from one of your own posts, wordpress attempts to automatically notify the owner of that blog by posting in their comments section with an excerpt from your post linking to them. This is called pingback.

Hey I just posted about myself

When this becomes a bit annoying is when you link to one of your own previous posts, as this also generates an entry (pingback) in the comments section of that post. Pingbacks from yourself look messy, and a bit unprofessional.

Rather than having to edit the comments on a previous post (especially annoying if you use an offline editor like Windows Live Writer to write posts) here is how to avoid generating the pingback.

Stop the internal pingbacks

User’s of the WordPress blogging package who arrange their own hosting (obtained from wordpress.org) can use several plugins which eliminate internal pingbacks, but those of us who let wordpress.com host for us for free can’t do this.

Our workaround is by using relative paths when linking to your previous post, which means omitting the domain from the link. To do this, instead of using the whole http://blogname.wordpress.com/year/month/day/posttitle/ link, just use /year/month/day/posttitle/ specifying the url.

Now that I think about it, this would be quite nice functionality for Windows Live Writer…

Update: The clever folks on the Writer Development Team have deflated my rush of blood to the head. RSS feeds apparently don’t like relative URLs – they cause all sorts of problems for them.

Permalink 2 Comments

Windows Live Writer – how to use IE8 beta’s rendering engine in standards mode

January 11, 2009 at 11:26 pm (Windows Live Writer) (, , , , , , , )

Windows Live Writer uses Internet Explorer’s rendering engine to show you how your post will look in the WYSIWYG editor and in the Preview view.

Differences between Preview and published versions

This can cause some differences in how the post looks in Windows Live Writer compared to how it actually looks when published and viewed through another browser such as Firefox or Opera which conforms a bit more closely to the W3C’s specifications in terms of rendering HTML.

Internet Explorer 8 (beta currently) is significantly more standards compliant than previous versions. Windows Live Writer uses the latest newest version of IE installed to render the WYSIWYG editor and Preview view…but if you install the beta and open up Windows Live Writer you will find that Writer is still using IE7’s engine for backwards compatibility reasons.

This information about the cause and the fix is courtesy of Brandon, a very friendly and helpful developer on the Writer Team.

Allow use of IE8 beta’s engine in standards mode

To let Windows Live Writer use IE8 beta’s engine in standards mode, open up the .htm files Writer uses as templates for the editor/preview and add the following line to the head:

<META http-equiv="X-UA-Compatible" content="IE=8" />

You’ll find these files in the App Data folder. In XP they’re in Documents and Settings\<username>\Application Data\Windows Live Writer\blogtemplates\<id> and in Vista they’ll be in Users\<username>\AppData\Roaming\Windows Live Writer\blogtemplates\<id>.

The files you need to edit are named index[X].htm, where X in my case was 2 and 3. index[2].htm is the template for my editor and index[3].htm is the template for my Preview view – opening it up in Notepad/another text editor shows that it contains the code for all the posts which are shown in Preview view under the current one you’re previewing.

Both index[2].htm and index[3].htm have the same content in their Head sections (the bits between the <HEAD> and </HEAD> tags) and it’s in this section that you need to add the line quoted above.

Issues with the IE8 beta’s standards mode

As IE8 is still in beta there are unsurprisingly a couple of issues which arise as a result of using the standards mode.

Issues in the WYSIWYG editor

Although the Preview view rendered as expected, using IE8 beta’s engine for the editor caused several problems for me, including not being able to enter a title for the post and paragraphs randomly being occluded:

Strange cursor position using IE8 beta's rendering engine  Random occlusion using IE8 beta's rendering engine

I therefore only have the line in index[3].htm – the template for the Preview view/tab.

This issue will surely be fixed, although probably not any time soon.

Odd – but irrelevant – behaviour in Preview mode

I also got odd behaviour in Preview mode using IE8 beta’s engine when I clicked on a heading where the entire post slid to the left so that only half of it was visible on the screen…going back into the editor then back to Preview returned it to the expected position. This only happened when I had a heading which hadn’t been saved in the draft.

previewwithbeta

As I said this is functionally irrelevant because I can’t think of any reason to click on the post when previewing it.

Another method of forcing the use of standards mode

It should be possible to force the use of IE8 beta’s engine in standards mode on a per-application basis by adding a registry key and a value for each application for which you want to force (I tried it for Firefox to get IETab to use IE8’s engine in standards mode) but I couldn’t get this to work for Firefox or for Writer, and considering the problems I had in Writer’s WYSIWYG editor mode, this probably wouldn’t be a good solution.

More Windows Live Writer goodness

On a separate note, I continue to be impressed by Writer’s effects for images…being able to add a custom watermark in different places kicks ass, as do the quick sizing, borders, effects and text wrapping options.

Permalink Leave a Comment

Next page »