Posts in category Programming


Making pyibmtts work when ibmtts is installed in a non-standard place

| tags: programming

I needed to get pyibmtts working for the new Tar Heel Reader installation over at ibiblio.org. I couldn't install ibmtts in the usual /opt place over there because I don't have root access (and only I'm authorized to use it anyway). To make it work, I installed ibmtts in $HOME/opt and $HOME/var. And I hacked the paths in $HOME/var/IBM/ibmtts/cfg/eci.ini to point to the libraries. I modified Pete's setup.py for pyibmtts to add $HOME to the search paths and one tricky bit. To help it find the shared libraries that are part of ibmtts I set the LD_RUN_PATH environment variable to point to the ibmtts lib folder. I understand from this page that setting this environment variable at compile time causes the search path to be encoded into the shared library.

more...



atool enables DDR pad or webcam input

| tags: blind, motor impaired, random, programming, enabling technology

Atool is an extension to our previous CamKeys project. Like CamKeys, atool allows keyboard input based on a cheap webcam. Atool adds DDR pads (or other game controller buttons) as an additional input and it allows playing recorded sounds on input events. My teacher friends in the Progress Education Program over at Asheville wanted to experiment with alternative computer interfaces in their classrooms for kids with multiple disabilities. I demonstrated MusicPad (a simple DDR pad driven sound player) and CamKeys to them. They were excited by the possibilities but daunted by editing files to control it all and depending on keyboard focus to get events to the right places.

So I hacked on CamKeys to add a GUI for configuring all sorts of events. I'll include a few screen shots below. Now the teachers are recording their own speech and music sounds and hooking them to events on the DDR pad or camera.

atool main screen atool create event dialog

The CamKeys roots of this project were funded by the Mozilla foundation.

The source is in CVS at sourceforge uncassist .

more...



Creating PowerPoint Slide Shows from Wordpress Posts

| tags: programming, ubuntu

For the Tar Heel Reader project I needed to convert very simple multi-page WordPress posts into PowerPoint slide shows. I chose the circuitous route of making an OpenOffice Impress show by bashing XML and then converting it to PowerPoint. I manually created a prototype slide show with a title page and a single book page in Impress and saved it in their native .odp format. These files are simply zip archives containing several XML documents and the images. Why they didn't include the sounds, I don't understand. The important file is content.xml . Examining it in Firefox revealed the bits I'd have to change on the title page and for each page of the book. I found several useful hints in a Linux Journal article by Collin Park . I used the PHP DOM module to read in the prototype, update it for the current book (retrieved with the WordPress get_post function), and write it out along with the images. Zipping this result up produces a new Impress presentation for the book.

more...


Wordpress makes a fine application framework

| tags: programming, enabling technology

I really like using Wordpress for my website and blog but I hadn't thought until recently about using it as an application framework. Karen and I talked about a site to enable teachers to quickly build topical beginning readers for people with varied interests and abilities. I began thinking about the features such a site would have and found lots of overlap with what Wordpress already provides. A blog post by Steve Winton over at NixonMcInnes encouraged me to examine the possibilities further.

more...



Running Python from within Emacs

| tags: programming

Emacs python mode supports running scripts in an inferior python process that is running in an emacs buffer. I really like this idea but have never been able to reliably use it because so much of my work depends on external libraries that may not do a complete job of cleaning up their state. Attempting to reuse them in the same process is, in my experience, a recipe for confusion. Also, emacs seems to be hung waiting on the python subprocess while my GUI app is running. As a result, I always edit in emacs and then switch to a command prompt to run.

more...



« Previous Page -- Next Page »