Wednesday, 31 December 2008

To Braille or not to Braille!


I forgot to explain how to enable braille display support when I wrote the original 'How to Roll Your Own Vinux'. For some reason brltty is not enabled by default in Ubuntu 8.10 and therefore has to be manually enabled and configured. Firstly you have to open the /etc/default/brltty file by typing 'sudo gedit /etc/default/brltty' into a terminal. Then find the line which reads 'RUN_BRLTTY=no' and change it to 'RUN_BRLTTY=yes' and save the changes. This will add brltty to the list of applications which run when Vinux starts. Secondly you have to open the /etc/brltty.conf file by typing 'sudo gedit /etc/brltty.conf' into a terminal and uncomment the relevant configuration settings by deleting the '#' at the beginning of the lines. The settings I configured were: 'braille-driver auto # autodetect', 'text-table en_UK # English (United Kingdom)' and 'contraction-table en-uebc-g2 # Grade 2 Unified English Braille Code'. Which enables braille display autoprobing at boot with English six-dot contracted Grade 2 braille output once Orca is running. Thanks to Osvaldo La Rosa for suggesting this modification and providing simple instructions on how to do it!

Does size really matter?


One of the key considerations in making a distribution is the final target size of the ISO. Most distributions come in at around the 700Mb mark, but some are under 100Mb and others over 4GB! I would prefer to keep the ISO image under 700Mb so that it can fit on a CD rather than a DVD. There are many reasons for this, including upload and download times as well as bandwidth and storage limitations etc. The price of keeping the distribution on a CD is that it won't be feasible to provide the full range of standard applications or updates etc. A Vinux CD could realistically provide all of the accessibility applications pre-configured out of the box, but the user would then have to download any other applications they needed themselves. The alternative would be to provide a larger DVD edition which would provide a standard range of applications and fully updated packages alongside all of the accessibility applications. Maybe there is a genuine argument for producing both versions? The other dilemma that developers have to face relates to the inclusion of proprietary media codecs and hardware drivers etc. Again most distributions do not provide these by default to avoid the threat of litigation, although it is relatively easy to install these after installation. On the other hand, several popular distributions including Linux Mint and Sabayon do provide these by default and this makes life very easy for a beginner who would find it very frustrating if their new operating system couldn't play their own legally purchased music files and DVD's etc. This maybe because they are based in Europe rather than the USA, where software patents are far harder to enforce. My instinct would be to err on the side of caution and merely provide guidance on how to install these rather than open up myself to the possibility of any law suits etc., no matter how unlikely these are. Again maybe there is a need for both approaches, letting the user decide which version to download according to the law and regulations in their country of residence. However, the priority for now will definitely be the production of a CD sized ISO with no proprietary software, as it would be a relatively simple process to add in extra applications and codecs etc after the core accessibility functionality is realised.

Back to the Future!


The New Year approaches and I really need to start working on the first official release of Vinux. The last few weeks have been quite frustrating as I have had to spend most of my free time setting up a new Vinux website, mailing list and development blog in preparation for the formal announcement of the re-branding of Vibuntu to Vinux etc. This has also given me the opportunity to reflect on what has been achieved so far and what the priorities are for the next release. I am quite pleased with the initial response to Vinux, which has been largely positive. However I was a bit surprised and discouraged by criticisms made by some subscribers suggesting that there was no real need for such a distribution, that Linux was already accessible anyway and posting updates on the three key forums (Ubuntu, Gnome and Orca) was tantamount to spamming! This aside, the key tasks in the order of priority as I see them, are: 1. To allow users to choose their preferred language and keyboard layout at boot, and their own username and password during the installation process. 2. To improve the responsiveness of Orca by replacing PulseAudio with Alsa and installing Speech Dispatcher (this may also provide a more elegant solution to the problem Orca has with administration applications). 3. Incorporating alternative accessibility solutions such as YASR, LinuxSpeaks and Speakup etc., (although this may require the replacement of Open Office with AbiWord and Gnumeric because of space constraints). 4. Replacement of Ubuntu logos and splash-screens etc., with original Vinux artwork or at the very least generic artwork which will not infringe on Canonical's trademarks etc.

Tuesday, 23 December 2008

The Good, the Bad and the Ugly!


The Good: Vinux currently logs the user in automatically, starts the Orca screen-reader, autoprobes for USB Braille displays and allows the user to enable full-screen magnification with a simple keystroke. The Orca screen-reader now works out of the box with all of the applications which have to be run with root permissions provided they are launched from the Administration menu or the terminal. The default theme and desktop background provide better contrast and larger bolder fonts than the Ubuntu originals and it can now be installed and run from a USB pendrive with persistent storage.

