Vinux Python Fruit Basket Example; was Re: iPhone development

  • From: "Don Marang" <donald.marang@xxxxxxxxx>
  • To: <programmingblind@xxxxxxxxxxxxx>
  • Date: Tue, 12 Oct 2010 20:13:21 -0400

I for one really appreciate all of the efforts put into the Fruit Basket examples. I started with the Visual Basic example, which also provides a great introduction to Visual Studio. Well some of that might be considered part of the Visual Studio 2005/2008 JAWS Scripts. No matter, they fit well together.

This family of examples points out very vivedely the differences vetween the many languages and show how to get started. I think it is very valuable!

I am not sure there is much to say or do regarding porting a Fruit Basket Python example for Vinux. Just a few paragraphs might be enough. First, Python 2.6 and all of the necessary libraries are included and installed into every Vinux installation. Even the smallest, Vinux 3.0 Libra CD edition, available at There is nothing needed or to be configured for basic Python development!

Just copying and unzipping the Windows Python Fruit Basket example requires no modifications. Just run the program with the python command in a terminal window.


The python program can be run directly from the command line in a terminal window in gnome with the following small modifications.

1. Add the following at the very top of the file to load the correct interpreter:
#!/usr/bin/env python

2.  Change permissions on the file to at  least allow execution.

chmod +x

3. Although the differences in line endings between Windows and Linux do not seem to matter to the python interpreter, it does create problems for that first line to load the interpreter. There may be an easier way, but I installed an additional utility package to convert between line endings.

sudo aot-get update
sudo apt-get install tofrodos

Now convert the file (strips off carriage returns):

4.  Run the python program.


The program runs perfectly and is fully accessible with one exception. When the program dialog is first displayed, it seems to not be focused on any control. It does not properly announce fields or Tab around at first. I found that if I hit one of the dialog accelerators, like Alt + f, it gets proper focus and everything works perfect. Is there a statement that can be added to set the focus on creation? Perhaps the statement is not needed in Windows or works differently.

Don Marang

There is just so much stuff in the world that, to me, is devoid of any real substance, value, and content that I just try to make sure that I am working on things that matter.
Dean Kamen

From: "Jamal Mazrui" <empower@xxxxxxxxx>
Sent: Monday, October 11, 2010 4:37 PM
To: "programmingblind" <programmingblind@xxxxxxxxxxxxx>
Subject: Re: iPhone development

I agree, and have been hoping for Gnome and OS X samples for a while. As mentioned in the direct email between us, I think there are samples written in cross platform languages and GUI toolkits that probably could be ported without much difficulty by someone familiar with those other platforms. For example, the wxPython sample at

would probably run under Vinux if an appropriate "sha-bang line" were inserted at the top of the .py file. If wxPython is not bundled with Vinux, then it would be helpful if the documentation for that fruit basket sample explain how to install it. All the fruit basket samples have free licenses, so anyone can use them as the basis for a port without seeking permission first.


On 10/11/2010 3:56 PM, Chris Hofstader wrote:
I do still think that an OSX and iOS FB example or two would be really helpful.
On Oct 11, 2010, at 12:35 PM, Jamal Mazrui wrote:

It sounds to me like whoever that person is, he or she has not been truly serious about contributing a fruit basket program. On the present web site of the project

the purpose of the project is explained and there is a link to the specific criteria for a fruit basket program. For even easier reference, I am pasting the text of that file below.

While the current organization of the page may not be optimal, it is not difficult to follow. There are clearly program samples that do not use the unified code approach, and as mentioned, the criteria (pasted below) makes no mention of code structure.


[F[From the link entitled "Fruit Basket Demo criteria,

hello friends,

On the Blind Programming list (, we developed specifications for a sample program with a graphical user interface (GUI) that could be implemented in various languages. It became known as a fruit basket program. The purpose is to help teach people how to code a GUI program in a particular language. Someone considering the language can examine the code and evaluate the syntax and other development steps involved based on his or her own knowledge, skills, and preferences. By running the program, one can also make observations as an end-user, evaluating such aspects as the size, speed, and accessibility of the program.

The specifications for a fruit basket program are as follows:
1. The program is a GUI interface, or the equivalent with at least an edit box, list box, and two buttons.
2. The user can type the name of a fruit, e.g., apple, in the edit box.
3. When the Add button is activated, the fruit is copied into the list box and the edit box is cleared to be ready for another entry. 4. When the Delete button is activated, the currently focused fruit in the list box, or basket, is removed. 5. For accessibility, static labels should be associated with the edit box and list box, since these controls do not have captions like buttons. 6. Keyboard users will also appreciate a unique hot key for each control. 7. Making Add the default button allows a fruit to be added by simply pressing Enter after typing its name. 8. An error message alerts the user if Add is pressed without a fruit in the edit box or Delete is pressed without a fruit in the list box.

** Important** please! annotate your program files, make text copies if there not readable as such in there native format, add notes on easy to find and use applications for compiling the project if you can and include the text files, project files, and an compiled executable for your version of the Fruit Basket Demo Project, in a zipped file for uploading to the site.

thank you, Inthaneelf, Jamal Mazrui, James Homme, Eunice Clicker, and everyone else who have contributed to the fruit basket demo project.

On 10/11/2010 10:21 AM, Chris Hofstader wrote:
Jamal et al,

I did not say that the single source file approach to some of the Fruit Basket programs is essential to their value, I'm just a little frustrated trying to find someone to port the baskets to a GNU/Linux, Gnome based system. We have a call for volunteers out in all of our international locales and in the US asking for help in this porting but we've no takers and the one person we did have was stopped by her professor because he found the code to be oddly organized.

If someone can write up a few paragraphs describing in general terms what FB is and why it is important, I'll get it up onto the FSF web site as soon as I can. If you don't look at much, you won't, therefore, be able to see how rapidly we are improving it and an accessibility section is under way but, except for our original statement, still not there but will be soon. Anyone who wants to write articles about FLOSS at on GNU/Linux platforms (it's ok if they also run on Windows or Mac but they must also work as well on free operating systems) should write to me off-line to discuss topics of interest and how best to present them.

If anyone out there wants to help port FB to a Gnome desktop, I can send them a pretty good computer that they can keep as their own once they complete some subsection of FB in Gnome desktop.

Currently, from Gnome Foundation, Linux Foundation, FSF and elsewhere, the absolute highest priority is that we work with Gnome 3 as soon as it ships. This requires that we make a major change to DBus which means that it's really "under-the-hood" system hacking and lots of regression testing to make sure that Orca and other AT for Gnome weren't broken by one of these new changes.

Again, any help would be greatly appreciated. Getting a free computer in the bargain should also alleviate fears of damaging one's main machine by polluting it with a GNU/Linux distro.

Lastly, I will pay for shipping out of pocket for the computer in the US but I need to ask that anyone outside the country pay for shipping and whatever customs charges come with taking receipt of a desktop computer.


PS: The computer cannot be shipped until 10/25 or so as it is in my house in Florida and no one will be there until the twenty-fifth of this month.

On Oct 11, 2010, at 9:27 AM, Jamal Mazrui wrote:

There is absolutely nothing in the criteria for a fruit basket program that says UI and other code need to be mixed. That is a design choice that some have made, but there are other samples, e.g., Visual Studio projects, where UI and other code is separated. So, those folks should be encouraged to submit programs that meet the criteria and separate the code and files however they think is best. The criteria specify how the dialog should behave, not how the underlying code should be structured.


On 10/10/2010 2:30 PM, Chris Hofstader wrote:
Thanks Ken.

I hadn't heard of Appcelerator but I'll look around for it and see what I may be able to learn about it. It would certainly be convenient to get
iPhone and Android all in one project. How accessible is it?

I know that Fruit Basket is intended to show blind people how to do UI without sighted help. I was just mentioning that I don't do a lot of UI
stuff as my UI ideas tend to suck and someone always needs to jump in
and help me out before shipping a program.

The problem with our friends in Venezuela didn't object to a blind
person writing UI code, they didn't like the entire program being placed
in a single source file as that would make for a lot of difficulty
working on multi-hacker projects and generally more difficult to find
any specific item.

Blind people should learn how to make GUI code but I am still willing to bet that the marketing department will want things rearranged as this is the issue even with sighted hackers. Personally, I think emacs has the
greatest UI in the world so the average man on the street thinks I am
probably seriously mentally ill.

I would like to see FB for Gnome and for the Apple operating systems but
no volunteers have come forward yet.

On Oct 10, 2010, at 1:39 PM, Ken Perry wrote:

Actually you can also use Appcelerator and when using it under Mac you
can actually code for IPhone and Android both at the same time.
Remember though the fruit basket was originally designed to show how
to make UI for blind people. Using a sited person to do it really
doesn’t count. That is why I have not done one already.
*From:* programmingblind-bounce@xxxxxxxxxxxxx
[mailto:programmingblind-bounce@xxxxxxxxxxxxx] *On Behalf Of *Chris
*Sent:* Sunday, October 10, 2010 1:09 PM
*To:* programmingblind@xxxxxxxxxxxxx
*Subject:* Re: iPhone development
To develop iPhone apps you are almost forced to use the xcode
development system that ships with every Macintosh. I know a few blind
people who use it with pretty good success. The hardest part, of
course, is arranging controls in your UI as there is no accessible way
to do this.
When coding for iPhone, I use emacspeak as my editor and xcode as an
IDE and get help from a sightie for layout issues.
I thought of trying to find someone to help make a "fruit basket" for OSX and iOS but haven't had any takers so far. I'm not even sure that
OSX or iOS permit putting all of the UI code in the same file as the
rest of the program which is how many of the Fruit Basket programs are designed. Also, while it's possible to write iOS code in C or C++, for
all intents and purposes, you are forced to use Objective C, an odd
language that only Apple supports as far as I can tell. So, a fruit
basket program for a single language (Objective C is preferred for OSX
as well) might be something we can find someone to do. Of course, if
you embed a WebKit control in your iOS program, you then need to
follow the WCAG guidelines for the content you expose using it so
JavaScript and some other things become important but doing an FB
program would be silly as it is all described nicely in the WCAG and
other W3C standards documents.
I had thought I had a student in Venezuela who was going to make Fruit
Basket ports for GNU/Linux systems running the Gnome desktop. She is
taking a class called "Computer Languages" which, when I took it back in 1980 or so, taught us 13 languages in 13 weeks and, as I saw it, it
was a pretty major waste of time and, to this day, I've never seen
anyone ask for Snobol/V, Wafter, Spitbol and a few of the others we
had to learn back in the dark ages. Our Venezuelan student's professor liked the idea of the Fruit Basket for Gnome until he found files that
contained the UI and the rest of the program as he thinks it is bad
software engineering practice. Our student friend is doing all console programs instead and we're still looking for a volunteer to do the FB
I do not find asking for sighted help on UI layout to be a problem for me. When I could see perfectly well, I made sucky user interfaces that someone would need to rearrange in a manner that the marketing people approved of. So, as far as I go, UI layout always required asking for
help and I can usually find someone to spiff up my programs pretty
On Oct 9, 2010, at 4:48 PM, Michael Taboada (AI5HF) wrote:

I was wondering if anyone knew of an accessible way to develop for the
I could use apple's software, or I could use a third party software
I am running windows.
Skype: lilmike2
Gmail: ai5hf.lilmike@xxxxxxxxx<mailto:ai5hf.lilmike@xxxxxxxxx>
msn: ai5hf@xxxxxxxxxxx<mailto:ai5hf@xxxxxxxxxxx>
PC details:
Intel quad core 2.66 ghz; 4 gb duel channel ddr2 ram; 1 TB harddrive.
"The songs of the dead are the lamentations of the living." --
Christopher Paolini, Eldest.
"A world that contained a creature as amazing as that bumblebee was a
world he wanted to live in." -- Christopher Paolini, Brisingr.

View the list's information and change your settings at

View the list's information and change your settings at

Other related posts: