<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-11677375</id><updated>2011-10-08T13:51:51.731-07:00</updated><category term='xfce4'/><category term='bash'/><category term='wallpaper'/><title type='text'>The Middle Click</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://phantomsdad.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11677375/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://phantomsdad.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>PhantomsDad</name><uri>http://www.blogger.com/profile/18251055369460880751</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://img126.imageshack.us/img126/9564/gerbiljazz95x1404ck.png'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>22</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-11677375.post-504632499491472212</id><published>2011-10-08T13:51:00.000-07:00</published><updated>2011-10-08T13:51:52.003-07:00</updated><title type='text'>Firefox 7 and WebGL</title><content type='html'>One of the advantages of upgrading my firefox browser to version 7 is the enhanced 3D acceleration for certain video cards, in my case an AMD 890GX Integrated graphics chipset on the motherboard (Radeon HD 4290 equivalent).  In prior versions of Firefox, my driver, the free and open source radeon driver was blacklisted for GPU accelerated windows and WebGL.  So after upgrading to version 7.0.1 of Firefox, I checked under Help | Troubleshooting Information and was surprised to see this:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-oz3jkpP7zHA/TpCzC8Lqs_I/AAAAAAAAAFA/EqrkcYVzdz0/s1600/Troubleshooting%2BInformation%2B2011-10-08%2B16-18-08.png" imageanchor="1" style="clear: both; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="94" src="http://4.bp.blogspot.com/-oz3jkpP7zHA/TpCzC8Lqs_I/AAAAAAAAAFA/EqrkcYVzdz0/s320/Troubleshooting%2BInformation%2B2011-10-08%2B16-18-08.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;So I entered aboug:config in the address box and searched on webgl.  I found a parameter webgl.disabled set to true.  I'm not sure how this got set to true, but changing it to false solved the problem.  Now I can enjoy WebGL websites like &lt;a href="http://www.biomotionlab.ca/Demos/webgl_walker/webgl_walker.php"&gt;this&lt;/a&gt; one.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11677375-504632499491472212?l=phantomsdad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11677375/posts/default/504632499491472212'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11677375/posts/default/504632499491472212'/><link rel='alternate' type='text/html' href='http://phantomsdad.blogspot.com/2011/10/firefox-7-and-webgl.html' title='Firefox 7 and WebGL'/><author><name>PhantomsDad</name><uri>http://www.blogger.com/profile/18251055369460880751</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://img126.imageshack.us/img126/9564/gerbiljazz95x1404ck.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-oz3jkpP7zHA/TpCzC8Lqs_I/AAAAAAAAAFA/EqrkcYVzdz0/s72-c/Troubleshooting%2BInformation%2B2011-10-08%2B16-18-08.png' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-11677375.post-2508429750864825390</id><published>2011-09-25T11:24:00.000-07:00</published><updated>2011-09-25T11:24:51.631-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='xfce4'/><category scheme='http://www.blogger.com/atom/ns#' term='bash'/><category scheme='http://www.blogger.com/atom/ns#' term='wallpaper'/><title type='text'>Set wallpaper in xfce4 from command line.</title><content type='html'>With so many folks switching to xfce4 desktop from gnome or kde, thought I'd post this little bash function for setting the wallpaper.&lt;br /&gt;&lt;br /&gt;&lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;br /&gt;&lt;code&gt;set_wallpaper()&lt;br /&gt;{&lt;br /&gt;  # Set picture $1 as desktop background&lt;br /&gt;  # 0 - Auto&lt;br /&gt;  # 1 - Centered&lt;br /&gt;  # 2 - Tiled&lt;br /&gt;  # 3 - Stretched&lt;br /&gt;  # 4 - Scaled&lt;br /&gt;  # 5 - Zoomed&lt;br /&gt;  xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitor0/image-path -s $1&lt;br /&gt;  xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitor0/image-style -s 4&lt;br /&gt;  xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitor0/image-show -s false&lt;br /&gt;  xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitor0/image-show -s true&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;br /&gt;The last two xfconf-query commands seem to be needed to get the screen to refresh.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11677375-2508429750864825390?l=phantomsdad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11677375/posts/default/2508429750864825390'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11677375/posts/default/2508429750864825390'/><link rel='alternate' type='text/html' href='http://phantomsdad.blogspot.com/2011/09/set-wallpaper-in-xfce4-from-command.html' title='Set wallpaper in xfce4 from command line.'/><author><name>PhantomsDad</name><uri>http://www.blogger.com/profile/18251055369460880751</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://img126.imageshack.us/img126/9564/gerbiljazz95x1404ck.png'/></author></entry><entry><id>tag:blogger.com,1999:blog-11677375.post-5391215638039538962</id><published>2009-12-27T17:51:00.001-08:00</published><updated>2009-12-27T17:51:59.491-08:00</updated><title type='text'>Cheap MP3 Player and UDEV</title><content type='html'>This little tidbit might help someone some day.&lt;br /&gt;&lt;br /&gt;Recently, I purchased a cheap mp3 player from &lt;a href="http://www.dealextreme.com/details.dx/sku.27044"&gt;dealextreme.com&lt;/a&gt;.  When I plugged it into my Debian box running Squeeze/Sid, it was not properly recognized.  According to dmesg, it was thought to be a USB touchscreen, rather than a USB storage device.  The vendor ID is 1234 and the Product ID is 5678.  Hmm, my guess is the manufacturer didn't bother to register the product with the official USB guys.  One of the hazards of buying cheap stuff.  Anyway, to get the udev to properly recognize the device, I added the following line (one long line) to /etc/udev/rules.d/z10_local.rules:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;SUBSYSTEM=="usb", DRIVER=="usbtouchscreen", ATTRS{idVendor}=="1234", ATTRS{idProduct}=="5678", ACTION=="add", &lt;br /&gt;RUN+="/usr/local/sbin/rebind_usbdriver usb-storage 1234 5678 :1.0"&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;This &lt;a href="http://www.reactivated.net/writing_udev_rules.html"&gt;howto&lt;/a&gt; is an excellent description on how to write UDEV rules.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11677375-5391215638039538962?l=phantomsdad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11677375/posts/default/5391215638039538962'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11677375/posts/default/5391215638039538962'/><link rel='alternate' type='text/html' href='http://phantomsdad.blogspot.com/2009/12/cheap-mp3-player-and-udev.html' title='Cheap MP3 Player and UDEV'/><author><name>PhantomsDad</name><uri>http://www.blogger.com/profile/18251055369460880751</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://img126.imageshack.us/img126/9564/gerbiljazz95x1404ck.png'/></author></entry><entry><id>tag:blogger.com,1999:blog-11677375.post-781282031513380716</id><published>2009-09-19T19:36:00.000-07:00</published><updated>2009-09-19T19:46:50.854-07:00</updated><title type='text'>GRUB2 Splash Images Must be DirectClass</title><content type='html'>Just a quick note that might save someone out there time.  If you've upgraded to GRUB2 and can't get your custom splash image to work, try making sure your image is DirectClass&lt;br /&gt;&lt;br /&gt;$ cd /boot/grub/images&lt;br /&gt;$ convert robin.xpm -type truecolor -depth 8 robin.png&lt;br /&gt;$ identify robin.png&lt;br /&gt;robin.png PNG 640x480 640x480+0+0 8-bit DirectClass 26kb&lt;br /&gt;&lt;br /&gt;If you don't specify the "-type truecolor" you'll get PseudoClass, which will silently not work.&lt;br /&gt;&lt;br /&gt;Here's a &lt;a href="http://blogs.koolwal.net/2008/12/16/how-to-grub2-and-grub-pc-installing-splash-images/"&gt;article&lt;/a&gt; on how to upgrade to GRUB2 and enable splash images.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11677375-781282031513380716?l=phantomsdad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11677375/posts/default/781282031513380716'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11677375/posts/default/781282031513380716'/><link rel='alternate' type='text/html' href='http://phantomsdad.blogspot.com/2009/09/grub2-splash-images-must-be-directclass.html' title='GRUB2 Splash Images Must be DirectClass'/><author><name>PhantomsDad</name><uri>http://www.blogger.com/profile/18251055369460880751</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://img126.imageshack.us/img126/9564/gerbiljazz95x1404ck.png'/></author></entry><entry><id>tag:blogger.com,1999:blog-11677375.post-7174030305977206932</id><published>2009-01-30T16:21:00.000-08:00</published><updated>2009-01-30T16:29:46.910-08:00</updated><title type='text'>Wikipedia Picture of the Day as Wallpaper</title><content type='html'>This bash script downloads the Wikipedia Picture of the Day (POTD) and sets it as your KDE wallpaper.   Works only with KDE 3.5 but probably could be adapted to KDE4 pretty easily.  (Hint: Use dbus instead of dcop.)  Written by Albert Thuswaldner.   Wikipedia recently changed their POTD web pages, so I've made the necessary changes. &lt;br /&gt;&lt;code&gt;&lt;br /&gt;#!/bin/bash&lt;br /&gt;# $Id: wikiwall 24 2007-09-02 20:00:08Z thuswa $&lt;br /&gt;#&lt;br /&gt;# Last modified Sun Sep  2 21:58:28 2007 on stalker&lt;br /&gt;# Update count: 221&lt;br /&gt;#&lt;br /&gt;# Copyright (C) 2007 by Albert Thuswaldner, thuswa &lt;at&gt; gmail &lt;dot&gt; com&lt;br /&gt;#                                                                      &lt;br /&gt;# This program is free software; you can redistribute it and/or modify &lt;br /&gt;# it under the terms of the GNU General Public License as published by &lt;br /&gt;# the Free Software Foundation; either version 3 of the License, or    &lt;br /&gt;# any later version.                      &lt;br /&gt;#                                                                      &lt;br /&gt;# This program is distributed in the hope that it will be useful,      &lt;br /&gt;# but WITHOUT ANY WARRANTY; without even the implied warranty of       &lt;br /&gt;# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the        &lt;br /&gt;# GNU General Public License for more details.                         &lt;br /&gt;#                                                                      &lt;br /&gt;# You should have received a copy of the GNU General Public License    &lt;br /&gt;# along with this program; if not, write to the                        &lt;br /&gt;# Free Software Foundation, Inc.,                                      &lt;br /&gt;# 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.            &lt;br /&gt;#&lt;br /&gt;# Purpose:&lt;br /&gt;#&lt;br /&gt;# Wikiwall is a bash script which will set the "picture of the day"&lt;br /&gt;# (POTD) from en.wikipedia.org as your KDE desktop wallpaper.&lt;br /&gt;# If you set it to autostart it will give you a new fresh background&lt;br /&gt;# as you login in, on a daily basis.&lt;br /&gt;# The wallpaper pictures are saved in the /tmp directory, a history of one&lt;br /&gt;# week back in time is kept. The script does some basic checking&lt;br /&gt;# if wikipedia is reachable and if the wallpaper already is the current one.&lt;br /&gt;#&lt;br /&gt;# Usage:&lt;br /&gt;#        1.) put in ~/bin&lt;br /&gt;#        2.) make executable&lt;br /&gt;#        3.) test it!&lt;br /&gt;#        4.) (at your option) run: wikiwall --set-auto&lt;br /&gt;#            to make it autostart at login&lt;br /&gt;#        5.) Have a great time - all the time! ;)&lt;br /&gt;#&lt;br /&gt;# Tested:&lt;br /&gt;#&lt;br /&gt;# On OpenSUSE 10.2, should work on most Linux distros, and other UNIX flavours&lt;br /&gt;# too albeit the arguments for the ping command have to be modified. &lt;br /&gt;#&lt;br /&gt;# Note #1: The file size of the POTD's at wikipedia are sometimes&lt;br /&gt;#          quite large (~10Mb), so you with a "broadband" connection,&lt;br /&gt;#          BE WARE! &lt;br /&gt;#&lt;br /&gt;# Note #2: The picture files that are downloaded will be stored in the&lt;br /&gt;#          /tmp/kde-&lt;username&gt; directory. This script does not delete&lt;br /&gt;#          any of these files, so it is up to you. However,&lt;br /&gt;#          the way the file name is constructed:&lt;br /&gt;#          "wikiwall.00N", where N equals the current weekday (N=1..7), &lt;br /&gt;#          does so that only a maximum of one week of PTOD's will be&lt;br /&gt;#          stored on your computer.&lt;br /&gt;#&lt;br /&gt;# Note #3: It is up to you the user of this script to make sure that&lt;br /&gt;#          by doing this you honour the license of the artworks that&lt;br /&gt;#          you download. This should not be a problem in most cases&lt;br /&gt;#          since using a picture on your own private computer&lt;br /&gt;#          desktop is considered fair use. &lt;br /&gt;&lt;br /&gt;# Get date in correct format&lt;br /&gt;TD=`date +%F`   #YYYY-MM-DD&lt;br /&gt;WDN=`date +%u`  #Weekday number&lt;br /&gt;&lt;br /&gt;#Set temp file name&lt;br /&gt;TMPTPL=/tmp/kde-$USER/wikiwall.00&lt;br /&gt;&lt;br /&gt;# Set wikiwall to autostart&lt;br /&gt;if [ "$1" = "--set-auto" ]&lt;br /&gt;then&lt;br /&gt;   ln -s $PWD/wikiwall $HOME/.kde/Autostart/wikiwall  &lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;# Revert back to yesterdays picture&lt;br /&gt;if [ "$1" = "--revert" ]&lt;br /&gt;then&lt;br /&gt;   WDN=`expr $WDN - 1`&lt;br /&gt;   if [ $WDN -eq 0 ]&lt;br /&gt;   then&lt;br /&gt; WDN=7&lt;br /&gt;   fi&lt;br /&gt;   TMPFILE=$TMPTPL$WDN&lt;br /&gt;   dcop kdesktop KBackgroundIface setWallpaper $TMPFILE 8  # 8=Scale and crop&lt;br /&gt;   exit&lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;# Set wikipedia specifics&lt;br /&gt;SITE[1]=en.wikipedia.org&lt;br /&gt;SITE[2]=commons.wikipedia.org&lt;br /&gt;PAGE[1]=${SITE[1]}/wiki/Template:POTD/$TD&lt;br /&gt;PAGE[2]=${SITE[2]}/wiki/Commons:Picture_of_the_day&lt;br /&gt;&lt;br /&gt;# get current wallpaper&lt;br /&gt;CURRPIC=`dcop kdesktop KBackgroundIface currentWallpaper 0`&lt;br /&gt;TMPFILE=$TMPTPL$WDN&lt;br /&gt;&lt;br /&gt;echo $CURRPIC&lt;br /&gt;echo $TMPFILE&lt;br /&gt;&lt;br /&gt;if [ "$CURRPIC" != "$TMPFILE" ]&lt;br /&gt;then&lt;br /&gt;&lt;br /&gt;# check if wikipedia is reachable&lt;br /&gt;   if ping -c 1 -q -W 2 -w 2 ${SITE[1]} &gt;/dev/null&lt;br /&gt;   then&lt;br /&gt; &lt;br /&gt; for N in 1 2; do&lt;br /&gt;# extract picture of the day url&lt;br /&gt;     POTD=`wget -qO - ${PAGE[$N]} | \&lt;br /&gt;  grep  File: | sed -e "s,.*href=\",," -e "s,\",," | cut -d ' ' -f 1`&lt;br /&gt;&lt;br /&gt;     echo ${PAGE[$N]}&lt;br /&gt;    &lt;br /&gt;     POTMP=${SITE[$N]}&lt;br /&gt;     POTDURL=$POTMP$POTD&lt;br /&gt;#     echo $POTDURL&lt;br /&gt; &lt;br /&gt;# extract picture url&lt;br /&gt;     PICURL=`wget -qO - $POTDURL | \&lt;br /&gt;  grep Full\ resolution | sed -e "s,.*href=\",," -e "s,\",," | cut -d '&gt;' -f 1`&lt;br /&gt;&lt;br /&gt;           if [ -n "$PICURL" ]&lt;br /&gt;     then&lt;br /&gt;  echo $PICURL&lt;br /&gt;&lt;br /&gt;# get picture&lt;br /&gt;  wget -q -O  $TMPFILE $PICURL&lt;br /&gt;&lt;br /&gt;# set picture as desktop background&lt;br /&gt;  dcop kdesktop KBackgroundIface setWallpaper $TMPFILE 8  # 8=Scale and crop&lt;br /&gt;  exit&lt;br /&gt;     else&lt;br /&gt;  if [ $N -eq 1 ]&lt;br /&gt;  then&lt;br /&gt;      echo no PTOD found, fallback.&lt;br /&gt;  else&lt;br /&gt;        echo no PTOD found, no new wallpaper set.&lt;br /&gt;  fi&lt;br /&gt;     fi&lt;br /&gt; done&lt;br /&gt;   else&lt;br /&gt; echo wikipedia is unreachable, no new wallpaper set.&lt;br /&gt;   fi&lt;br /&gt;else&lt;br /&gt;   echo wallpaper already set to current. Resetting.&lt;br /&gt;   dcop kdesktop KBackgroundIface setWallpaper $TMPFILE 8  # 8=Scale and crop&lt;br /&gt;fi&lt;br /&gt;&lt;/username&gt;&lt;/dot&gt;&lt;/at&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11677375-7174030305977206932?l=phantomsdad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11677375/posts/default/7174030305977206932'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11677375/posts/default/7174030305977206932'/><link rel='alternate' type='text/html' href='http://phantomsdad.blogspot.com/2009/01/wikipedia-picture-of-day-as-wallpaper.html' title='Wikipedia Picture of the Day as Wallpaper'/><author><name>PhantomsDad</name><uri>http://www.blogger.com/profile/18251055369460880751</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://img126.imageshack.us/img126/9564/gerbiljazz95x1404ck.png'/></author></entry><entry><id>tag:blogger.com,1999:blog-11677375.post-116355154646701946</id><published>2006-11-14T16:21:00.000-08:00</published><updated>2006-11-14T17:09:30.486-08:00</updated><title type='text'>Shovelware</title><content type='html'>Some of you may recognize the name Raymond Chen.  He's a longtime Microsoft developer and a recognized expert on the Win32 API.  It's his job to make sure that each new version of Windows is backwards compatible to the previous versions.  Something he does extremely well and someone I admire.&lt;br /&gt;&lt;br /&gt;I was reading his blog and happened on this &lt;a href="http://blogs.msdn.com/oldnewthing/archive/2006/10/25/872891.aspx"&gt;entry&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;After reading, my reaction was "Welcome to the world you helped create, Raymond!" Thinking about it more, that's not a fair statement, but I was amazed that he was unaware of what Windows users have to put up with.  Or maybe he is aware but it just had never hit him so close to home.&lt;br /&gt;&lt;br /&gt;Sure am glad that my computer is not 0wned by the PC vendors.&lt;br /&gt;&lt;br /&gt;Bonus link just for grins: &lt;a href="http://www.abhats.com/Penguin%20polar%20bear%20symbols.jpg"&gt;fearless&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11677375-116355154646701946?l=phantomsdad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11677375/posts/default/116355154646701946'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11677375/posts/default/116355154646701946'/><link rel='alternate' type='text/html' href='http://phantomsdad.blogspot.com/2006/11/shovelware.html' title='Shovelware'/><author><name>PhantomsDad</name><uri>http://www.blogger.com/profile/18251055369460880751</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://img126.imageshack.us/img126/9564/gerbiljazz95x1404ck.png'/></author></entry><entry><id>tag:blogger.com,1999:blog-11677375.post-115987978446794586</id><published>2006-10-03T05:39:00.000-07:00</published><updated>2006-10-03T05:49:45.523-07:00</updated><title type='text'>A Pet Prayer</title><content type='html'>I hope the community will not mind a personal entry from me.&lt;br /&gt;&lt;br /&gt;Early this morning, our dog's struggle with cancer ended.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://img201.imageshack.us/my.php?image=phantom2zx1.jpg" target="_blank"&gt;&lt;img src="http://img201.imageshack.us/img201/645/phantom2zx1.th.jpg" border="0" alt="Free Image Hosting at www.ImageShack.us" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;To you who fills my life with joy&lt;br /&gt;And in whom I have placed my trust,&lt;br /&gt;I ask for but a few kindnesses.&lt;br /&gt;Count me as a member of the family,&lt;br /&gt;Feeding me when I am hungry&lt;br /&gt;And giving me a warm and comfortable place to sleep.&lt;br /&gt;Keep me safe from harm&lt;br /&gt;So I will have no cause to fear,&lt;br /&gt;And tenderly care for me when I am sick.&lt;br /&gt;Let me know by your voice and touch that you love me,&lt;br /&gt;For your love is what sustains me.&lt;br /&gt;Find time to play with me&lt;br /&gt;And time to let me lie quietly by your side.&lt;br /&gt;When I grow old and my days few,&lt;br /&gt;Comfort me, treat me gently and humanely&lt;br /&gt;And, please, do not let me suffer loneliness, indignities, or pain.&lt;br /&gt;And when I have gone,&lt;br /&gt;Think of me and of the friendship and happiness we have shared.&lt;br /&gt;Do not be sad.&lt;br /&gt;Smile at the memories&lt;br /&gt;And share with me the ultimate peace&lt;br /&gt;I have found in knowing and loving you.&lt;br /&gt;--Anonymous&lt;br /&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;I wonder if I should change my IRC nickname.  I think not.  Send me your thoughts.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11677375-115987978446794586?l=phantomsdad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11677375/posts/default/115987978446794586'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11677375/posts/default/115987978446794586'/><link rel='alternate' type='text/html' href='http://phantomsdad.blogspot.com/2006/10/pet-prayer.html' title='A Pet Prayer'/><author><name>PhantomsDad</name><uri>http://www.blogger.com/profile/18251055369460880751</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://img126.imageshack.us/img126/9564/gerbiljazz95x1404ck.png'/></author></entry><entry><id>tag:blogger.com,1999:blog-11677375.post-115930704321389163</id><published>2006-09-26T14:34:00.000-07:00</published><updated>2006-09-26T14:44:03.226-07:00</updated><title type='text'>KTTS and the French Connection III</title><content type='html'>Over a year ago, I &lt;a href="http://phantomsdad.blogspot.com/2005/06/ktts-and-french-connection.html"&gt;blogged&lt;/a&gt; about the sad state of free synthesizers for the French language.  A few months ago, the &lt;a href="http://www.cam.org/%7Enico/cicero"&gt;Cicero&lt;/a&gt; synthesizer emerged as a solution.  Since then, someone named JJL pointed me to his &lt;a href="http://kubuntu.free.fr/blog/index.php/2006/09/24/121-synthese-vocale-en-francais-sous-linux"&gt;blog&lt;/a&gt; for another solution (French language).  It uses a GPLed program called LLiaPhon to do text-to-phoneme conversion, and then uses mbrola to produce the audio.  JJL even mentions how to get it working with KTTS - the KDE Text-to-Speech System.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11677375-115930704321389163?l=phantomsdad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11677375/posts/default/115930704321389163'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11677375/posts/default/115930704321389163'/><link rel='alternate' type='text/html' href='http://phantomsdad.blogspot.com/2006/09/ktts-and-french-connection-iii.html' title='KTTS and the French Connection III'/><author><name>PhantomsDad</name><uri>http://www.blogger.com/profile/18251055369460880751</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://img126.imageshack.us/img126/9564/gerbiljazz95x1404ck.png'/></author></entry><entry><id>tag:blogger.com,1999:blog-11677375.post-115322858553030342</id><published>2006-07-18T06:04:00.000-07:00</published><updated>2006-07-18T06:16:25.736-07:00</updated><title type='text'>"Pry-open source"</title><content type='html'>I think we all get stressed from time to time working on open source projects.  "Why did they break the libs my app depends upon?"  "I can't seem to convince the xyz team that they're making a mistake."  "Why can't I get concensus on issue abc?" "I can't get any help from the 123 guys." etc.  At times like these, it can be helpful to see how the other half lives in the closed source world.&lt;br /&gt;&lt;br /&gt;Take a look at this &lt;a href="http://www.codeproject.com/system/NoDeleteDelay.asp"&gt;hack&lt;/a&gt; for instance.&lt;br /&gt;&lt;br /&gt;The article is well written, and the solution quite elegant, given the constraints the programmer is dealing with.  But oh the pain!  All so he can change one constant!&lt;br /&gt;&lt;br /&gt;My heart goes out to him and other closed source developers.  But I turn back to my KDE work and feel &lt;em&gt;much&lt;/em&gt; better.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11677375-115322858553030342?l=phantomsdad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11677375/posts/default/115322858553030342'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11677375/posts/default/115322858553030342'/><link rel='alternate' type='text/html' href='http://phantomsdad.blogspot.com/2006/07/pry-open-source.html' title='&quot;Pry-open source&quot;'/><author><name>PhantomsDad</name><uri>http://www.blogger.com/profile/18251055369460880751</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://img126.imageshack.us/img126/9564/gerbiljazz95x1404ck.png'/></author></entry><entry><id>tag:blogger.com,1999:blog-11677375.post-115125023530856189</id><published>2006-06-25T08:37:00.000-07:00</published><updated>2006-06-25T08:43:55.353-07:00</updated><title type='text'>KTTS and the French Connection II</title><content type='html'>Almost a year ago exactly, I &lt;a href="http://phantomsdad.blogspot.com/2005/06/ktts-and-french-connection.html"&gt;blogged&lt;/a&gt; about the sad state of free synthesizers for the French language.  Well, it seems finally someone has come up with a solution.  Its called Cicero and you can get it here:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.cam.org/~nico/cicero"&gt;http://www.cam.org/~nico/cicero&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I haven't tried it myself, but it should work with the KTTS Command plugin.  Lemme know your successes/failures.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11677375-115125023530856189?l=phantomsdad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11677375/posts/default/115125023530856189'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11677375/posts/default/115125023530856189'/><link rel='alternate' type='text/html' href='http://phantomsdad.blogspot.com/2006/06/ktts-and-french-connection-ii.html' title='KTTS and the French Connection II'/><author><name>PhantomsDad</name><uri>http://www.blogger.com/profile/18251055369460880751</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://img126.imageshack.us/img126/9564/gerbiljazz95x1404ck.png'/></author></entry><entry><id>tag:blogger.com,1999:blog-11677375.post-114925896325819751</id><published>2006-06-02T06:55:00.000-07:00</published><updated>2006-06-02T07:36:03.353-07:00</updated><title type='text'>BitTorrent Frustrations and Solution</title><content type='html'>Here's the solution&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.utorrent.com/faq.php"&gt;http://www.utorrent.com/faq.php&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Now I'll explain the problem.&lt;br /&gt;&lt;br /&gt;My wife likes to play online FPS games.  Whenever her framerates are too low, she calls downstairs to me "Are you running a torrent?", to which I always respond "No" because I know that running a torrent while she is gaming brings our home network to its knees.  The funny thing is, my torrents rarely achieved speeds more than 10 KB/s, so how could they impact her games?&lt;br /&gt;&lt;br /&gt;With the &lt;a href="http://www.ubuntu.com/download"&gt;Ubuntu&lt;/a&gt; and &lt;a href="http://kubuntu.com/"&gt;Kubuntu&lt;/a&gt; releases announced yesterday, I wanted to download the 700 MB ISOs, so I fired up KTorrent, pasted in the torrent urls and .. once again about 10, maybe 20 KB/s.  At that rate, KTorrent tells me I'll complete the Kubuntu iso in 2 days.  But I noticed a funny thing.  When the torrents first start up, they achieve rates above 100 KB/s, but then drop down to the lethargic 10 KB/s.  Strange.&lt;br /&gt;&lt;br /&gt;I've been Googling for an answer to these low rates for a couple of months now.  The usual advice includes playing with the maximum up/down bandwidth settings, changing the max connection slots, making sure port forwarding is set up on your router, installing UPnP, etc.  None of this advice was working for me.  Finally I happened on the uTorrent FAQ I linked above.  About a third of the way down, it mentions problems with LinkSys routers.  I have a LinkSys WRT54GS v4 running the DD-WRT v23 firmware.  The FAQ says v23+ is OK, but I check if there's an update, download and install the v23 (SP1) update, apply the other tweaks the FAQ advises, and .. problem solved!  It seems that LinkSys routers can't handle the large numbers of connections that p2p apps like torrents create.  The router becomes overwhelmed, loses its mind, and overall network throughput drops to almost nil.  Apparently, this problem isn't restricted to just LinkSys routers.  Check the FAQ for a list of known problems with many other routers.&lt;br /&gt;&lt;br /&gt;I suspect A LOT of households have this or related problems.&lt;br /&gt;&lt;br /&gt;BTW, &lt;a href="http://ktorrent.org/"&gt;KTorrent&lt;/a&gt; is a very fine program.  The latest code is in KDE's svn trunk/extragear/network.  A recent enhancement includes protocol encryption, which means my ISP can't &lt;a href="http://yro.slashdot.org/yro/06/06/02/1238237.shtml"&gt;snoop&lt;/a&gt; on my torrents, or bandwidth limit them.  Recommended.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11677375-114925896325819751?l=phantomsdad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11677375/posts/default/114925896325819751'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11677375/posts/default/114925896325819751'/><link rel='alternate' type='text/html' href='http://phantomsdad.blogspot.com/2006/06/bittorrent-frustrations-and-solution.html' title='BitTorrent Frustrations and Solution'/><author><name>PhantomsDad</name><uri>http://www.blogger.com/profile/18251055369460880751</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://img126.imageshack.us/img126/9564/gerbiljazz95x1404ck.png'/></author></entry><entry><id>tag:blogger.com,1999:blog-11677375.post-114694033868915510</id><published>2006-05-06T11:31:00.000-07:00</published><updated>2006-05-06T11:33:23.106-07:00</updated><title type='text'>Giving FreeNX a Try</title><content type='html'>I decided to finally give FreeNX a try on my system.  NX is an open source terminal server technology developed by &lt;a href="http://nomachine.com/"&gt;NoMachine&lt;/a&gt; for thin clients.  After a couple days of solving problems, I finally got it working.  I must say, it was worth the pain.  I can now sit comfortably on my couch, booting Knoppix 4 on an old notebook I have, and run the desktop on my main machine as if I were sitting right there.&lt;br /&gt;&lt;br /&gt;It will be interesting to see what it takes to get this working securely through my WRT54GS router from the WAN side and how well it performs.  They claim it works very well, even over a 56K modem.&lt;br /&gt;&lt;br /&gt;Since I was installing on a Debian Unstable/Testing (Etch) system with latest v7 of XOrg, I encountered a few problems.  Maybe the following will save some folks some pain.  Note that most of the HOWTOs and docs at the FreeNX website (&lt;a href="http://freenx.berlios.de/"&gt;freenx.berlios.de&lt;/a&gt;) talk about building from source, but I installed from binaries.&lt;br /&gt;&lt;br /&gt;First, I added the following line to my /etc/apt/sources.list file:&lt;br /&gt;&lt;br /&gt;deb http://packages.debianbase.de/etch/i386/nx/ ./&lt;br /&gt;&lt;br /&gt;Then, as root of course,:&lt;br /&gt;&lt;br /&gt;aptitude update&lt;br /&gt;aptitude install freenx&lt;br /&gt;&lt;br /&gt;Next, I wanted to first get it working entirely on my local machine, so I downloaded the Linux .deb package from the NoMachine download page and installed:&lt;br /&gt;&lt;br /&gt;dpkg -i /home/share/download/nxclient_1.5.0-141_i386.deb&lt;br /&gt;&lt;br /&gt;Still as root, I ran&lt;br /&gt;&lt;br /&gt;nxsetup&lt;br /&gt;&lt;br /&gt;with no options and went with the defaults at all prompts.  This scripts creates the "nx" user, installs the NoMachine keys, sets up the server, and performs a basic connect test, which failed for me for several reasons.&lt;br /&gt;&lt;br /&gt;First, ssh prompted me that localhost was an "untrusted" host.  Since the script wasn't prepared to deal with this prompt, it failed.  This was easily fixed by manually running ssh to localhost and answering the same prompt in the affirmative.&lt;br /&gt;&lt;br /&gt;Rerunning nxsetup next gave me an authentication error "publickey".  I needed to make the following changes to my /etc/ssh/sshd_config file:&lt;br /&gt;&lt;br /&gt;PasswordAuthentication yes&lt;br /&gt;AllowUsers *@192.168.1.* *@localhost nx&lt;br /&gt;AuthorizedKeysFile      %h/.ssh/authorized_keys2&lt;br /&gt;&lt;br /&gt;Note the "2" at the end of that last line.  Your "AllowUsers" may vary, but the essential changes were the "*@localhost nx".&lt;br /&gt;&lt;br /&gt;After making these changes, restart the sshd:&lt;br /&gt;&lt;br /&gt;/etc/init.d/ssh --restart&lt;br /&gt;&lt;br /&gt;With nxsetup running successfully to completion, next I tried to run the nxclient as a normal user:&lt;br /&gt;&lt;br /&gt;/usr/bin/NX/nxclient --wizard&lt;br /&gt;&lt;br /&gt;This runs a wizard to help you specify an nxclient configuration and creates an icon for the desktop.  I specified "localhost" as the host machine, "UNIX" "KDE" as the Desktop, and went with the defaults for everything else.  When it tried to connect to the nx server, it failed, saying "Error: Lost connection to peer proxy on FD#10".  Now began a long search through the freenx-knx mailing list and NoMachine knowledgebase for a solution.  The upshot is that XOrg v7 changed the location of the X11 fonts and xauth utility.  I had to make the following changes to /etc/nxserver/node.conf file:&lt;br /&gt;&lt;br /&gt;AGENT_EXTRA_OPTIONS_X="-fp /usr/share/fonts/X11/misc/,&lt;br /&gt;/usr/share/fonts/X11/75dpi/:unscaled,&lt;br /&gt;/usr/share/fonts/X11/100dpi/:unscaled,&lt;br /&gt;/usr/share/fonts/X11/Type1/,&lt;br /&gt;/usr/share/fonts/X11/100dpi/,&lt;br /&gt;/usr/share/fonts/X11/75dpi/"&lt;br /&gt;&lt;br /&gt;Note: Although this looks like multiple lines, this is actually one long line in the conf file.  The directories you specify here vary according to the fonts you have installed.  Just do "ls /usr/share/fonts/X11" to figure out what you need.&lt;br /&gt;&lt;br /&gt;Also made the following change in the node.conf file:&lt;br /&gt;&lt;br /&gt;COMMAND_XAUTH=/usr/bin/xauth&lt;br /&gt;&lt;br /&gt;Finally, there were still some files on my system from the old v6 of X11, so I moved them out of the way:&lt;br /&gt;&lt;br /&gt;mv /usr/X11R6 /usr/X11R6_old&lt;br /&gt;&lt;br /&gt;If you don't do this, apparently NX will get confused.&lt;br /&gt;&lt;br /&gt;Once these changes were in place, NX worked like a charm.  Performance is extremely good over my LAN and most everything works as if I were sitting right there at my main machine.  Much better then VNC.  Wow.  Many thanks to  NoMachine and the FreeNX devs.&lt;br /&gt;&lt;br /&gt;A few issues I still need to investigate:&lt;br /&gt;&lt;br /&gt;1.  Audio isn't working.&lt;br /&gt;2.  What port forwarding do I need to set on my router so I can connect from the WAN, and how best to do it securely?&lt;br /&gt;3.  CUPS printing seems to configure fine but I haven't tested remote printing.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11677375-114694033868915510?l=phantomsdad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11677375/posts/default/114694033868915510'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11677375/posts/default/114694033868915510'/><link rel='alternate' type='text/html' href='http://phantomsdad.blogspot.com/2006/05/giving-freenx-try.html' title='Giving FreeNX a Try'/><author><name>PhantomsDad</name><uri>http://www.blogger.com/profile/18251055369460880751</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://img126.imageshack.us/img126/9564/gerbiljazz95x1404ck.png'/></author></entry><entry><id>tag:blogger.com,1999:blog-11677375.post-114693538960448912</id><published>2006-05-06T09:50:00.000-07:00</published><updated>2006-05-06T10:09:49.616-07:00</updated><title type='text'>Three Advances on TTS and Accessibility Front</title><content type='html'>Three pieces of good news for TTS and accessibility this week.&lt;br /&gt;&lt;br /&gt;First, Gary Edwards of the OpenDocument Foundation has informed the state of Massachusetts Information Technology Division&lt;br /&gt;&lt;br /&gt;"that we have completed testing on an &lt;span style="font-weight:bold;"&gt;ODF Plugin for all versions of MS Office&lt;/span&gt; dating back to MS Office 97. The ODF Plugin installs on the file menu as a natural and transparent part of the open, save, and save as sequences. As far as end users and other application add-ons are concerned, ODF plugin renders ODF documents as if it were native to MS Office.&lt;br /&gt; The testing has been extensive and thorough. As far as we can tell there isn't a problem, even with Accessibility add ons, which as you know is a major concern for Massachusetts."&lt;br /&gt;&lt;br /&gt;If what Gary claims is true, this eliminates the objections to switching to ODF as a standard document format in the MA ITD raised by accessibility groups, since users with disabilities will be able to continue running the software they are already using.&lt;br /&gt;&lt;br /&gt;More info at &lt;a href="http://groklaw.net/"&gt;groklaw.net&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Second, the 0.3.5.2 version of &lt;span style="font-weight:bold;"&gt;KTTS&lt;/span&gt; was recently released by Debian packagers in Unstable.  Package kdeaccessibility. This version has some important fixes in the ALSA plugin and better language support.  The fixes have been available in svn for awhile now; nice to see them hitting the streets.&lt;br /&gt;&lt;br /&gt;Third, Conrad Hoffman released an updated version of his &lt;span style="font-weight:bold;"&gt;KTTS plugin for Kopete&lt;/span&gt;.  Nice.  More info at &lt;a href="http://kde-apps.org/"&gt;kde-apps.org&lt;/a&gt;.  Search for "ktts plugin".&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Tip&lt;/span&gt;: When building from source on Debian, use&lt;br /&gt;&lt;br /&gt;./configure --prefix=/usr&lt;br /&gt;&lt;br /&gt;You'll need the kdemultimedia-dev package.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11677375-114693538960448912?l=phantomsdad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11677375/posts/default/114693538960448912'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11677375/posts/default/114693538960448912'/><link rel='alternate' type='text/html' href='http://phantomsdad.blogspot.com/2006/05/three-advances-on-tts-and.html' title='Three Advances on TTS and Accessibility Front'/><author><name>PhantomsDad</name><uri>http://www.blogger.com/profile/18251055369460880751</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://img126.imageshack.us/img126/9564/gerbiljazz95x1404ck.png'/></author></entry><entry><id>tag:blogger.com,1999:blog-11677375.post-114451451733366028</id><published>2006-04-08T09:39:00.000-07:00</published><updated>2006-04-08T09:41:57.356-07:00</updated><title type='text'>Source Code Editors and the Three Bears</title><content type='html'>When you begin working on someone else's programming project, it can be a bit daunting.  You need to get a sense of where things are and how the project is organized.  As you look through code, it can be frustrating to find a referenced function or object.  What I most need is an easy way to click on a function, variable, or macro and jump to the defining code.  It is also useful to find all the references.&lt;br /&gt;&lt;br /&gt;IDEs like KDevelop3 are useful for helping you to navigate through a project, but like the 3 bears, I find KDevelop3 is too heavy-weight for my purposes and brings along with it more than a few bugs.  Using a standalone text editor and command window is too little.&lt;br /&gt;&lt;br /&gt;I've been using a nice mini-IDE for awhile now called &lt;a html="http://kscope.sourceforge.net/index.html"&gt;KScope&lt;/a&gt;, and I gotta say I find it increasingly a pleasure to use.   Here's how KScope describes itself:&lt;br /&gt;&lt;br /&gt;  "KScope is by no means intended to be a replacement to any of the leading Linux/KDE IDEs, such as KDevelop. First of all, it is not an Integrated Development Environment: it does not provide the usual write/compile/debug cycle supported by most IDE's. Instead, KScope is focused on source editing and analysis."&lt;br /&gt;&lt;br /&gt;KScope integrates nicely with Kate and uses CScope to build its index of tags.&lt;br /&gt;&lt;br /&gt;The bad news is -- because it is built upon CScope -- is intended for C code.  However, I find it does work with KDE C++ code pretty well.   Worth a try if -- like the 3 bears -- you are searching for something that is "juuust right".&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11677375-114451451733366028?l=phantomsdad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11677375/posts/default/114451451733366028'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11677375/posts/default/114451451733366028'/><link rel='alternate' type='text/html' href='http://phantomsdad.blogspot.com/2006/04/source-code-editors-and-three-bears.html' title='Source Code Editors and the Three Bears'/><author><name>PhantomsDad</name><uri>http://www.blogger.com/profile/18251055369460880751</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://img126.imageshack.us/img126/9564/gerbiljazz95x1404ck.png'/></author></entry><entry><id>tag:blogger.com,1999:blog-11677375.post-113840633495779983</id><published>2006-01-27T15:52:00.000-08:00</published><updated>2006-01-27T15:58:54.976-08:00</updated><title type='text'>Podcasts</title><content type='html'>If you enjoy audio books, here's a site with free audio books:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.podiobooks.com"&gt;http://www.podiobooks.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I'm currently listening to &lt;a href="http://www.podiobooks.com/podiobooks/book.php?ID=24"&gt;EarthCore, by Scott Sigler&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;And here's another free audiobook by Scott:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://scottsigler.podshow.com/"&gt;http://scottsigler.podshow.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If you enjoy these books, make a small donation to support the authors and servers.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11677375-113840633495779983?l=phantomsdad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11677375/posts/default/113840633495779983'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11677375/posts/default/113840633495779983'/><link rel='alternate' type='text/html' href='http://phantomsdad.blogspot.com/2006/01/podcasts.html' title='Podcasts'/><author><name>PhantomsDad</name><uri>http://www.blogger.com/profile/18251055369460880751</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://img126.imageshack.us/img126/9564/gerbiljazz95x1404ck.png'/></author></entry><entry><id>tag:blogger.com,1999:blog-11677375.post-113703836513551114</id><published>2006-01-11T19:44:00.000-08:00</published><updated>2006-01-11T19:59:25.153-08:00</updated><title type='text'>ALSA Device Sharing</title><content type='html'>Users often experience "device busy" errors when two or more applications attempt to use the same sound card simultaneously via ALSA.  The answer to this problem is to configure your applications to use an ALSA device name that is routed through the dmix plugin.  For most systems, the "default" device is routed through dmix to the first sound card in the system.  But what if you have a second sound card (such as headphones)?  Most systems don't automatically have a device name that routes through dmix for the second card.  Here's the solution.  Put the following in your ~/.asoundrc file:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;pcm.dmix2 {&lt;br /&gt;  type dmix&lt;br /&gt;  ipc_key 8543&lt;br /&gt;  ipc_key_add_uid true&lt;br /&gt;  ipc_perm 0666&lt;br /&gt;  slave {&lt;br /&gt;    pcm "hw:1,0"&lt;br /&gt;#    format S16_LE&lt;br /&gt;#    rate 16000&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;pcm.plugdmix2 {&lt;br /&gt;  type plug &lt;br /&gt;  slave.pcm "dmix2"&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;The "hw:1,0" tells dmix2 to route to the 1st device on the second card.  Substitute what is appropriate for your system.  The ipc_key number is completely arbitrary.  Make up whatever number you like, so long as it is unique in the ALSA configuration.  Now configure your applications to use device "plugdmix2".  The plug pcm will automatically convert various formats for you to the format required by the device.  If you want to learn more about .asoundrc files, here's a couple of links I can recommend:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://alsa.opensrc.org/index.php?page=Hardware%20mixing,%20Software%20mixing"&gt;Hardware/Software Mixing&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.alsa-project.org/alsa-doc/alsa-lib/pcm_plugins.html"&gt;PCM Plugins&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11677375-113703836513551114?l=phantomsdad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11677375/posts/default/113703836513551114'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11677375/posts/default/113703836513551114'/><link rel='alternate' type='text/html' href='http://phantomsdad.blogspot.com/2006/01/alsa-device-sharing.html' title='ALSA Device Sharing'/><author><name>PhantomsDad</name><uri>http://www.blogger.com/profile/18251055369460880751</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://img126.imageshack.us/img126/9564/gerbiljazz95x1404ck.png'/></author></entry><entry><id>tag:blogger.com,1999:blog-11677375.post-113641941719978398</id><published>2006-01-04T15:52:00.000-08:00</published><updated>2006-01-04T16:04:32.916-08:00</updated><title type='text'>Multiple Sound Cards and aRts</title><content type='html'>Here's a little tip for KDE users with multiple sound cards in their computer.  Suppose you've configured aRts to use ALSA and want aRts to playback on the speakers of your first sound card, but input from the microphone on a second sound card (perhaps a headphone set).  Create the following ~/.asoundrc file:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;pcm.BiPlex {&lt;br /&gt; type asym&lt;br /&gt; playback.pcm "default"&lt;br /&gt; capture.pcm "plughw:1,0"&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Then in the KDE Control Center under &lt;span style="font-weight: bold;"&gt;Sound &amp; Multimedia&lt;/span&gt; | &lt;span style="font-weight: bold;"&gt;Sound System&lt;/span&gt;, go to the &lt;span style="font-weight: bold;"&gt;Hardware&lt;/span&gt; tab, check &lt;span style="font-weight: bold;"&gt;Override device location&lt;/span&gt; and enter &lt;span style="font-weight: bold;"&gt;BiPlex&lt;/span&gt;.  Click &lt;span style="font-weight: bold;"&gt;Apply&lt;/span&gt; and enjoy.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11677375-113641941719978398?l=phantomsdad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11677375/posts/default/113641941719978398'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11677375/posts/default/113641941719978398'/><link rel='alternate' type='text/html' href='http://phantomsdad.blogspot.com/2006/01/multiple-sound-cards-and-arts.html' title='Multiple Sound Cards and aRts'/><author><name>PhantomsDad</name><uri>http://www.blogger.com/profile/18251055369460880751</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://img126.imageshack.us/img126/9564/gerbiljazz95x1404ck.png'/></author></entry><entry><id>tag:blogger.com,1999:blog-11677375.post-113309967647244645</id><published>2005-11-27T05:52:00.000-08:00</published><updated>2005-11-27T05:54:36.486-08:00</updated><title type='text'>KOffice Gets Text-to-Speech?</title><content type='html'>I have committed a new Text-to-Speech (TTS) capability to the KOffice svn code repository.  By default, the TTS feature is off.  In KWord, KSpread, and KPresenter, you can activate it in the Configure dialog.&lt;br /&gt;&lt;br /&gt;It adds a kinda screen reader capability to all KO apps.  It can speak the text of widgets under the mouse pointer and/or widgets that have the focus.  It also adds a "Speak Text" option in the context menu of the KWord Document Structure Area, which is useful for speaking a document.  Note that this capability is &lt;em&gt;not&lt;/em&gt; intended for completely blind users.  Instead, it is intended for users with other visual disabilities.  I would like feedback as to whether this feature is useful.  In particular, I would like to hear from anyone with visual disabilities.&lt;br /&gt;&lt;br /&gt;This capability will be removed (or adapted) when KO is converted to KDE4, where hopefully we will have a proper screen reader using the Assistive Technology - Service Provider Interface.&lt;br /&gt;&lt;br /&gt;The capability mostly works (at least for me), but there are a few problems:&lt;br /&gt;&lt;br /&gt;  1.  Cannot speak menu items under the mouse pointer in a QMenuBar (the main menu).  If anyone can tell me how to determine the menu item in a QMenuBar given a global coordinate, I'd be appreciative.&lt;br /&gt;&lt;br /&gt;  2.  Doesn't support all kinds of widgets.&lt;br /&gt;&lt;br /&gt;It is implemented as a new object, lib/kofficecore/KoSpeaker.cpp, which is created in lib/kofficecore/komainwindow.cc, and therefore is created in all KO apps (except Kexi).  The code is quite a hack, so unless there is positive feedback, I may decide to remove it from the 3.5 final product.  If anything, the code is a good example of why we need a proper accessibility infrastructure, such as will be available in KDE 4.&lt;br /&gt;&lt;br /&gt;To try it, you'll need to&lt;br /&gt;&lt;br /&gt;  1.  Build KOffice from svn.&lt;br /&gt;&lt;br /&gt;  2.  Install KTTSD from 3.4 or 3.5 kdeaccessibility module.  Configure with a suitable synth engine.  A really lightweight English-only synth is Festival Lite (flite), but Festival is a good choice in general.&lt;br /&gt;&lt;br /&gt;I haven't yet added configuration pages to the other KO apps, but if you want to test it under those apps now, you can add a section like this to the corresponding rc file in $HOME/.kde/share/config&lt;br /&gt;&lt;br /&gt;[TTS]&lt;br /&gt;AcceleratorPrefixWord=Accelerator&lt;br /&gt;PollingInterval=600&lt;br /&gt;SpeakAccelerators=true&lt;br /&gt;SpeakDisabled=true&lt;br /&gt;SpeakFocusWidget=false&lt;br /&gt;SpeakPointerWidget=true&lt;br /&gt;SpeakTooltips=true&lt;br /&gt;SpeakWhatsThis=true&lt;br /&gt;&lt;br /&gt;SpeakPointerWidget and SpeakFocusWidget true enable speaking of the widget under the mouse pointer and speaking the focused widget respectively.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11677375-113309967647244645?l=phantomsdad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11677375/posts/default/113309967647244645'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11677375/posts/default/113309967647244645'/><link rel='alternate' type='text/html' href='http://phantomsdad.blogspot.com/2005/11/koffice-gets-text-to-speech.html' title='KOffice Gets Text-to-Speech?'/><author><name>PhantomsDad</name><uri>http://www.blogger.com/profile/18251055369460880751</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://img126.imageshack.us/img126/9564/gerbiljazz95x1404ck.png'/></author></entry><entry><id>tag:blogger.com,1999:blog-11677375.post-113242258633483375</id><published>2005-11-19T09:36:00.000-08:00</published><updated>2005-11-19T09:49:46.353-08:00</updated><title type='text'>KOffice v1.4.1 Accessibility Assessment</title><content type='html'>I have completed an accessibility self-assessment for KOffice version 1.4.1.  You may download the assessment in OO.org/StarOffice or PDF format by visiting &lt;a href="http://accessibility.kde.org/reports/"&gt;KDE Accessibility Reports&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The assessment has been coordinated with the KOffice development team and includes notes about fixes in the upcoming 1.5 release (early 2006).&lt;br /&gt;&lt;br /&gt;The reasons for the assessment are:&lt;br /&gt;&lt;br /&gt;  1.  The Massachusetts Commission for the Blind &lt;a href="http://lists.kde.org/?l=kde-accessibility&amp;m=112653249424930&amp;w=2"&gt;requested&lt;/a&gt; accessibility information concerning software that supports the Open Document Format (ODF), i.e. KOffice.&lt;br /&gt;&lt;br /&gt;  2.  It needed to be done.&lt;br /&gt;&lt;br /&gt;I expected blind access to be poor, since KDE does not have a screen reader, but the results for low-sighted and motor impaired users were surprisingly disappointing.  That's the bad news.  The good news is that the KOffice devs have been very supportive and many (but not all) of the problems will be fixed in 1.5.&lt;br /&gt;&lt;br /&gt;I've reached the following conclusions:&lt;br /&gt;&lt;br /&gt;  1.  Some of the problems are fundamental to Qt3 and kdelibs3.  QSplitter, QDockWindow, and QToolbar, for instance, are 3 problem areas.&lt;br /&gt;&lt;br /&gt;  2.  We need to get to Qt4/kdelibs4 as soon as possible.  But there will still be many issues to address.  Accessibility won't happen automagically.&lt;br /&gt;&lt;br /&gt;  3.  We need to do this sort of thing more often and hold developers feet to the fire.  Many of these problems are easy to fix if caught early.  Others  are not so easy and will need changes to core functionality to fix properly.  Some are basic design flaws, such as providing functions that can only be  performed using a mouse.&lt;br /&gt;&lt;br /&gt;  4.  The timing of this assessment is really bad because KDE 3.5 is in freeze and KDE4 is a long way off.  Had this assessment been done 6 or 9 months ago, we probably could have solved most of the problems (except for blind access) by making needed changes to kdelibs3.&lt;br /&gt;&lt;br /&gt;If anyone wants to do similar assessments for other KDE applications, please do so and send them to me.  They are not hard to do, and you don't have to be a programmer to do them.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11677375-113242258633483375?l=phantomsdad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11677375/posts/default/113242258633483375'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11677375/posts/default/113242258633483375'/><link rel='alternate' type='text/html' href='http://phantomsdad.blogspot.com/2005/11/koffice-v141-accessibility-assessment.html' title='KOffice v1.4.1 Accessibility Assessment'/><author><name>PhantomsDad</name><uri>http://www.blogger.com/profile/18251055369460880751</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://img126.imageshack.us/img126/9564/gerbiljazz95x1404ck.png'/></author></entry><entry><id>tag:blogger.com,1999:blog-11677375.post-113106768134502426</id><published>2005-11-03T17:15:00.000-08:00</published><updated>2005-11-08T23:45:55.033-08:00</updated><title type='text'>An Open Letter to Massachusetts Residents with Disabilities</title><content type='html'>If you've been following the debate in Massachusetts concerning adoption of the Open Document Format (ODF), you might be aware that a number of people and organizations have expressed concern over the impact of this decision on people with disabilities.  Basically, the (flawed) logic goes:  1. This decision forces me to switch to open source software.  2.  Open Source software isn't accessible.  3.  Open source software is business unfriendly, and therefore nobody will develop assistive technologies for it, and 4.  We, people with disabilities, will be victims of the decision.&lt;br /&gt;&lt;br /&gt;Let's set aside for the moment that 1) this decision does not force the use of open source software, 2) the MA Information Technology Division (ITD) decision does not mandate any particular software, 3) the ITD has already stated that the needs of disabled persons trumps the policy, 4) open source software that reads and writes ODF is already quite accessible and can even be used with the very same JAWS product that blind users currently run, and 5) OpenOffice.org is licensed under the GNU  Lesser Public License, which does not exclude businesses from developing proprietary software on top of or along side of it. (Indeed StarOffice is a commercial product that shares the same code base as OpenOffice.org.)&lt;br /&gt;&lt;br /&gt;There was a hearing on Monday by the MA Senate Post Audit Committee, at which representatives of the accessibility community spoke.  As I listened, I was struck by the emotion in the presentations.  The representatives pleaded with the committee to reverse the ITD's decision.&lt;br /&gt;&lt;br /&gt;Let's stop for a moment and think about that.  Where does such emotional energy originate?  I am not disabled myself, but as a KDE developer who is interested in accessibility, I can well imagine the struggle you have had over the last few decades.  You have repeatedly been victimized by technology "improvements".  You have written to your government representatives.  You have formed coalitions so your voice will be heard.  You have sued.  You have struggled to get funding to purchase expensive assistive technology hardware and software.  You have pleaded with Microsoft and other commercial vendors to make their software more accessible.  Only in the last few years, largely because of the US Disabilities Act (Section 508), have you achieved significant progress, and even that has come grudgingly and at great expense.&lt;br /&gt;&lt;br /&gt;Now you are faced with change once again and your reaction can be summed up in one word.  Fear.  Each time in the past when technology has changed, you have once again been forced to start over; you have once again become victims.  I'm quite sure each of you has dreaded each new release of Microsoft Office -- far more so than those without disabilities.&lt;br /&gt;&lt;br /&gt;I have some bad news for you.  You're going to have to do it again when Microsoft releases Office 12.  Worse, you're probably going to have to upgrade your desktop computer hardware.  I'm sorry, but that is the awful truth.&lt;br /&gt;&lt;br /&gt;Fear is a very powerful emotion.  More powerful than love or intellect.  It comes from the primitive hindbrain.  We in the free and open source software (F/OSS) community frequently talk about Microsoft's strategy of Fear, Uncertainty, and Doubt (FUD).  How amazingly powerful FUD is!&lt;br /&gt;&lt;br /&gt;I have a message for you, the people of Massachusetts with disabilities.  You need not be afraid.  The F/OSS community is waiting to welcome you.  Come on in, the water's fine.  OpenOffice.org, StarOffice, GNOME, and KDE are already quite accessible and becoming more so every day.&lt;br /&gt;&lt;br /&gt;There is a fundamental difference between your experiences of the past in the proprietary Microsoft world versus the F/OSS world.  In the Microsoft world, nothing changes unless there is a profit to be made, and you know that, as a minority, you lack the financial leverage to move corporations.  In the F/OSS world, change originates from individuals.  Change happens when you, the user, express a need and get involved.  You are not at the mercy of corporate programmers.  You do not have to be a programmer to make a difference.  We need testers, bug reporters, documentation writers, tutorial writers, artists, and advocates.  We need your experience and guidance.  We need and highly value your input.  And if you are also a programmer, well that's good, but it isn't essential.&lt;br /&gt;&lt;br /&gt;Did you know that OpenOffice.org and StarOffice run under Windows?&lt;br /&gt;&lt;br /&gt;Did you know that OpenOffice.org costs only your time to download and that StarOffice is very low cost?&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.openoffice.org/"&gt;http://www.openoffice.org/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.sun.com/software/star/staroffice/index.jsp"&gt;http://www.sun.com/software/star/staroffice/index.jsp&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Did you know that OpenOffice.org and StarOffice work with JAWS?&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.sun.com/software/star/staroffice/7/accessibility/index.xml"&gt;http://www.sun.com/software/star/staroffice/7/accessibility/index.xml&lt;/a&gt;&lt;br /&gt;&lt;a href="http://ui.openoffice.org/accessibility/whitepaper.html"&gt;http://ui.openoffice.org/accessibility/whitepaper.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Did you know that the GNOME desktop software has a free screen reader called Gnopernicus and that they are working on an even better screen reader called ORCA?&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.baum.ro/gnopernicus.html"&gt;http://www.baum.ro/gnopernicus.html&lt;/a&gt;&lt;br /&gt;&lt;a href="http://cvs.gnome.org/viewcvs/*checkout*/orca/docs/doc-set/orca.html"&gt;http://cvs.gnome.org/viewcvs/*checkout*/orca/docs/doc-set/orca.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Did you know that OpenOffice.org, StarOffice, GNOME, and KDE provide many capabilities to assist the partially sighted and light allergic?&lt;br /&gt;&lt;br /&gt;Did you know that GNOME and KDE include tools for the motor impaired who might have trouble operating a mouse or a keyboard?&lt;br /&gt;&lt;br /&gt;&lt;a href="http://developer.gnome.org/projects/gap/"&gt;http://developer.gnome.org/projects/gap/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://accessibility.kde.org/"&gt;http://accessibility.kde.org/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Did you know that OpenOffice.org and StarOffice can read your Microsoft Office files?  Not perfectly, but pretty darn well, and the difficulties are not their fault -- its the fault of Microsoft who will not publish their document formats.&lt;br /&gt;&lt;br /&gt;I don't promise these tools are perfect, but then neither are those you are currently using, are they?  In the Microsoft proprietary world you are largely helpless to affect change.  You must rely on Microsoft, other companies, or the government.  In the F/OSS world, you are empowered and you are in control.  Isn't that what you've struggled for all your life?&lt;br /&gt;&lt;br /&gt;Gary Cramblitt (aka PhantomsDad)&lt;br /&gt;KDE Text-to-Speech Maintainer&lt;br /&gt;&lt;a href="http://accessibility.kde.org/developer/kttsd/index.php"&gt;http://accessibility.kde.org/developer/kttsd/index.php&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11677375-113106768134502426?l=phantomsdad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11677375/posts/default/113106768134502426'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11677375/posts/default/113106768134502426'/><link rel='alternate' type='text/html' href='http://phantomsdad.blogspot.com/2005/11/open-letter-to-massachusetts-residents.html' title='An Open Letter to Massachusetts Residents with Disabilities'/><author><name>PhantomsDad</name><uri>http://www.blogger.com/profile/18251055369460880751</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://img126.imageshack.us/img126/9564/gerbiljazz95x1404ck.png'/></author></entry><entry><id>tag:blogger.com,1999:blog-11677375.post-111904669869301091</id><published>2005-06-17T14:40:00.000-07:00</published><updated>2005-06-18T09:16:40.926-07:00</updated><title type='text'>KTTS and the French Connection</title><content type='html'>The &lt;a href="http://accessibility.kde.org/developer/kttsd/index.php"&gt;KDE Text-to-Speech System&lt;/a&gt; currently supports the following languages via non-commercial TTS systems and voices on the Linux platform:&lt;br /&gt;&lt;br /&gt;American English&lt;br /&gt;British&lt;br /&gt;Spanish&lt;br /&gt;German&lt;br /&gt;Finnish&lt;br /&gt;Czech&lt;br /&gt;Polish&lt;br /&gt;Russian&lt;br /&gt;Italian&lt;br /&gt;Kiswahili&lt;br /&gt;Zulu&lt;br /&gt;Ibibio&lt;br /&gt;&lt;br /&gt;Notably absent from this list is French (French Canadian voices can be purchased from &lt;a href="http://www.cepstral.com"&gt;Cepstral LLC&lt;/a&gt;).  This is a damn shame.&lt;br /&gt;&lt;br /&gt;If you are French speaking, your mission, should you choose to accept it, is to develop a free and easy-to-install French language package for KTTS on the Linux platform.  There are several possible ways this could be done:&lt;br /&gt;&lt;br /&gt;1.  MBROLA and txt2pho.  This solution uses MBROLA to synthesize voice from phonemes.  What's needed is a means to convert text into phonemes.  There are French voices available for MBROLA at &lt;a href="http://tcts.fpms.ac.be/synthesis/mbrola/mbrcopybin.html"&gt;http://tcts.fpms.ac.be/synthesis/mbrola/mbrcopybin.html&lt;/a&gt;.  There are txt2pho utilities and other TTS systems available at &lt;a href="http://tcts.fpms.ac.be/synthesis/mbrola/mbrtts.html"&gt;http://tcts.fpms.ac.be/synthesis/mbrola/mbrtts.html&lt;/a&gt;.  I tried these without success.  In some cases, the txt2pho programs fussed about "little endian", so this might require some perl programming.  If you get a solution working this way, it would employ the Hadifix plugin in KTTS.&lt;br /&gt;&lt;br /&gt;2.  MBROLA and Festival.  Like #1, this solution uses MBROLA to synthesize voice from phonemes, but uses Festival to do the text to phoneme conversion.  More info at &lt;a href="http://www.cstr.ed.ac.uk/projects/festival/mbrola.html"&gt;http://www.cstr.ed.ac.uk/projects/festival/mbrola.html&lt;/a&gt;.  A solution using this technique was developed for Festival 1.4.3 called FranFest.  Google for "FranFest".  Also, here's an article that explains how to install it: &lt;a href="http://www.pollock-nageoire.net/festival/festival-english004.html"&gt;http://www.pollock-nageoire.net/festival/festival-english004.html&lt;/a&gt;.  The problem with this is 1) it requires patching and rebuilding Festival, and 2) it needs to be adapted to Festival 2.0 (1.95 beta).  I would recommend approaching the Festival programmers about incorporating this patch into Festival permanently.&lt;br /&gt;&lt;br /&gt;3.  Native Festival.  Develop a "native" voice for Festival so that Festival can do the full TTS conversion.  This is much harder than #1 or #2, but would be much easier for KTTS users to install.  From time to time, I have seen people mention on the festival-talk mailing list that they are working on this, so it may already be done or near done.  More info at &lt;a href="http://festvox.org/maillists.html"&gt;http://festvox.org/maillists.html&lt;/a&gt;.  Unfortunately, the festival-talk mailing list archive is not available.  I can send you an mbox of what I have if you are interested.&lt;br /&gt;&lt;br /&gt;Whatever solution you come up with, you'll need to document how French KTTS users install and configure it.  If your solution uses Festival, it must list the voice code for the French voice in response to the following Scheme statement:&lt;br /&gt;&lt;br /&gt;  (print (mapcar (lambda (pair) (car pair)) voice-locations))&lt;br /&gt;&lt;br /&gt;Contact me in irc.kde.org channel #kde-accessibility for more information.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11677375-111904669869301091?l=phantomsdad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11677375/posts/default/111904669869301091'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11677375/posts/default/111904669869301091'/><link rel='alternate' type='text/html' href='http://phantomsdad.blogspot.com/2005/06/ktts-and-french-connection.html' title='KTTS and the French Connection'/><author><name>PhantomsDad</name><uri>http://www.blogger.com/profile/18251055369460880751</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://img126.imageshack.us/img126/9564/gerbiljazz95x1404ck.png'/></author></entry><entry><id>tag:blogger.com,1999:blog-11677375.post-111496807670971201</id><published>2005-05-01T09:36:00.000-07:00</published><updated>2005-05-01T10:21:16.713-07:00</updated><title type='text'>"Rich" Speak</title><content type='html'>One of the goals I've had for the KDE Text-to-Speech System (KTTS) for quite some time is what I call "rich" speak -- the ability to speak a web page using a variety of genders, volumes, talking speeds etc.  The idea is to distinguish URLs for example, by speaking them faster and softer, or speak emphasized text by speaking it slightly louder.&lt;br /&gt;&lt;br /&gt;Well, I finally got it working -- mostly.  In order to use this capability right now, you must:&lt;br /&gt;&lt;br /&gt;1.  Build KTTS from CVS (or SVN when the changeover occurs).&lt;br /&gt;2.  Install Konqueror 3.4 or later.&lt;br /&gt;3.  Install Festival 1.95beta.&lt;br /&gt;4.  Install xsltproc utility.&lt;br /&gt;5.  Install the rab_diphone voice.  (Even if you don't want to speak English, this is required.  Its a bug in the Festival SABLE implementation.)&lt;br /&gt;6.  If you already have a Festival Talker configured, you must click Edit, change something, change it back, and click OK to force the Festival Talker configuration to detect that you have the rab_diphone voice installed.&lt;br /&gt;7.  Configure an XML Transformer filter and choose one of the installed XSL files -- xhtml2ssml.xsl or xhtml2ssml_simple.xsl. Set the DOCTYPE field to "html" (without the quotes).  Don't forget to click Apply.&lt;br /&gt;&lt;br /&gt;Now go to some web page in Konqi, select all or part of the page and copy to the clipboard.  In KTTSMgr Jobs tab, click the Speak Clipboard button.  (When I have some confidence that this is all working well, I plan to enable the Speak button in Konqi to speak richly, but for now, you must use the clipboard.)&lt;br /&gt;&lt;br /&gt;If this works for you, you should consider it a minor miracle.  Here's what happens.  In Konqi, John Tapsell's enhancement places almost valid xhtml into the clipboard as MIME type "text/html". The Speak Clipboard code in KTTSMgr detects the text/html MIME type in the clipboard and verifies that you have an XML Transformer configured for DOCTYPE html.  If so, it queues the clipboard contents for speaking.  (If not, it queues the plain text from the clipboard.) The XML Transformer filter uses the XSL file together with xsltproc to transform the xhtml to SSML (Speech Synthesis Markup Language).  (Before doing this, it has to change any ampersands to amp entities.  That's a defect in John's code I hope will be fixed soon.)  The Sentence Boundary Detector parses the SSML and breaks it up into separate sentences, each sentence having a complete set of SSML tags.  For each sentence, the Festival plugin runs another XSL file that converts the SSML to SABLE.  A special Scheme function permits KTTSD to send the SABLE to Festival and get back a .wav file.  The wav file is played on the audio device.&lt;br /&gt;&lt;br /&gt;That's a lot of pieces and any one of them can fail.  xsltproc, for example, is pretty fussy if the xhtml is not valid xml, and if it isn't aborts.  Web pages tend to have a lot of special characters and incomplete sentences that confuse Festival, causing it to toss the entire sentence.&lt;br /&gt;&lt;br /&gt;If you care to, you can create your own XSL file for doing the xhmtl to SSML conversion.  Contributions welcome.&lt;br /&gt;&lt;br /&gt;But there are lots of limitations.  You can't change genders or voices (Festival will abort if it doesn't find a suitable voice),  all this conversion is pretty slow, so I'd avoid large web pages.  The audio speed setting in KTTSMgr is ignored in Festival when in SABLE mode.  I doubt this works with anything but English.&lt;br /&gt;&lt;br /&gt;One day, we'll have a really robust synth engine, and we can streamline this process so that it "just works" without all the hassle.  One can hope.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11677375-111496807670971201?l=phantomsdad.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11677375/posts/default/111496807670971201'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11677375/posts/default/111496807670971201'/><link rel='alternate' type='text/html' href='http://phantomsdad.blogspot.com/2005/05/rich-speak.html' title='&quot;Rich&quot; Speak'/><author><name>PhantomsDad</name><uri>http://www.blogger.com/profile/18251055369460880751</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://img126.imageshack.us/img126/9564/gerbiljazz95x1404ck.png'/></author></entry></feed>