The Bad: Because Vinux is currently based on Ubuntu 8.10 it comes with the PulseAudio sound server and Gnome Speech services by default, which can have a detrimental effect on the responsiveness and performance of the Orca screen-reader compared to that offered by Alsa and Speech-Dispatcher. The Orca 2D magnifier can be jerky and unresponsive, the Compiz 3D Advanced Desktop Zoom does not provide caret tracking and currently neither of these have high quality font smoothing which is essential at higher magnification settings.

The Ugly: Because of the way Remastersys works, in order to retain the required accessibility settings on the live CD, it is currently necessary to create a pre-configured user account which is retained even after it has been installed to a hard drive. This means that the user cannot choose their preferred language and keyboard layout at boot, and the default username and password are retained no matter what they type in, posing a potential security risk even though these can be changed easily enough after the installation process is finished.

Vinux Is Not Ubuntu but gnu/linuX!


Why did we pick the name Vinux, what does it stand for and what is its relationship to Ubuntu? Well, originally it was going to be called Vibuntu, as it was based on Ubuntu 8.10 and as it was aimed at VI users Vibuntu seemed the obvious logical choice. However, after consulting Canonical's Trademark Team (the company behind Ubuntu) we were advised that they did not approve of our use of the Vibuntu name on the grounds that it might give users the false impression that it was produced by or endorsed by Canonical, and that granting this permission would also weaken their claim to the 'buntu' trademark. Although we were obviously disappointed with this decision, we completely understand their reasons for making it and will of course respect their wishes. They did generously say that we could call it the Ubuntu VI Remix if we liked, because it remained close enough to the original Ubuntu in terms of content and didn't include any packages that were restricted or from third party repositories. However, after some soul-searching we decided to go with Vinux, which had been a strong contender for the title from the beginning. This has the advantage of allowing us to do whatever we want with the distribution without having to try to stay within the boundaries of the Ubuntu Remix remit. Vinux may ultimately be a more approriate name, as after all it is Linux for the VI! But what does Vinux stand for? Well Osvaldo came up with a suitably recursive definition as is the honoured tradition in open-source society, namely: Vinux Is Not Ubuntu but gnu/linuX!

Vinux Logos and Wallpaper!


I have now created a set of original Vinux Logos and Wallpapers which will be used in the next release of Vinux. These are released under the GNU Free Documentation Licence and the GPL respectively and are available for viewing and download from the Vinux Development Group homepage at http://groups.google.com/group/vinux-development/. Some people, might quite reasonably be puzzled as to why I would bother making graphical logos and wallpaper for a distribution that is primarily aimed at visually impaired users. Isn't this at best a misguided waste of time, or worse still an insult to the visually impaired? I would argue not, because the vast majority of people who are registered blind do have some vision and are able to see images and read text if it is big enough and has high enough constrast; even those that have little or no effective vision still understandably want the things they use to look cool to their sighted friends and relatives. With this in mind I have designed what I think to be an appropriate, professional looking set of logos for Vinux and an original collection of large high contrast wallpapers. The logo is based on a modified version of an image called 'The Eye of Horus' by Jeff Dahl published at http://en.wikipedia.org/wiki/File:Eye_of_Horus_bw.svg. I think this instantly recognisable ancient Eygptian symbol clearly represents the primary purpose of Vinux which is; to provide a way for the blind and partially sighted users to participate fully in the digital revolution and all of the benefits this bestows. I created the logos using the GIMP. I began by lowering the eyebrow, changing the colour of the iris to black and then adding a pupil using the Supernova filter. I then placed this image on three different types of stone tablet (granite, white marble and pink marble) in three different shapes (tablet, slab and icon) and three different sizes (large, medium and small).

The wallpapers were also created using the GIMP (it really is an amazing tool). In each case I began by creating a 1024 x 768 image with a black background. and then drew a few coloured lines (pretty much at random). I then applied a Gaussian Blur from the Filters menu and twiddled the controls on the Lens Distortion effect until I had something I liked the look of. After all, what could be more appropriate for a distribution aimed at the visually impaired than images produced by blurring and distortion! This process only took a few seconds to do, so I created about 30 images very quickly and then picked out the four I liked best. I then applied the Make Seamless filter to the remaining images (which makes the wallpaper tile-able across wide-screen and multi-monitor displays) and this produced six more interesting images. Although I will probably use one of the dark low contrast wallpapers by default, I hope that the high contrast wallpapers will allows users to have an original, eye-catching desktop that will be the envy of their sighted friends.

Sunday, 21 December 2008

Vinux on a USB Pendrive!


Initially I had been installing Vinux to a USB pendrive using Unetbootin as the Ubuntu USB Installer would not recognise the Vinux Live CD. This worked well but the Unetbootin gui does not support Orca as it is uses QT rather than GTK, it does not run from a terminal, and it does not support persistent storage. Upon investigation I discovered that the Ubuntu USB Installer was looking for a hidden folder on the original Ubuntu 8.10 Live CD called .disk which contained three files: casper-uuid-generic, info and release_note_url. As long as this is in the root directory of the CD the Ubuntu USB Installer works, allowing you to install Vinux onto a USB pendrive with a persistant storage file, the size of which can be specified during installation. I will incorporate this file into the next version of Vinux, but in the meantime if you want to try this yourself here is a quick guide.

1. Place the Vinux.iso image in your home folder (e.g. /home/vinux) along with the hidden .disk file from the original Ubuntu 8.10 Live CD. Then open a terminal.

2. Create a mount point for the Vinux CD iso image by typing:
  • mkdir /home/vinux/CD-iso
3. Mount the Vinux.iso image to this mount point by typing:
  • sudo mount -o loop /home/vinux/Vinux.iso /home/vinux/CD-iso
4. Copy the contents of the mounted Vinux iso into a temp folder by typing:
  • cp -r /home/vinux/CD-iso /home/vinux/USB-iso
5. Copy the hidden .disk folder to the temp folder by typing:
  • sudo cp -r /home/vinux/.disk /home/vinux/USB-iso
6. Copy the contents of the temp folder into a new USB iso image by typing:
  • mkisofs -r -o /home/vinux/Vinux-USB.iso /home/vinux/USB-iso
7. Unmount the Vinux CD iso image by typing:
  • sudo umount /home/vinux/CD-iso
8. Delete the mount point for the Vinux CD iso image by typing:
  • rmdir /home/vinux/CD-iso
9. Delete the temp folder by typing:
  • sudo rm -rf /home/vinux/USB-iso
10. Insert a pendrive of 1Gb or greater and start the Ubuntu USB Installer from the Applications menu. Point it to the new Vinux-USB.iso in your home directory and it will install it and create a persistent storage file of whatever size you specify.

Roll your own Vinux!


This is a very rough guide as to how I created the very first version of Vinux from a default install of Ubuntu 8.10 (Intrepid Ibex).

1. Change the desktop theme, background, font size and style etc., to fit your needs or preferences and add, remove or rearrange any desktop icons or panel applets as required.

2. Install the 3D Settings Manager by typing 'sudo apt-get install compizconfig-settings-manager' into a terminal, enable Compiz by typing 'compiz --replace' , modify the Compiz settings, create appropriate key-bindings and then disable Compiz by typing 'metacity --replace' .

3. Start Assistive Technologies and then set appropriate speech and magnification settings in the Orca Preferences window.

4. Create an .orbitrc file for the root account by typing 'sudo su - root' then the following four lines exactly as they are written (without the bullet points) into a terminal one at a time:
  • cat> ~/.orbitrc << EOF
  • ORBIIOPIPv4=1
  • ORBIIOPUNIX=0
  • EOF
5. Enable the 'Disable gksu keyboard grab' option in the General page of the Orca Preferences window.

6. Type 'sudo visudo' into a terminal, find the line which reads 'Defaults env_reset' and then add the line 'Defaults env_keep+="GTK_MODULES"' underneath it. Press Ctrl+X to exit, Y to save changes and Enter to finish.

7. Modify the launching of any application on the Administration menu that will not run with Orca by opening the Main Menu entry on the Preferences menu, find the launcher you want to modify, open its Properties, change it to an 'Application in Terminal' and add the word 'sudo' before the default Command.

8. Add 'deb http://www.remastersys.klikit-linux.com/repository remastersys/' to your /etc/apt/sources.list and then install remastersys by typing 'sudo apt-get install remastersys' into a terminal.

9. Remove any applications you do not require by typing 'sudo apt-get remove name-of-application' into a terminal to reduce the size of the iso image.

10. Type 'sudo remastersys backup' into a terminal and after about 20-30 minutes or so your new live CD image called Custom_Live_CD.iso will be waiting for you in the /home/remastersys/remastersys directory.

Isn't Linux already Accessible?


Since releasing Vinux it has been pointed out to me that there are already some Linux distributions which provide accessibility and therefore I should not have claimed that Vinux was the first Linux distribution to provide full accessibility for blind and partially sighted users out of the box.

