Log on:
Powered by Elgg
Spreadfirefox Affiliate Button

Steve Lee :: Blog :: Archives

September 2008

September 02, 2008

The eloquent one lends more support to Free non-proprietary software and has made a video to wish GNU 25 happy years since Richard Stallman made the historic announcement that he intended to start a free operating system. That announcement lead to the current situation of having GNU Linux as a viable alternative to Windows.

[Update] Free and Open Source software have much in common. Open Source, Free Software guarentees user freedoms through [often the same] licenses and is created by communities. The difference is largely one of emphasis, with the Free camp highlighting individual rights and avoiding dilution, while the Open Source camp emphasise compromise and access to the code. The Open Source Movement is effectively a split oorm the Free Software movement.

[Update] Also on youtube 

[Update2] Ben Webb told us at schoolforge.org.uk that there is an interview with Matt Lee of the FSF on his Freedom Socks podcast ('if you truly want freedom, you'd best not wear socks'). I've not yet listened as the download keeps failing for me.

Posted by Steve Lee | 2 comment(s)

September 04, 2008

Russell Nelson at the OSI says Open Source is all about community.

We'd agree with that.

Garry Parkinson also found the community helped him with many of his inital difficulties with Linux as he explains in his 'wart's n all' account on the BBC News site.

Keywords: community, Open Source

Posted by Steve Lee | 0 comment(s)

From Glazou

Keywords: Google Chrome, Web

Posted by Steve Lee | 0 comment(s)

September 05, 2008

Steve Faulkner reports on the Google browser accessibility.

Keywords: accessibility, Chrome, Web

Posted by Steve Lee | 0 comment(s)

I saw this amazing HTT Stoneblower at Exeter station yesterday. And wondered what on earth a Stoneblower was. There's more geeky details here and wikipedia explains what all the fuss about ballast is. And I thought it was just to make the tracks look pretty.

Keywords: ballast, Stineblower, trains

Posted by Steve Lee | 0 comment(s)

"Blog feeds from the contributors of accessibility through technology."

A new planet (or blog aggregator) dedicated to those involved in accessibility has been launched by 2 GNOME accessibility regulars; Bryen Yunashko (suseROCKS), and Flavio Percoco Premoli (FlaPer87). It is open to anyone so we can share information and ideas as well as encourage cross pollination. You can register your own blog on the nicely crafted website.

So point your browser at http://www.planet-a11y.net/ or stuff the feed into your favourite reader

As David Bolter says "Thanks , for this fine contribution to our growing community".

Keywords: Accessibility

Posted by Steve Lee | 0 comment(s)

September 06, 2008

Several good features are highlighted in this preview of Firefox 3.1 Alpha 2.

The gmail support for mailto: links (which open an email program) eliminates a major personal irritation and new standards features will mean enhanced user experience as they get picked up by developers and authors.

Most exciting is the addition of HTML 5's <video> and <audio> support with Ogg Vorbis and Theora formats built in. This means we finally have a Free way to distribute audio and video media over the web without the need for plugins (well once all browsers follow Mozilla's lead). Could this be a step on the way to these excellent formats gaining the general mass popularity they deserve and lead to all media appliances supporting them in addition MP3 etc?

 

Keywords: Firefox, Mozilla, Ogg, web

Posted by Steve Lee | 0 comment(s)

September 11, 2008

Project:Possibility's SS12 and Semester programs have already produced innovative accessibility and assistive technology solutions and we're looking for more ideas that students and team leaders from industry can enjoy working on during the upcoming programs. SS12 is a weekend 'code-a-thon' while Semester allows ideas to be further developed over a longer period.

Good projects have the teams working on innovative accessibility solutions while getting a taste of software development and open source projects. They could be new stand-alone projects or accessibility enhancements to existing projects like Mozilla, GNOME or NVDA. Programs can run on Linux, Windows, Mac or even specialist hardware (especially of you can provide it).

So if you have thoughts on how to make on-line information more accessible, computers easier to use, want to solve a problem you have with technology or enhance the experiences of people with disabilities, then do get in contact with us.

We're also looking for more people who will provide personal input, test projects, sponsor, donate or otherwise get involved with Project:Possibility.

[Updated] see comments below

Posted by Steve Lee | 1 comment(s)

September 14, 2008

I just stumbled across a page in MDC that describes how the Mozilla extensions for JS 1.7 includes some of the nice features that we've got used to in Python like comprehensions, generators and iterators. There's even better local control of scope with let expressions and statements. When I saw the word 'comprehensions' I thought I had got lost in a Python page until I grokked it was 'Array' not 'List'.

I've already been using the Pythonic JS 1.6 extensions like Array.map() and  ForEach where they make the code much cleaner and will soon try this extra goodness out too. These features, along with modules for big picture structure, are contributing to making Mozilla a nicer environment to work in, albeit non standard.

With my latest project I keep switching between the JS main app and a Python server, and while there are similarities there are enough minor differences to keep tripping me up (e.g ; is not optional in JS, JS wants parenthesis around if expressions).Still both languages are great to work with after so many many years of strongly and static typed C++ coding. Like a breath of creative fresh air. I'm even happy to use JS's prototype based OO ways and not try to force Class based OO on it, though that is easy enough to do.

Posted by Steve Lee | 0 comment(s)

September 23, 2008

Sirius and Novell are the first companies to be officially sanctioned to supply Open Source Software to UK Schools. This is a major break through for those companies and others, including schoolforge.org.uk members, who have been lobbying hard to remove the blocks to using Open Source in schools after Becta announced the position that Open Source is a viable  choice for schools.

Posted by Steve Lee | 0 comment(s)

September 26, 2008

Plenty to watch here

Posted by Steve Lee | 0 comment(s)

This rather long post introduces my latest project, Maavis.

Maavis i(pronounced 'May Vis') is a new accessibility program that provides greatly simplified access to computer activities including videos, music, photos, web information and video calls. Specifically designed for older people in care who have dementia or related issues, Maavis aims to engage and provide discussion opportunities through being a transparent medium delivering interesting activities. By providing a non threatening 'appliance' that appears to be something of a 'clever TV' it has been designed to allay the fears of those who are alienated by or highly nervious of ICT and the interweb.

You can try Maavis by following the download notes below.

a number of large colour buttons $ buttons with pictures of dogslarge image of dog plus controls for next and pauseSimplified webborwser with web view and a view large buttons

[click for full size]

Background

Maavis was researched and designed by Peter Cudd as part of The Sheffield University's Advanced Care Technologies (ACT) programme. Peter along with Ben Palmer as commercial manager and Simon Judge as technical adviser contracted me to develop software as one of the 'product' outcomes of the the programme. Peter has delivered an excellent example of 'user centred design'; interviewing, creating prototypes and evaluating user response and gathering feedback. A number of people in residential care homes and day centres have used and enjoyed Maavis. Care staff have found it has opened communication and revealed previously unknown user interests and abilities. Users have even shared it with each other with no incentive from staff. Interestingly when one group of keen users found out Maavis was running on a 'computer' they stopped using it.

The Launch event

We launched Maavis to a meeting of members of Quality Care Partnership, a workforce development group in the Health and Social Care Sector who operate over the South Yorkshire area. After Peter presented the ideas and features we let them loose on a number of machines running Maavis and asked for feedback and ideas. It was well received and we were pleased with the positive interest expressed and the number of suggestions and questions. One observation was how the largely non-technically oriented group picked it up and started discussing how they could apply Maavis 'back home'. This group are well placed to virally spread news of Maavis and the meeting also provided an opportunity to introduce Firefox and the ideas behind Open Source to a new audience.

So what exactly is Maavis?

Maavis runs full screen, possibly auto-starting when a user logs into Windows, and presents a few of large 'buttons' that give access to the available activities and have text and/or an image. These buttons present similar screens which provide choices within the activity and a 3rd level presents the activity 'players' themselves. For example chosing 'Video' takes you a screen presenting a choice of videos, and choosing a video takes you to the video player. All the 'players' have few simple controls again using the large buttons. Maavis works best with a touch screen which provides natural and rugged interaction. Any pointing device can be used and keyboard and switch access are planned.

The activities are:

  • photo slideshow - with pause to encourage discussion
  • video - local home movies are popular
  • music - listen and discus old favorites
  • info - simplifed web access
  • call - video calls to friends and family

( We deliberately never mention the 'c' or 'w' words, computers or web )

VOIP video calls provide access to free or cheap calls anywhere to relatives and friends, a massively simplified interface to Skype (at least for now). A contact button with a photo on is activated to make a call and the video runs full screen. 3 large clear buttons allow you to end a call or change the volume. In addition to making outgoing video calls incoming calls can be answered using a button on each screen that displays the callers name if they are in the users contact list.

It's important that busy care staff with limited IT skills can set up Maavis so we made configuration simple by allowing thumbnail images and media to be copied to a set of predefined folders in My Documents (Documents in Vista). Maavis automatically presents the folder contents to the user with no further configuration. Lists of web URI's can also be provided for direct access to online media. Contacts are setup by naming an image file with the contact's 'display' name and skype id. We have plans to extend this and make media provision simpler by allowing  packaging of media for easy deployment and installation, possibly Maavis itself or another Firefox add on.

The title that appears on the top of each screen can be spoken on display and when touched. A simple settings program lets you configure this as well as choosing an alternative black and white theme.

If we've done our job well then you will be thinking 'is that it?'. The answer is an emphatic 'yes'. The whole point is simple non-threatening access for users and simple setup of media by busy facilitators with limited IT skills or interest.

Who uses Maavis?

  • The end users that Maavis directly targets are people in residential care homes and day centres who possibly have dementia. However as noted below there are wider applications.
  • Facilitators are care staff or friends who provide media and configure Maavis with limit tech skills
  • Technical Facilitators have some basic web development skills and can create new screens or colour themes.
  • Developers can create more complex screen behaviours using the Maavis platform
  • Core developers can work on the fundamental services of the platform. In fact as Maavis builds on Mozilla technology (is currently a Firefox add-on) developers have full access to a rich array of display and communications services.

There are exciting applications for people with learning difficulties, physical disabilities, youngsters and in kiosks. Indeed Maavis will be useful in application where a ultra simple access to media and Internet infomration and communication is required. However we need to be very careful to stick to the key design requirements of non intimidating simplicity, and not veer into 'bloatware' terratory.

Future developments
 
It is important that Maavis develops through meeting user needs, through collaboration of user, facilitators, developers and others. So naturally Mavis is an Open Source project. The University are working on ways to monetise it through services, not least as it was partially funded through European Objective One Funding so must help regional development.

We have released a Beta which has a few rough edges and gaps, but despite the extremely tight timescales it is usable and meets some of the desired ease of setup by facilitators. There are a lot of ideas for improving Maavis and making it even simpler and more effective so we are now actively exploring further funding opportunities so that more people may enjoy using it.

Technology

When I was offered the contract I was excited by both the project and the opportunity to try out the longstanding idea that Mozilla technology will make a great platform for accessibility projects and Assistive Technology. The Maavis spec centered around media and information access as well as communications meaning good local and interweb facilities. It was also clear than eventual integration with an online service would be important for easy use and the team expressed a strong interest in collaborative development through Open Source. This all pointed directly to using Mozilla and creating an open 'framework' that would allow anyone with some web skills to contribute to the project at Technical levels.

It's early days yet but I think I have had some success, though there's plenty of scope for improvement. The very short timescales coupled with problems integrating reliably with Skype, media plugins and even rather 'pulling against' Mozilla's page rendering all mean some code needs a spring clean. However as open source projects release early it is reasonably well developed.

So the technologies are:

  • Firefox extension - proivdes access to the rich Moziila platform. A XULRunner app would probably be more sensible but times were tight. The choice leads to some profile management issues.
  • Javascript DOM scripting for behaviour and CSS for appearance
  • XUL page descriptions
  • XBL custom elements for buttons, slide show, audio, video
  • XPCOM components for SAPI synthetic speech, James Boston's nsIProcess replacment (nsIProcessManager),  master volume control and command line options.
  • Outfox python server - a fork to control Skype via the Skype4Python API and allows future expansion possibilities
  • VLC media player for audio and video, local or remote (streaming and much more if needed)
  • Inno setup declarative installer creator (with scripting when needed)
  • Skype can be used for Video calls

SVG was planned for better visuals but has not been implemented yet.

Find out more

