Saturday, 28 February 2009

The Knobson - the guitar with knobs on!

I will be taking a short break from Vinux development over the next four weeks, although I will still be experimenting and offering support and advice. This is because I have invented a Tactile Acoustic Guitar, which has a series of tactile markers on the rear of the neck to allow blind and partially sighted users to know which fret their fingers are on! It is aimed at beginners and is tuned to an open G chord or 'Spanish tuning' to allow for a very fast learning curve which allows people to learn and play chords and scales in a matter of hours, songs and melodies in a few days or weeks! I have already made four of the guitars and had a very positive response from people who have tried them. Over the next four weeks I will be writing and recording an instructional CD and an accompanying large print and braille manual which will be supplied with the guitar. This is a purely commercial venture which the college I work for wants me to pursue and I may have to do a bit of travelling to do workshops and demonstrations. If it is successful we may also release an electric version at sometime in the future! This temporary change of focus will also be very theraputic after spending many weeks preparing the 1.3 and 1.31 releases. In the meantime I hope you have fun with Vinux and keep me up to date with any problems or solutions you discover.

Monday, 23 February 2009

The Law of Diminishing Returns!

So I have finally released Vinux 1.3 - it took a lot longer than I thought to complete, and in the end I decided I just had to release it whether or not it was perfect! I have managed to solve some significant problems and added new features but there are still some things I need to sort out in future versions. You can now choose your own username and password during the install process and install Vinux straight to a USB pendrive from the live CD or the ISO after installation. I have added lots of useful console applications and the yasr screen-reader, and also incorporated several forensic/recovery tools so that it could be used as a portable recovery tool by more experienced users. I have not been able to fix the cups server issue: it works from the live CD and/or USB pendrive but not once installed to a hard drive. This is a known issue when using remastersys with Ubuntu 8.10, but there is a simple fix which is available from the website. The feature I really wanted to include but just couldn't get to work was speech-dispatcher with alsa. I could get it to work, but only at the cost of losing multi-channel sound, so I have installed it but not enabled or configured it yet. So even though it isn't perfect I felt obliged to release it because of the law of diminishing returns - I was spending longer and longer make smaller and smaller improvements. I have to say I feel a lot better now I have released it, it is a great weight off my mind, as I have now spent nearly two months remastering it again and again in what little spare time I have. I will now try to relax for a few weeks and provide technical support for anyone who needs it before starting on another release. I may experiment with a few things in the meantime. The biggest dilemma is whether I should move to 9.04 when it is released in April, or stick with 8.10 until the release of 9.10?

Monday, 16 February 2009

Bash Scripting 101!

After spending several weeks now working in the Vinux 1.3 release I am gradually coming to the conclusion that I am going to have to write a bash script which automates the whole process. This is because it is taking me several hours to do the whole remastering process from start to finish, and when things go wrong or I want to change something I often have to go back to the beginning and start again. Given that I have a full time job and a family I just don't have the time or the energy to keep putting myself through this, while on the other hand I am not prepared to release something I am not happy with. So the only practical solution is for me to automate the whole process with a bash script, so I can just start it off and come back in a few hours and burn the iso. Some parts of this process are simple, such as installing or removing packages, and some of the configuration is straight forward such modifying a line in a config file. My concern is the configuration of the Orca screen-reader/magnifier and the Compiz 3D effects settings which both seem to have a very large number of configuration files and plugins etc. So I will have to do a bit of detective work to locate where all of the relevant settings are stored and then get out my Bash Scripting Bible and start sweating it out with the command line. In the short term this is going to delay the release of version 1.3, but will mean that in future I will be able to create new releases with a few simple changes to the bash script. In principle the script is very simple, it will just remove any unnecessary packages, install some new ones, configure the accessibility settings etc and then run remastersys to create the new iso. Sounds easy doesn't it? But I bet it isn't as straight-forward as it seems. If I get stuck I will post specific questions on the development forums etc., in the hope that some bash scripting Yoda will bestow his Jedi wisdom upon me. May the force be with me.

Sunday, 15 February 2009

To GUI or CLI, that is the question!

My primary goal in creating Vinux was originally to provide a simple GUI interface that both visually impaired and sighted users could both access easily, which I feel is the best solution in an educational scenario. However, after receiving feedback and suggestions from the online VI community, it seems that there are scenarios where a command line interface is more appropriate and effective. There are of course two different ways of implementing an accessible CLI: A standard terminal session with a screen-reader, or a more user friendly menu driven system such as Adriane Knoppix or LinuxSpeaks. After playing with the latest edition of Knoppix and GRML I can see the advantages of having both a GUI and a CLI interface in Vinux so that it is not only suitable for beginners with no experience of Linux but alsothe more experienced hacker types. So rather than rush out another version of Vinux straight away (I have got most of the GUI elements working satisfactorily) I want to try to incorporate a decent selection of CLI applications, which won't take up too much room on the CD but will add a lot of extra functionality. I will then probably add a new entry to the main menu called 'Console Applications' so that beginners can also access these applications without having to know the names of the applications or the appropriate options/arguments etc. Thus providing an easy introduction to the command line without being dropped in at the deep end. I don't want to lose the momentum the project has gained by delaying the release of Vinux 1.3 for too long, but I think the benefits of adding a coherent selection of CLI applications will be worth the wait. I want to try and find an equivalent CLI application for all of the standard GUI applications that the standard Ubuntu install provides. I could do with two or three weeks being locked away with a computer an Ubuntu 8.10 live CD and an internet connection. Although, I can't think of a crime off the top of my head which would result in such a specific custodial sentence!

Sunday, 8 February 2009

Building Vinux from Scratch!

Today I had a go at building Vinux from scratch by starting with the minimal ubuntu install iso which is only about 10MB and installs a very basic console system. You can then use apt-get to install only the packages you actually want rather that starting with a full install and uninstalling what you don't need. Sounds great doesn't it! So I began to install what I considered to be essential applications like remastersys, yasr etc and it turns out that they require nearly 200mb of dependancies to run properly. By the time I had all the basics installed and ran remastsersys the new iso was just over 400MB in size, and that was before I had installed Orca and the Gnome desktop etc. Thus this method was not going to produce a smaller iso than I can by just uninstalling unwanted applications from the original iso. However it is a very simple way to create a basic system either with a console interface or a lightweight window manager like Fluxbox etc. I presume that GRML might have been produced through this kind of process (although not on an ubuntu base). This would be something I would consider doing if I wanted to use an old computer as a file server etc, or wanted to create a lightweight distro with the Fluxbox window manager but only basic accessibility features, like yasr and xzoom etc. So back to the drawing board! The only advantage this method would offer would be an Ubuntu 8.10 iso which contained the latest package updates without increasing its size. Food for thought! I still can't decide whether I should just make a 1GB iso containing everything, or a stripped down version that fits on a CD!

Thursday, 5 February 2009

The Foundations of Vinux!

I have spent the last week playing with a variety of Linux distributions to see if Ubuntu is really the best foundation on which to build Vinux. I have looked at the latest versions of Fedora, OpenSUSE, Knoppix, GRML, Puppy Linux and PCLinuxOS to see how they compare to Ubuntu. With the exception of GRML these are all distributions that I am fairly familiar with and have used as my primary OS at one time or another. The first thing I looked at was what accessibility features they provided out of the box. Fedora and OpenSUSE both provide Orca by default (if you choose the Gnome variants) GRML and Adriane Knoppix are both text based distributions which provide console based speech support by default, although graphical desktop options are available. Only Puppy and PCLinuxOS offer little or no accessibility software, primarily because they are not Gnome based. The second factor I looked at is how easy it is to remaster the distribution. Adriane Knoppix and GRML didn't have any obvious methods for doing this, although they might be hidden away in some console command, while Fedora, OpenSUSE, PCLinuxOS and Puppy Linux all offer an explicit remastering process. However, the Fedora and OpenSUSE packages only allow you to add/remove applications and change a few settings, you cannot actually test the image until you have actually created it, and if something doesn't work you have to start all over again. Puppy Linux and PCLinuxOS on the other hand allow you to install and configure the system so it meets your requirements and then make the image, which means you can change things if they don't work without having to start again. I feel this approach to remastering: Install, Modify, Create Image and then Boot, much more logical and user friendly than having to make all of the changes during the construction of the image and only get to try it out and test it thoroughly after you have burnt it. On the one hand Fedora and OpenSUSE offer better accessibility features, while Puppy LInux and PCLinuxOS offer better remastering facilities! So how does Ubuntu compare? Well it provides good accessibility features (albeit with a few bugs) and a very simple way to remaster the live CD with Remastersys. So after a week of window shopping (or should it be linux shopping) I think that as things currently stand Ubuntu is still the most suitable foundation on which to base Vinux. So the next edition of Vinux will still be based on Ubuntu 8.10, I will not be touching 9.04 with a bargepole until it has been thoroughly tested and any significant bugs removed.

Sunday, 1 February 2009

Moments of Doubt and Faith!

I am currently feeling very frustrated, having spent nearly every waking hour since the release of Vinux 1.2 (as well as regularly dreaming about it in between) and have really not made any significant progress as yet! I have managed to solve a few small issues like being able to choose your own username and password when you install it, being able to use the built in USB installer to create a bootable pendrive Vinux with persistent storage and installing YASR. However I have made no progress at all with the more significant issues such as installing and configuring speech-dispatcher with Alsa (without losing multi-channel sound capabilities), enabling multi-language and keyboard support or getting LinuxSpeaks to integrate into the system without causing problems. I could release a Vinux 1.21 version but I don't really feel that it is worth releasing a completely new version with such insignificant changes as it is easy enough to install and configure YASR after installation and change your password, and I don't think that many people are that desperate for bootable USB pendrives.

So I have decided to take a short break from Vinux (maybe a couple of weeks) and just experiment with other distros as a starting point (possibly Debian, Fedora, OpenSUSE or PCLinuxOS) as well as taking a closer look at other specialised VI distributions such as Adriane Knoppix, BlindUbuntu and GRML etc., to see what I can learn from them. I am still sincerely committed to the goal of creating a fully accessible easy to use distribution that Visually Impaired users who have never used Linux before can just boot and experiment with. I just need a short break to rethink my approach and take the pressure off myself for a bit. In the words of the Terminator "I'll be back!"