Geeks making the world a bit better.

Trying out SVN

I really ought to use source code control. I know it. But my laziness combined with my poor memory, makes it hard.

I’m trying out subversion. I’ll make some notes here to help me remember.

To create a new project myproject in my repository I need to:

cd ~/Desktop
mkdir myproject
cd myproject
mkdir trunk tags branches
cp -r path_to_myproject_files/* trunk/
clean up any junk files
svn import ~/Desktop/myproject svn+ssh://gb@cvs.cs.unc.edu/cvs/user/gb/svn/myproject -m "initial import"
cd place_to_work
mv path_to_myproject_files out of the way if necessary
svn checkout svn+ssh://gb@cvs.cs.unc.edu/cvs/user/gb/svn/myproject/trunk myproject

Then in that working directory the commands to know are: svn add, svn update, and svn commit.

atool enables DDR pad or webcam input

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.
Continue reading →

Combining WordPress and Flickr to make accessible books for beginning readers

Tar Heel Reader is a web site designed to help teachers make easy-to-read books for children with disabilities. It has a growing selection of books to read and a simple process for creating new books using pictures found on Flickr.
Continue reading →

Creating PowerPoint Slide Shows from Wordpress Posts

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.

Then I needed to convert the Impress format to PowerPoint. Thankfully, I found PyODConverter to automate that part of the job. It worked fine when I ran it from the command prompt but I get it to find the server when I ran it from PHP. Again the web came to my rescue with a post by Piero. I’ll reproduce the code here so I don’t forget it.

cd /var/www                                      #www-data user home
sudo mkdir .openoffice.org2                      #create the openoffice working dir
sudo chown -R www-data:www-data .openoffice.org2 #set the owner
sudo chmod 700 .openoffice.org2                  #change permissions
sudo -s                                          #you need to be root
su - www-data                                    #if you want to be www-data

#start openoffice headless
xvfb-run -a soffice -accept="socket,host=localhost,port=8100;urp;StarOffice.ServiceManager" -nologo -headless -invisible

Now I need to figure out how to get this into /etc/init.d so that it will automatically start on reboot.

Wordpress makes a fine application framework

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.

I’m pleased to report that it is really easy to integrate a PHP web-app into Wordpress. I use ordinary blog posts as the books with the <!–nextpage–> tag for pagination and a bit of Javascript for switch accessibility and text to speech. The book creator wizard is simply a set of pages with custom templates. You select some images, provide some captions and a title, and it creates the blog post that is your book. Wordpress provides logins, all the database manipulation, comments, tags, categories, etc. Redirects work fine because Wordpress is silent until you invoke get_header. Query parameters work fine; Wordpress seems to ignore them. Session variables work fine too. So far Wordpress hasn’t gotten in my way once and has helped a ton.

Court again rules against US paper money

A US federal appeals court on Tuesday ruled that the country’s one-sized paper money discriminates against the blind and told the government to change the currency’s size and texture. It’s taken six years to get this far, and the government may well appeal again. I say give it up and switch to an accessible design.

Karen notes

Notes from a conversation with Karen. Always great fun.
Continue reading →

Cooling off the nVidia graphics in my D800

I recently upgraded my D800 to Ubuntu Hardy. Things seem to be working fine. Looking through the packages available I saw that I could get sensors-applet to monitor internal temperature sensors. This showed that my GPU was running near 75 degrees C.The nvidia-settings tool showed I was running at Performance Level 2 and appeared to be stuck there. I searched a bit and found other people looking for the same info and got a few hints. After some fooling around I found the following commands would cool things off. They may reduce performance but I don’t need it.

nvidia-settings --assign="GPUOverclockingState=1"
nvidia-settings --assign="GPU2DClockFreqs=100,230"
nvidia-settings --assign="GPU2DClockFreqs=100,230"

Yes, I know that I’m setting the 2D Clock Freqs twice. The first time seems to move it to Performance Level 1 and the second time drops it to level 0 where I want to be. I got the numbers from the nvidia-settings on the Power Mizer tab.

I put those commands in a script and run it using the Sessions facility I found at System->Preferences->Sessions.

Eastern NC BBQ Sauce

From: http://fp.enter.net/~rburk/sauce-rub-marinade/barbecuesauce/easternn.txt

1 cup White vinegar
1 cup Cider vinegar
1 tablespoon Sugar
1 tablespoon Crushed red pepper flakes
1 tablespoon Tabasco sauce
Salt to taste
Freshly cracked black pepper to taste

Gretchen ideas on reading aids

Take pictures of the book during group reading (teacher is displaying it to the rest of the class using a projector say). Make it available for self selected reading later. Perhaps create PowerPoint presentation with the pictures and easily recorded audio of someone reading the text for each page. Enable typing in the text so it can be read using TTS either continuously or one word at a time. Make it easy to share these on some closed site. What about the copyright provisions related to people with disabilities? Public Law 104-197 would allow us to do this in a “specialized format”. That says to me it couldn’t be PowerPoint but that is not problem, we’d just have a specialized player. Very simple to show pictures and play speech. Might even be browser based. Could the whole thing be easily made browser based? Should it be?