There are indeed distributions that provide accessibility features and some of these are designed specifically for visually impaired users. However I feel that the mainstream distributions are simply not accessible enough, and the specialist distributions often opt for a console based solution and are thus inaccessible to the sighted. Take for example the latest Ubuntu 8.10 release 'Intrepid Ibex' upon which Vinux is currently based. It does provide some accessibility features at boot, but you have to press enter to choose a language, then F5 and cursor down three times to enable speech support at boot, something that a beginner is unlikely to know or work out without sighted support. Even when the screen-reader is enabled it will not allow a user to run applications with root permissions without some terminal commands and/or significant modifications to the system. Again something a beginner is unlikely to be capable of doing independently.

While there are some specialist distributions and software packages aimed specifically at the VI community, they tend to be console based solutions which are inaccessible to sighted users unfamiliar with terminal commands etc. Even distributions that do offer a gui, often use high contrast colours, large fonts and icons which can distort the layout of windows or displace parts of them off the display altogether. Again this means that sighted users would find it difficult and disturbing to use. However, many VI users work with or alongside sighted users and having a desktop which sighted users are unlikely to want to use for any period of time only serves to perpetuate the alienation of VI users.

In conclusion, Vinux may not be the first distribution to be aimed specifically at VI users, or the first distribution to offer accessibility support. But I maintain that it is the first Linux distribution I know of that provides speech, magnification and braille support out of the box without any configuration or previous experience of Linux, whilst still providing an attractive visual interface for sighted users. I fully realise that 99% of the credit for this really lies with the developers of Gnome, Orca, Compiz and Ubuntu etc. All I have done is to make a number of small but significant changes that Canonical could have made to Ubuntu quite easily if they had wanted to, but they didn't and neither has anyone else yet to the best of my knowledge...

Why do we need Vinux?


When I first released Vinux I was challenged by some members of the Linux VI community who thought that this kind of specialist distribution was undesirable and unnecessary. It was argued that specialised distributions took the moral pressure off mainstream developers to make their products fully accessible. Here is my considered response:

There are two very different approaches to accessibility. One school of thought believes that anyone should be able to access any software/hardware no matter what their disability, the other that it is either impossible or uneconomical to create a universally accessible solution and therefore specialist equipment/software is the most practical solution. I like to call these the 'idealist' and the 'pragmatic' approach to disability issues. I think everyone would agree that having a single accessible system would be great, but the difficulties of producing such a system are immense - has anyone actually achieved this yet in Linux, Windows or Mac? I would say not, although significant progress has been made. The crux of the issue is whether this is just a question of solving technical difficulties or are the needs of different users so diverse that it is not possible to make a universally accessible system without making unacceptable compromises.

I think when I was younger I may have fallen into the idealist camp, but with age and experience cynicism sets in, and I have just got fed up of waiting for something that really meets the needs of VI learners. How many more years am I and many other VI users going to have to wait for this universally accessible system, which may never actually arrive. I would absolutely love it if OpenSuse, Fedora or Ubuntu etc., were completely accessible, because I wouldn't have to give up many hours of my free-time to make something that I think is fit for purpose out of the box for VI users who have little or no experience of Linux. I do not object to mainstream developers incorporating accessibility into their distributions. However, I suspect some of the changes needed to really optimise a mainstream Linux distribution for VI users are so radical that it would probably alienate many sighted users.

In conclusion I believe that at least in the short term there is a real need for a specialised Linux distribution for the visually impaired, and I hope Vinux is a small step on the way to realising this...

An Introduction to Vinux!


Vinux is a specialised Linux distribution which is designed to be fully accessible to blind and partially sighted users out of the box. Vinux is a customised version of the popular Ubuntu Linux distribution optimised to meet the needs of visually impaired users. Vinux comes in the form of a live CD which you can boot by placing it in a CD drive and restarting your computer. Once it boots a screen-reader is activated, USB Braille displays are automatically detected and full screen magnification can be turned on/off with a simple keystroke. Vinux also provides an attractive visual interface which makes it suitable for sighted, partially sighted and blind users alike. You can navigate the menus and applications using the screen-reader and/or Braille display or switch this support off and use the full screen magnification if required. This is an ideal way of introducing visually impaired users to the Linux operating system which offers a free and open-source alternative to expensive proprietary software. This is very safe and secure way to let you experience Linux and experiment with it without taking any risks or making any changes to your computer. You can continue to use Vinux as a live CD or install it to your hard drive either alongside Windows or as a complete desktop replacement. It is also possible to install and run Vinux from a USB memory stick if your computer supports USB booting.