Re: Announcing the Homer application framework and Homer.NET library

  • From: "Donald Marang" <donald.marang@xxxxxxxxx>
  • To: <programmingblind@xxxxxxxxxxxxx>
  • Date: Mon, 3 May 2010 16:40:40 -0400

I am currently only developing onn Windows for Windows. I would like to start using python in Linux as well.


I have started looking at scripts in Vinux. I do not have a dedicated Linux box at this time either. Vinux, a specially configured Linux distribution customized for the blind and visually Impaired, also works well from a Live CD or Birtual Machine. Of course, a Live CD is not very practical for development and a dual boot configuration will provide better performance. Vinux 3.0, which will be based on the new Ubuntu 10.0.4 distribution, will be available soon. The Vinux site is: vinux.org.uk.

Don Marang

--------------------------------------------------
From: "Jamal Mazrui" <empower@xxxxxxxxx>
Sent: Monday, May 03, 2010 3:04 PM
To: <programmingblind@xxxxxxxxxxxxx>
Subject: Re: Announcing the Homer application framework and Homer.NET library

Thanks for your interest, Don. The Layout by Code section of HomerApp.htm, now also separately available at
http://EmpowermentZone.com/HomerApp.htm

Includes links to other versions of Layout by Code (AutoIt and Python languages). The version in HomerLbc.dll, part of Homer.NET and HomerApp, is the most sophisticated one to date. It will work with any .NET 2.0 language, including Iron Python (but not standard Python).

I think Mono strives to fully implement the .NET Framework 2.0 class library, so theoretically, the HomerLbc code should work there, too. However, the code in HomerAcc.dll that uses the APIs of Windows screen readers would not work there.

Unfortunately, I cannot be more specific about what parts of HomerLbc work with Gnome and Orca because I do not have a Linux machine yet, myself, and have no development experience in that environment. I would be interested in reports any programmers on Linux can share with us about accessible, cross-platform development with .NET, or with wxPython. I have found answers on this topic surprisingly hard to find. If anyone can make modifications to HomerApp that make it compatible on Linux or the Mac, that would be great.

Jamal

On Mon, 3 May 2010, Donald Marang wrote:

Date: Mon, 3 May 2010 14:40:46 -0400
From: Donald Marang <donald.marang@xxxxxxxxx>
Reply-To: programmingblind@xxxxxxxxxxxxx
To: programmingblind@xxxxxxxxxxxxx
Subject: Re: Announcing the Homer application framework and Homer.NET library

Hi Jamal,

I have been reviewing your Layout By Code previously released. Great looking capabilities but I have not yet determined how to set up a project with them. Will these tools and libraries, like LBC, work with Python? Will they work with any .Net application and eliminate using Visual Studio? If properly coded, is it possible to write cross platform GUI applications with the help of the Mono project with these tools?

Don Marang

--------------------------------------------------
From: "Jamal Mazrui" <empower@xxxxxxxxx>
Sent: Sunday, May 02, 2010 3:20 PM
To: <guispeak@xxxxxxxxxxxxx>; <programmingblind@xxxxxxxxxxxxx>; <program-l@xxxxxxxxxxxxx>; <uaccess-l@xxxxxxxxxxxxxx>
Subject: Announcing the Homer application framework and Homer.NET library

Now available at
http://EmpowermentZone.com/appsetup.exe

or .zip for a manual install

HomerApp
Version 1.0
May 2, 2010
Copyright 2010 by Jamal Mazrui
GNU Lesser General Public License (LGPL)

Distinguishing Features

The Homer application framework, HomerApp, is free, open source software for rapid application development. It is designed to make it easy for developers to build sophisticated applications with a graphical user interface (GUI), and for end users to benefit from the friendliness and power of those applications. HomerApp is a support structure for applications with the following, noteworthy characteristics: multiple document interface, single instance, command line operation, configurable, scriptable, direct speech messages, convenient hotkeys, and help features. These are further explained as follows:

* Multiple document interface (MDI). MDI is a well-understood user interface, originally promoted by Microsoft Word, in which any number of child windows may be opened within a main application window. Each child window can host a separate document, though almost any content or functionality is possible within such a window, not just representing documents. Standard keyboard shortcuts include Control+Tab or Control+Shift+Tab for cycling to the next or prior child window, and Control+F4 to close the current one.

* Single instance. Since an MDI application hosts multiple windows, it is typically designed so that only a single instance runs in memory, that is, a subsequent attempt to launch the application will activate the one already present, rather than creating another copy in memory.