Over the next few days the Maavis user website will open and will eventually include documentation and community features.  I've opened access to the development project 'forge' on Assembla (though it needs a little updating). Developers can also view most of the source code in the Windows installer.

Download and Installation

In order to explore Maavis you can download the Maavis 0.1.1 installer and a sample media set that should be unpacked into 'My Documents' (XP) or 'Documents' (Vista).

When you install Firefox, VLC and skype you can untick the 'run now' option for their installers. If you have older version of these you should upgrade using the supplied installers. For VLC you must select Mozilla plugin which is unchecked by default.

Note Maavis runs in its own Firefox Profile so you should make sure Firefox is closed before running Maavis. Otherwise you won't see it. If you have used Firefox before after running you may get a prompt to select a profile. Select 'default' unless you are using profiles.

If you want to use Skype please note the following

  • Install the version of Skype supplied with Maavis even if another version is already installed
  • On Vista you must run the Maavis installer as adminstrator or run the Skype installer from 'program files/Maavis' manually.
  • When you first run maavis the windows firewall will prompt asking for your permission which you should grant.
  • Skype also asks you for permisison for MaavisSkypeServer to access it. To grant it you have to click the popup link fast before it vanishes and then find the link at the top of the Skype window and then select yes in the dialog. Not the best UI design.

Posted by Steve Lee | 4 comment(s)

September 29, 2008

Maavis is a wonderful project to work on as it weaves together many of the threads I am particularly interested in. Whilst obviously addressing age related exclusion from IT and the web by providing a simple UI while using excellent Mozilla technology, it has applications for people with learning difficulties, physical and multiple disabilities, symbol and AAC users and even children and education. It was also a fantastic opportunity to work with a team pioneering EAT development at a leading UK University.

The ACT programme team at Sheffield University made the admirable choice to free the IP and release it on a GPL licence. Perhaps made easier as the programme was not a paper generating exercise more typical of many University projects, never-the-less it is to be applauded as an important condition of the partial EU funding was to generate local jobs and income. While monetising Open Source requires a little more effort and creativity than the more common charging for restricted rights to use software, the team are very much aware how useful Maavis can be to under represented user group and how collaborative development offers a route to the most effective solution.

The team are waiting to hear if further funding applications are successful while looking for other possibilities as they are keen to develop Maavis into a easy to use and effect way to access media and communications. While the choice of the GPL means it can live on as an Open Source project, it would be greatly diminished without the leadership and direct access to the knowledge and experience that Peter Cudd and others have accrued, especially while researching and trialling prototypes. Maavis needs to be user focused and not technology led in order to reach its is greatest possible effectiveness.

I'd like to see Maavis develop into the project it clearly has the potential to be and being used by the many who are intimidated by complex technology and User Interfaces, even when they are as well thought out as say Firefox. We have reached a period in history when [in the rich western world] the over 65 population exceeds the under 16s, so we should be providing tools thay they want and that address their needs. Maavis is part of that.

In the next post or so I'll explain some of the design and technical choices behind Maavis and recount some of issues that were experienced during development using Mozilla and integrating with VLC and Skype.

 

Posted by Steve Lee | 0 comment(s)

September 30, 2008

I want to explain some of the technology used in Maavis and why it was chosen. I'm pretty pleased with the result but the very tight timescales and several large time-sinking difficulties means there are a few things I would have like to have polished more before the release. But hey, this is Open Source and we release early and often to get good community feedback, so I'll try to stop cringing at a couple of obvious bugs and design decisions I really wanted to fix first.

The initial requirements made it clear that communication, web access and web integration were a critical part of the concept and Simon Judge had already sowed the idea that a browser based solution might well be workable. I've previously felt Mozilla's platform (as used to make Firefox, Thunderbird and several third party programs like songbird and Miro) could be great for certain assistive technologies and Mozilla's funding or my work on Jambu had allowed me to get a clearer perspective of Mozilla development, 'warts and all'. So it was that Mozilla tech was used as the key technology.

Mozilla

I had a couple of agenda's of my own and in addition to wanting to use Mozilla technology I also felt it was important to use familiar and light technologies to encourage a wide community of contributors. So it seemed sensible to leverage the simpler web technologies to allow people to try out and share ideas, and hopefully something of the viral nature of web development will eventually take place. So initially I thought I would use XUL + HTML + CSS + Javascript and these would also allow flexible deployment possibilities, including perhaps a browser-only solution. However technical  complexity (or lack of experience) and rapidly vanishing time meant I changed to dropping HTML and using XUL only.

Early experiments in using Firefox in a kiosk mode eventually gave way to XUL Chrome windows running full screen but a legacy is that Maavis is currently a Firefox plugin where a XULRunner application might be more sensible and have less 'issues. There are issues with profile use to resolve, especially when user are using FF a a browser as well as Maavis.

The main area of difficulty was that were are rather fighting against the XUL layout (box) model which works rather 'inside out' flowing around content. Maavis wants to work 'outside in' and defines boxes while it scales/clips content to fit. I'm sure there are ways and means that I have not yet discovered but currently using timeouts to substitute for the lack of rendering events or hooks feels like a bodge and there are still odd drawing problems to resolve.

XBL provides a nice way to create more abstract widgets and is used for the buttons, media players and slideshow. At times the Javascript binding is a little confused and debugging can be time consuming but it works very well.

XPCOM components created in C++ provide a way to extend Mozilla and access platform services. This has been done for process control, window z-order management, synthetic speech and volume control. These components are currently Windows specific but can be made cross platform in future. Indeed they isolate much of the platform dependence, and important point as I plan for this to be on Linux and Mac too. Development here can be tedious due to long build times of Mozilla but here are ways to reduce this. Standard XPCOM components are also used, mainly for file and URI manipulation.

Mozilla's Javascript modules are used heavily as they give reasonable encapsulation and module control, better than is available in raw browser hosted JS. However syntax errors are often not generated so debugging can be a painful 'binary chop' affair at times. The availability of modules has given the architecture a package/module flavour more than object oriented. But then most objects are singletons and I'd prefer good encapsulation to complex class hierarchies any day.

Dojo

I intended to use the module and class features of Dojo or an equivalent but in the end felt they were unnecessary once Mozilla's modules had been discovered and the design began to take shape.

There was also an intention to use the data abstractions of Dojo and JSON to allow config to be local or remote (and async) but in the end this gave way to a simple local folder scheme that allows facilitators to easily configure by copying files into predefined locations. I expect this to get reinstated at some point as web service integration means config becomes more complex 'under the bonnet.

VOIP and Skype APIs

Skype was chosen for it's API (Ekiga's was not obviously suitable) and ubiquity. However I hope this is temporary as I want to use an Open solution and while we really only want Skype to be a VOIP server, it insists in putting it's UI in the way. I tried using the Skype4COM API from a XPCOM component but it fails, I'm guessing due to to it being windows message based and needing a message pump.

In the end I used a fork of the University of North Carolina's Outfox Firefox add-on which talks to a Python server from XUL via sockets. The Skype4Python api is used though I guess Skype4COM would have worked via Mark Hammond's snazzy COM automation client code. Having a python server really opens up the possibilities for what we can integrate with Maavis so I'm not unhappy about the extra work and complexity (well not now, I have got something working). Indeed it might be a way to get asynchronous speech going and use a free speech engine.

Bar far the largest amount of time was spent on Skype integration, which in hindsight is not surprising as it is a fairly complex product and state machine. However they could make life much easier.

VLC media player

Though I looked around and tried the mediaplayer and mplayer plugins for Firefox the VLC is easily the best choice. It's cross platform, mature and works well with many media (though not Real). I did try just installing the FF plugin silently but in the end problems led to requiring a full install for now. The api is well documented once you find the right pages.and does most things you could want (but not all). I wrapped it in a XBL component.

INNO setup

Trusty old INNO setup is AFAIKS now on a pukka open source licence. I'm a fan of it's simple declarative style, but did have to use some Pascal scripting this time as well (which took me back a few years). The code was needed to overcome the limited Firefox api for managing profiles.

So that's the main technologies used and hopefully some insight into the whys and wherefores.

Keywords: Accessibility, Assistive Tehcnology, Development, Firefox, INNO setup, Maavis, Mozilla, Skype, VLC

Posted by Steve Lee | 0 comment(s)