* Command line operation. With a single instance application, the executable file may repeatedly be run with command-line parameters that are passed to the existing instance. For example, the file name of a document may be passed as a parameter, and the application may respond by opening a new, child window containing that document. This is a common example with an editor-type application, but the developer can implement almost any functionality in response to an event informing the application that command-line parameters have been passed.

* Configurable. The user can specify preferences for how the application behaves in particular situations. The application remembers these configuration options in subsequent sessions of operation.

* Scriptable. More powerful configurability is possible through script files containing programming code that manipulates the application via an object model. Scripts may be distributed with the application, defined by the user, or developed by third parties.

* Direct speech messages. Users who operate an application nonvisually via a screen reader program can benefit from speech messages that directly communicate information. Such messages supplement, rather than replace, the information that is automatically spoken by default settings of the screen reader. For example, a notification placed on the status bar could be conveyed via direct speech as well, saving a nonvisual user from having to press a key to read that area. Although the notification would be automatically read by a screen reader if placed in a message box instead, that approach would then involve dismissing the message box and hearing extra verbiage related to changes in focus. HomerApp can automatically detect and produce speech via any of four screen reader APIs: JAWS, NVDA, System Access, and Window-Eyes.

* Convenient hotkeys. Every application task may be performed via the keyboard; No mouse operation is required. In addition, hotkeys serve as quick shortcuts to multiple sequences of keystrokes, e.g., to perform a task immediately without having to navigate the menu system.

* Help features. A context-sensitive tip is available for the control that currently has focus. A key describer mode allows one to check what keys will do without actually performing their functions. An alternate menu presents a complete, alphabetized list of all menu commands, hotkeys, and descriptions.
----------

Layout by Code

HomerApp supports a development approach called "Layout by Code." This is an alternative to graphical tools for layout of GUI forms. Essentially, a series of function calls specify the sequence of controls on a form, and when to start a new band of them. No explicit pixel coordinates are needed for size and position; Intelligent, visually acceptable choices are automatically made. Each function call may optionally include initial data for the control and a help tip for users. The nonvisual developer does not have to contend with mouse-oriented design tools, or arithmetic calculations for placement of each control. The source code for MDI Fruit Basket illustrates this approach (in the file HomerApp.cs or HomerApp.vb).
----------

.NET Platform

HomerApp relies on a set of libraries called Homer.NET, supporting any programming language that executes on a freely available platform called the ".NET Framework" or "Common Language Runtime" (CLR), version 2.0 or above. The CLR is built into Windows Vista and above, and may be installed for Windows XP or Windows 98 from the Microsoft web site at
http://msdn.microsoft.com/en-us/netframework/aa731542.aspx

The CLR is also available for Macintosh and Linux operating systems from the Mono Project
http://mono-project.org

though some Windows-specific parts of Homer.NET are not compatible there. The most popular .NET languages are C# and Visual Basic. Source code for the sample application, MDI Fruit Basket, is provided in both these languages (MDIFruit.cs and MDIFruit.vb).

The Homer.NET libraries (also called assemblies) include many convenient functions for working with screen readers (HomerAcc.dll), web services (HomerJax.dll), ini files (HomerIni.dll), archive formats (HomerZip.dll), and GUI forms (HomerLbc.dll). Either GUI or console mode applications may be developed with the aid of Homer.NET libraries. This may be done either with or without the larger, HomerApp framework.

Homer.NET libraries may be modified and recompiled with batch files included in the distribution. These batch files call the C#, Visual Basic, or JScript .NET command-line compilers that are part of the .NET Framework 2.0 Software Development Kit (SDK), which is freely available at
http://msdn.microsoft.com/en-us/netframework/aa731542.aspx

.NET code may be written with any text editor, including EdSharp, which is freely available at
http://EmpowermentZone.com/edsetup.exe

The Microsoft Visual Studio integrated development environment (IDE) includes a code editor and other developer tools. Express Editions are freely available at
http://www.microsoft.com/express/Windows/

Sharp Develop is an open source, cross platform IDE for .NET languages, available at
http://www.icsharpcode.net/opensource/sd/

__________
View the list's information and change your settings at //www.freelists.org/list/programmingblind


__________
View the list's information and change your settings at //www.freelists.org/list/programmingblind

__________
View the list's information and change your settings at //www.freelists.org/list/programmingblind

__________
View the list's information and change your settings at //www.freelists.org/list/programmingblind

Other related posts: