<?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:blogger='http://schemas.google.com/blogger/2008' 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-20280042</id><updated>2018-09-17T01:53:46.102-07:00</updated><title type='text'>EMACSPEAK  The Complete Audio Desktop</title><subtitle type='html'>Here is where I plan to Blog Emacspeak tricks and introduce new features as I implement them.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='https://emacspeak.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default?max-results=1000'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>156</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>1000</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-20280042.post-2629248606626328439</id><published>2018-07-03T14:57:00.001-07:00</published><updated>2018-07-03T14:57:26.593-07:00</updated><title type='text'>Using Emacs Threads To Execute Commands Asynchronously </title><content type='html'>&lt;div id=&quot;content&quot;&gt;&lt;h1 class=&quot;title&quot;&gt;Using Emacs Threads To Execute Commands Asynchronously&lt;/h1&gt;&lt;div id=&quot;outline-container-org817c562&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;org817c562&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;1&lt;/span&gt; Executive Summary&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-1&quot;&gt;&lt;p&gt;Emacs 26 has threads for executing functions asynchronously. Emacs&lt;br /&gt;
commands that call an external process and wait for that process to&lt;br /&gt;
finish make a good candidate for asynchronous execution &amp;#x2014; e.g.,&lt;br /&gt;
&lt;code&gt;smtpmail-send-it&lt;/code&gt; for sending mail. The arrival of threads provides&lt;br /&gt;
an interesting option for running such commands asynchronously.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div id=&quot;outline-container-org3175966&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;org3175966&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;2&lt;/span&gt; First Attempt &amp;#x2014; Custom Async &lt;code&gt;gnus&lt;/code&gt; Command&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-2&quot;&gt;&lt;p&gt;I initially wrote a custom command for launching &lt;code&gt;gnus&lt;/code&gt; asynchronously&lt;br /&gt;
&amp;#x2014; it was a one-line  function that   ran the following:&lt;br /&gt;
&lt;/p&gt;&lt;div class=&quot;org-src-container&quot;&gt;&lt;pre class=&quot;src src-emacs-lisp&quot;&gt;(make-thread #&#39;gnus)
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;
&lt;p&gt;The above worked well &amp;#x2014; except when command &lt;code&gt;gnus&lt;/code&gt; needed user input&lt;br /&gt;
&amp;#x2014; so I just had to be thoughtful about when I called it. But a few&lt;br /&gt;
weeks later, I wanted the equivalent for function &lt;code&gt;smtpmail-send-it&lt;/code&gt;&lt;br /&gt;
for  sending mail. I almost wrote myself one more command before&lt;br /&gt;
stepping back to create a more generic solution.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-org2bc6dcb&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;org2bc6dcb&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;3&lt;/span&gt; One Command To Thread Them All&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-3&quot;&gt;&lt;p&gt;I have now defined command &lt;code&gt;emacspeak-wizards-execute-asynchronously&lt;/code&gt;&lt;br /&gt;
bound to &lt;code&gt;C-&#39; a&lt;/code&gt;.&lt;br /&gt;
Note that this command, though part of module &lt;code&gt;emacspeak-wizards&lt;/code&gt;, has&lt;br /&gt;
no emacspeak dependencies.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;div class=&quot;org-src-container&quot;&gt;&lt;pre class=&quot;src src-emacs-lisp&quot;&gt;(&lt;span style=&quot;color: #a020f0;&quot;&gt;defun&lt;/span&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;emacspeak-wizards-execute-asynchronously&lt;/span&gt; (key)
  &lt;span style=&quot;color: #8b2252;&quot;&gt;&quot;Read key-sequence, then execute its command on a new thread.&quot;&lt;/span&gt;
  (&lt;span style=&quot;color: #a020f0;&quot;&gt;interactive&lt;/span&gt; (list (read-key-sequence &lt;span style=&quot;color: #8b2252;&quot;&gt;&quot;Key Sequence: &quot;&lt;/span&gt;)))
      (&lt;span style=&quot;color: #a020f0;&quot;&gt;let&lt;/span&gt; ((l  (local-key-binding key))
             (g (global-key-binding key)))
    (&lt;span style=&quot;color: #a020f0;&quot;&gt;cond&lt;/span&gt;
     ( (commandp l)
       (make-thread l)
      (message &lt;span style=&quot;color: #8b2252;&quot;&gt;&quot;Running %s on a new thread.&quot;&lt;/span&gt; l))
     ((commandp g)
      (make-thread g)
      (message &lt;span style=&quot;color: #8b2252;&quot;&gt;&quot;Running %s on a new thread.&quot;&lt;/span&gt; g))
     (t (&lt;span style=&quot;color: #ff0000; font-weight: bold;&quot;&gt;error&lt;/span&gt; &lt;span style=&quot;color: #8b2252;&quot;&gt;&quot;%s is not bound to a command.&quot;&lt;/span&gt; key)))))

(global-set-key (kbd &lt;span style=&quot;color: #8b2252;&quot;&gt;&quot;C-&#39; a&quot;&lt;/span&gt;) &#39;emacspeak-wizards-execute-asynchronously)
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;
&lt;p&gt;With this command bound to &lt;code&gt;C-&#39; a&lt;/code&gt;, I can now get rid of my custom&lt;br /&gt;
&lt;code&gt;gnus-async&lt;/code&gt; command and its associated key-binding. I already have&lt;br /&gt;
command &lt;code&gt;gnus&lt;/code&gt; bound to &lt;code&gt;C-; g&lt;/code&gt;, so I can just press &lt;code&gt;C-&#39; a C-; g&lt;/code&gt; to&lt;br /&gt;
fetch news/mail asynchronously. &lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Similarly, when sending mail using &lt;code&gt;smtpmail&lt;/code&gt; I can press &lt;code&gt;C-&#39; a C-c&lt;br /&gt;
C-c&lt;/code&gt; in the &lt;code&gt;*mail*&lt;/code&gt; buffer to send mail without Emacs blocking.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-orge8a6d79&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;orge8a6d79&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;4&lt;/span&gt; Final Caveats&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-4&quot;&gt;&lt;p&gt;Like other asynchronous solutions (see package &lt;code&gt;async&lt;/code&gt; for instance)&lt;br /&gt;
one needs to make sure that the command being executed asynchronously&lt;br /&gt;
will not require user input. In the case of package &lt;code&gt;async&lt;/code&gt;, the&lt;br /&gt;
asynchronous Emacs will block waiting for input; in the case of&lt;br /&gt;
&lt;code&gt;make-thread&lt;/code&gt;, Emacs enters a blocking loop with the minibuffer&lt;br /&gt;
continuously displaying&lt;br /&gt;
&lt;/p&gt;&lt;pre class=&quot;example&quot;&gt;No catch for ...

&lt;/pre&gt;&lt;p&gt;The only way to come out is to kill Emacs &amp;#x2014; so make sure to use&lt;br /&gt;
command &lt;code&gt;emacspeak-wizards-execute-asynchronously&lt;/code&gt; only when you&#39;re&lt;br /&gt;
sure that the command being run asynchronously will not require user &lt;br /&gt;
input.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div id=&quot;postamble&quot; class=&quot;status&quot;&gt;&lt;p class=&quot;date&quot;&gt;Date: 2018-07-03 Tue 00:00&lt;/p&gt;&lt;p class=&quot;author&quot;&gt;Author: T.V Raman&lt;/p&gt;&lt;p class=&quot;date&quot;&gt;Created: 2018-07-03 Tue 14:37&lt;/p&gt;&lt;p class=&quot;validation&quot;&gt;&lt;a href=&quot;http://validator.w3.org/check?uri=referer&quot;&gt;Validate&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;/body&gt;&lt;br /&gt;
&lt;/html&gt;&lt;br /&gt;
</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/2629248606626328439'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/2629248606626328439'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2018/07/using-emacs-threads-to-execute-commands.html' title='Using Emacs Threads To Execute Commands Asynchronously '/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-2867697857245595694</id><published>2018-06-22T14:47:00.001-07:00</published><updated>2018-06-25T08:55:34.131-07:00</updated><title type='text'>Effective Suggest And Complete In An Eyes-Free Environment </title><content type='html'>&lt;div id=&quot;content&quot;&gt;&lt;h1 class=&quot;title&quot;&gt;Effective Suggest And Complete In An Eyes-Free Environment&lt;/h1&gt;&lt;div id=&quot;outline-container-orgf9cdbd5&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;orgf9cdbd5&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;1&lt;/span&gt; Executive Summary&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-1&quot;&gt;&lt;p&gt;Emacs has always provided a wealth of techniques for rapid keyboard&lt;br /&gt;
input (abbrev, dabbrev, hippie-expandand completion come to mind)&lt;br /&gt;
alongside a rich collection of tools for navigating among open&lt;br /&gt;
buffers. And these affordances have significantly increased over the&lt;br /&gt;
last few years with the arrival of packages like &lt;code&gt;ido&lt;/code&gt;, &lt;code&gt;company&lt;/code&gt;,&lt;br /&gt;
&lt;code&gt;helm&lt;/code&gt; etc., each replete with different strategies for rapid task&lt;br /&gt;
completion such as flex and fuzzy matching. This article investigates&lt;br /&gt;
these tools in an eyes-free environment, specifically in the context&lt;br /&gt;
of Emacspeak and rapid task completion. I&#39;ve not investigated every&lt;br /&gt;
possible package in this space &amp;#x2014; instead, I&#39;ve picked a collection&lt;br /&gt;
of packages and techniques that have worked well in an eyes-free&lt;br /&gt;
context. Finally, the ultimate metric I use in each case is the time&lt;br /&gt;
to successful task completion &amp;#x2014; since at the end of the day, that&#39;s&lt;br /&gt;
the only metric that counts when it comes to user productivity.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-org03a5b2e&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;org03a5b2e&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;2&lt;/span&gt; Terminology&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-2&quot;&gt;&lt;p&gt;For this article, I will use terms &lt;i&gt;suggestion&lt;/i&gt; and &lt;i&gt;completion&lt;/i&gt; to&lt;br /&gt;
mean  subtly different concepts. I&#39;ll also use terms &lt;i&gt;explore&lt;/i&gt; and&lt;br /&gt;
&lt;i&gt;filter&lt;/i&gt; in describing various phases in user interaction.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;dl class=&quot;org-dl&quot;&gt;&lt;dt&gt;Suggestion&lt;/dt&gt;
&lt;dd&gt;Offer the user some &lt;i&gt;suggestions&lt;/i&gt; that help explore the space of choices. (metaphor: avoid the blank sheet of paper syndrome).&lt;/dd&gt;
&lt;dt&gt;Completion &lt;/dt&gt;
&lt;dd&gt;Filter the available choices based on user input with the goal of reaching the target as rapidly as possible.&lt;/dd&gt;
&lt;dt&gt;Explore &lt;/dt&gt;
&lt;dd&gt;User does not necessarily know what he is looking for, but expects to be able to &lt;i&gt;recognize&lt;/i&gt; what he wants from the displayed choices.&lt;/dd&gt;
&lt;dt&gt;Target &lt;/dt&gt;
&lt;dd&gt;User knows exactly what he wants, e.g., filename, or function-name, but would still like to get there with the fewest possible number of keystrokes, along with the needed memory aids to guide the decision.&lt;/dd&gt; &lt;/dl&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;Note that in practice, &lt;i&gt;suggestions&lt;/i&gt; and &lt;i&gt;completions&lt;/i&gt; work&lt;br /&gt;
hand-in-hand, with the visual display playing a central role in&lt;br /&gt;
guiding the user through the pace of available choices. In a typical&lt;br /&gt;
user interaction session, the space of suggestions gets filtered by&lt;br /&gt;
user input to produce the available completions (choices) for the next&lt;br /&gt;
round of user input &amp;#x2014; think of this as a&lt;br /&gt;
&lt;b&gt;Suggest/Input/Filter/Target&lt;/b&gt; (SIFT)  interaction loop. Similarly, &lt;i&gt;explore&lt;/i&gt; and&lt;br /&gt;
&lt;i&gt;target&lt;/i&gt; type activities typically go hand-in-hand, with &lt;i&gt;explore&lt;/i&gt;&lt;br /&gt;
serving as a memory-aid for locating the &lt;i&gt;target&lt;/i&gt;.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div id=&quot;outline-container-org5333515&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;org5333515&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;3&lt;/span&gt; Tasks Where Suggestions And Completions Help Speed Up Task Completion&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-3&quot;&gt;&lt;p&gt;Here are exemplars of tasks that I perform often and where I require&lt;br /&gt;
all the help that Emacs can provide in completing the task as rapidly&lt;br /&gt;
as possible:&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;dl class=&quot;org-dl&quot;&gt;&lt;dt&gt;File Navigation &lt;/dt&gt;
&lt;dd&gt;Navigating to and opening a file  &amp;#x2014; either code or prose.&lt;/dd&gt;
&lt;dt&gt;Content Navigation&lt;/dt&gt;
&lt;dd&gt;Jump  to a specific location (section, function, class/method, or pattern-match) in  that file.&lt;/dd&gt;
&lt;dt&gt;Buffer Navigation&lt;/dt&gt;
&lt;dd&gt;Jump to an already open buffer in  a long-running Emacs.&lt;/dd&gt; &lt;/dl&gt;&lt;p&gt;If that buffer existed &amp;#x2014; but has since been killed (by&lt;br /&gt;
&lt;code&gt;midnight&lt;/code&gt; for example), then re-open that buffer.&lt;br /&gt;
I do &lt;b&gt;everything&lt;/b&gt; in Emacs, so open buffers include  a large&lt;br /&gt;
number of ORG and LaTeX documents,  Web Pages opened in  EWW &lt;br /&gt;
(news sites, documentation, blog articles), IM Chats (I use&lt;br /&gt;
&lt;code&gt;jabber&lt;/code&gt;), Mail  Buffers &amp;#x2014; both open folders and previously&lt;br /&gt;
sent messages,  and much, much more.&lt;br /&gt;
&lt;/p&gt;&lt;dl class=&quot;org-dl&quot;&gt;&lt;dt&gt;Media&lt;/dt&gt;
&lt;dd&gt;Easily launch media streams including local and streaming media.&lt;/dd&gt;
&lt;dt&gt;EBooks&lt;/dt&gt;
&lt;dd&gt;Open (or jump to an already open) EBook to continue reading.&lt;/dd&gt;
&lt;dt&gt;Code Completion&lt;/dt&gt;
&lt;dd&gt;Complete function/method-name  as I type,  with an easy affordance to move among the available choices. The &lt;b&gt;Suggest/Input/Filter/Target&lt;/b&gt; interaction loop applies here as well.&lt;/dd&gt; &lt;/dl&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;Notice that as one performs all of these tasks, &lt;b&gt;every target&lt;/b&gt; is an&lt;br /&gt;
Emacs buffer or Emacs buffer location. In the case of completion, the&lt;br /&gt;
target is a string that gets inserted at the current  location.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-org63d149a&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;org63d149a&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;4&lt;/span&gt; Features Of Eyes-Free Interaction&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-4&quot;&gt;&lt;p&gt;Using spoken output &amp;#x2014; as opposed to a rich visual display &amp;#x2014;  has&lt;br /&gt;
the following special features and/or drawbacks:&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;ol class=&quot;org-ol&quot;&gt;&lt;li&gt;A large visual display can offer the user many choices at a time,&lt;br /&gt;
and the eye&#39;s ability to rapidly scan these choices makes for an&lt;br /&gt;
extremely fast &lt;b&gt;Suggest/Input/Filter/Target&lt;/b&gt; loop. As an example, an&lt;br /&gt;
interface like &lt;code&gt;helm&lt;/code&gt; can display a large number of initial&lt;br /&gt;
choices, with the user  filtering these down with a few strategic key-presses.&lt;/li&gt;
&lt;li&gt;Spoken output takes time &amp;#x2014; and there is simply no way around&lt;br /&gt;
this &amp;#x2014; speeding up speech-rate helps to a point, but speaking&lt;br /&gt;
50 choices very fast does not help the user  in the &lt;i&gt;explore&lt;/i&gt;&lt;br /&gt;
phase. This means that  effective filtering and ranking of the available&lt;br /&gt;
choices takes on added importance.&lt;/li&gt;
&lt;li&gt;More importantly, picking a &lt;b&gt;Suggest/Input/Filter/Target&lt;/b&gt; (SIFT)&lt;br /&gt;
interaction loop that depends on a large display is sub-optimal&lt;br /&gt;
for eyes-free interaction.&lt;/li&gt;
&lt;li&gt;Given (2,3), smart filtering, flex/fuzzy matching, and ranking&lt;br /&gt;
based on past user behavior take on added importance in an&lt;br /&gt;
eyes-free environment. As an aside, I have high hopes in this&lt;br /&gt;
area for package &lt;code&gt;prescient&lt;/code&gt; &amp;#x2014; though in my few days of usage,&lt;br /&gt;
it has yet to  make a  difference in my productivity.&lt;/li&gt;
&lt;li&gt;For many of the tasks enumerated in the previous section, (2, 3&lt;br /&gt;
and 4) make &lt;code&gt;ido&lt;/code&gt; with flex and fuzzy matching extremely&lt;br /&gt;
effective. In contrast, &lt;code&gt;helm&lt;/code&gt; with similar flex and fuzzy&lt;br /&gt;
matching (via packages &lt;code&gt;helm-flx&lt;/code&gt; and &lt;code&gt;helm-fuzzier&lt;/code&gt;) adds little&lt;br /&gt;
extra benefit &amp;#x2014; and the fractional extra time to compute and&lt;br /&gt;
display the choices can even lead to a minor productivity hit.&lt;/li&gt;
&lt;li&gt;When it comes to writing code with completion, package &lt;code&gt;company&lt;/code&gt;&lt;br /&gt;
has proven extremely effective. Notice that when writing code,&lt;br /&gt;
one rarely if ever resorts to &lt;b&gt;fuzzy&lt;/b&gt; matching &amp;#x2014; this may well&lt;br /&gt;
be  subjective. Speaking for myself, I cannot think of function&lt;br /&gt;
or method names in the context of fuzzy matching &amp;#x2014; said&lt;br /&gt;
differently, it&#39;s hard to think &lt;code&gt;xl&lt;/code&gt; for function-name&lt;br /&gt;
&lt;code&gt;next-line&lt;/code&gt; &amp;#x2014; even though in a given filtering context, &lt;code&gt;xl&lt;/code&gt;&lt;br /&gt;
might define the shortest path through the available choices to&lt;br /&gt;
the target &lt;code&gt;next-line&lt;/code&gt;. Given this, emacspeak implements a&lt;br /&gt;
&lt;code&gt;company front-end&lt;/code&gt; that allows the user to navigate through the&lt;br /&gt;
available choices with succinct spoken feedback, and I use those&lt;br /&gt;
choices only after I have  typed sufficiently many characters to&lt;br /&gt;
have a manageable number of choices &amp;#x2014; said differently, though&lt;br /&gt;
package &lt;code&gt;company&lt;/code&gt; is set up to trigger after 3 characters have&lt;br /&gt;
been typed, I usually end up typing more &amp;#x2014; and  often resort to&lt;br /&gt;
&lt;code&gt;dabbrev&lt;/code&gt; or &lt;code&gt;hippee-expand&lt;/code&gt; to  input this longer prefix.&lt;/li&gt;
&lt;li&gt;Some of the shortcomings  with eyes-free interaction enumerated&lt;br /&gt;
above lead to my looking for effective work-arounds  that  might&lt;br /&gt;
well work well outside the eyes-free context, e.g. when the&lt;br /&gt;
available choices are too large to fit on a typical visual&lt;br /&gt;
display. Interestingly, most of these have also been solved by&lt;br /&gt;
mainstream Emacs developers in their never-ending/unerring quest for increased&lt;br /&gt;
productivity &amp;#x2014; package &lt;code&gt;ido&lt;/code&gt; and &lt;code&gt;company&lt;/code&gt; are excellent exemplars.&lt;/li&gt;
&lt;/ol&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ul class=&quot;org-ul&quot;&gt;&lt;li&gt;Mapping Solutions To Tasks&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;p&gt;This section maps the various solutions I use to speed up the tasks&lt;br /&gt;
enumerated earlier in this article.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-org35ff442&quot; class=&quot;outline-3&quot;&gt;&lt;h3 id=&quot;org35ff442&quot;&gt;&lt;span class=&quot;section-number-3&quot;&gt;4.1&lt;/span&gt; File And Buffer Navigation&lt;/h3&gt;&lt;div class=&quot;outline-text-3&quot; id=&quot;text-4-1&quot;&gt;&lt;p&gt;I use package &lt;code&gt;ido&lt;/code&gt; with add-ons &lt;code&gt;flx-ido&lt;/code&gt; and  &lt;code&gt;ido-completing-read+&lt;/code&gt;&lt;br /&gt;
(formerly &lt;code&gt;ido-ubiquitous&lt;/code&gt;) as my primary/only solution for this&lt;br /&gt;
task. I&#39;ve dabbled with package &lt;code&gt;helm&lt;/code&gt; &amp;#x2014; primarily via command&lt;br /&gt;
&lt;code&gt;helm-mini&lt;/code&gt; but have found almost no use-cases where I did better with&lt;br /&gt;
&lt;code&gt;helm&lt;/code&gt;. I also use command &lt;code&gt;org-switchb&lt;/code&gt; to quickly jump to any of my&lt;br /&gt;
open &lt;code&gt;org&lt;/code&gt; buffers &amp;#x2013; since that automatically filters the choices&lt;br /&gt;
down for me &amp;#x2014; I can then get to the &lt;code&gt;org-mode&lt;/code&gt; buffer I want with&lt;br /&gt;
one or two keystrokes. Notice that in  all of these cases, I&#39;m relying&lt;br /&gt;
on the fact that I mostly know what I want, i.e., the &lt;i&gt;explore&lt;/i&gt; phase&lt;br /&gt;
does not start with an entirely blank sheet of paper.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-org99ad4ed&quot; class=&quot;outline-3&quot;&gt;&lt;h3 id=&quot;org99ad4ed&quot;&gt;&lt;span class=&quot;section-number-3&quot;&gt;4.2&lt;/span&gt; Content Navigation&lt;/h3&gt;&lt;div class=&quot;outline-text-3&quot; id=&quot;text-4-2&quot;&gt;&lt;p&gt;Incremental search is your biggest and most effective friend in&lt;br /&gt;
effective eyes-free interaction &amp;#x2014; this simply cannot be stressed&lt;br /&gt;
enough. That &lt;b&gt;everything&lt;/b&gt; in Emacs is &lt;i&gt;searchable&lt;/i&gt; via&lt;br /&gt;
incremental-search is a big win for eyes-free interaction. When you&lt;br /&gt;
have a large visual display, the human eye is the search interface of&lt;br /&gt;
first resort &amp;#x2013; you typically use a &lt;i&gt;search-command&lt;/i&gt; only if the&lt;br /&gt;
target is &lt;i&gt;below the fold&lt;/i&gt; or far away from the cursor. Because spoken&lt;br /&gt;
output takes time, I use &lt;i&gt;isearch&lt;/i&gt; even when the target is one or two&lt;br /&gt;
lines away.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Structured navigation comes next in my toolbox for navigating content&lt;br /&gt;
&amp;#x2014; &lt;code&gt;imenu&lt;/code&gt; for code, and section navigation for documents (org,&lt;br /&gt;
LaTeX). I also use command &lt;code&gt;occur&lt;/code&gt; to advantage since that provides a&lt;br /&gt;
quick way of finding all the desired targets in a document. Given that&lt;br /&gt;
program source-code uses indentation for displaying structure,&lt;br /&gt;
hbuilt-in command &lt;code&gt;selective-display&lt;/code&gt; remains one of Emacs&#39; hidden&lt;br /&gt;
treasures with respect to expanding/collapsing source-code.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Finally, I&lt;br /&gt;
use a combination of &lt;code&gt;isearch&lt;/code&gt; and &lt;code&gt;structured navigation&lt;/code&gt; in&lt;br /&gt;
&lt;code&gt;org-mode&lt;/code&gt; buffres by collapsing the document, and then using&lt;br /&gt;
&lt;code&gt;isearch&lt;/code&gt; to reveal the desired content fragment.&lt;br /&gt;
In the case of &lt;code&gt;LaTeX&lt;/code&gt; documents, I use  package &lt;code&gt;reftex&lt;/code&gt; to&lt;br /&gt;
generate a &lt;i&gt;navigation&lt;/i&gt; buffer that functions as an interactive table&lt;br /&gt;
of contents. &lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-org0537c43&quot; class=&quot;outline-3&quot;&gt;&lt;h3 id=&quot;org0537c43&quot;&gt;&lt;span class=&quot;section-number-3&quot;&gt;4.3&lt;/span&gt; Locating And Playing Media&lt;/h3&gt;&lt;div class=&quot;outline-text-3&quot; id=&quot;text-4-3&quot;&gt;&lt;ol class=&quot;org-ol&quot;&gt;&lt;li&gt;I keep all my music content organized under  &lt;code&gt;~/mp3&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;I keep playlist files that contain stream-links to my favorite&lt;br /&gt;
Internet streams under &lt;code&gt;emacspeak/media&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The afore-mentioned  techniques using &lt;code&gt;ido&lt;/code&gt;  enables me to launch&lt;br /&gt;
local and streaming media with a small number of keystrokes. Once&lt;br /&gt;
selected, the content is played via package &lt;code&gt;emacspeak-m-player&lt;/code&gt;&lt;br /&gt;
which provides Emacs bindings to all  &lt;code&gt;mplayer&lt;/code&gt;  functionality&lt;br /&gt;
via that program&#39;s &lt;code&gt;slave-mode&lt;/code&gt;. In addition, Emacspeak also&lt;br /&gt;
implements a  smart &lt;code&gt;emacspeak-m-player-locate-media&lt;/code&gt; which uses&lt;br /&gt;
Emacs&#39; integration with command &lt;code&gt;locate&lt;/code&gt; to  turn the located&lt;br /&gt;
files matching a given pattern into an interactive play-list.&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-org7595f5c&quot; class=&quot;outline-3&quot;&gt;&lt;h3 id=&quot;org7595f5c&quot;&gt;&lt;span class=&quot;section-number-3&quot;&gt;4.4&lt;/span&gt; EBooks&lt;/h3&gt;&lt;div class=&quot;outline-text-3&quot; id=&quot;text-4-4&quot;&gt;&lt;p&gt;Jumping to already open ebooks is no different than buffer&lt;br /&gt;
navigation.  I organize all my ebooks under a single directory&lt;br /&gt;
tree, and module &lt;code&gt;emacspeak-epub&lt;/code&gt; implements a &lt;i&gt;bookshelf&lt;/i&gt; that&lt;br /&gt;
allows me to organize and browse my collection along various&lt;br /&gt;
axies. Finally, Emacspeak implements a light-weight bookmark&lt;br /&gt;
facility that works with &lt;code&gt;eww&lt;/code&gt; so that I can save my place in an&lt;br /&gt;
ebook across Emacs sessions.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-org17ce1a8&quot; class=&quot;outline-3&quot;&gt;&lt;h3 id=&quot;org17ce1a8&quot;&gt;&lt;span class=&quot;section-number-3&quot;&gt;4.5&lt;/span&gt; Code Completion&lt;/h3&gt;&lt;div class=&quot;outline-text-3&quot; id=&quot;text-4-5&quot;&gt;&lt;p&gt;As covered earlier, I use &lt;code&gt;company&lt;/code&gt; along with &lt;code&gt;dabbrev&lt;/code&gt; and&lt;br /&gt;
&lt;code&gt;hippee-expand&lt;/code&gt; while writing code. I also use &lt;code&gt;yasnippet&lt;/code&gt; to&lt;br /&gt;
generate skeleton code. I use &lt;code&gt;auto-correct-mode&lt;/code&gt; to&lt;br /&gt;
automatically correct repeated errors, and add abbrevs for&lt;br /&gt;
commonly occurring typos. &lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-org039aec8&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;org039aec8&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;5&lt;/span&gt; Summary&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-5&quot;&gt;&lt;ol class=&quot;org-ol&quot;&gt;&lt;li&gt;Emacs&#39; &lt;b&gt;Suggest/Input/Filter/Target&lt;/b&gt; (SIFT)  interaction loop is just as&lt;br /&gt;
effective in eyes-free interaction &amp;#x2014; in fact more so .&lt;/li&gt;
&lt;li&gt;Fuzzy matching when filtering is a big win when working with spoken&lt;br /&gt;
output &amp;#x2014; it leads to faster task completion.&lt;/li&gt;
&lt;li&gt;Navigating ones  computing environment based on  the underlying&lt;br /&gt;
structure and semantics of electronic content is a major win &amp;#x2014;&lt;br /&gt;
both when working with a visual  or spoken display. The advantages&lt;br /&gt;
just become evident far sooner in the eyes-free context due to the&lt;br /&gt;
inherently temporal nature of spoken interaction.&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div id=&quot;postamble&quot; class=&quot;status&quot;&gt;&lt;p class=&quot;date&quot;&gt;Date: 2018-06-22 Fri 00:00&lt;/p&gt;&lt;p class=&quot;author&quot;&gt;Author: T.V Raman&lt;/p&gt;&lt;p class=&quot;date&quot;&gt;Created: 2018-06-23 Sat 17:22&lt;/p&gt;&lt;p class=&quot;validation&quot;&gt;&lt;a href=&quot;http://validator.w3.org/check?uri=referer&quot;&gt;Validate&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/2867697857245595694'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/2867697857245595694'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2018/06/effective-suggest-and-complete-in-eyes.html' title='Effective Suggest And Complete In An Eyes-Free Environment '/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-1466000085421733222</id><published>2018-05-03T13:38:00.004-07:00</published><updated>2018-05-03T13:38:58.991-07:00</updated><title type='text'>Emacspeak 48.0 (ServiceDog) Unleashed!</title><content type='html'>&lt;div id=&quot;content&quot;&gt;&lt;h1 class=&quot;title&quot;&gt;Emacspeak 48.0—ServiceDog—Unleashed!&lt;/h1&gt;&lt;p&gt;*For Immediate Release:&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;San Jose, Calif., (May 04, 2018)&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Emacspeak 48.0 (ServiceDog): &lt;br /&gt;
Redefining Accessibility In The Age Of User-Aware Interfaces&lt;br /&gt;
&amp;#x2013;Zero cost of Ownership  makes priceless software Universally affordable!&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Emacspeak Inc (NASDOG: ESPK) &amp;#x2014; &lt;a href=&quot;http://github.com/tvraman/emacspeak&quot;&gt;http://github.com/tvraman/emacspeak&lt;/a&gt;&lt;br /&gt;
&amp;#x2014; announces the immediate world-wide availability of &lt;a href=&quot;https://github.com/tvraman/emacspeak/releases/download/44.0/emacspeak-45.0.tar.bz2&quot;&gt;Emacspeak 48.0&lt;/a&gt;&lt;br /&gt;
(ServiceDog) &amp;#x2014; a powerful audio desktop for leveraging today&#39;s&lt;br /&gt;
evolving Data, Social and Assistant-Oriented Internet cloud.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-org11dddeb&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;org11dddeb&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;1&lt;/span&gt; Investors Note:&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-1&quot;&gt;&lt;p&gt;With several prominent tweeters expanding coverage of &lt;span class=&quot;underline&quot;&gt;#emacspeak&lt;/span&gt;,&lt;br /&gt;
NASDOG: ESPK has now been consistently trading over the social net at&lt;br /&gt;
levels close to that once attained by DogCom high-fliers—and as of&lt;br /&gt;
May &lt;br /&gt;
2018 is trading at levels close to that achieved by once better known&lt;br /&gt;
stocks in the tech sector.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-orgb7d03b7&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;orgb7d03b7&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;2&lt;/span&gt; What Is It?&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-2&quot;&gt;&lt;p&gt;Emacspeak is a fully functional audio desktop that provides complete&lt;br /&gt;
eyes-free access to all major 32 and 64 bit operating environments. By&lt;br /&gt;
seamlessly blending live access to all aspects of the Internet such as&lt;br /&gt;
ubiquitous assistance, Web-surfing, blogging, social computing and&lt;br /&gt;
electronic messaging into the audio desktop, Emacspeak enables speech&lt;br /&gt;
access to local and remote information with a consistent and&lt;br /&gt;
well-integrated user interface. A rich suite of task-oriented tools&lt;br /&gt;
provides efficient speech-enabled access to the evolving&lt;br /&gt;
assistant-oriented social Internet cloud.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-org4c48116&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;org4c48116&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;3&lt;/span&gt; Major Enhancements:&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-3&quot;&gt;&lt;p&gt;This version &lt;b&gt;requires&lt;/b&gt; emacs-25.1 or later. &lt;br /&gt;
&lt;/p&gt;&lt;ol class=&quot;org-ol&quot;&gt;&lt;li&gt;Emacs 26 Support  🤻&lt;/li&gt;
&lt;/ol&gt;&lt;ol class=&quot;org-ol&quot;&gt;&lt;li&gt;Locate And Play Media   ᭳&lt;/li&gt;
&lt;li&gt;Updated EPub Support 🕮&lt;/li&gt;
&lt;li&gt;Updated Outloud TTS Server 💬&lt;/li&gt;
&lt;li&gt;Espeak-NG support📢&lt;/li&gt;
&lt;li&gt;Smart TTS  Prompts  🙊&lt;/li&gt;
&lt;li&gt;DBus Integration including screenlock via Gnome-ScreenSaver  🚌&lt;/li&gt;
&lt;li&gt;MPlayer And Equalizer Presets  ≝&lt;/li&gt;
&lt;li&gt;VLC front-end 🎹&lt;/li&gt;
&lt;li&gt;Updated URL templates 🕷&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Updated websearch wizards 🕸&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;— And a lot more than will fit this margin. … 🗞&lt;br /&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div id=&quot;outline-container-org4103fc9&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;org4103fc9&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;4&lt;/span&gt; Establishing Liberty, Equality And Freedom:&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-4&quot;&gt;&lt;p&gt;  Never a toy system, Emacspeak is voluntarily bundled with all&lt;br /&gt;
major Linux distributions. Though designed to be modular,&lt;br /&gt;
distributors have freely chosen to bundle the fully integrated&lt;br /&gt;
system without any undue pressure—a documented success for&lt;br /&gt;
the integrated innovation embodied by Emacspeak. As the system&lt;br /&gt;
evolves, both upgrades and downgrades continue to be available at&lt;br /&gt;
the same zero-cost to all users. The integrity of the Emacspeak&lt;br /&gt;
codebase is ensured by the reliable and secure Linux platform&lt;br /&gt;
used to develop and distribute the software.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Extensive studies have shown that thanks to these features, users&lt;br /&gt;
consider Emacspeak to be absolutely priceless. Thanks to this&lt;br /&gt;
wide-spread user demand, the present version remains   priceless&lt;br /&gt;
as ever—it is being made available at the same zero-cost as&lt;br /&gt;
previous releases.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;At the same time, Emacspeak continues to innovate in the area of&lt;br /&gt;
eyes-free Assistance and social interaction and carries forward the&lt;br /&gt;
well-established Open Source tradition of introducing user interface&lt;br /&gt;
features that eventually show up in luser environments.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;On this theme, when once challenged by a proponent of a crash-prone&lt;br /&gt;
but well-marketed mousetrap with the assertion &quot;Emacs is a system from&lt;br /&gt;
the 70&#39;s&quot;, the creator of Emacspeak evinced surprise at the unusual&lt;br /&gt;
candor manifest in the assertion that it would take popular&lt;br /&gt;
idiot-proven interfaces until the year 2070 to catch up to where the&lt;br /&gt;
Emacspeak audio desktop is today. Industry experts welcomed this&lt;br /&gt;
refreshing breath of Courage Certainty and Clarity (CCC) at a time&lt;br /&gt;
when users are reeling from the Fear Uncertainty and Doubt (FUD)&lt;br /&gt;
unleashed by complex software systems backed by even more convoluted&lt;br /&gt;
press releases.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-orgac4d362&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;orgac4d362&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;5&lt;/span&gt; Independent Test Results:&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-5&quot;&gt;&lt;p&gt;Independent test results have proven that unlike some modern (and&lt;br /&gt;
not so modern) software, Emacspeak can be safely uninstalled without&lt;br /&gt;
adversely affecting the continued performance of the computer. These&lt;br /&gt;
same tests also revealed that once uninstalled, the user stopped&lt;br /&gt;
functioning altogether. Speaking with Aster Labrador, the creator of&lt;br /&gt;
Emacspeak once pointed out that these results re-emphasize the&lt;br /&gt;
user-centric design of Emacspeak; “It is the user &amp;#x2013;and not the&lt;br /&gt;
computer&amp;#x2013; that stops functioning when Emacspeak is uninstalled!”.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-orgdbf9c39&quot; class=&quot;outline-3&quot;&gt;&lt;h3 id=&quot;orgdbf9c39&quot;&gt;&lt;span class=&quot;section-number-3&quot;&gt;5.1&lt;/span&gt; Note from Aster,Bubbles and Tilden:&lt;/h3&gt;&lt;div class=&quot;outline-text-3&quot; id=&quot;text-5-1&quot;&gt;&lt;p&gt;UnDoctored Videos Inc. is looking for volunteers to star in a&lt;br /&gt;
video demonstrating such complete user failure.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-orgd1155b1&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;orgd1155b1&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;6&lt;/span&gt; Obtaining Emacspeak:&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-6&quot;&gt;&lt;p&gt;Emacspeak can be downloaded from GitHub &amp;#x2013;see&lt;br /&gt;
&lt;a href=&quot;https://github.com/tvraman/emacspeak&quot;&gt;https://github.com/tvraman/emacspeak&lt;/a&gt; you can visit Emacspeak on the&lt;br /&gt;
WWW at &lt;a href=&quot;http://emacspeak.sf.net&quot;&gt;http://emacspeak.sf.net&lt;/a&gt;. You can subscribe to the emacspeak&lt;br /&gt;
mailing list — emacspeak@cs.vassar.edu — by sending mail to the&lt;br /&gt;
list request address emacspeak-request@cs.vassar.edu. The &lt;a href=&quot;http://emacspeak.blogspot.com&quot;&gt;Emacspeak&lt;br /&gt;
Blog&lt;/a&gt; is a good source for news about recent enhancements and how to&lt;br /&gt;
use them.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;The latest development snapshot of Emacspeak is always available via&lt;br /&gt;
Git  from GitHub  at &lt;br /&gt;
&lt;a href=&quot;https://github.com/tvraman/emacspeak&quot;&gt;Emacspeak GitHub &lt;/a&gt;.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-org04a81b9&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;org04a81b9&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;7&lt;/span&gt; History:&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-7&quot;&gt;&lt;ul class=&quot;org-ul&quot;&gt;&lt;li&gt;Emacspeak 48.0  (ServiceDog) builds on earlier releases to provide&lt;br /&gt;
continued end-user value.&lt;/li&gt;
&lt;li&gt;Emacspeak 47.0 (GentleDog) goes the next step in being helpful&lt;br /&gt;
while letting users learn and grow.&lt;/li&gt;
&lt;li&gt;Emacspeak 46.0 (HelpfulDog) heralds the  coming of Smart Assistants.&lt;/li&gt;
&lt;li&gt;Emacspeak 45.0 (IdealDog) is named in recognition of Emacs&#39;&lt;br /&gt;
excellent integration with various programming language&lt;br /&gt;
environments &amp;#x2014; thanks to this, Emacspeak is the IDE of choice&lt;br /&gt;
for eyes-free software engineering.&lt;/li&gt;
&lt;li&gt;Emacspeak 44.0 continues the steady pace of innovation on the&lt;br /&gt;
audio desktop.&lt;/li&gt;
&lt;li&gt;Emacspeak  43.0 brings even more end-user efficiency by leveraging the&lt;br /&gt;
ability to spatially place multiple audio streams to provide timely&lt;br /&gt;
auditory feedback.&lt;/li&gt;
&lt;li&gt;Emacspeak 42.0 while moving to GitHub from Google Code continues to&lt;br /&gt;
innovate in the areas of auditory user interfaces and efficient,&lt;br /&gt;
light-weight Internet access.&lt;/li&gt;
&lt;li&gt;Emacspeak 41.0 continues to improve &lt;br /&gt;
on  the desire to provide not just equal, but superior access —&lt;br /&gt;
technology when correctly implemented can significantly enhance the&lt;br /&gt;
human ability.&lt;/li&gt;
&lt;li&gt;Emacspeak 40.0 goes back to Web basics by enabling&lt;br /&gt;
&lt;a href=&quot;http://emacspeak.blogspot.com/2013/11/reading-web-content-efficiently.html&quot;&gt;efficient access&lt;/a&gt; to large amounts of readable Web content.&lt;/li&gt;
&lt;li&gt;Emacspeak 39.0 continues the Emacspeak tradition of increasing the breadth of&lt;br /&gt;
user tasks that are covered without introducing unnecessary&lt;br /&gt;
bloatware.&lt;/li&gt;
&lt;li&gt;Emacspeak 38.0 is the latest in a series of award-winning&lt;br /&gt;
releases from Emacspeak Inc.&lt;/li&gt;
&lt;li&gt;Emacspeak 37.0 continues the tradition of&lt;br /&gt;
delivering robust software as reflected by its code-name.&lt;/li&gt;
&lt;li&gt;Emacspeak 36.0 enhances the audio desktop with many new tools including full&lt;br /&gt;
EPub support — hence the name EPubDog.&lt;/li&gt;
&lt;li&gt;Emacspeak 35.0 is all about&lt;br /&gt;
teaching a new dog old tricks — and is aptly code-named HeadDog in&lt;br /&gt;
on  of our new Press/Analyst contact. emacspeak-34.0 (AKA Bubbles)&lt;br /&gt;
established a new beach-head with respect to rapid task completion in&lt;br /&gt;
an eyes-free environment.&lt;/li&gt;
&lt;li&gt;Emacspeak-33.0 AKA StarDog brings&lt;br /&gt;
unparalleled cloud access to the audio desktop.&lt;/li&gt;
&lt;li&gt;Emacspeak 32.0 AKA&lt;br /&gt;
LuckyDog continues to innovate via open technologies for better&lt;br /&gt;
access.&lt;/li&gt;
&lt;li&gt;Emacspeak 31.0 AKA TweetDog — adds tweeting to the Emacspeak&lt;br /&gt;
desktop.&lt;/li&gt;
&lt;li&gt;Emacspeak 30.0 AKA SocialDog brings the Social Web to the&lt;br /&gt;
audio desktop—you cant but be social if you speak!&lt;/li&gt;
&lt;li&gt;Emacspeak 29.0—AKAAbleDog—is a testament to the resilliance and innovation&lt;br /&gt;
embodied by Open Source software—it would not exist without the&lt;br /&gt;
thriving Emacs community that continues to ensure that Emacs remains&lt;br /&gt;
one of the premier user environments despite perhaps also being one of&lt;br /&gt;
the oldest.&lt;/li&gt;
&lt;li&gt;Emacspeak 28.0—AKA PuppyDog—exemplifies the rapid pace of&lt;br /&gt;
development evinced by Open Source software.&lt;/li&gt;
&lt;li&gt;Emacspeak 27.0—AKA&lt;br /&gt;
FastDog—is the latest in a sequence of upgrades that make previous&lt;br /&gt;
releases obsolete and downgrades unnecessary.&lt;/li&gt;
&lt;li&gt;Emacspeak 26—AKA&lt;br /&gt;
LeadDog—continues the tradition of introducing innovative access&lt;br /&gt;
solutions that are unfettered by the constraints inherent in&lt;br /&gt;
traditional adaptive technologies.&lt;/li&gt;
&lt;li&gt;Emacspeak 25 —AKA ActiveDog&lt;br /&gt;
—re-activates open, unfettered access to online&lt;br /&gt;
information.&lt;/li&gt;
&lt;li&gt;Emacspeak-Alive —AKA LiveDog —enlivens open, unfettered&lt;br /&gt;
information access with a series of live updates that once again&lt;br /&gt;
demonstrate the power and agility of open source software&lt;br /&gt;
development.&lt;/li&gt;
&lt;li&gt;Emacspeak 23.0 &amp;#x2014; AKA Retriever—went the extra mile in&lt;br /&gt;
fetching full access.&lt;/li&gt;
&lt;li&gt;Emacspeak 22.0 —AKA GuideDog —helps users&lt;br /&gt;
navigate the Web more effectively than ever before.&lt;/li&gt;
&lt;li&gt;Emacspeak 21.0&lt;br /&gt;
—AKA PlayDog —continued the &lt;br /&gt;
Emacspeak tradition of relying on enhanced&lt;br /&gt;
productivity to liberate users.&lt;/li&gt;
&lt;li&gt;Emacspeak-20.0 —AKA LeapDog —continues&lt;br /&gt;
the long established GNU/Emacs tradition of integrated innovation to&lt;br /&gt;
create a pleasurable computing environment for eyes-free&lt;br /&gt;
interaction.&lt;/li&gt;
&lt;li&gt;emacspeak-19.0 &amp;#x2013;AKA WorkDog&amp;#x2013; is designed to enhance&lt;br /&gt;
user productivity at work and leisure.&lt;/li&gt;
&lt;li&gt;Emacspeak-18.0 &amp;#x2013;code named&lt;br /&gt;
GoodDog&amp;#x2013; continued the Emacspeak tradition of enhancing user&lt;br /&gt;
productivity and thereby reducing total cost of&lt;br /&gt;
ownership.&lt;/li&gt;
&lt;li&gt;Emacspeak-17.0 &amp;#x2013;code named HappyDog&amp;#x2013; enhances user&lt;br /&gt;
productivity by exploiting today&#39;s evolving WWW&lt;br /&gt;
standards.&lt;/li&gt;
&lt;li&gt;Emacspeak-16.0 &amp;#x2013;code named CleverDog&amp;#x2013; the follow-up to&lt;br /&gt;
SmartDog&amp;#x2013; continued the tradition of working better, faster,&lt;br /&gt;
smarter.&lt;/li&gt;
&lt;li&gt;Emacspeak-15.0 &amp;#x2013;code named SmartDog&amp;#x2013;followed up on TopDog&lt;br /&gt;
as the next in a continuing  series of award-winning audio desktop&lt;br /&gt;
releases from  Emacspeak Inc.&lt;/li&gt;
&lt;li&gt;Emacspeak-14.0 &amp;#x2013;code named TopDog&amp;#x2013;was&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;the first release of this millennium. &lt;br /&gt;
&lt;/p&gt;&lt;ul class=&quot;org-ul&quot;&gt;&lt;li&gt;Emacspeak-13.0 &amp;#x2013;codenamed&lt;br /&gt;
YellowLab&amp;#x2013; was the closing release of the&lt;br /&gt;
20th. century.&lt;/li&gt;
&lt;li&gt;Emacspeak-12.0 &amp;#x2013;code named GoldenDog&amp;#x2013; began&lt;br /&gt;
leveraging the evolving semantic WWW to provide task-oriented speech&lt;br /&gt;
access to Webformation.&lt;/li&gt;
&lt;li&gt;Emacspeak-11.0 &amp;#x2013;code named Aster&amp;#x2013; went the&lt;br /&gt;
final step in making Linux a zero-cost Internet access solution for&lt;br /&gt;
blind and visually impaired users.&lt;/li&gt;
&lt;li&gt;Emacspeak-10.0 &amp;#x2013;(AKA&lt;br /&gt;
Emacspeak-2000) code named WonderDog&amp;#x2013; continued the tradition of&lt;br /&gt;
award-winning software releases designed to make eyes-free computing a&lt;br /&gt;
productive and pleasurable experience.&lt;/li&gt;
&lt;li&gt;Emacspeak-9.0 &amp;#x2013;(AKA&lt;br /&gt;
Emacspeak 99) code named BlackLab&amp;#x2013; continued to innovate in the areas&lt;br /&gt;
of speech interaction and interactive accessibility.&lt;/li&gt;
&lt;li&gt;Emacspeak-8.0 &amp;#x2013;(AKA Emacspeak-98++) code named BlackDog&amp;#x2013; was a major upgrade to&lt;br /&gt;
the speech output extension to Emacs.&lt;/li&gt;
&lt;li&gt;Emacspeak-95 (code named Illinois) was released as OpenSource on&lt;br /&gt;
the Internet in May 1995 as the first complete speech interface&lt;br /&gt;
to UNIX workstations. The subsequent release, Emacspeak-96 (code&lt;br /&gt;
named Egypt) made available in May 1996 provided significant&lt;br /&gt;
enhancements to the interface. Emacspeak-97 (Tennessee) went&lt;br /&gt;
further in providing a true audio desktop. Emacspeak-98&lt;br /&gt;
integrated Internetworking into all aspects of the audio desktop&lt;br /&gt;
to provide the first fully interactive speech-enabled WebTop.&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-org4e5aa96&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;org4e5aa96&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;8&lt;/span&gt; About Emacspeak:&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-8&quot;&gt;&lt;p&gt;Originally based at Cornell (NY) —&lt;br /&gt;
&lt;a href=&quot;http://www.cs.cornell.edu/home/raman&quot;&gt;http://www.cs.cornell.edu/home/raman&lt;/a&gt; —home to Auditory User&lt;br /&gt;
Interfaces (AUI) on the WWW,  Emacspeak is now maintained on GitHub&lt;br /&gt;
—&lt;a href=&quot;https://github.com/tvraman/emacspeak&quot;&gt;https://github.com/tvraman/emacspeak&lt;/a&gt;. The system is mirrored&lt;br /&gt;
world-wide by an international network of software archives and&lt;br /&gt;
bundled voluntarily with all major Linux distributions. On Monday,&lt;br /&gt;
April 12, 1999, Emacspeak became part of the &lt;a href=&quot;http://tvraman.github.io/emacspeak/blog/smithsonian-study.html&quot;&gt;Smithsonian&#39;s Permanent&lt;br /&gt;
Research Collection&lt;/a&gt; on Information Technology at the Smithsonian&#39;s&lt;br /&gt;
National Museum of American History.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;The Emacspeak mailing list is archived at Vassar &amp;#x2013;the home of the&lt;br /&gt;
Emacspeak mailing list&amp;#x2013; thanks to Greg Priest-Dorman, and provides a&lt;br /&gt;
valuable knowledge base for new users.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-org3991921&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;org3991921&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;9&lt;/span&gt; Press/Analyst Contact: Tilden Labrador&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-9&quot;&gt;&lt;p&gt;Going forward, Tilden acknowledges his exclusive monopoly on&lt;br /&gt;
setting the direction of the Emacspeak Audio Desktop, and&lt;br /&gt;
promises to exercise this freedom to innovate and her resulting&lt;br /&gt;
power responsibly (as before) in the interest of all dogs.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;*About This Release:&lt;br /&gt;
&lt;/p&gt;&lt;hr /&gt;&lt;br /&gt;
&lt;p&gt;Windows-Free (WF) is a favorite battle-cry of The League Against&lt;br /&gt;
Forced Fenestration (LAFF).  &amp;#x2013;see&lt;br /&gt;
&lt;a href=&quot;http://www.usdoj.gov/atr/cases/f3800/msjudgex.htm&quot;&gt;http://www.usdoj.gov/atr/cases/f3800/msjudgex.htm&lt;/a&gt; for details on&lt;br /&gt;
the ill-effects of Forced Fenestration.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;CopyWrite )C( Aster, Hubbell and Tilden Labrador. All Writes Reserved.&lt;br /&gt;
HeadDog (DM), LiveDog (DM), GoldenDog (DM), BlackDog (DM) etc., are Registered&lt;br /&gt;
Dogmarks of Aster,  Hubbell  and Tilden Labrador.  All other dogs belong to&lt;br /&gt;
their respective owners.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/1466000085421733222'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/1466000085421733222'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2018/05/emacspeak-480-servicedog-unleashed.html' title='Emacspeak 48.0 (ServiceDog) Unleashed!'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-4786787380201197619</id><published>2018-01-08T10:06:00.002-08:00</published><updated>2018-01-08T10:06:32.834-08:00</updated><title type='text'>Updating Voxin TTS Server To  Avoid A Possible ALSA Bug </title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div id=&quot;content&quot;&gt;&lt;h1 class=&quot;title&quot;&gt;Updating Voxin TTS Server To  Avoid A Possible ALSA Bug&lt;/h1&gt;&lt;div id=&quot;outline-container-org1c076f2&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;org1c076f2&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;1&lt;/span&gt; Summary&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-1&quot;&gt;&lt;p&gt;I recently updated to a new Linux laptop running the latest Debian&lt;br /&gt;
(Rodete).  The upgrade went smoothly, but when I started using the&lt;br /&gt;
machine, I found that the Emacspeak TTS server for Voxin (Outloud)&lt;br /&gt;
crashed consistently; here, consistently equated to crashing on short&lt;br /&gt;
utterances which made typing or navigating by character an extremely&lt;br /&gt;
frustrating experience.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;I fixed the issue by creating a work-around in the TTS server &lt;br /&gt;
&lt;a href=&quot;https://github.com/tvraman/emacspeak/blob/master/servers/linux-outloud/atcleci.cpp#255&quot;&gt;atcleci.cpp::xrun&lt;/a&gt;&lt;br /&gt;
&amp;#x2014; if you run into this issue, make sure to update and rebuild&lt;br /&gt;
atcleci.so from GitHub; alternatively, you&#39;ll find an updated&lt;br /&gt;
&lt;code&gt;atcleci.so&lt;/code&gt; in the &lt;code&gt;servers/linux-outloud/lib/&lt;/code&gt; directory after a&lt;br /&gt;
&lt;span class=&quot;underline&quot;&gt;git update&lt;/span&gt; that you can copy over to your &lt;code&gt;servers/linux-outloud&lt;/code&gt;&lt;br /&gt;
directory.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-org5f59b01&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;org5f59b01&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;2&lt;/span&gt; What Was Crashing&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-2&quot;&gt;&lt;p&gt;I use a DMIX plugin as the default device &amp;#x2014; and have many ALSA&lt;br /&gt;
virtual devices  that are defined in terms of this device &amp;#x2014; see my &lt;br /&gt;
&lt;a href=&quot;https://github.com/tvraman/emacspeak/blob/master/servers/linux-outloud/asoundrc&quot;&gt;asoundrc&lt;/a&gt;. With this configuration, writing to the ALSA device  was&lt;br /&gt;
raising an &lt;span class=&quot;underline&quot;&gt;EPIPE&lt;/span&gt; error  &amp;#x2014; normally this error indicates a buffer&lt;br /&gt;
underrun &amp;#x2014; that&#39;s when ALSA is starved of audio data.   But in many&lt;br /&gt;
of these cases, the ALSA device was still in a &lt;span class=&quot;underline&quot;&gt;RUNNING&lt;/span&gt; rather than&lt;br /&gt;
an &lt;span class=&quot;underline&quot;&gt;XRUN&lt;/span&gt; state &amp;#x2014; this caused the Emacspeak server to&lt;br /&gt;
abort. Curiously, this happened only sporadically &amp;#x2014; and from my&lt;br /&gt;
experimentation only happened when there were multiple streams of&lt;br /&gt;
audio active on the machine.&lt;br /&gt;
A few Google searches showed threads on the alsa/kernel devel lists&lt;br /&gt;
that indicated that this bug was present  in the case of DMIX devices&lt;br /&gt;
&amp;#x2014; it was hard to tell if the patch that was submitted on the&lt;br /&gt;
alsa-devel list had made it into my installation of Debian.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-orga9fcbcd&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;orga9fcbcd&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;3&lt;/span&gt; Fixing The Problem&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-3&quot;&gt;&lt;p&gt;My original implementation of function &lt;span class=&quot;underline&quot;&gt;xrun&lt;/span&gt;  had been cloned from&lt;br /&gt;
&lt;span class=&quot;underline&quot;&gt;aplay.c&lt;/span&gt; about 15+ years ago &amp;#x2014; looking at  the newest &lt;span class=&quot;underline&quot;&gt;aplay&lt;/span&gt;&lt;br /&gt;
implementation, little to nothing had changed there.  I finally worked&lt;br /&gt;
around  the issue  by adding a call to &lt;br /&gt;
&lt;/p&gt;&lt;pre class=&quot;example&quot;&gt;snd_pcm_prepare(AHandle) 

&lt;/pre&gt;&lt;p&gt;whenever ALSA raised an &lt;span class=&quot;underline&quot;&gt;EPIPE&lt;/span&gt; error during write &amp;#x2014; with the ALSA&lt;br /&gt;
device state in a &lt;span class=&quot;underline&quot;&gt;RUNNING&lt;/span&gt; rather than an &lt;span class=&quot;underline&quot;&gt;XRUN&lt;/span&gt; state. This&lt;br /&gt;
appears to fix the issue.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/4786787380201197619'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/4786787380201197619'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2018/01/updating-voxin-tts-server-to-avoid.html' title='Updating Voxin TTS Server To  Avoid A Possible ALSA Bug '/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-6949948823651914202</id><published>2017-11-21T14:44:00.000-08:00</published><updated>2017-11-21T16:42:12.024-08:00</updated><title type='text'>Emacspeak 47.0 (GentleDog) Unleashed!</title><content type='html'> &lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div id=&quot;content&quot;&gt;&lt;h1 class=&quot;title&quot;&gt;Emacspeak 47.0—GentleDog—Unleashed!&lt;/h1&gt;&lt;p&gt;*For Immediate Release:&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;San Jose, Calif., (November 22, 2017)&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Emacspeak 47.0 (GentleDog): &lt;br /&gt;
Redefining Accessibility In The Age Of User-Aware Interfaces&lt;br /&gt;
&amp;#x2013;Zero cost of Ownership  makes priceless software Universally affordable!&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Emacspeak Inc (NASDOG: ESPK) &amp;#x2014; &lt;a href=&quot;http://github.com/tvraman/emacspeak&quot;&gt;http://github.com/tvraman/emacspeak&lt;/a&gt;&lt;br /&gt;
&amp;#x2014; announces the immediate world-wide availability of &lt;a href=&quot;https://github.com/tvraman/emacspeak/releases/download/44.0/emacspeak-45.0.tar.bz2&quot;&gt;Emacspeak 47.0&lt;/a&gt;&lt;br /&gt;
(GentleDog) &amp;#x2014; a powerful audio desktop for leveraging today&#39;s&lt;br /&gt;
evolving Data, Social and Assistant-Oriented Internet cloud.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-org1130765&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;org1130765&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;1&lt;/span&gt; Investors Note:&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-1&quot;&gt;&lt;p&gt;With several prominent tweeters expanding coverage of &lt;span class=&quot;underline&quot;&gt;#emacspeak&lt;/span&gt;,&lt;br /&gt;
NASDOG: ESPK has now been consistently trading over the social net at&lt;br /&gt;
levels close to that once attained by DogCom high-fliers—and as of&lt;br /&gt;
November &lt;br /&gt;
2017 is trading at levels close to that achieved by once better known&lt;br /&gt;
stocks in the tech sector.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-org4319532&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;org4319532&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;2&lt;/span&gt; What Is It?&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-2&quot;&gt;&lt;p&gt;Emacspeak is a fully functional audio desktop that provides complete&lt;br /&gt;
eyes-free access to all major 32 and 64 bit operating environments. By&lt;br /&gt;
seamlessly blending live access to all aspects of the Internet such as&lt;br /&gt;
ubiquitous assistance, Web-surfing, blogging, social computing and&lt;br /&gt;
electronic messaging into the audio desktop, Emacspeak enables speech&lt;br /&gt;
access to local and remote information with a consistent and&lt;br /&gt;
well-integrated user interface. A rich suite of task-oriented tools&lt;br /&gt;
provides efficient speech-enabled access to the evolving&lt;br /&gt;
assistant-oriented social Internet cloud.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-org5980f13&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;org5980f13&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;3&lt;/span&gt; Major Enhancements:&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-3&quot;&gt;&lt;p&gt;This version &lt;b&gt;requires&lt;/b&gt; emacs-25.1 or later. &lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;ol class=&quot;org-ol&quot;&gt;&lt;li&gt;speech-Enable Extensible EVIL &amp;#x2014; VI Layer: ⸎&lt;/li&gt;
&lt;li&gt;Bookshare &amp;#x2014;  Support Additional  downloads (epub3,mp3): 🕮&lt;/li&gt;
&lt;li&gt;Bookmark support for EBooks in EWW 📔&lt;/li&gt;
&lt;li&gt;Speech-Enable VDiff &amp;#x2014; A Diff tool: ≏&lt;/li&gt;
&lt;li&gt;Speech-enable Package shx &amp;#x2014;Shell Extras For Emacs:  🖁&lt;/li&gt;
&lt;li&gt;Updated IDO Support:  ⨼&lt;/li&gt;
&lt;li&gt;Implemented NOAA Weather API:  ☔&lt;/li&gt;
&lt;li&gt;Speech-Enable Typographic Editting Support:  🖶&lt;/li&gt;
&lt;li&gt;Speech-Enable Package Origami:  🗀&lt;/li&gt;
&lt;li&gt;Magit  Enhancements for Magitians:   🎛&lt;/li&gt;
&lt;li&gt;Speech-Enable RipGrep Front-End:  ┅&lt;/li&gt;
&lt;li&gt;Added SmartParen Support:  〙&lt;/li&gt;
&lt;li&gt;Speech-enabled Minesweeper game: 🤯&lt;br /&gt;
&lt;br /&gt;
&lt;ul class=&quot;org-ul&quot;&gt;&lt;li&gt;And a lot more than wil fit this margin. … 🗞&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div id=&quot;outline-container-orgfef8928&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;orgfef8928&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;4&lt;/span&gt; Establishing Liberty, Equality And Freedom:&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-4&quot;&gt;&lt;p&gt;Never a toy system, Emacspeak is voluntarily bundled with all&lt;br /&gt;
major Linux distributions. Though designed to be modular,&lt;br /&gt;
distributors have freely chosen to bundle the fully integrated&lt;br /&gt;
system without any undue pressure—a documented success for&lt;br /&gt;
the integrated innovation embodied by Emacspeak. As the system&lt;br /&gt;
evolves, both upgrades and downgrades continue to be available at&lt;br /&gt;
the same zero-cost to all users. The integrity of the Emacspeak&lt;br /&gt;
codebase is ensured by the reliable and secure Linux platform&lt;br /&gt;
used to develop and distribute the software.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Extensive studies have shown that thanks to these features, users&lt;br /&gt;
consider Emacspeak to be absolutely priceless. Thanks to this&lt;br /&gt;
wide-spread user demand, the present version remains   priceless&lt;br /&gt;
as ever—it is being made available at the same zero-cost as&lt;br /&gt;
previous releases.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;At the same time, Emacspeak continues to innovate in the area of&lt;br /&gt;
eyes-free Assistance and social interaction and carries forward the&lt;br /&gt;
well-established Open Source tradition of introducing user interface&lt;br /&gt;
features that eventually show up in luser environments.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;On this theme, when once challenged by a proponent of a crash-prone&lt;br /&gt;
but well-marketed mousetrap with the assertion &quot;Emacs is a system from&lt;br /&gt;
the 70&#39;s&quot;, the creator of Emacspeak evinced surprise at the unusual&lt;br /&gt;
candor manifest in the assertion that it would take popular&lt;br /&gt;
idiot-proven interfaces until the year 2070 to catch up to where the&lt;br /&gt;
Emacspeak audio desktop is today. Industry experts welcomed this&lt;br /&gt;
refreshing breath of Courage Certainty and Clarity (CCC) at a time&lt;br /&gt;
when users are reeling from the Fear Uncertainty and Doubt (FUD)&lt;br /&gt;
unleashed by complex software systems backed by even more convoluted&lt;br /&gt;
press releases.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-orga1020c4&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;orga1020c4&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;5&lt;/span&gt; Independent Test Results:&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-5&quot;&gt;&lt;p&gt;Independent test results have proven that unlike some modern (and&lt;br /&gt;
not so modern) software, Emacspeak can be safely uninstalled without&lt;br /&gt;
adversely affecting the continued performance of the computer. These&lt;br /&gt;
same tests also revealed that once uninstalled, the user stopped&lt;br /&gt;
functioning altogether. Speaking with Aster Labrador, the creator of&lt;br /&gt;
Emacspeak once pointed out that these results re-emphasize the&lt;br /&gt;
user-centric design of Emacspeak; &quot;It is the user &amp;#x2013;and not the&lt;br /&gt;
computer&amp;#x2013; that stops functioning when Emacspeak is uninstalled!&quot;.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-org0756eb5&quot; class=&quot;outline-3&quot;&gt;&lt;h3 id=&quot;org0756eb5&quot;&gt;&lt;span class=&quot;section-number-3&quot;&gt;5.1&lt;/span&gt; Note from Aster,Bubbles and Tilden:&lt;/h3&gt;&lt;div class=&quot;outline-text-3&quot; id=&quot;text-5-1&quot;&gt;&lt;p&gt;UnDoctored Videos Inc. is looking for volunteers to star in a&lt;br /&gt;
video demonstrating such complete user failure.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-org71b6bb2&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;org71b6bb2&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;6&lt;/span&gt; Obtaining Emacspeak:&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-6&quot;&gt;&lt;p&gt;Emacspeak can be downloaded from GitHub &amp;#x2013;see&lt;br /&gt;
&lt;a href=&quot;https://github.com/tvraman/emacspeak&quot;&gt;https://github.com/tvraman/emacspeak&lt;/a&gt; you can visit Emacspeak on the&lt;br /&gt;
WWW at &lt;a href=&quot;http://emacspeak.sf.net&quot;&gt;http://emacspeak.sf.net&lt;/a&gt;. You can subscribe to the emacspeak&lt;br /&gt;
mailing list — emacspeak@cs.vassar.edu — by sending mail to the&lt;br /&gt;
list request address emacspeak-request@cs.vassar.edu. The &lt;a href=&quot;http://emacspeak.blogspot.com&quot;&gt;Emacspeak&lt;br /&gt;
Blog&lt;/a&gt; is a good source for news about recent enhancements and how to&lt;br /&gt;
use them.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;The latest development snapshot of Emacspeak is always available via&lt;br /&gt;
Git  from GitHub  at &lt;br /&gt;
&lt;a href=&quot;https://github.com/tvraman/emacspeak&quot;&gt;Emacspeak GitHub &lt;/a&gt;.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-orga382cfc&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;orga382cfc&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;7&lt;/span&gt; History:&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-7&quot;&gt;&lt;ul class=&quot;org-ul&quot;&gt;&lt;li&gt;Emacspeak 47.0 (GentleDog) goes the next step in being helpful&lt;br /&gt;
while letting users learn and grow.&lt;/li&gt;
&lt;li&gt;Emacspeak 46.0 (HelpfulDog) heralds the  coming of Smart Assistants.&lt;/li&gt;
&lt;li&gt;Emacspeak 45.0 (IdealDog) is named in recognition of Emacs&#39;&lt;br /&gt;
excellent integration with various programming language&lt;br /&gt;
environments &amp;#x2014; thanks to this, Emacspeak is the IDE of choice&lt;br /&gt;
for eyes-free software engineering.&lt;/li&gt;
&lt;li&gt;Emacspeak 44.0 continues the steady pace of innovation on the&lt;br /&gt;
audio desktop.&lt;/li&gt;
&lt;li&gt;Emacspeak  43.0 brings even more end-user efficiency by leveraging the&lt;br /&gt;
ability to spatially place multiple audio streams to provide timely&lt;br /&gt;
auditory feedback.&lt;/li&gt;
&lt;li&gt;Emacspeak 42.0 while moving to GitHub from Google Code continues to&lt;br /&gt;
innovate in the areas of auditory user interfaces and efficient,&lt;br /&gt;
light-weight Internet access.&lt;/li&gt;
&lt;li&gt;Emacspeak 41.0 continues to improve &lt;br /&gt;
on  the desire to provide not just equal, but superior access —&lt;br /&gt;
technology when correctly implemented can significantly enhance the&lt;br /&gt;
human ability.&lt;/li&gt;
&lt;li&gt;Emacspeak 40.0 goes back to Web basics by enabling&lt;br /&gt;
&lt;a href=&quot;http://emacspeak.blogspot.com/2013/11/reading-web-content-efficiently.html&quot;&gt;efficient access&lt;/a&gt; to large amounts of readable Web content.&lt;/li&gt;
&lt;li&gt;Emacspeak 39.0 continues the Emacspeak tradition of increasing the breadth of&lt;br /&gt;
user tasks that are covered without introducing unnecessary&lt;br /&gt;
bloatware.&lt;/li&gt;
&lt;li&gt;Emacspeak 38.0 is the latest in a series of award-winning&lt;br /&gt;
releases from Emacspeak Inc.&lt;/li&gt;
&lt;li&gt;Emacspeak 37.0 continues the tradition of&lt;br /&gt;
delivering robust software as reflected by its code-name.&lt;/li&gt;
&lt;li&gt;Emacspeak 36.0 enhances the audio desktop with many new tools including full&lt;br /&gt;
EPub support — hence the name EPubDog.&lt;/li&gt;
&lt;li&gt;Emacspeak 35.0 is all about&lt;br /&gt;
teaching a new dog old tricks — and is aptly code-named HeadDog in&lt;br /&gt;
on  of our new Press/Analyst contact. emacspeak-34.0 (AKA Bubbles)&lt;br /&gt;
established a new beach-head with respect to rapid task completion in&lt;br /&gt;
an eyes-free environment.&lt;/li&gt;
&lt;li&gt;Emacspeak-33.0 AKA StarDog brings&lt;br /&gt;
unparalleled cloud access to the audio desktop.&lt;/li&gt;
&lt;li&gt;Emacspeak 32.0 AKA&lt;br /&gt;
LuckyDog continues to innovate via open technologies for better&lt;br /&gt;
access.&lt;/li&gt;
&lt;li&gt;Emacspeak 31.0 AKA TweetDog — adds tweeting to the Emacspeak&lt;br /&gt;
desktop.&lt;/li&gt;
&lt;li&gt;Emacspeak 30.0 AKA SocialDog brings the Social Web to the&lt;br /&gt;
audio desktop—you cant but be social if you speak!&lt;/li&gt;
&lt;li&gt;Emacspeak 29.0—AKAAbleDog—is a testament to the resilliance and innovation&lt;br /&gt;
embodied by Open Source software—it would not exist without the&lt;br /&gt;
thriving Emacs community that continues to ensure that Emacs remains&lt;br /&gt;
one of the premier user environments despite perhaps also being one of&lt;br /&gt;
the oldest.&lt;/li&gt;
&lt;li&gt;Emacspeak 28.0—AKA PuppyDog—exemplifies the rapid pace of&lt;br /&gt;
development evinced by Open Source software.&lt;/li&gt;
&lt;li&gt;Emacspeak 27.0—AKA&lt;br /&gt;
FastDog—is the latest in a sequence of upgrades that make previous&lt;br /&gt;
releases obsolete and downgrades unnecessary.&lt;/li&gt;
&lt;li&gt;Emacspeak 26—AKA&lt;br /&gt;
LeadDog—continues the tradition of introducing innovative access&lt;br /&gt;
solutions that are unfettered by the constraints inherent in&lt;br /&gt;
traditional adaptive technologies.&lt;/li&gt;
&lt;li&gt;Emacspeak 25 —AKA ActiveDog&lt;br /&gt;
—re-activates open, unfettered access to online&lt;br /&gt;
information.&lt;/li&gt;
&lt;li&gt;Emacspeak-Alive —AKA LiveDog —enlivens open, unfettered&lt;br /&gt;
information access with a series of live updates that once again&lt;br /&gt;
demonstrate the power and agility of open source software&lt;br /&gt;
development.&lt;/li&gt;
&lt;li&gt;Emacspeak 23.0 &amp;#x2014; AKA Retriever—went the extra mile in&lt;br /&gt;
fetching full access.&lt;/li&gt;
&lt;li&gt;Emacspeak 22.0 —AKA GuideDog —helps users&lt;br /&gt;
navigate the Web more effectively than ever before.&lt;/li&gt;
&lt;li&gt;Emacspeak 21.0&lt;br /&gt;
—AKA PlayDog —continued the &lt;br /&gt;
Emacspeak tradition of relying on enhanced&lt;br /&gt;
productivity to liberate users.&lt;/li&gt;
&lt;li&gt;Emacspeak-20.0 —AKA LeapDog —continues&lt;br /&gt;
the long established GNU/Emacs tradition of integrated innovation to&lt;br /&gt;
create a pleasurable computing environment for eyes-free&lt;br /&gt;
interaction.&lt;/li&gt;
&lt;li&gt;emacspeak-19.0 &amp;#x2013;AKA WorkDog&amp;#x2013; is designed to enhance&lt;br /&gt;
user productivity at work and leisure.&lt;/li&gt;
&lt;li&gt;Emacspeak-18.0 &amp;#x2013;code named&lt;br /&gt;
GoodDog&amp;#x2013; continued the Emacspeak tradition of enhancing user&lt;br /&gt;
productivity and thereby reducing total cost of&lt;br /&gt;
ownership.&lt;/li&gt;
&lt;li&gt;Emacspeak-17.0 &amp;#x2013;code named HappyDog&amp;#x2013; enhances user&lt;br /&gt;
productivity by exploiting today&#39;s evolving WWW&lt;br /&gt;
standards.&lt;/li&gt;
&lt;li&gt;Emacspeak-16.0 &amp;#x2013;code named CleverDog&amp;#x2013; the follow-up to&lt;br /&gt;
SmartDog&amp;#x2013; continued the tradition of working better, faster,&lt;br /&gt;
smarter.&lt;/li&gt;
&lt;li&gt;Emacspeak-15.0 &amp;#x2013;code named SmartDog&amp;#x2013;followed up on TopDog&lt;br /&gt;
as the next in a continuing  series of award-winning audio desktop&lt;br /&gt;
releases from  Emacspeak Inc.&lt;/li&gt;
&lt;li&gt;Emacspeak-14.0 &amp;#x2013;code named TopDog&amp;#x2013;was&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;the first release of this millennium. &lt;br /&gt;
&lt;/p&gt;&lt;ul class=&quot;org-ul&quot;&gt;&lt;li&gt;Emacspeak-13.0 &amp;#x2013;codenamed&lt;br /&gt;
YellowLab&amp;#x2013; was the closing release of the&lt;br /&gt;
20th. century.&lt;/li&gt;
&lt;li&gt;Emacspeak-12.0 &amp;#x2013;code named GoldenDog&amp;#x2013; began&lt;br /&gt;
leveraging the evolving semantic WWW to provide task-oriented speech&lt;br /&gt;
access to Webformation.&lt;/li&gt;
&lt;li&gt;Emacspeak-11.0 &amp;#x2013;code named Aster&amp;#x2013; went the&lt;br /&gt;
final step in making Linux a zero-cost Internet access solution for&lt;br /&gt;
blind and visually impaired users.&lt;/li&gt;
&lt;li&gt;Emacspeak-10.0 &amp;#x2013;(AKA&lt;br /&gt;
Emacspeak-2000) code named WonderDog&amp;#x2013; continued the tradition of&lt;br /&gt;
award-winning software releases designed to make eyes-free computing a&lt;br /&gt;
productive and pleasurable experience.&lt;/li&gt;
&lt;li&gt;Emacspeak-9.0 &amp;#x2013;(AKA&lt;br /&gt;
Emacspeak 99) code named BlackLab&amp;#x2013; continued to innovate in the areas&lt;br /&gt;
of speech interaction and interactive accessibility.&lt;/li&gt;
&lt;li&gt;Emacspeak-8.0 &amp;#x2013;(AKA Emacspeak-98++) code named BlackDog&amp;#x2013; was a major upgrade to&lt;br /&gt;
the speech output extension to Emacs.&lt;/li&gt;
&lt;li&gt;Emacspeak-95 (code named Illinois) was released as OpenSource on&lt;br /&gt;
the Internet in May 1995 as the first complete speech interface&lt;br /&gt;
to UNIX workstations. The subsequent release, Emacspeak-96 (code&lt;br /&gt;
named Egypt) made available in May 1996 provided significant&lt;br /&gt;
enhancements to the interface. Emacspeak-97 (Tennessee) went&lt;br /&gt;
further in providing a true audio desktop. Emacspeak-98&lt;br /&gt;
integrated Internetworking into all aspects of the audio desktop&lt;br /&gt;
to provide the first fully interactive speech-enabled WebTop.&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-orgcd47764&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;orgcd47764&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;8&lt;/span&gt; About Emacspeak:&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-8&quot;&gt;&lt;p&gt;Originally based at Cornell (NY) —&lt;br /&gt;
&lt;a href=&quot;http://www.cs.cornell.edu/home/raman&quot;&gt;http://www.cs.cornell.edu/home/raman&lt;/a&gt; —home to Auditory User&lt;br /&gt;
Interfaces (AUI) on the WWW,  Emacspeak is now maintained on GitHub&lt;br /&gt;
—&lt;a href=&quot;https://github.com/tvraman/emacspeak&quot;&gt;https://github.com/tvraman/emacspeak&lt;/a&gt;. The system is mirrored&lt;br /&gt;
world-wide by an international network of software archives and&lt;br /&gt;
bundled voluntarily with all major Linux distributions. On Monday,&lt;br /&gt;
April 12, 1999, Emacspeak became part of the &lt;a href=&quot;http://tvraman.github.io/emacspeak/blog/smithsonian-study.html&quot;&gt;Smithsonian&#39;s Permanent&lt;br /&gt;
Research Collection&lt;/a&gt; on Information Technology at the Smithsonian&#39;s&lt;br /&gt;
National Museum of American History.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;The Emacspeak mailing list is archived at Vassar &amp;#x2013;the home of the&lt;br /&gt;
Emacspeak mailing list&amp;#x2013; thanks to Greg Priest-Dorman, and provides a&lt;br /&gt;
valuable knowledge base for new users.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-org004e542&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;org004e542&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;9&lt;/span&gt; Press/Analyst Contact: Tilden Labrador&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-9&quot;&gt;&lt;p&gt;Going forward, Tilden acknowledges his exclusive monopoly on&lt;br /&gt;
setting the direction of the Emacspeak Audio Desktop, and&lt;br /&gt;
promises to exercise this freedom to innovate and her resulting&lt;br /&gt;
power responsibly (as before) in the interest of all dogs.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;*About This Release:&lt;br /&gt;
&lt;/p&gt;&lt;hr /&gt;&lt;br /&gt;
&lt;p&gt;Windows-Free (WF) is a favorite battle-cry of The League Against&lt;br /&gt;
Forced Fenestration (LAFF).  &amp;#x2013;see&lt;br /&gt;
&lt;a href=&quot;http://www.usdoj.gov/atr/cases/f3800/msjudgex.htm&quot;&gt;http://www.usdoj.gov/atr/cases/f3800/msjudgex.htm&lt;/a&gt; for details on&lt;br /&gt;
the ill-effects of Forced Fenestration.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;CopyWrite )C( Aster, Hubbell and Tilden Labrador. All Writes Reserved.&lt;br /&gt;
HeadDog (DM), LiveDog (DM), GoldenDog (DM), BlackDog (DM) etc., are Registered&lt;br /&gt;
Dogmarks of Aster,  Hubbell  and Tilden Labrador.  All other dogs belong to&lt;br /&gt;
their respective owners.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; </content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/6949948823651914202'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/6949948823651914202'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2017/11/emacspeak-470-gentledog-unleashed.html' title='Emacspeak 47.0 (GentleDog) Unleashed!'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-4341440097842408642</id><published>2017-08-21T13:01:00.002-07:00</published><updated>2017-08-21T13:01:46.948-07:00</updated><title type='text'>Emacs Start-Up: Speeding It Up</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div id=&quot;content&quot;&gt;&lt;h1 class=&quot;title&quot;&gt;Emacs Start-Up: Speeding It Up&lt;/h1&gt;&lt;div id=&quot;outline-container-orgc53dd52&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;orgc53dd52&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;1&lt;/span&gt; TL;DR:&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-1&quot;&gt;&lt;p&gt;Describes my Emacs start-up file, and what I did to speed it up from&lt;br /&gt;
12 seconds to under 4 seconds.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;div id=&quot;outline-container-org7b5a545&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;org7b5a545&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;2&lt;/span&gt; Overview Of Steps&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-2&quot;&gt;&lt;ul class=&quot;org-ul&quot;&gt;&lt;li&gt;Byte-compile start-up files.&lt;/li&gt;
&lt;li&gt;Temporarily increase &lt;span class=&quot;underline&quot;&gt;gc-cons-threshold&lt;/span&gt; during startup.&lt;/li&gt;
&lt;li&gt;Load package autoloads (not packages) during start-up.&lt;/li&gt;
&lt;li&gt;Use &lt;span class=&quot;underline&quot;&gt;eval-after-load&lt;/span&gt; to advantage for post-package setup.&lt;/li&gt;
&lt;li&gt;Lexically bind &lt;span class=&quot;underline&quot;&gt;file-name-handler-alist&lt;/span&gt; to &lt;span class=&quot;underline&quot;&gt;nil&lt;/span&gt; if start-up&lt;br /&gt;
is split across many files.&lt;/li&gt;
&lt;li&gt;Used memoization to avoid network lookup of current location during startup.&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;I have  a large number of elpa/melpa packages installed:&lt;br /&gt;
&lt;/p&gt;&lt;div class=&quot;org-src-container&quot;&gt;&lt;pre class=&quot;src src-emacs-lisp&quot;&gt;(length load-path)
&lt;/pre&gt;&lt;/div&gt;&lt;pre class=&quot;example&quot;&gt;400

&lt;/pre&gt;&lt;br /&gt;
&lt;p&gt;With the above, my emacs (Emacs 26 built from Git) startup time is on&lt;br /&gt;
average 4 seconds.  This includes starting up emacspeak (including&lt;br /&gt;
speech servers), as well as launching a number of project-specific&lt;br /&gt;
shell buffers.  Given that I rarely restart Emacs, the startup time is&lt;br /&gt;
academic &amp;#x2014; but speeding up Emacs startup did get me to clean-up my&lt;br /&gt;
Emacs setup.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-orgb1a8215&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;orgb1a8215&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;3&lt;/span&gt; Introduction&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-3&quot;&gt;&lt;p&gt;I have now used Emacs for more than 25 years, and my &lt;a href=&quot;https://github.com/tvraman/emacspeak/blob/master/tvr/emacs-startup.el#L1&quot;&gt;Emacs start-up&lt;br /&gt;
file&lt;/a&gt; has followed the same structure through this time.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;ol class=&quot;org-ol&quot;&gt;&lt;li&gt;The init file defines a &lt;code&gt;start-up-emacs&lt;/code&gt; function that does the&lt;br /&gt;
bulk of the work.&lt;/li&gt;
&lt;li&gt;Package-specific configuration is split up into&lt;br /&gt;
&lt;code&gt;&amp;lt;package&amp;gt;-prepare.el&lt;/code&gt; files.&lt;/li&gt;
&lt;li&gt;All of these files are byte-compiled.&lt;/li&gt;
&lt;/ol&gt;&lt;br /&gt;
&lt;p&gt;As a first step, I added code to my start-up file to time the loading&lt;br /&gt;
of various modules.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-org2a2afbe&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;org2a2afbe&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;4&lt;/span&gt; Load Byte-Compiled Start-Up File&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-4&quot;&gt;&lt;p&gt;I keep my &lt;code&gt;emacs-startup.el&lt;/code&gt; checked into GitHub.&lt;br /&gt;
My Emacs init-file is a symlink to the byte-compiled version of the&lt;br /&gt;
above &amp;#x2014; this is something that goes back to my time as a&lt;br /&gt;
grad-student at Cornell (when GitHub of course did not exist).&lt;br /&gt;
That is also when I originally learnt the trick of temporarily setting&lt;br /&gt;
&lt;span class=&quot;underline&quot;&gt;gc-cons-threshold&lt;/span&gt; to 8MB &amp;#x2014; Emacs&#39; default is 800K.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-org7451279&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;org7451279&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;5&lt;/span&gt; Package Autoloads And &lt;code&gt;eval-after-load&lt;/code&gt;&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-5&quot;&gt;&lt;p&gt;Over time, some of the package-specific setup files had come to&lt;br /&gt;
directly load packages &amp;#x2014; it just made it easier to do&lt;br /&gt;
package-specific setup at the time.  As part of the cleanup, I updated&lt;br /&gt;
these to strictly load package-autoload files and wrapped post-package&lt;br /&gt;
setup code in &lt;code&gt;eval-after-load&lt;/code&gt; &amp;#x2014; this is effectively the same as&lt;br /&gt;
using &lt;code&gt;use-package&lt;/code&gt;.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div id=&quot;outline-container-org90a1e86&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;org90a1e86&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;6&lt;/span&gt; Loading Files Faster&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-6&quot;&gt;&lt;p&gt;Emacs has an extremely flexible mechanism for loading files &amp;#x2014; this&lt;br /&gt;
means you can load compressed, encrypted or remote files without&lt;br /&gt;
having to worry about it. That flexibility comes at a cost &amp;#x2014; if you&lt;br /&gt;
are sure you dont need this flexibility during start-up, then locally&lt;br /&gt;
binding &lt;code&gt;file-name-handler-alist&lt;/code&gt; to &lt;code&gt;nil&lt;/code&gt; is a big win &amp;#x2014; in my&lt;br /&gt;
case, it  sped things up by 50%.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-org2a7c3a1&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;org2a7c3a1&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;7&lt;/span&gt; Avoid Network Calls During Start-Up&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-7&quot;&gt;&lt;p&gt;In my case, I set &lt;code&gt;calendar-latitude&lt;/code&gt; and &lt;code&gt;calendar-longitude&lt;/code&gt; by&lt;br /&gt;
geocoding my address &amp;#x2014; geocoding is done by calling the Google Maps&lt;br /&gt;
API.  The geocoding API is plenty fast that you normally dont notice&lt;br /&gt;
it &amp;#x2014; but it was adding anywhere from 1&amp;#x2013;3 seconds during&lt;br /&gt;
startup. Since my address doesn&#39;t change that often, I updated module&lt;br /&gt;
&lt;a href=&quot;https://github.com/tvraman/emacspeak/blob/master/lisp/g-client/gmaps.el#L1&quot;&gt;gmaps&lt;/a&gt; to use a memoized version. My address is set via &lt;code&gt;Customize&lt;/code&gt;,&lt;br /&gt;
and the geocoded lat/long is saved to disk automatically.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div id=&quot;outline-container-org049dfc4&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;org049dfc4&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;8&lt;/span&gt; References&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-8&quot;&gt;&lt;ol class=&quot;org-ol&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://anuragpeshne.github.io/essays/emacsSpeed.html&quot;&gt;Emacs Speed&lt;/a&gt; What got it all started.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.reddit.com/r/emacs/comments/3kqt6e/2_easy_little_known_steps_to_speed_up_emacs_start/&quot;&gt;file-name-handler-alist&lt;/a&gt; The article that gave me the most useful&lt;br /&gt;
tip of them all.&lt;/li&gt;
&lt;/ol&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;Net &lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/4341440097842408642'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/4341440097842408642'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2017/08/emacs-start-up-speeding-it-up.html' title='Emacs Start-Up: Speeding It Up'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-1936852790942836877</id><published>2017-07-27T14:09:00.001-07:00</published><updated>2017-07-27T14:09:16.226-07:00</updated><title type='text'>Data-Binding In Emacs Lisp: let-alist When Processing JSON Data</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div id=&quot;content&quot;&gt;&lt;h1 class=&quot;title&quot;&gt;Data-Binding In  Emacs Lisp:  let-alist When Processing  JSON Data&lt;/h1&gt;&lt;div id=&quot;outline-container-org6cb1d80&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;org6cb1d80&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;1&lt;/span&gt; Summary&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-1&quot;&gt;&lt;p&gt;Module &lt;i&gt;json-read&lt;/i&gt; consumes JSON data structures and transforms them&lt;br /&gt;
into their elisp equivalent, where JSON dictionaries become alists and&lt;br /&gt;
JSON arrays become vectors. Accessing that data from lisp would&lt;br /&gt;
ordinarily require using lisp accessors such as &lt;span class=&quot;underline&quot;&gt;assoc&lt;/span&gt;, &lt;span class=&quot;underline&quot;&gt;car&lt;/span&gt; and&lt;br /&gt;
&lt;span class=&quot;underline&quot;&gt;cdr&lt;/span&gt;. With &lt;i&gt;let-alist&lt;/i&gt;, we get data-binding for free &amp;#x2014; the result&lt;br /&gt;
is elisp code that uses dotted-variables to directly access specific&lt;br /&gt;
slots in a deeply nested data structure. Thus, processing data&lt;br /&gt;
available as JSON via Web APIs is a really good use-case for&lt;br /&gt;
&lt;i&gt;let-alist&lt;/i&gt;. Long-standing wish &amp;#x2014; I wish Emacs&#39; JSON parsing were&lt;br /&gt;
implemented in native code rather than in elisp.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-orgf8ed66d&quot; class=&quot;outline-3&quot;&gt;&lt;h3 id=&quot;orgf8ed66d&quot;&gt;&lt;span class=&quot;section-number-3&quot;&gt;1.1&lt;/span&gt; A Working Example&lt;/h3&gt;&lt;div class=&quot;outline-text-3&quot; id=&quot;text-1-1&quot;&gt;&lt;p&gt;I recently implemented myself a &lt;a href=&quot;https://github.com/tvraman/emacspeak/blob/master/lisp/emacspeak-wizards.el#L3494&quot;&gt;NOAA Weather API Client&lt;/a&gt; &amp;#x2014; it pulls&lt;br /&gt;
the NOAA Weather Forecast (weekly and hourly) as JSON objects, and&lt;br /&gt;
produces an &lt;i&gt;org-mode&lt;/i&gt; buffer that renders the data.&lt;br /&gt;
Note that though the above is part of a much larger&lt;br /&gt;
&lt;i&gt;emacspeak-wizards&lt;/i&gt; module, the above function and its dependencies&lt;br /&gt;
are themselves mostly independent of Emacspeak, except for the last&lt;br /&gt;
two forms in the weather forecast function.&lt;br /&gt;
Here is an annotated version of the  function that gets NOAA data and&lt;br /&gt;
leverages &lt;i&gt;let-alist&lt;/i&gt; to process the  results:&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;div class=&quot;org-src-container&quot;&gt;&lt;pre class=&quot;src src-emacs-lisp&quot;&gt;(defun ems--noaa-get-data (ask)
  &quot;Internal function that gets NOAA data and returns a results buffer.&quot;
  (declare (special gweb-my-address))
  (let* ((buffer (get-buffer-create &quot;*NOAA Weather*&quot;))
         (inhibit-read-only  t)
         (date nil)
         (start (point-min))
         (address (when ask (read-from-minibuffer &quot;Address:&quot;)))
         (geo  (when ask (gmaps-geocode address))))
    (unless address (setq address gweb-my-address))
    (with-current-buffer buffer
      (erase-buffer)
      (special-mode)
      (orgstruct-mode)
      (setq header-line-format (format &quot;NOAA Weather For %s&quot; address))
      (insert (format &quot;* Weather Forecast For %s\n\n&quot; address))
;;; produce Daily forecast
      (let-alist (g-json-from-url (ems--noaa-url geo))
        (cl-loop
         for p across .properties.periods do
         (let-alist p
           (insert
            (format
             &quot;** Forecast For %s: %s\n\n%s\n\n&quot;
             .name .shortForecast .detailedForecast)))
         (fill-region start (point)))
        (insert
         (format &quot;\nUpdated at %s\n&quot;
                 (ems--noaa-time &quot;%c&quot; .properties.updated))))
      (let-alist ;;; Now produce hourly forecast
          (g-json-from-url (concat (ems--noaa-url geo) &quot;/hourly&quot;))
        (insert
         (format &quot;\n* Hourly Forecast:Updated At %s \n&quot;
                 (ems--noaa-time &quot;%c&quot; .properties.updated)))
        (cl-loop
         for p across .properties.periods do
         (let-alist p
           (unless (and date (string= date (ems--noaa-time &quot;%x&quot; .startTime)))
             (insert (format &quot;** %s\n&quot; (ems--noaa-time &quot;%A %X&quot; .startTime)))
             (setq date (ems--noaa-time &quot;%x&quot; .startTime)))
           (insert
            (format
             &quot;  - %s %s %s:  Wind Speed: %s Wind Direction: %s\n&quot;
             (ems--noaa-time &quot;%R&quot; .startTime)
             .shortForecast
             .temperature .windSpeed .windDirection)))))
      (goto-char (point-min)))
    buffer))
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ol class=&quot;org-ol&quot;&gt;&lt;li&gt;In the above_ /gweb-my-address_ is a Lat/Lng pair as returned by&lt;br /&gt;
&lt;span class=&quot;underline&quot;&gt;gmaps-geocode&lt;/span&gt; defined in &lt;a href=&quot;https://github.com/tvraman/emacspeak/blob/master/lisp/g-client/gmaps.el#L89&quot;&gt;g-client/gmaps.el&lt;/a&gt;. That is used as the&lt;br /&gt;
default location for which we retrieve the forecast.&lt;/li&gt;
&lt;li&gt;Parameter &lt;span class=&quot;underline&quot;&gt;ask&lt;/span&gt; if non-nil results in the user being prompted&lt;br /&gt;
for the address &amp;#x2014; that address is then geocoded using&lt;br /&gt;
the Google Maps API.&lt;/li&gt;
&lt;li&gt;The weather forecast display will leverage &lt;span class=&quot;underline&quot;&gt;org-mode&lt;/span&gt; for&lt;br /&gt;
structured navigation; however we dont want that buffer to be&lt;br /&gt;
editable in general; moreover &lt;span class=&quot;underline&quot;&gt;special-mode&lt;/span&gt; gives us nice&lt;br /&gt;
features  such as &lt;span class=&quot;underline&quot;&gt;q&lt;/span&gt; for quitting that window. So we use&lt;br /&gt;
&lt;span class=&quot;underline&quot;&gt;special-mode&lt;/span&gt; as the major mode, and &lt;span class=&quot;underline&quot;&gt;orgstruct-mode&lt;/span&gt; as a minor&lt;br /&gt;
mode to get the best of both worlds.&lt;/li&gt;
&lt;li&gt;The API call to NOAA results in a JSON data structure where&lt;br /&gt;
&lt;span class=&quot;underline&quot;&gt;result.properties.periods&lt;/span&gt; holds an array of forecast&lt;br /&gt;
objects. Using that result in &lt;i&gt;let-alist&lt;/i&gt; gives us data binding&lt;br /&gt;
for free! Notice the following:&lt;br /&gt;
&lt;ol class=&quot;org-ol&quot;&gt;&lt;li&gt;We can  use &lt;span class=&quot;underline&quot;&gt;.properties.periods&lt;/span&gt; in the &lt;span class=&quot;underline&quot;&gt;cl-loop&lt;/span&gt; as the list&lt;br /&gt;
to iterate over.&lt;/li&gt;
&lt;li&gt;Within that loop body, a second &lt;i&gt;let-list&lt;/i&gt;  enables data&lt;br /&gt;
binding over the forecast object that we are processing in the&lt;br /&gt;
loop body.&lt;/li&gt;
&lt;li&gt;Data accesses inside the loop body are again simple given the&lt;br /&gt;
data binding created by the &lt;i&gt;let-alist&lt;/i&gt;.&lt;/li&gt;
&lt;/ol&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;br /&gt;
&lt;p&gt;The code for generating the hourly forecast is similar in spirit &amp;#x2014;&lt;br /&gt;
the main take-away here is that &lt;i&gt;let-alist&lt;/i&gt; saves a lot of&lt;br /&gt;
boiler-plate code that would have been otherwise required to take&lt;br /&gt;
apart the nested list structure we got back with our data.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/1936852790942836877'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/1936852790942836877'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2017/07/data-binding-in-emacs-lisp-let-alist.html' title='Data-Binding In Emacs Lisp: let-alist When Processing JSON Data'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-2825901112317370482</id><published>2017-07-24T18:49:00.002-07:00</published><updated>2017-07-24T18:49:57.381-07:00</updated><title type='text'>Spatial Audio: ALSA Virtual Devices Using LADSPA</title><content type='html'>&lt;br /&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div id=&quot;content&quot;&gt;&lt;h1 class=&quot;title&quot;&gt;Spatial Audio:  ALSA Virtual Devices Using LADSPA&lt;/h1&gt;&lt;div id=&quot;outline-container-org6e5a6af&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;org6e5a6af&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;1&lt;/span&gt; Overview&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-1&quot;&gt;&lt;p&gt;I have long wanted to apply HRTF filters to &lt;a href=&quot;https://emacspeak.blogspot.com/2015/12/soundscapes-on-emacspeak-audio-desktop.html&quot;&gt;soundscapes&lt;/a&gt; on the&lt;br /&gt;
Emacspeak Audio Desktop to produce effects that are better&lt;br /&gt;
spatialized.  I just got this working over the weekend using LADSPA&lt;br /&gt;
Plugin &lt;i&gt;ZamHeadX2-ladspa.so&lt;/i&gt; from package &lt;a href=&quot;https://github.com/zamaudio/zam-plugins.git&quot;&gt;zam-plugins&lt;/a&gt;.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-org25e9a57&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;org25e9a57&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;2&lt;/span&gt; Getting ZAM Plugins&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-2&quot;&gt;&lt;pre class=&quot;example&quot;&gt;git clone https://github.com/zamaudio/zam-plugins.git 
&lt;/pre&gt;&lt;p&gt;And follow the instructions in the  README file.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Next,   do &lt;br /&gt;
&lt;/p&gt;&lt;pre class=&quot;example&quot;&gt;sudo make install
&lt;/pre&gt;&lt;p&gt;to install the plugins.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Finally, make sure that the install location is on your LADSPA path.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-org55c948b&quot; class=&quot;outline-3&quot;&gt;&lt;h3 id=&quot;org55c948b&quot;&gt;&lt;span class=&quot;section-number-3&quot;&gt;2.1&lt;/span&gt; Adding HRTF Virtual  Devices Via ASOUNDRC&lt;/h3&gt;&lt;div class=&quot;outline-text-3&quot; id=&quot;text-2-1&quot;&gt;&lt;p&gt;After updating Emacspeak from GitHub,&lt;br /&gt;
open file &lt;a href=&quot;https://github.com/tvraman/emacspeak//blob/2d93e0f92427e4f64064aa75e380fa66bbb87fcf/servers/linux-outloud/asoundrc&quot;&gt;servers/linux-outloud/asoundrc&lt;/a&gt; &lt;br /&gt;
and copy the section marked &lt;i&gt;HRTF&lt;/i&gt; to your personal &lt;span class=&quot;underline&quot;&gt;.asoundrc&lt;/span&gt; &amp;#x2014;&lt;br /&gt;
this defines a number of virtual devices that use the newly installed&lt;br /&gt;
LADSPA plugin.&lt;br /&gt;
&lt;b&gt;Beware&lt;/b&gt;: Back-up your &lt;span class=&quot;underline&quot;&gt;.asoundrc&lt;/span&gt; first and make sure you can restore&lt;br /&gt;
it even if you lose speech.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-orga3aa9b3&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;orga3aa9b3&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;3&lt;/span&gt; Spatialized Soundscapes&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-3&quot;&gt;&lt;p&gt;In a running Emacspeak session,  invoke  command &lt;br /&gt;
&lt;/p&gt;&lt;pre class=&quot;example&quot;&gt;soundscape-restart
&lt;/pre&gt;&lt;p&gt;with an interactive prefix arg  and specify one of the available&lt;br /&gt;
devices using standard Emacs completion.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;For use with Soundscapes, I recommend one of the devices that place&lt;br /&gt;
sound directly in front of the listener (azimuth 0) but with a non-0&lt;br /&gt;
elevation.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;The HRTF devices are named with prefix &lt;span class=&quot;underline&quot;&gt;tts&lt;/span&gt; because I  would like to&lt;br /&gt;
use these with software TTS; but for now the   result with TTS is not&lt;br /&gt;
as good as it is with Soundscapes.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Notice that command &lt;span class=&quot;underline&quot;&gt;soundscape-restart&lt;/span&gt; offers a number of virtual&lt;br /&gt;
ALSA devices based on your &lt;span class=&quot;underline&quot;&gt;.asoundrc&lt;/span&gt;; see the next section for a&lt;br /&gt;
summary. &lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;div id=&quot;outline-container-org8553b23&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;org8553b23&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;4&lt;/span&gt; Virtual ALSA Devices For Use As A Soundscape Filter&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-4&quot;&gt;&lt;p&gt;Here is a list of available LADSPA devices in my setup that can be&lt;br /&gt;
used  to add additional effects to Soundscapes:&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;ul class=&quot;org-ul&quot;&gt;&lt;li&gt;crossfeed:  Apply a BS2B filter.&lt;/li&gt;
&lt;li&gt;default:  No filters, vanilla audio.&lt;/li&gt;
&lt;li&gt;tap-reverb:  Reverb filter from package tap-plugins.&lt;/li&gt;
&lt;li&gt;reverb-crossfeed:  Reverb filter followed by BS2B.&lt;/li&gt;
&lt;li&gt;tts-a0-e15:  HRTF at (0, 15).&lt;/li&gt;
&lt;li&gt;tts-a0-e30:  HRTF at (0, 30).&lt;/li&gt;
&lt;li&gt;tts-a0-e60:  HRTF at (0, 60).&lt;/li&gt;
&lt;li&gt;tts-a0-e90:  HRTF at (0, 90).&lt;/li&gt;
&lt;li&gt;tts-a0-em15:  HRTF at (0, -15).&lt;/li&gt;
&lt;li&gt;tts-a0-em30:  HRTF at (0, -30).&lt;/li&gt;
&lt;li&gt;tts-a0-em45:  HRTF at (0, -45).&lt;/li&gt;
&lt;li&gt;tts-a135-e45:  HRTF at (135, 45).&lt;/li&gt;
&lt;li&gt;tts-a135-em45:  HRTF at (135, -45).&lt;/li&gt;
&lt;li&gt;tts-a225-e45:  HRTF at (225, 45).&lt;/li&gt;
&lt;li&gt;tts-a225-em45:  HRTF at (225, -45).&lt;/li&gt;
&lt;li&gt;tts-a45-e45:  HRTF at (45, 45).&lt;/li&gt;
&lt;li&gt;tts-a45-em45:  HRTF at (45, -45).&lt;/li&gt;
&lt;li&gt;tts-am45-e45:  HRTF at (-45, 45).&lt;/li&gt;
&lt;li&gt;tts-am45-em45:  HRTF at (-45, -45).&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-org2a41e7f&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;org2a41e7f&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;5&lt;/span&gt; Other Uses Of HRTF Devices&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-5&quot;&gt;&lt;p&gt;You can experiment with these devices using aplay e.g.:&lt;br /&gt;
&lt;/p&gt;&lt;pre class=&quot;example&quot;&gt;aplay -Dtts_a0_e0 filename.wav
&lt;/pre&gt;&lt;br /&gt;
&lt;p&gt;You can also apply the HRTF Ladspa plugin from within &lt;i&gt;MPlayer&lt;/i&gt; when&lt;br /&gt;
using emacspeak.&lt;br /&gt;
To try this, use &lt;span class=&quot;underline&quot;&gt;C-e ; f&lt;/span&gt; and pick the Zam effect when prompted.&lt;br /&gt;
Invoke that command with an interactive prefix arg &amp;#x2014; &lt;span class=&quot;underline&quot;&gt;C-u C-e ; f&lt;/span&gt;&lt;br /&gt;
&amp;#x2014; to edit the params passed to the Zam filter.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;HRTF filters  when  playing media are mostly useful to position a&lt;br /&gt;
radio station in 3d space when playing  more than one station&lt;br /&gt;
simultaneously.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/2825901112317370482'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/2825901112317370482'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2017/07/spatial-audio-alsa-virtual-devices.html' title='Spatial Audio: ALSA Virtual Devices Using LADSPA'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-6900192707323048897</id><published>2017-04-30T08:12:00.002-07:00</published><updated>2017-04-30T08:12:17.073-07:00</updated><title type='text'>Emacspeak 46.0 (HelpfulDog) Unleashed</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div id=&quot;content&quot;&gt;&lt;h1 class=&quot;title&quot;&gt;Emacspeak 46.0—HelpfulDog—Unleashed!&lt;/h1&gt;&lt;p&gt;&lt;b&gt;For Immediate Release:&lt;/b&gt;&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;San Jose, Calif., (May  1, 2017)&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Emacspeak 46.0 (HelpfulDog): Redefining Accessibility In The Age Of  Smart Assistants&lt;br /&gt;
&amp;#x2013;Zero cost of Ownership  makes priceless software Universally affordable!&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Emacspeak Inc (NASDOG: ESPK) &amp;#x2014; &lt;a href=&quot;http://github.com/tvraman/emacspeak&quot;&gt;http://github.com/tvraman/emacspeak&lt;/a&gt; &amp;#x2014; announces the&lt;br /&gt;
immediate world-wide availability of &lt;a href=&quot;https://github.com/tvraman/emacspeak/releases/download/44.0/emacspeak-45.0.tar.bz2&quot;&gt;Emacspeak 46.0&lt;/a&gt; (HelpfulDog) &amp;#x2014; a&lt;br /&gt;
powerful audio desktop for leveraging today&#39;s evolving data, social&lt;br /&gt;
and service-oriented Internet cloud.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-org04068a8&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;org04068a8&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;1&lt;/span&gt; Investors Note:&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-1&quot;&gt;&lt;p&gt;With several prominent tweeters expanding coverage of&lt;br /&gt;
&lt;span class=&quot;underline&quot;&gt;#emacspeak&lt;/span&gt;, NASDOG: ESPK has now been consistently trading over&lt;br /&gt;
the social net at levels close to that once attained by DogCom&lt;br /&gt;
high-fliers—and as of May 2017 is trading at levels close to&lt;br /&gt;
that achieved by once better known stocks in the tech sector.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-org788f812&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;org788f812&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;2&lt;/span&gt; What Is It?&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-2&quot;&gt;&lt;p&gt;Emacspeak is a fully functional audio desktop that provides complete&lt;br /&gt;
eyes-free access to all major 32 and 64 bit operating environments. By&lt;br /&gt;
seamlessly blending live access to all aspects of the Internet such as&lt;br /&gt;
Web-surfing, blogging, social computing and electronic messaging into&lt;br /&gt;
the audio desktop, Emacspeak enables speech access to local and remote&lt;br /&gt;
information with a consistent and well-integrated user interface. A&lt;br /&gt;
rich suite of task-oriented tools provides efficient speech-enabled&lt;br /&gt;
access to the evolving service-oriented social Internet cloud.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-orgc43ee98&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;orgc43ee98&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;3&lt;/span&gt; Major Enhancements:&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-3&quot;&gt;&lt;p&gt;This version &lt;b&gt;requires&lt;/b&gt; emacs-25.1 or later. &lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;ol class=&quot;org-ol&quot;&gt;&lt;li&gt;Audio-formatted Mathematics using NodeJS.  ⟋🕪&lt;br /&gt;
&lt;ol class=&quot;org-ol&quot;&gt;&lt;li&gt;DBus integration for handling DBus events. 🚌&lt;/li&gt;
&lt;li&gt;Outloud is Easier To Install On 64-Bit Systems. ʕ&lt;/li&gt;
&lt;li&gt;Managing Shell Buffers across multiple projects.   📽&lt;/li&gt;
&lt;li&gt;EWW loads  EBook  settings when opening EPub files. 🕮&lt;/li&gt;
&lt;li&gt;Bash Utils  for power users.    🐚&lt;/li&gt;
&lt;li&gt;Speech-Enabled Elisp-Refs. 🤞&lt;/li&gt;
&lt;li&gt;Updated C/C++ Mode Support. ䷢&lt;/li&gt;
&lt;li&gt;Updated EShell Support. ︹&lt;/li&gt;
&lt;li&gt;Speach-Enabled Clojure.  𝍏&lt;/li&gt;
&lt;li&gt;Speech-Enabled Geiser For Scheme Interaction. ♨&lt;/li&gt;
&lt;li&gt;Speech-Enabled Cider. 🍎&lt;/li&gt;
&lt;li&gt;Speech-Enable Racket IDE. ƛ&lt;/li&gt;
&lt;li&gt;Parameterized auditory icons using  SoX-Gen. 🔊&lt;/li&gt;
&lt;li&gt;IHeart Radio wizard. 📻&lt;/li&gt;
&lt;li&gt;Speech-Enabled Projectile. 🢫&lt;/li&gt;
&lt;li&gt;Spoken notifications are cached in a special buffer. ⏰&lt;/li&gt;
&lt;li&gt;Flycheck And Interactive Correction. 𐄂&lt;br /&gt;
&lt;br /&gt;
&lt;ul class=&quot;org-ul&quot;&gt;&lt;li&gt;And a lot more than wil fit this margin. … 🗞&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div id=&quot;outline-container-org74928bf&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;org74928bf&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;4&lt;/span&gt; Establishing Liberty, Equality And Freedom:&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-4&quot;&gt;&lt;p&gt;  Never a toy system, Emacspeak is voluntarily bundled with all&lt;br /&gt;
major Linux distributions. Though designed to be modular,&lt;br /&gt;
distributors have freely chosen to bundle the fully integrated&lt;br /&gt;
system without any undue pressure—a documented success for&lt;br /&gt;
the integrated innovation embodied by Emacspeak. As the system&lt;br /&gt;
evolves, both upgrades and downgrades continue to be available at&lt;br /&gt;
the same zero-cost to all users. The integrity of the Emacspeak&lt;br /&gt;
codebase is ensured by the reliable and secure Linux platform&lt;br /&gt;
used to develop and distribute the software.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Extensive studies have shown that thanks to these features, users&lt;br /&gt;
consider Emacspeak to be absolutely priceless. Thanks to this&lt;br /&gt;
wide-spread user demand, the present version remains   priceless&lt;br /&gt;
as ever—it is being made available at the same zero-cost as&lt;br /&gt;
previous releases.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;At the same time, Emacspeak continues to innovate in the area of&lt;br /&gt;
eyes-free Assistance and social interaction and carries forward the&lt;br /&gt;
well-established Open Source tradition of introducing user interface&lt;br /&gt;
features that eventually show up in luser environments.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;On this theme, when once challenged by a proponent of a crash-prone&lt;br /&gt;
but well-marketed mousetrap with the assertion &quot;Emacs is a system from&lt;br /&gt;
the 70&#39;s&quot;, the creator of Emacspeak evinced surprise at the unusual&lt;br /&gt;
candor manifest in the assertion that it would take popular&lt;br /&gt;
idiot-proven interfaces until the year 2070 to catch up to where the&lt;br /&gt;
Emacspeak audio desktop is today. Industry experts welcomed this&lt;br /&gt;
refreshing breath of Courage Certainty and Clarity (CCC) at a time&lt;br /&gt;
when users are reeling from the Fear Uncertainty and Doubt (FUD)&lt;br /&gt;
unleashed by complex software systems backed by even more convoluted&lt;br /&gt;
press releases.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-orge5e01ec&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;orge5e01ec&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;5&lt;/span&gt; Independent Test Results:&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-5&quot;&gt;&lt;p&gt;Independent test results have proven that unlike some modern (and&lt;br /&gt;
not so modern) software, Emacspeak can be safely uninstalled without&lt;br /&gt;
adversely affecting the continued performance of the computer. These&lt;br /&gt;
same tests also revealed that once uninstalled, the user stopped&lt;br /&gt;
functioning altogether. Speaking with Aster Labrador, the creator of&lt;br /&gt;
Emacspeak once pointed out that these results re-emphasize the&lt;br /&gt;
user-centric design of Emacspeak; &quot;It is the user &amp;#x2013;and not the&lt;br /&gt;
computer&amp;#x2013; that stops functioning when Emacspeak is uninstalled!&quot;.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-org067df87&quot; class=&quot;outline-3&quot;&gt;&lt;h3 id=&quot;org067df87&quot;&gt;&lt;span class=&quot;section-number-3&quot;&gt;5.1&lt;/span&gt; Note from Aster,Bubbles and Tilden:&lt;/h3&gt;&lt;div class=&quot;outline-text-3&quot; id=&quot;text-5-1&quot;&gt;&lt;p&gt;UnDoctored Videos Inc. is looking for volunteers to star in a&lt;br /&gt;
video demonstrating such complete user failure.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-org44d04f8&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;org44d04f8&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;6&lt;/span&gt; Obtaining Emacspeak:&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-6&quot;&gt;&lt;p&gt;Emacspeak can be downloaded from GitHub &amp;#x2013;see&lt;br /&gt;
&lt;a href=&quot;https://github.com/tvraman/emacspeak&quot;&gt;https://github.com/tvraman/emacspeak&lt;/a&gt; you can visit Emacspeak on the&lt;br /&gt;
WWW at &lt;a href=&quot;http://emacspeak.sf.net&quot;&gt;http://emacspeak.sf.net&lt;/a&gt;. You can subscribe to the emacspeak&lt;br /&gt;
mailing list — emacspeak@cs.vassar.edu — by sending mail to the&lt;br /&gt;
list request address emacspeak-request@cs.vassar.edu. The &lt;a href=&quot;http://emacspeak.blogspot.com&quot;&gt;Emacspeak&lt;br /&gt;
Blog&lt;/a&gt; is a good source for news about recent enhancements and how to&lt;br /&gt;
use them.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;The latest development snapshot of Emacspeak is always available via&lt;br /&gt;
Git  from GitHub  at &lt;br /&gt;
&lt;a href=&quot;https://github.com/tvraman/emacspeak&quot;&gt;Emacspeak GitHub &lt;/a&gt;.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-org40c328f&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;org40c328f&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;7&lt;/span&gt; History:&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-7&quot;&gt;&lt;ul class=&quot;org-ul&quot;&gt;&lt;li&gt;Emacspeak 46.0 (HelpfulDog) heralds the  coming of Smart Assistants.&lt;/li&gt;
&lt;li&gt;Emacspeak 45.0 (IdealDog) is named in recognition of Emacs&#39;&lt;br /&gt;
excellent integration with various programming language&lt;br /&gt;
environments &amp;#x2014; thanks to this, Emacspeak is the IDE of choice&lt;br /&gt;
for eyes-free software engineering.&lt;/li&gt;
&lt;li&gt;Emacspeak 44.0 continues the steady pace of innovation on the&lt;br /&gt;
audio desktop.&lt;/li&gt;
&lt;li&gt;Emacspeak  43.0 brings even more end-user efficiency by leveraging the&lt;br /&gt;
ability to spatially place multiple audio streams to provide timely&lt;br /&gt;
auditory feedback.&lt;/li&gt;
&lt;li&gt;Emacspeak 42.0 while moving to GitHub from Google Code continues to&lt;br /&gt;
innovate in the areas of auditory user interfaces and efficient,&lt;br /&gt;
light-weight Internet access.&lt;/li&gt;
&lt;li&gt;Emacspeak 41.0 continues to improve &lt;br /&gt;
on  the desire to provide not just equal, but superior access —&lt;br /&gt;
technology when correctly implemented can significantly enhance the&lt;br /&gt;
human ability.&lt;/li&gt;
&lt;li&gt;Emacspeak 40.0 goes back to Web basics by enabling&lt;br /&gt;
&lt;a href=&quot;http://emacspeak.blogspot.com/2013/11/reading-web-content-efficiently.html&quot;&gt;efficient access&lt;/a&gt; to large amounts of readable Web content.&lt;/li&gt;
&lt;li&gt;Emacspeak 39.0 continues the Emacspeak tradition of increasing the breadth of&lt;br /&gt;
user tasks that are covered without introducing unnecessary&lt;br /&gt;
bloatware.&lt;/li&gt;
&lt;li&gt;Emacspeak 38.0 is the latest in a series of award-winning&lt;br /&gt;
releases from Emacspeak Inc.&lt;/li&gt;
&lt;li&gt;Emacspeak 37.0 continues the tradition of&lt;br /&gt;
delivering robust software as reflected by its code-name.&lt;/li&gt;
&lt;li&gt;Emacspeak 36.0 enhances the audio desktop with many new tools including full&lt;br /&gt;
EPub support — hence the name EPubDog.&lt;/li&gt;
&lt;li&gt;Emacspeak 35.0 is all about&lt;br /&gt;
teaching a new dog old tricks — and is aptly code-named HeadDog in&lt;br /&gt;
on  of our new Press/Analyst contact. emacspeak-34.0 (AKA Bubbles)&lt;br /&gt;
established a new beach-head with respect to rapid task completion in&lt;br /&gt;
an eyes-free environment.&lt;/li&gt;
&lt;li&gt;Emacspeak-33.0 AKA StarDog brings&lt;br /&gt;
unparalleled cloud access to the audio desktop.&lt;/li&gt;
&lt;li&gt;Emacspeak 32.0 AKA&lt;br /&gt;
LuckyDog continues to innovate via open technologies for better&lt;br /&gt;
access.&lt;/li&gt;
&lt;li&gt;Emacspeak 31.0 AKA TweetDog — adds tweeting to the Emacspeak&lt;br /&gt;
desktop.&lt;/li&gt;
&lt;li&gt;Emacspeak 30.0 AKA SocialDog brings the Social Web to the&lt;br /&gt;
audio desktop—you cant but be social if you speak!&lt;/li&gt;
&lt;li&gt;Emacspeak 29.0—AKAAbleDog—is a testament to the resilliance and innovation&lt;br /&gt;
embodied by Open Source software—it would not exist without the&lt;br /&gt;
thriving Emacs community that continues to ensure that Emacs remains&lt;br /&gt;
one of the premier user environments despite perhaps also being one of&lt;br /&gt;
the oldest.&lt;/li&gt;
&lt;li&gt;Emacspeak 28.0—AKA PuppyDog—exemplifies the rapid pace of&lt;br /&gt;
development evinced by Open Source software.&lt;/li&gt;
&lt;li&gt;Emacspeak 27.0—AKA&lt;br /&gt;
FastDog—is the latest in a sequence of upgrades that make previous&lt;br /&gt;
releases obsolete and downgrades unnecessary.&lt;/li&gt;
&lt;li&gt;Emacspeak 26—AKA&lt;br /&gt;
LeadDog—continues the tradition of introducing innovative access&lt;br /&gt;
solutions that are unfettered by the constraints inherent in&lt;br /&gt;
traditional adaptive technologies.&lt;/li&gt;
&lt;li&gt;Emacspeak 25 —AKA ActiveDog&lt;br /&gt;
—re-activates open, unfettered access to online&lt;br /&gt;
information.&lt;/li&gt;
&lt;li&gt;Emacspeak-Alive —AKA LiveDog —enlivens open, unfettered&lt;br /&gt;
information access with a series of live updates that once again&lt;br /&gt;
demonstrate the power and agility of open source software&lt;br /&gt;
development.&lt;/li&gt;
&lt;li&gt;Emacspeak 23.0 &amp;#x2014; AKA Retriever—went the extra mile in&lt;br /&gt;
fetching full access.&lt;/li&gt;
&lt;li&gt;Emacspeak 22.0 —AKA GuideDog —helps users&lt;br /&gt;
navigate the Web more effectively than ever before.&lt;/li&gt;
&lt;li&gt;Emacspeak 21.0&lt;br /&gt;
—AKA PlayDog —continued the &lt;br /&gt;
Emacspeak tradition of relying on enhanced&lt;br /&gt;
productivity to liberate users.&lt;/li&gt;
&lt;li&gt;Emacspeak-20.0 —AKA LeapDog —continues&lt;br /&gt;
the long established GNU/Emacs tradition of integrated innovation to&lt;br /&gt;
create a pleasurable computing environment for eyes-free&lt;br /&gt;
interaction.&lt;/li&gt;
&lt;li&gt;emacspeak-19.0 &amp;#x2013;AKA WorkDog&amp;#x2013; is designed to enhance&lt;br /&gt;
user productivity at work and leisure.&lt;/li&gt;
&lt;li&gt;Emacspeak-18.0 &amp;#x2013;code named&lt;br /&gt;
GoodDog&amp;#x2013; continued the Emacspeak tradition of enhancing user&lt;br /&gt;
productivity and thereby reducing total cost of&lt;br /&gt;
ownership.&lt;/li&gt;
&lt;li&gt;Emacspeak-17.0 &amp;#x2013;code named HappyDog&amp;#x2013; enhances user&lt;br /&gt;
productivity by exploiting today&#39;s evolving WWW&lt;br /&gt;
standards.&lt;/li&gt;
&lt;li&gt;Emacspeak-16.0 &amp;#x2013;code named CleverDog&amp;#x2013; the follow-up to&lt;br /&gt;
SmartDog&amp;#x2013; continued the tradition of working better, faster,&lt;br /&gt;
smarter.&lt;/li&gt;
&lt;li&gt;Emacspeak-15.0 &amp;#x2013;code named SmartDog&amp;#x2013;followed up on TopDog&lt;br /&gt;
as the next in a continuing  series of award-winning audio desktop&lt;br /&gt;
releases from  Emacspeak Inc.&lt;/li&gt;
&lt;li&gt;Emacspeak-14.0 &amp;#x2013;code named TopDog&amp;#x2013;was&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;the first release of this millennium. &lt;br /&gt;
&lt;/p&gt;&lt;ul class=&quot;org-ul&quot;&gt;&lt;li&gt;Emacspeak-13.0 &amp;#x2013;codenamed&lt;br /&gt;
YellowLab&amp;#x2013; was the closing release of the&lt;br /&gt;
20th. century.&lt;/li&gt;
&lt;li&gt;Emacspeak-12.0 &amp;#x2013;code named GoldenDog&amp;#x2013; began&lt;br /&gt;
leveraging the evolving semantic WWW to provide task-oriented speech&lt;br /&gt;
access to Webformation.&lt;/li&gt;
&lt;li&gt;Emacspeak-11.0 &amp;#x2013;code named Aster&amp;#x2013; went the&lt;br /&gt;
final step in making Linux a zero-cost Internet access solution for&lt;br /&gt;
blind and visually impaired users.&lt;/li&gt;
&lt;li&gt;Emacspeak-10.0 &amp;#x2013;(AKA&lt;br /&gt;
Emacspeak-2000) code named WonderDog&amp;#x2013; continued the tradition of&lt;br /&gt;
award-winning software releases designed to make eyes-free computing a&lt;br /&gt;
productive and pleasurable experience.&lt;/li&gt;
&lt;li&gt;Emacspeak-9.0 &amp;#x2013;(AKA&lt;br /&gt;
Emacspeak 99) code named BlackLab&amp;#x2013; continued to innovate in the areas&lt;br /&gt;
of speech interaction and interactive accessibility.&lt;/li&gt;
&lt;li&gt;Emacspeak-8.0 &amp;#x2013;(AKA Emacspeak-98++) code named BlackDog&amp;#x2013; was a major upgrade to&lt;br /&gt;
the speech output extension to Emacs.&lt;/li&gt;
&lt;li&gt;Emacspeak-95 (code named Illinois) was released as OpenSource on&lt;br /&gt;
the Internet in May 1995 as the first complete speech interface&lt;br /&gt;
to UNIX workstations. The subsequent release, Emacspeak-96 (code&lt;br /&gt;
named Egypt) made available in May 1996 provided significant&lt;br /&gt;
enhancements to the interface. Emacspeak-97 (Tennessee) went&lt;br /&gt;
further in providing a true audio desktop. Emacspeak-98&lt;br /&gt;
integrated Internetworking into all aspects of the audio desktop&lt;br /&gt;
to provide the first fully interactive speech-enabled WebTop.&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-orgb7e4e38&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;orgb7e4e38&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;8&lt;/span&gt; About Emacspeak:&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-8&quot;&gt;&lt;p&gt;Originally based at Cornell (NY) —&lt;br /&gt;
&lt;a href=&quot;http://www.cs.cornell.edu/home/raman&quot;&gt;http://www.cs.cornell.edu/home/raman&lt;/a&gt; —home to Auditory User&lt;br /&gt;
Interfaces (AUI) on the WWW,  Emacspeak is now maintained on GitHub&lt;br /&gt;
—&lt;a href=&quot;https://github.com/tvraman/emacspeak&quot;&gt;https://github.com/tvraman/emacspeak&lt;/a&gt;. The system is mirrored&lt;br /&gt;
world-wide by an international network of software archives and&lt;br /&gt;
bundled voluntarily with all major Linux distributions. On Monday,&lt;br /&gt;
April 12, 1999, Emacspeak became part of the &lt;a href=&quot;http://tvraman.github.io/emacspeak/blog/smithsonian-study.html&quot;&gt;Smithsonian&#39;s Permanent&lt;br /&gt;
Research Collection&lt;/a&gt; on Information Technology at the Smithsonian&#39;s&lt;br /&gt;
National Museum of American History.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;The Emacspeak mailing list is archived at Vassar &amp;#x2013;the home of the&lt;br /&gt;
Emacspeak mailing list&amp;#x2013; thanks to Greg Priest-Dorman, and provides a&lt;br /&gt;
valuable knowledge base for new users.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-org3c51d59&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;org3c51d59&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;9&lt;/span&gt; Press/Analyst Contact: Tilden Labrador&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-9&quot;&gt;&lt;p&gt;Going forward, Tilden acknowledges his exclusive monopoly on&lt;br /&gt;
setting the direction of the Emacspeak Audio Desktop, and&lt;br /&gt;
promises to exercise this freedom to innovate and her resulting&lt;br /&gt;
power responsibly (as before) in the interest of all dogs.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;*About This Release:&lt;br /&gt;
&lt;/p&gt;&lt;hr /&gt;&lt;br /&gt;
&lt;p&gt;Windows-Free (WF) is a favorite battle-cry of The League Against&lt;br /&gt;
Forced Fenestration (LAFF).  &amp;#x2013;see&lt;br /&gt;
&lt;a href=&quot;http://www.usdoj.gov/atr/cases/f3800/msjudgex.htm&quot;&gt;http://www.usdoj.gov/atr/cases/f3800/msjudgex.htm&lt;/a&gt; for details on&lt;br /&gt;
the ill-effects of Forced Fenestration.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;CopyWrite )C( Aster, Hubbell and Tilden Labrador. All Writes Reserved.&lt;br /&gt;
HeadDog (DM), LiveDog (DM), GoldenDog (DM), BlackDog (DM) etc., are Registered&lt;br /&gt;
Dogmarks of Aster,  Hubbell  and Tilden Labrador.  All other dogs belong to&lt;br /&gt;
their respective owners.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/6900192707323048897'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/6900192707323048897'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2017/04/emacspeak-460-helpfuldog-unleashed.html' title='Emacspeak 46.0 (HelpfulDog) Unleashed'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-7931447715247066201</id><published>2017-04-22T20:19:00.004-07:00</published><updated>2017-04-22T20:19:38.429-07:00</updated><title type='text'>Mail On The emacspeak Audio Desktop </title><content type='html'>&lt;div id=&quot;content&quot;&gt;&lt;h1 class=&quot;title&quot;&gt;Email On The Emacspeak Audio Desktop&lt;/h1&gt;&lt;div id=&quot;outline-container-orgc57f2b7&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;orgc57f2b7&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;1&lt;/span&gt; Overview&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-1&quot;&gt;&lt;p&gt;This question comes up every few months on the emacspeak mailing&lt;br /&gt;
list. In general, see&lt;br /&gt;
&lt;a href=&quot;https://tvraman.github.io/emacspeak/applications.html&quot;&gt;Emacspeak Tools&lt;/a&gt; to quickly discover available speech-enabled&lt;br /&gt;
applications. This article outlines some of the available email setups&lt;br /&gt;
given the wide degree of variance in this space.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-org472e202&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;org472e202&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;2&lt;/span&gt; Background&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-2&quot;&gt;&lt;p&gt;How one puts together an email environment is a function of the&lt;br /&gt;
following:&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;ol class=&quot;org-ol&quot;&gt;&lt;li&gt;How email is retrieved.&lt;/li&gt;
&lt;li&gt;How email is stored (if storing locally).&lt;/li&gt;
&lt;li&gt;How email is sent.&lt;/li&gt;
&lt;/ol&gt;&lt;br /&gt;
&lt;p&gt;Here is an overview of what is available as viewed from the world of&lt;br /&gt;
Linux in general and Emacs in particular: &lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div id=&quot;outline-container-org6bfd003&quot; class=&quot;outline-3&quot;&gt;&lt;h3 id=&quot;org6bfd003&quot;&gt;&lt;span class=&quot;section-number-3&quot;&gt;2.1&lt;/span&gt; Email Retrieval&lt;/h3&gt;&lt;div class=&quot;outline-text-3&quot; id=&quot;text-2-1&quot;&gt;&lt;p&gt;Email can be retrieved in a number of ways:&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;ul class=&quot;org-ul&quot;&gt;&lt;li&gt;IMap via Emacs This is implemented well in GNUS, and poorly in&lt;br /&gt;
Emacs/VM. Note that Emacs is single-threaded, and fetching large&lt;br /&gt;
volumes of email via IMap is painful.&lt;/li&gt;
&lt;li&gt;Batch Retrieval: IMap Tools like &lt;span class=&quot;underline&quot;&gt;fetchmail&lt;/span&gt;, &lt;span class=&quot;underline&quot;&gt;offlineimap&lt;/span&gt; and friends that live&lt;br /&gt;
outside of Emacs can be used to batch-retrieve email in the&lt;br /&gt;
background. The retrieved mail gets delivered &lt;i&gt;locally&lt;/i&gt; as in the past.&lt;/li&gt;
&lt;li&gt;Mail Filtering: UNIX &lt;span class=&quot;underline&quot;&gt;procmail&lt;/span&gt; enables filtering of locally&lt;br /&gt;
delivered email into separate folders for automatically organizing&lt;br /&gt;
incoming email.&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div id=&quot;outline-container-orgc17c2ee&quot; class=&quot;outline-3&quot;&gt;&lt;h3 id=&quot;orgc17c2ee&quot;&gt;&lt;span class=&quot;section-number-3&quot;&gt;2.2&lt;/span&gt; Sending Email&lt;/h3&gt;&lt;div class=&quot;outline-text-3&quot; id=&quot;text-2-2&quot;&gt;&lt;p&gt;Sending email involves:&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;ol class=&quot;org-ol&quot;&gt;&lt;li&gt;Composing email &amp;#x2014; typically invoked  via key-sequence  &lt;span class=&quot;underline&quot;&gt;C-x m&lt;/span&gt;&lt;br /&gt;
(command: &lt;i&gt;compose-mail&lt;/i&gt;). Emacs email packages implement&lt;br /&gt;
specific versions of this command, e.g. &lt;i&gt;vm-mail&lt;/i&gt; from package&lt;br /&gt;
&lt;span class=&quot;underline&quot;&gt;emacs/vm&lt;/span&gt;, &lt;i&gt;message-mail&lt;/i&gt; from the &lt;span class=&quot;underline&quot;&gt;message&lt;/span&gt; package etc.&lt;/li&gt;
&lt;li&gt;Sending email: This is specific to the email provider being used,&lt;br /&gt;
e.g., &lt;i&gt;GMail&lt;/i&gt;. In the past, UNIX machines could talk &lt;i&gt;SMTP&lt;/i&gt; to&lt;br /&gt;
the Mail Gateway, but this has mostly disappeared over time. For&lt;br /&gt;
an example of how to configure Emacs to send email via GMail&lt;br /&gt;
using SMTP , see file &lt;a href=&quot;https://github.com/tvraman/emacspeak/blob/master/tvr/gm-smtp.el#L1&quot;&gt;tvr/gm-smtp.el&lt;/a&gt; in the emacspeak repository.&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div id=&quot;outline-container-orgc45b6b3&quot; class=&quot;outline-3&quot;&gt;&lt;h3 id=&quot;orgc45b6b3&quot;&gt;&lt;span class=&quot;section-number-3&quot;&gt;2.3&lt;/span&gt; Local Storage Format&lt;/h3&gt;&lt;div class=&quot;outline-text-3&quot; id=&quot;text-2-3&quot;&gt;&lt;ul class=&quot;org-ul&quot;&gt;&lt;li&gt;UNIX Mail:       An email folder is a file of messages. This&lt;br /&gt;
format is used by clients like Emacs/VM, UNIX Mail etc.&lt;/li&gt;
&lt;li&gt;Maildir:  A mail folder  is a directory, with&lt;br /&gt;
individual email messages living in files of their&lt;br /&gt;
own. Sample clients include MH-E (UNIX MH), MU4E.&lt;/li&gt;
&lt;li&gt;RMail     This is Emacs&#39; original email format.&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div id=&quot;outline-container-org49386ea&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;org49386ea&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;3&lt;/span&gt; Putting It All Together&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-3&quot;&gt;&lt;p&gt;The next sections show my present email setup put together using the&lt;br /&gt;
building blocks described above. &lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;ol class=&quot;org-ol&quot;&gt;&lt;li&gt;I use Linux on all my machines, and Android on my phone.&lt;/li&gt;
&lt;li&gt;I mostly limit email usage on my phone  to get a quick overview of email that might require immediate attention &amp;#x2014; toward this end, I have a &lt;i&gt;to-mobile&lt;/i&gt; GMail label that collects urgent messages.&lt;/li&gt;
&lt;li&gt;Linux is where I handle email in volume.&lt;/li&gt;
&lt;li&gt;I use my &lt;i&gt;Inbox&lt;/i&gt; as&lt;/li&gt;
&lt;/ol&gt;&lt;p&gt;my ToDo list &amp;#x2014; which means that I leave little or no email in my&lt;br /&gt;
&lt;i&gt;Inbox&lt;/i&gt; unless I&#39;m on vacation and disconnected from email.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-orge0a9247&quot; class=&quot;outline-3&quot;&gt;&lt;h3 id=&quot;orge0a9247&quot;&gt;&lt;span class=&quot;section-number-3&quot;&gt;3.1&lt;/span&gt; Desktop: Batch Retrieval  And Emacs/VM&lt;/h3&gt;&lt;div class=&quot;outline-text-3&quot; id=&quot;text-3-1&quot;&gt;&lt;p&gt;This is the email setup on my workstation. See next section for the&lt;br /&gt;
email setup while mobile.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;ol class=&quot;org-ol&quot;&gt;&lt;li&gt;I batch-retrieve   email using &lt;span class=&quot;underline&quot;&gt;fetchmail&lt;/span&gt;.&lt;/li&gt;
&lt;li&gt;This email gets filtered through &lt;span class=&quot;underline&quot;&gt;procmail&lt;/span&gt; and auto-filed into&lt;br /&gt;
several folders based on a set of procmail rules. Typical rules&lt;br /&gt;
include separating out various email lists into their  respective folders.&lt;/li&gt;
&lt;li&gt;Note that this does not preclude using &lt;span class=&quot;underline&quot;&gt;IMap&lt;/span&gt; via GNUS   to  read&lt;br /&gt;
email while online.&lt;/li&gt;
&lt;li&gt;Email that is not filtered into separate folders  e.g. email that&lt;br /&gt;
is sent directly to me, email regarding projects that need&lt;br /&gt;
immediate attention etc., land up in folder &lt;span class=&quot;underline&quot;&gt;~/mbox&lt;/span&gt;.&lt;/li&gt;
&lt;li&gt;So when I launch &lt;span class=&quot;underline&quot;&gt;emacs/vm&lt;/span&gt; on my desktop, the above is all I&lt;br /&gt;
need to deal with at any given moment.&lt;/li&gt;
&lt;li&gt;I typically read Auto-filed mailing lists  using &lt;span class=&quot;underline&quot;&gt;emacs/vm&lt;/span&gt; about once a day or&lt;br /&gt;
less &amp;#x2014; I use package &lt;span class=&quot;underline&quot;&gt;mspools&lt;/span&gt;  to get a quick overview of the&lt;br /&gt;
state of those mail folders.&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-orgd7ebcf5&quot; class=&quot;outline-3&quot;&gt;&lt;h3 id=&quot;orgd7ebcf5&quot;&gt;&lt;span class=&quot;section-number-3&quot;&gt;3.2&lt;/span&gt; Mobile AccessOn Laptop: GNUS And IMap&lt;/h3&gt;&lt;div class=&quot;outline-text-3&quot; id=&quot;text-3-2&quot;&gt;&lt;p&gt;See  &lt;a href=&quot;https://github.com/tvraman/emacspeak/blob/master/tvr/gnus-prepare.el#L1&quot;&gt;gnus-prepare.el&lt;/a&gt; for my &lt;span class=&quot;underline&quot;&gt;gnus&lt;/span&gt; configuration for accessing GMail&lt;br /&gt;
via &lt;span class=&quot;underline&quot;&gt;imap&lt;/span&gt;. That configuration is setup to access multiple GMail accounts.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;ol class=&quot;org-ol&quot;&gt;&lt;li&gt;I see each GMail label as a separate group in &lt;span class=&quot;underline&quot;&gt;GNUS&lt;/span&gt;.&lt;/li&gt;
&lt;li&gt;I only sync  high-priority labels &amp;#x2014; this works well even&lt;br /&gt;
over slow WIFI connections while on the road. As an example, the&lt;br /&gt;
afore-mentioned &lt;i&gt;to-mobile&lt;/i&gt; GMail label is a high-priority group.&lt;/li&gt;
&lt;li&gt;Module &lt;span class=&quot;underline&quot;&gt;gm-nnir&lt;/span&gt; defines a  &lt;span class=&quot;underline&quot;&gt;GNUS/GMail&lt;/span&gt; extension that enables&lt;br /&gt;
one to search GMail using GMail&#39;s search operators &amp;#x2014; that is my&lt;br /&gt;
prefered means of quickly finding email messages using&lt;br /&gt;
search. This is very fast since the search happens server-side,&lt;br /&gt;
and  only email headers are retrieved when displaying the search&lt;br /&gt;
hits.&lt;/li&gt;
&lt;li&gt;Note that this solution is not laptop/mobile specific &amp;#x2014; I  use&lt;br /&gt;
this setup for searching GMail   from my desktop as well.&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-orgea285cc&quot; class=&quot;outline-3&quot;&gt;&lt;h3 id=&quot;orgea285cc&quot;&gt;&lt;span class=&quot;section-number-3&quot;&gt;3.3&lt;/span&gt; Composing And Sending EMail&lt;/h3&gt;&lt;div class=&quot;outline-text-3&quot; id=&quot;text-3-3&quot;&gt;&lt;ol class=&quot;org-ol&quot;&gt;&lt;li&gt;I use &lt;i&gt;compose-mail&lt;/i&gt; to compose email.&lt;/li&gt;
&lt;li&gt;I optionally activate &lt;span class=&quot;underline&quot;&gt;orgtbl-mode&lt;/span&gt; and/or  &lt;span class=&quot;underline&quot;&gt;orgstruct-mode&lt;/span&gt; if&lt;br /&gt;
editing structured content within the email body.&lt;/li&gt;
&lt;li&gt;I send email out using the setup in  &lt;a href=&quot;https://github.com/tvraman/emacspeak/blob/master/tvr/gm-smtp.el#L1&quot;&gt;gm-smtp.el&lt;/a&gt;.&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-org9b97991&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;org9b97991&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;4&lt;/span&gt; Conclusion&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-4&quot;&gt;&lt;ol class=&quot;org-ol&quot;&gt;&lt;li&gt;Email in Linux/Emacs  is  composed of a set of&lt;br /&gt;
independent building blocks &amp;#x2014; this gives maximal flexibility.&lt;/li&gt;
&lt;li&gt;That flexibility allows one to put together different email&lt;br /&gt;
workflows depending on the connectivity environment in use.&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/7931447715247066201'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/7931447715247066201'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2017/04/mail-on-emacspeak-audio-desktop.html' title='Mail On The emacspeak Audio Desktop '/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-3929777056515885596</id><published>2017-03-01T09:24:00.001-08:00</published><updated>2017-03-01T09:24:56.402-08:00</updated><title type='text'>Emacs: Check Interactive Call For Emacspeak</title><content type='html'>&lt;div id=&quot;content&quot;&gt;&lt;h1 class=&quot;title&quot;&gt;Emacs: Check Interactive Call For Emacspeak&lt;/h1&gt;&lt;div id=&quot;outline-container-org56178b1&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;org56178b1&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;1&lt;/span&gt; Background&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-1&quot;&gt;&lt;p&gt;Emacspeak uses advice as the means to speech-enable Emacs.&lt;br /&gt;
Emacspeak&#39;s &lt;b&gt;advice&lt;/b&gt; forms  need to check if the function being&lt;br /&gt;
speech-enabled is being called interactively &amp;#x2014; otherwise one would&lt;br /&gt;
get a lot of chatter as these functions get called from within elisp&lt;br /&gt;
programs, e.g. functions like &lt;span class=&quot;underline&quot;&gt;forward-sexp&lt;/span&gt; or &lt;span class=&quot;underline&quot;&gt;kill-sexp&lt;/span&gt;, that play&lt;br /&gt;
the dual role of both an interactive command, as well as a convenient&lt;br /&gt;
elisp function.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;Until Emacs 24, the solution used was to write code   that did the&lt;br /&gt;
following check:&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;pre class=&quot;example&quot;&gt;(when (interactive-p) ...
&lt;/pre&gt;&lt;br /&gt;
&lt;p&gt;In Emacs-24, &lt;span class=&quot;underline&quot;&gt;interactive-p&lt;/span&gt; was made obsolete and replaced with &lt;br /&gt;
&lt;/p&gt;&lt;pre class=&quot;example&quot;&gt;(called-interactively-p &#39;interactive)
&lt;/pre&gt;&lt;br /&gt;
&lt;p&gt;Emacspeak initially used the above form to perform the equivalent&lt;br /&gt;
check. However, around the same time, Emacs&#39; &lt;b&gt;advice&lt;/b&gt; implementation&lt;br /&gt;
went through some changes, and there was an attempt to replace&lt;br /&gt;
&lt;b&gt;advice.el&lt;/b&gt; with &lt;b&gt;nadvice.el&lt;/b&gt;.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;At the end of that round of changes, some problems emerged with the&lt;br /&gt;
new &lt;span class=&quot;underline&quot;&gt;called-interactively-p&lt;/span&gt; implementation; specifically, calling&lt;br /&gt;
:called-interactively-p_ within &lt;span class=&quot;underline&quot;&gt;around&lt;/span&gt; advice forms resulted in hard&lt;br /&gt;
to debug errors, including one case of infinite recursion  involving&lt;br /&gt;
library &lt;b&gt;smie.el&lt;/b&gt; when invoked from within &lt;span class=&quot;underline&quot;&gt;ruby-mode&lt;/span&gt;.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;After studying the problem in depth in 2014, I decided to create  an&lt;br /&gt;
Emacspeak-specific implementation of the &lt;span class=&quot;underline&quot;&gt;is-interactive&lt;/span&gt; check.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;The resulting implementation has worked well for the last 30 months;&lt;br /&gt;
this article is here mostly to document how it works, and the reason&lt;br /&gt;
for its existence. Note that Emacspeak uses this custom predicate&lt;br /&gt;
&lt;b&gt;only&lt;/b&gt; within &lt;span class=&quot;underline&quot;&gt;advice&lt;/span&gt; forms. Further, this predicate has been coded&lt;br /&gt;
to only work within &lt;span class=&quot;underline&quot;&gt;advice&lt;/span&gt; forms created by &lt;span class=&quot;underline&quot;&gt;emacspeak&lt;/span&gt;. This&lt;br /&gt;
constraint can likely be relaxed, but the tighter implementation is&lt;br /&gt;
less risky.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-orgbf6c7c7&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;orgbf6c7c7&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;2&lt;/span&gt; Implementation &amp;#x2014;  &lt;span class=&quot;underline&quot;&gt;ems-interactive-p&lt;/span&gt;&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-2&quot;&gt;&lt;/div&gt;&lt;div id=&quot;outline-container-orge4c53de&quot; class=&quot;outline-3&quot;&gt;&lt;h3 id=&quot;orge4c53de&quot;&gt;&lt;span class=&quot;section-number-3&quot;&gt;2.1&lt;/span&gt; Overview&lt;/h3&gt;&lt;div class=&quot;outline-text-3&quot; id=&quot;text-2-1&quot;&gt;&lt;p&gt;Within an &lt;span class=&quot;underline&quot;&gt;advice&lt;/span&gt; forms defined by Emacspeak, detect if the enclosing&lt;br /&gt;
function call is the result of explicit user interaction, i.e. by&lt;br /&gt;
pressing a key, or via an explicit call to&lt;br /&gt;
&lt;span class=&quot;underline&quot;&gt;call-interactively&lt;/span&gt;. Emacspeak produces auditory feedback only if&lt;br /&gt;
this predicate returns &lt;span class=&quot;underline&quot;&gt;t&lt;/span&gt;.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;We first introduce a flag that will be used to record if the enclosing&lt;br /&gt;
(containing) function has an Emacspeak-defined advice on it and is&lt;br /&gt;
called interactively &amp;#x2014; these are the only cases that our predicate&lt;br /&gt;
needs to test.&lt;br /&gt;
&lt;/p&gt;&lt;pre class=&quot;example&quot;&gt;(defvar ems-called-interactively-p nil
  &quot;Flag that records if containing function was called interactively.&quot;
&lt;/pre&gt;&lt;br /&gt;
&lt;p&gt;Next, we define a function that checks if interactive calls to a&lt;br /&gt;
function should be recorded. We&#39;re only interested in functions that&lt;br /&gt;
have an &lt;span class=&quot;underline&quot;&gt;advice&lt;/span&gt; form defined by Emacspeak &amp;#x2014; all Emacspeak-defined&lt;br /&gt;
advice forms have the name &lt;span class=&quot;underline&quot;&gt;emacspeak&lt;/span&gt;.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;pre class=&quot;example&quot;&gt;(defun ems-record-interactive-p (f)
  &quot;Predicate to test if we need to record interactive calls of
this function. Memoizes result for future use by placing a
property &#39;emacspeak on the function symbol.&quot;
  (cond
   ((not (symbolp f)) nil)
   ((get f &#39;emacspeak) t) ; already memoized
   ((ad-find-some-advice f &#39;any  &quot;emacspeak&quot;) ; there is an emacspeak advice
    (put f &#39;emacspeak t)) ; memoize for future and return true
   (t nil)))
&lt;/pre&gt;&lt;br /&gt;
&lt;p&gt;This is a memoized function that remembers earlier invocations by&lt;br /&gt;
setting property &lt;span class=&quot;underline&quot;&gt;emacspeak&lt;/span&gt; on the function symbol.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;All &lt;span class=&quot;underline&quot;&gt;advice&lt;/span&gt; forms created by Emacspeak are named &lt;span class=&quot;underline&quot;&gt;emacspeak&lt;/span&gt;, so we&lt;br /&gt;
can test for the presence of such advice forms using the test:&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;pre class=&quot;example&quot;&gt;(ad-find-some-advice f &#39;any  &quot;emacspeak&quot;)
&lt;/pre&gt;&lt;br /&gt;
&lt;p&gt;If this test returns &lt;span class=&quot;underline&quot;&gt;T&lt;/span&gt;, we memoize the result and return it.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Next, we advice function &lt;span class=&quot;underline&quot;&gt;call-interactively&lt;/span&gt; to check  &lt;br /&gt;
if the function being called interactively is one of the functions&lt;br /&gt;
that has been adviced by Emacspeak. If so, we record the fact in  the&lt;br /&gt;
previously declared global flag &lt;br /&gt;
&lt;span class=&quot;underline&quot;&gt;ems-called-interactively-p&lt;/span&gt;.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;example&quot;&gt;(defadvice call-interactively (around emacspeak  pre act comp)
  &quot;Set emacspeak  interactive flag if there is an Emacspeak advice 
on the function being called.&quot;
  (let ((ems-called-interactively-p ems-called-interactively-p)) ; preserve enclosing state
    (when (ems-record-interactive-p (ad-get-arg 0))
      (setq ems-called-interactively-p (ad-get-arg 0)))
    ad-do-it))
&lt;/pre&gt;&lt;br /&gt;
&lt;p&gt;We define an equivalent advice form on function&lt;br /&gt;
&lt;span class=&quot;underline&quot;&gt;funcall-interactively&lt;/span&gt; as well. Now, whenever any function that has&lt;br /&gt;
been adviced by Emacspeak is called interactively, that interactive&lt;br /&gt;
call gets recorded in the global flag. In the custom Emacspeak&lt;br /&gt;
predicate we define, we check the value of this flag, and if&lt;br /&gt;
set, consume it, i.e. unset the flag and return &lt;span class=&quot;underline&quot;&gt;T&lt;/span&gt;.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;pre class=&quot;example&quot;&gt;(defsubst ems-interactive-p ()
  &quot;Check our interactive flag.
Return T if set and we are called from the advice for the current
interactive command. Turn off the flag once used.&quot;
  (when ems-called-interactively-p                 ; interactive call
    (let ((caller (cl-second (backtrace-frame 1))) ; name of containing function
          (caller-advice  ;advice generated wrapper
           (ad-get-advice-info-field ems-called-interactively-p  &#39;advicefunname))
          (result nil))
      (setq result
            (or (eq caller caller-advice) ; called from our advice
                (eq ems-called-interactively-p caller))) ; called from advice wrapper
      (when result
        (setq ems-called-interactively-p nil) ; turn off now that we used  it
        result))))
&lt;/pre&gt;&lt;br /&gt;
&lt;p&gt;The only fragile part of the above predicate is the call to&lt;br /&gt;
&lt;span class=&quot;underline&quot;&gt;backtrace-frame&lt;/span&gt; which we use to discover the name of the enclosing&lt;br /&gt;
function. Notice however that this is no more fragile than the current&lt;br /&gt;
implementation of &lt;span class=&quot;underline&quot;&gt;called-interactively-p&lt;/span&gt; &amp;#x2014; which also uses&lt;br /&gt;
&lt;span class=&quot;underline&quot;&gt;backtrace-frame&lt;/span&gt;; If there are changes in the byte-compiler, this&lt;br /&gt;
form may need to be updated. The implementation above has the&lt;br /&gt;
advantage of working correctly for Emacspeak&#39;s specific use-case.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/3929777056515885596'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/3929777056515885596'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2017/03/emacs-check-interactive-call-for.html' title='Emacs: Check Interactive Call For Emacspeak'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-1299713174330353715</id><published>2017-02-10T11:22:00.000-08:00</published><updated>2017-02-10T11:22:27.544-08:00</updated><title type='text'>Audio Deja Vu: Audio Formatted Math On The Emacspeak Desktop</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;br /&gt;
&lt;div id=&quot;content&quot;&gt;&lt;h1 class=&quot;title&quot;&gt;Audio Deja Vu: Audio Formatted Math On The Emacspeak Desktop&lt;/h1&gt;&lt;div id=&quot;outline-container-orge11e00b&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;orge11e00b&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;1&lt;/span&gt; Overview&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-1&quot;&gt;&lt;p&gt;This article previews a new feature in the next Emacspeak release  — &lt;br /&gt;
audio-formatted Mathematics using Aural CSS. &lt;a href=&quot;http://www.cs.bham.ac.uk/~vxs&quot;&gt; Volker Sorge&lt;/a&gt; worked&lt;br /&gt;
at Google as a Visiting Scientist from Sep 2012 to August 2013, when&lt;br /&gt;
we implemented &lt;a href=&quot;https://www.youtube.com/watch?v=YyWu9HB9QtU&quot;&gt;math&lt;br /&gt;
access in ChromeVox&lt;/a&gt;  —  see &lt;a href=&quot;http://allthingsd.com/20130604/t-v-ramans-audio-deja-vu-from-google-a-math-reading-system-for-the-web/&quot;&gt;this brief overview&lt;/a&gt;. Since leaving&lt;br /&gt;
Google, Volker has refactored and extended his work to create an Open&lt;br /&gt;
Source &lt;a href=&quot;https://github.com/zorkow/speech-rule-engine&quot;&gt;Speech-Rule-Engine&lt;/a&gt; implemented using NodeJS. This&lt;br /&gt;
speech-rule-engine can be used in many different environments;&lt;br /&gt;
Emacspeak leverages that work to enable audio-formatting and&lt;br /&gt;
interactive browsing of math content.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div id=&quot;outline-container-org077db06&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;org077db06&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;2&lt;/span&gt; Overview Of Functionality&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-2&quot;&gt;&lt;p&gt;Math access on the Emacspeak desktop is implemented via module&lt;br /&gt;
&lt;a href=&quot;https://github.com/tvraman/emacspeak/blob/master/lisp/emacspeak-maths.el#L558&quot;&gt;emacspeak-maths.el&lt;/a&gt;  —  see &lt;a href=&quot;https://github.com/tvraman/emacspeak/blob/master/js/node/Readme.org#L40&quot;&gt;js/node/Readme.org&lt;/a&gt; in the Emacspeak GitHub&lt;br /&gt;
repository for setup instructions. &lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Once loaded, module &lt;code&gt;emacspeak-maths&lt;/code&gt; provides a &lt;i&gt;Math Navigator&lt;/i&gt; that&lt;br /&gt;
implements the user interface for sending Math expressions to the&lt;br /&gt;
Speech-Rule-Engine, and for interactively browsing the resulting&lt;br /&gt;
structure. At each step of the interaction, Emacspeak receives math&lt;br /&gt;
expressions that have been annotated with Aural CSS and produces&lt;br /&gt;
audio-formatted output. The audio-formatted text can itself be&lt;br /&gt;
navigated in a special &lt;i&gt;&lt;b&gt;Spoken Math&lt;/b&gt;&lt;/i&gt; emacs buffer.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Module &lt;code&gt;emacspeak-maths.el&lt;/code&gt; implements various affordances for&lt;br /&gt;
dispatching mathematical content to the Speech-Rule-Engine  —  see&lt;br /&gt;
usage examples in the next section.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-org01ccc81&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;org01ccc81&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;3&lt;/span&gt; Usage Examples&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-3&quot;&gt;&lt;/div&gt;&lt;div id=&quot;outline-container-org902c07f&quot; class=&quot;outline-3&quot;&gt;&lt;h3 id=&quot;org902c07f&quot;&gt;&lt;span class=&quot;section-number-3&quot;&gt;3.1&lt;/span&gt; The Emacspeak Maths Navigator&lt;/h3&gt;&lt;div class=&quot;outline-text-3&quot; id=&quot;text-3-1&quot;&gt;&lt;ul class=&quot;org-ul&quot;&gt;&lt;li&gt;The &lt;i&gt;maths navigator&lt;/i&gt; can be invoked by pressing &lt;span class=&quot;underline&quot;&gt;S-SPC&lt;/span&gt; (hold&lt;br /&gt;
down Windows key and press SPC)   —  this runs the command &lt;span class=&quot;underline&quot;&gt;emacspeak-maths-navigator/body&lt;/span&gt;.&lt;/li&gt;
&lt;li&gt;Once invoked, the /Maths Navigator can be used to enter an&lt;br /&gt;
expression to read.&lt;/li&gt;
&lt;li&gt;Pressing &lt;span class=&quot;underline&quot;&gt;SPC&lt;/span&gt; again prompts for the LaTeX math expression.&lt;/li&gt;
&lt;li&gt;Pressing  &lt;span class=&quot;underline&quot;&gt;RET&lt;/span&gt; guesses the expression to read from the current context.&lt;/li&gt;
&lt;li&gt;The arrow keys navigate the expression being read.&lt;/li&gt;
&lt;li&gt;Pressing &lt;span class=&quot;underline&quot;&gt;o&lt;/span&gt; switches to the &lt;i&gt;&lt;b&gt;Spoken Math&lt;/b&gt;&lt;/i&gt; buffer and exits the&lt;br /&gt;
navigator.&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;p&gt;See the &lt;a href=&quot;http://tvraman.github.io/emacspeak/manual/emacspeak_002dmaths.html#emacspeak_002dmaths&quot;&gt;relevant chapter&lt;/a&gt; in the online Emacspeak manual for details.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-org1a9896c&quot; class=&quot;outline-3&quot;&gt;&lt;h3 id=&quot;org1a9896c&quot;&gt;&lt;span class=&quot;section-number-3&quot;&gt;3.2&lt;/span&gt; Math Content In LaTeX Documents&lt;/h3&gt;&lt;div class=&quot;outline-text-3&quot; id=&quot;text-3-2&quot;&gt;&lt;ol class=&quot;org-ol&quot;&gt;&lt;li&gt;Open a LaTeX document containing math content.&lt;/li&gt;
&lt;li&gt;Move point to a line containing   mathematical markup.&lt;/li&gt;
&lt;li&gt;Press &lt;span class=&quot;underline&quot;&gt;S-SPC&lt;/span&gt; &lt;span class=&quot;underline&quot;&gt;RET&lt;/span&gt; to have that expression audio-formatted.&lt;/li&gt;
&lt;li&gt;Use arrow keys to navigate the resulting structure.&lt;/li&gt;
&lt;li&gt;Press any other key to exit the navigator.&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-org2a619d9&quot; class=&quot;outline-3&quot;&gt;&lt;h3 id=&quot;org2a619d9&quot;&gt;&lt;span class=&quot;section-number-3&quot;&gt;3.3&lt;/span&gt; Math Content On Wikipedia&lt;/h3&gt;&lt;div class=&quot;outline-text-3&quot; id=&quot;text-3-3&quot;&gt;&lt;ol class=&quot;org-ol&quot;&gt;&lt;li&gt;Open a Wikipedia page in the Emacs Web Wowser (EWW) that has&lt;br /&gt;
mathematical content.&lt;/li&gt;
&lt;li&gt;Wikipedia displays math as images, with the alt-text giving the&lt;br /&gt;
LaTeX representation.&lt;/li&gt;
&lt;li&gt;Navigate to some math content on the page, then press &lt;span class=&quot;underline&quot;&gt;S-SPC&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;underline&quot;&gt;a&lt;/span&gt; to speak that content  —  &lt;span class=&quot;underline&quot;&gt;a&lt;/span&gt; is for alt.&lt;/li&gt;
&lt;li&gt;As an example, navigate to &lt;a href=&quot;https://en.wikipedia.org/wiki/Derangement&quot;&gt;Wikipedia Math Example&lt;/a&gt;, locate math expressions on that page, then&lt;br /&gt;
press &lt;span class=&quot;underline&quot;&gt;S-SPC a&lt;/span&gt;.&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-org89e3330&quot; class=&quot;outline-3&quot;&gt;&lt;h3 id=&quot;org89e3330&quot;&gt;&lt;span class=&quot;section-number-3&quot;&gt;3.4&lt;/span&gt; Math Content From The Emacs Calculator&lt;/h3&gt;&lt;div class=&quot;outline-text-3&quot; id=&quot;text-3-4&quot;&gt;&lt;ol class=&quot;org-ol&quot;&gt;&lt;li&gt;The built-in Emacs Calculator (&lt;code&gt;calc&lt;/code&gt;) provides  many complex&lt;br /&gt;
math functions including symbolic algebra.&lt;/li&gt;
&lt;li&gt;For my personal &lt;code&gt;calc&lt;/code&gt; setup, see  &lt;a href=&quot;https://github.com/tvraman/emacspeak/blob/master/tvr/calc-prepare.el#L25&quot;&gt;tvr/calc-prepare.el&lt;/a&gt; in the&lt;br /&gt;
Emacspeak GitHub repo.&lt;/li&gt;
&lt;li&gt;This setting below sets up the Emacs Calculator to output results&lt;br /&gt;
as LaTeX: &lt;span class=&quot;underline&quot;&gt;(setq calc-language &#39;tex)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;With the above setting in effect, launch the emacs Calculator by&lt;br /&gt;
pressing &lt;span class=&quot;underline&quot;&gt;M-##&lt;/span&gt;.&lt;/li&gt;
&lt;li&gt;Press &lt;span class=&quot;underline&quot;&gt;&#39;&lt;/span&gt; — to use algebraic mode —  and enter &lt;code&gt;sin(x)&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Press &lt;span class=&quot;underline&quot;&gt;a t&lt;/span&gt; to get the Taylor series expansion of the above&lt;br /&gt;
expression, and press &lt;span class=&quot;underline&quot;&gt;x&lt;/span&gt; when prompted for the variable.&lt;/li&gt;
&lt;li&gt;This displays the Taylor Series expansion up to the desired&lt;br /&gt;
number of terms  —  try &lt;span class=&quot;underline&quot;&gt;7&lt;/span&gt; terms.&lt;/li&gt;
&lt;li&gt;Now, with Calc having shown the results as TeX, press &lt;span class=&quot;underline&quot;&gt;S-SPC&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;underline&quot;&gt;RET&lt;/span&gt; to browse this expression using the &lt;i&gt;Maths Navigator&lt;/i&gt;.&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div id=&quot;outline-container-org2deefc5&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;org2deefc5&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;4&lt;/span&gt; And The Best Is Yet To Come&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-4&quot;&gt;&lt;p&gt;This is intentionally called an &lt;i&gt;early preview&lt;/i&gt; because there is still&lt;br /&gt;
much that can be improved:&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;ol class=&quot;org-ol&quot;&gt;&lt;li&gt;Enhance the rule engine to infer and convey more semantics.&lt;/li&gt;
&lt;li&gt;Improved audio formatting rules to better present the available information.&lt;/li&gt;
&lt;li&gt;Update/tune the use of Aural CSS properties to best leverage&lt;br /&gt;
today&#39;s TTS engines.&lt;/li&gt;
&lt;li&gt;Integrate math-reading functionality into more usage contexts in&lt;br /&gt;
addition to the ones enumerated in this article.&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div id=&quot;outline-container-org5287b6e&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;org5287b6e&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;5&lt;/span&gt; References&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-5&quot;&gt;&lt;ol class=&quot;org-ol&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=YyWu9HB9QtU&quot;&gt;Youtube Video from early 2013 demonstrating Math Access in Chrome&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://allthingsd.com/20130604/t-v-ramans-audio-deja-vu-from-google-a-math-reading-system-for-the-web/&quot;&gt;AllThings Digital&lt;/a&gt;  outlining math access  —  published June 2013.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/zorkow/emacs-math-speak/blob/master/paper/assets16.tex&quot;&gt;Assets 2016&lt;/a&gt; publication describing this work.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/tvraman/emacspeak/blob/master/js/node/aster-math-examples.tex&quot;&gt;js/node/aster-math-examples.tex&lt;/a&gt; Collection of math examples in&lt;br /&gt;
LaTeX from AsTeR. Used to progressively improve speech-rules and&lt;br /&gt;
the resulting audio-formatted output&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/zorkow/speech-rule-engine&quot;&gt;Speech-Rule-Engine&lt;/a&gt; on github.&lt;/li&gt;
&lt;li&gt;Speech-Rule-Engine in action:  &lt;a href=&quot;https://www.mathjax.org/mathjax-accessibility-extensions-v1-now-available/&quot;&gt;Accessible Maths in all browsers&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div id=&quot;postamble&quot; class=&quot;status&quot;&gt;&lt;p class=&quot;date&quot;&gt;Date: 2017-02-08 Wed 00:00&lt;/p&gt;&lt;p class=&quot;author&quot;&gt;Author: T.V Raman&lt;/p&gt;&lt;/div&gt;&lt;br /&gt;
&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/1299713174330353715'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/1299713174330353715'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2017/02/audio-deja-vu-audio-formatted-math-on.html' title='Audio Deja Vu: Audio Formatted Math On The Emacspeak Desktop'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-5333731054405976919</id><published>2017-01-04T11:09:00.001-08:00</published><updated>2017-01-04T11:13:59.260-08:00</updated><title type='text'>Fun With TTS (Voxin) And Ladspa</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div id=&quot;content&quot;&gt;&lt;h1 class=&quot;title&quot;&gt;Fun With TTS (Voxin) And Ladspa&lt;/h1&gt;&lt;div id=&quot;outline-container-org2e8f78d&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;org2e8f78d&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;1&lt;/span&gt; Executive Summary&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-1&quot;&gt;&lt;p&gt;Voxin 1.6 &amp;#x2014; AKA ViaVoice Outloud &amp;#x2014; no longer requires that the&lt;br /&gt;
Emacspeak TTS server be built as a 32-bit binary. This means that&lt;br /&gt;
installing Voxin on 64-bit systems is now significantly easier since&lt;br /&gt;
you no longer need to install 32-bit versions of TCL, TCLX, and the&lt;br /&gt;
dependencies  needed by library &lt;span class=&quot;underline&quot;&gt;libibmeci.so&lt;/span&gt;. In addition to&lt;br /&gt;
easing the installation process, not needing 32-bit binaries means&lt;br /&gt;
that the Emacspeak Outloud server can now take advantage of audio&lt;br /&gt;
processing such as that provided by LADSPA.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-org5150d58&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;org5150d58&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;2&lt;/span&gt; Going 64-Bit: Upgrading To Voxin 1.6&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-2&quot;&gt;&lt;ol class=&quot;org-ol&quot;&gt;&lt;li&gt;Install Voxin-1.6 or later from &lt;a href=&quot;https://voxin.oralux.net/update/voxin-update-1.6.tgz&quot;&gt;Voxin&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Update Emacspeak from GitHub (this will be part of the next&lt;br /&gt;
public release).&lt;/li&gt;
&lt;li&gt;Rebuild the &lt;span class=&quot;underline&quot;&gt;atcleci.so&lt;/span&gt; binary in the &lt;span class=&quot;underline&quot;&gt;servers/linux-outloud&lt;/span&gt;&lt;br /&gt;
directory:&lt;/li&gt;
&lt;/ol&gt;&lt;pre class=&quot;example&quot;&gt;cd servers/linux-outloud &amp;amp;&amp;amp; make clean &amp;amp;&amp;amp; make
&lt;/pre&gt;&lt;br /&gt;
&lt;p&gt;If all goes well, you&#39;ll now have a 64-bit version of &lt;span class=&quot;underline&quot;&gt;atcleci.so&lt;/span&gt;.&lt;br /&gt;
You can now run the Outloud server as &lt;span class=&quot;underline&quot;&gt;servers/outloud&lt;/span&gt;.&lt;br /&gt;
In about a year&#39;s time,  &lt;span class=&quot;underline&quot;&gt;servers/32-outloud&lt;/span&gt; will move to&lt;br /&gt;
&lt;span class=&quot;underline&quot;&gt;servers/obsolete&lt;/span&gt;, as will the associated &lt;span class=&quot;underline&quot;&gt;servers/32-speech-server&lt;/span&gt;&lt;br /&gt;
and &lt;span class=&quot;underline&quot;&gt;servers/ssh-32-outloud&lt;/span&gt;.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div id=&quot;outline-container-org9a57fc2&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;org9a57fc2&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;3&lt;/span&gt; Applying LADSPA Effects Processing To TTS&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-3&quot;&gt;&lt;p&gt;With a 64-bit build of &lt;span class=&quot;underline&quot;&gt;atcleci.so&lt;/span&gt; in place, we can now call on&lt;br /&gt;
installed LADSPA plugins to apply digital sound processing to  TTS&lt;br /&gt;
output.  To experiment with  the possibilities, see some of the&lt;br /&gt;
virtual sound devices defined in &lt;span class=&quot;underline&quot;&gt;servers/linux-outloud/asoundrc&lt;/span&gt;.&lt;br /&gt;
Copy over that file to your &lt;span class=&quot;underline&quot;&gt;~/.asoundrc&lt;/span&gt; after updating it to match&lt;br /&gt;
your sound setup &amp;#x2014; you&#39;ll likely need to change the default&lt;br /&gt;
sound-card to match your setup.&lt;br /&gt;
You can now set environment variable &lt;code&gt;ALSA_DEFAULT&lt;/code&gt; to one of  the&lt;br /&gt;
&lt;code&gt;tts_&amp;lt;effect&amp;gt;&lt;/code&gt; virtual devices &amp;#x2014; and have the Outloud server apply&lt;br /&gt;
the specified LADSPA effect to the generated TTS. Here is an example:&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;pre class=&quot;example&quot;&gt;cd servers 
(export ALSA_DEFAULT=tts_reverb; ./outloud)
tts_selftest
&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-orgad06121&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;orgad06121&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;4&lt;/span&gt; The Best Is Yet To Come &amp;#x2026;&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-4&quot;&gt;&lt;p&gt;The possibilities are endless &amp;#x2014; ALSA with LADSPA provides a rich&lt;br /&gt;
suite of audio processing possibilities.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-org8489d49&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;org8489d49&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;5&lt;/span&gt; Acknowledgements&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-5&quot;&gt;&lt;p&gt;I&#39;d like to acknowledge &lt;a href=&quot;https://github.com/Oralux/libvoxin&quot;&gt;Gilles Casse &lt;/a&gt; for his work over the years on&lt;br /&gt;
ensuring that Linux users have access to good quality TTS. Outloud&lt;br /&gt;
would have been dead a long time ago if it weren&#39;t for his continued&lt;br /&gt;
efforts toward keeping the lights on. His newest creation, &lt;span class=&quot;underline&quot;&gt;libvoxin&lt;/span&gt;&lt;br /&gt;
that forms the crux of Voxin-1.6 is an excellent piece of engineering&lt;br /&gt;
that is likely to help Outloud survive for the future on modern Linux&lt;br /&gt;
distros. Note that Gilles is also the primary author of the Emacspeak&lt;br /&gt;
ESpeak server.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/5333731054405976919'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/5333731054405976919'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2017/01/fun-with-tts-voxin-and-ladspa.html' title='Fun With TTS (Voxin) And Ladspa'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-7506835408639025840</id><published>2016-11-29T15:01:00.000-08:00</published><updated>2016-11-29T15:06:20.859-08:00</updated><title type='text'>Follow-Up: Soundscapes On The Emacspeak Audio Desktop</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div id=&quot;content&quot;&gt;&lt;h1 class=&quot;title&quot;&gt;Follow-Up: Soundscapes On The Emacspeak Audio Desktop&lt;/h1&gt;&lt;div id=&quot;outline-container-orgf3ef09d&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;orgf3ef09d&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;1&lt;/span&gt; Executive Summary&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-1&quot;&gt;&lt;p&gt;Nearly a year ago, I &lt;a href=&quot;http://emacspeak.blogspot.com/2015/12/soundscapes-on-emacspeak-audio-desktop.html&quot;&gt;blogged here&lt;/a&gt; about Soundscapes on the emacspeak&lt;br /&gt;
Audio Desktop. That article ended with this following paragraph:&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;pre class=&quot;example&quot;&gt;I implemented package soundscape to create a platform that would let me experiment
with different tools that aid in concentration. After using Soundscapes for about a week,
I have also found that it reduces some of the fatigue that results from having to listen
to synthetic text-to-speech for extended periods. The true value (if any) of this package
will be a function of how heavily I find myself using it six months from now --- as a
metric, complete success might mean that in mid-2016, I still have automatic soundscapes
turned on.
&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div id=&quot;outline-container-org69a9232&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;org69a9232&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;2&lt;/span&gt; And Nearly A Year Later &amp;#x2026;&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-2&quot;&gt;&lt;p&gt;I have not found the need to turn off Soundscapes in Emacspeak. As&lt;br /&gt;
conjectured, it has definitely increased my productivity, specifically&lt;br /&gt;
in terms of staying focused on a given task at hand. Over the year,&lt;br /&gt;
I&#39;ve also augmented the emacspeak Audio Desktop with support for&lt;br /&gt;
binaural audio — see module &lt;code&gt;sox-gen&lt;/code&gt; — which provides a collection of&lt;br /&gt;
binaural themes for use during different times of the day. Binaural&lt;br /&gt;
themes generated by that module overlay Emacspeak Soundscapes to&lt;br /&gt;
provide an ideal auditory environment for use over headphones.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-org18030cb&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;org18030cb&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;3&lt;/span&gt; Soundscape Enhancements&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-3&quot;&gt;&lt;p&gt;Since the publication of the original article, Emacspeak Soundscapes&lt;br /&gt;
have been enhanced with additional sounds from&lt;br /&gt;
&lt;a href=&quot;http://freesound.org&quot;&gt;Freesound.org&lt;/a&gt;. Emacspeak Soundscapes have been updated to take&lt;br /&gt;
advantage of Boodler&#39;s limited abilities in the areas of spatial&lt;br /&gt;
positioning. I typically use &lt;code&gt;Soundscapes&lt;/code&gt; with one of several virtual&lt;br /&gt;
ALSA devices that have been configured to apply different Ladspa&lt;br /&gt;
effects such as &lt;i&gt;reverb&lt;/i&gt; or &lt;i&gt;crossfeed&lt;/i&gt; depending on the ambient&lt;br /&gt;
environment where I am working &amp;#x2014; this significantly improves the&lt;br /&gt;
spatialization of soundscapes being played &amp;#x2014; see file&lt;br /&gt;
&lt;a href=&quot;https://github.com/tvraman/emacspeak/blob/master/scapes/ladspa-asoundrc#L1&quot;&gt;ladspa-asoundrc&lt;/a&gt;. Finally, the mapping of Soundscapes to various Emacs&lt;br /&gt;
modes has also been tuned. &amp;#x2014; see table below.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;table border=&quot;2&quot; cellspacing=&quot;0&quot; cellpadding=&quot;6&quot; rules=&quot;groups&quot; frame=&quot;hsides&quot;&gt;

&lt;colgroup&gt;
&lt;col  class=&quot;org-left&quot; /&gt;

&lt;col  class=&quot;org-left&quot; /&gt;
&lt;/colgroup&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td class=&quot;org-left&quot;&gt;Soundscape (Mood)&lt;/td&gt;
&lt;td class=&quot;org-left&quot;&gt;List Of Major Modes&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td class=&quot;org-left&quot;&gt;BirdSongs&lt;/td&gt;
&lt;td class=&quot;org-left&quot;&gt;shell term&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td class=&quot;org-left&quot;&gt;BlopEchoes&lt;/td&gt;
&lt;td class=&quot;org-left&quot;&gt;elfeed-search&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td class=&quot;org-left&quot;&gt;Bonfire&lt;/td&gt;
&lt;td class=&quot;org-left&quot;&gt;calendar diary&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td class=&quot;org-left&quot;&gt;BuddhaLoop&lt;/td&gt;
&lt;td class=&quot;org-left&quot;&gt;comint&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td class=&quot;org-left&quot;&gt;Cavern&lt;/td&gt;
&lt;td class=&quot;org-left&quot;&gt;prog&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td class=&quot;org-left&quot;&gt;ChangingLoops&lt;/td&gt;
&lt;td class=&quot;org-left&quot;&gt;special&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td class=&quot;org-left&quot;&gt;ChangingLoopsPitches&lt;/td&gt;
&lt;td class=&quot;org-left&quot;&gt;lisp-interaction&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td class=&quot;org-left&quot;&gt;Drip&lt;/td&gt;
&lt;td class=&quot;org-left&quot;&gt;message gnus-summary gnus-article gnus-group mspools vm-presentation vm mail twittering jabber-roster jabber-chat erc&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td class=&quot;org-left&quot;&gt;LoopStew&lt;/td&gt;
&lt;td class=&quot;org-left&quot;&gt;emacspeak-m-player&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td class=&quot;org-left&quot;&gt;NoStormYet&lt;/td&gt;
&lt;td class=&quot;org-left&quot;&gt;fundamental&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td class=&quot;org-left&quot;&gt;RainForever&lt;/td&gt;
&lt;td class=&quot;org-left&quot;&gt;Info help Man Custom messages-buffer&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td class=&quot;org-left&quot;&gt;RainSounds&lt;/td&gt;
&lt;td class=&quot;org-left&quot;&gt;magit vc&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td class=&quot;org-left&quot;&gt;Still&lt;/td&gt;
&lt;td class=&quot;org-left&quot;&gt;text view&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td class=&quot;org-left&quot;&gt;SurfWaves&lt;/td&gt;
&lt;td class=&quot;org-left&quot;&gt;w3 eww&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td class=&quot;org-left&quot;&gt;TonkSpace&lt;/td&gt;
&lt;td class=&quot;org-left&quot;&gt;tabulated-list&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td class=&quot;org-left&quot;&gt;WaterFlow&lt;/td&gt;
&lt;td class=&quot;org-left&quot;&gt;dired&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div id=&quot;outline-container-org2da2aea&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;org2da2aea&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;4&lt;/span&gt; Summary&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-4&quot;&gt;&lt;p&gt;As outlined in a previous article, &lt;a href=&quot;http://emacspeak.blogspot.com/2016/02/augmented-headphone-listening-on-linux.html&quot;&gt; sound on Linux&lt;/a&gt; provides unending&lt;br /&gt;
possibilities with respect to innovation, here&#39;s looking forward to&lt;br /&gt;
better things to come.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/7506835408639025840'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/7506835408639025840'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2016/11/follow-up-soundscapes-on-emacspeak.html' title='Follow-Up: Soundscapes On The Emacspeak Audio Desktop'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-5460777600046934416</id><published>2016-11-20T08:43:00.001-08:00</published><updated>2016-11-20T08:43:03.277-08:00</updated><title type='text'>Emacspeak 45.0 (IdealDog) Unleashed!</title><content type='html'>&lt;div id=&quot;content&quot;&gt;&lt;h1 class=&quot;title&quot;&gt;Emacspeak 45.0—IdealDog—Unleashed!&lt;/h1&gt;&lt;p&gt;&lt;b&gt;For Immediate Release:&lt;/b&gt;&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;San Jose, Calif., (Nov  21, 2016)&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Emacspeak:  Redefining Accessibility In The Era Of (Real)Intelligent  Computing &lt;br /&gt;
&amp;#x2013;Zero cost of Ownership  makes priceless software Universally affordable!&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Emacspeak Inc (NASDOG: ESPK) &amp;#x2014; &lt;a href=&quot;http://github.com/tvraman/emacspeak&quot;&gt;http://github.com/tvraman/emacspeak&lt;/a&gt; &amp;#x2014; announces the&lt;br /&gt;
immediate world-wide availability of &lt;a href=&quot;https://github.com/tvraman/emacspeak/releases/download/44.0/emacspeak-45.0.tar.bz2&quot;&gt;Emacspeak 45.0&lt;/a&gt; (IdealDog) &amp;#x2014; a&lt;br /&gt;
powerful audio desktop for leveraging today&#39;s evolving data, social&lt;br /&gt;
and service-oriented Internet cloud.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-org2d710c6&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;org2d710c6&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;1&lt;/span&gt; Investors Note:&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-1&quot;&gt;&lt;p&gt;With several prominent tweeters expanding coverage of&lt;br /&gt;
&lt;span class=&quot;underline&quot;&gt;#emacspeak&lt;/span&gt;, NASDOG: ESPK has now been consistently trading over&lt;br /&gt;
the social net at levels close to that once attained by DogCom&lt;br /&gt;
high-fliers—and as of Nov 2016 is trading at levels close to&lt;br /&gt;
that achieved by once better known stocks in the tech sector.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-orgb45aece&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;orgb45aece&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;2&lt;/span&gt; What Is It?&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-2&quot;&gt;&lt;p&gt;Emacspeak is a fully functional audio desktop that provides complete&lt;br /&gt;
eyes-free access to all major 32 and 64 bit operating environments. By&lt;br /&gt;
seamlessly blending live access to all aspects of the Internet such as&lt;br /&gt;
Web-surfing, blogging, social computing and electronic messaging into&lt;br /&gt;
the audio desktop, Emacspeak enables speech access to local and remote&lt;br /&gt;
information with a consistent and well-integrated user interface. A&lt;br /&gt;
rich suite of task-oriented tools provides efficient speech-enabled&lt;br /&gt;
access to the evolving service-oriented social Internet cloud.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-org19ce274&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;org19ce274&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;3&lt;/span&gt; Major Enhancements:&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-3&quot;&gt;&lt;ul class=&quot;org-ul&quot;&gt;&lt;li&gt;Speech-enabled &lt;code&gt;tide&lt;/code&gt; for typescript development.  🌊&lt;/li&gt;
&lt;li&gt;Speech-enabled &lt;code&gt;jade&lt;/code&gt; for Javascript WebApp development. ⺩&lt;/li&gt;
&lt;li&gt;Improved &lt;code&gt;slime&lt;/code&gt; support for Lisp programming. Λ&lt;/li&gt;
&lt;li&gt;Support for rst-mode for editting ReST files.🖹&lt;/li&gt;
&lt;li&gt;Version control info in modeline.⎔&lt;/li&gt;
&lt;li&gt;Speech-enabled &lt;code&gt;elisp-refs&lt;/code&gt; to aid in refactoring. ※&lt;/li&gt;
&lt;li&gt;GPG integration including pinentry support. 🔐&lt;/li&gt;
&lt;li&gt;ElScreen support for window-layout management. 🆜&lt;/li&gt;
&lt;li&gt;Updated Librivox client for audio books.  🔊🕮&lt;/li&gt;
&lt;li&gt;Updated sound themes. 🔉&lt;/li&gt;
&lt;li&gt;Support for Emacs&#39; visual-line-mode. 🎁&lt;/li&gt;
&lt;li&gt;Speech-enabled Threes game. 🎮&lt;/li&gt;
&lt;li&gt;Updated Google News support. 📰&lt;/li&gt;
&lt;li&gt;Binaural audio support  including  several predefined binaural themes. ℗&lt;br /&gt;
&lt;ul class=&quot;org-ul&quot;&gt;&lt;li&gt;Updated multilingual support for ESpeak.   󠀁&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://gist.github.com/08046e9befd9755dc05282ae5c8d32f5&quot;&gt;Script etc/bootstrap.sh&lt;/a&gt;  for bootstrapping into Emacspeak on a well-configured Linux system. 👢&lt;/li&gt;
&lt;li&gt;And a lot more than wil fit this margin. … 🗞&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div id=&quot;outline-container-org3d817b7&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;org3d817b7&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;4&lt;/span&gt; Establishing Liberty, Equality And Freedom:&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-4&quot;&gt;&lt;p&gt;Never a toy system, Emacspeak is voluntarily bundled with all&lt;br /&gt;
major Linux distributions. Though designed to be modular,&lt;br /&gt;
distributors have freely chosen to bundle the fully integrated&lt;br /&gt;
system without any undue pressure—a documented success for&lt;br /&gt;
the integrated innovation embodied by Emacspeak. As the system&lt;br /&gt;
evolves, both upgrades and downgrades continue to be available at&lt;br /&gt;
the same zero-cost to all users. The integrity of the Emacspeak&lt;br /&gt;
codebase is ensured by the reliable and secure Linux platform&lt;br /&gt;
used to develop and distribute the software.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Extensive studies have shown that thanks to these features, users&lt;br /&gt;
consider Emacspeak to be absolutely priceless. Thanks to this&lt;br /&gt;
wide-spread user demand, the present version remains   priceless&lt;br /&gt;
as ever—it is being made available at the same zero-cost as&lt;br /&gt;
previous releases.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;At the same time, Emacspeak continues to innovate in the area of&lt;br /&gt;
eyes-free social interaction and carries forward the&lt;br /&gt;
well-established Open Source tradition of introducing user&lt;br /&gt;
interface features that eventually show up in luser environments.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;On this theme, when once challenged by a proponent of a crash-prone&lt;br /&gt;
but well-marketed mousetrap with the assertion &quot;Emacs is a system from&lt;br /&gt;
the 70&#39;s&quot;, the creator of Emacspeak evinced surprise at the unusual&lt;br /&gt;
candor manifest in the assertion that it would take popular&lt;br /&gt;
idiot-proven interfaces until the year 2070 to catch up to where the&lt;br /&gt;
Emacspeak audio desktop is today. Industry experts welcomed this&lt;br /&gt;
refreshing breath of Courage Certainty and Clarity (CCC) at a time&lt;br /&gt;
when users are reeling from the Fear Uncertainty and Doubt (FUD)&lt;br /&gt;
unleashed by complex software systems backed by even more convoluted&lt;br /&gt;
press releases.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-org7205772&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;org7205772&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;5&lt;/span&gt; Independent Test Results:&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-5&quot;&gt;&lt;p&gt;Independent test results have proven that unlike some modern (and&lt;br /&gt;
not so modern) software, Emacspeak can be safely uninstalled without&lt;br /&gt;
adversely affecting the continued performance of the computer. These&lt;br /&gt;
same tests also revealed that once uninstalled, the user stopped&lt;br /&gt;
functioning altogether. Speaking with Aster Labrador, the creator of&lt;br /&gt;
Emacspeak once pointed out that these results re-emphasize the&lt;br /&gt;
user-centric design of Emacspeak; &quot;It is the user &amp;#x2013;and not the&lt;br /&gt;
computer&amp;#x2013; that stops functioning when Emacspeak is uninstalled!&quot;.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-orgdd4d5fe&quot; class=&quot;outline-3&quot;&gt;&lt;h3 id=&quot;orgdd4d5fe&quot;&gt;&lt;span class=&quot;section-number-3&quot;&gt;5.1&lt;/span&gt; Note from Aster,Bubbles and Tilden:&lt;/h3&gt;&lt;div class=&quot;outline-text-3&quot; id=&quot;text-5-1&quot;&gt;&lt;p&gt;UnDoctored Videos Inc. is looking for volunteers to star in a&lt;br /&gt;
video demonstrating such complete user failure.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-orgd2bf09f&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;orgd2bf09f&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;6&lt;/span&gt; Obtaining Emacspeak:&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-6&quot;&gt;&lt;p&gt;Emacspeak can be downloaded from GitHub &amp;#x2013;see&lt;br /&gt;
&lt;a href=&quot;https://github.com/tvraman/emacspeak&quot;&gt;https://github.com/tvraman/emacspeak&lt;/a&gt; you can visit Emacspeak on the&lt;br /&gt;
WWW at &lt;a href=&quot;http://emacspeak.sf.net&quot;&gt;http://emacspeak.sf.net&lt;/a&gt;. You can subscribe to the emacspeak&lt;br /&gt;
mailing list — emacspeak@cs.vassar.edu — by sending mail to the&lt;br /&gt;
list request address emacspeak-request@cs.vassar.edu. The &lt;a href=&quot;http://emacspeak.blogspot.com&quot;&gt;Emacspeak&lt;br /&gt;
Blog&lt;/a&gt; is a good source for news about recent enhancements and how to&lt;br /&gt;
use them.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;The latest development snapshot of Emacspeak is always available via&lt;br /&gt;
Git  from GitHub  at &lt;br /&gt;
&lt;a href=&quot;https://github.com/tvraman/emacspeak&quot;&gt;Emacspeak GitHub &lt;/a&gt;.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-orged73986&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;orged73986&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;7&lt;/span&gt; History:&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-7&quot;&gt;&lt;ul class=&quot;org-ul&quot;&gt;&lt;li&gt;Emacspeak 45.0 (IdealDog) is named in recognition of Emacs&#39;&lt;br /&gt;
excellent integration with various programming language&lt;br /&gt;
environments &amp;#x2014; thanks to this, Emacspeak is the IDE of choice&lt;br /&gt;
for eyes-free software engineering.&lt;/li&gt;
&lt;li&gt;Emacspeak 44.0 continues the steady pace of innovation on the&lt;br /&gt;
audio desktop.&lt;/li&gt;
&lt;li&gt;Emacspeak  43.0 brings even more end-user efficiency by leveraging the&lt;br /&gt;
ability to spatially place multiple audio streams to provide timely&lt;br /&gt;
auditory feedback.&lt;/li&gt;
&lt;li&gt;Emacspeak 42.0 while moving to GitHub from Google Code continues to&lt;br /&gt;
innovate in the areas of auditory user interfaces and efficient,&lt;br /&gt;
light-weight Internet access.&lt;/li&gt;
&lt;li&gt;Emacspeak 41.0 continues to improve &lt;br /&gt;
on  the desire to provide not just equal, but superior access —&lt;br /&gt;
technology when correctly implemented can significantly enhance the&lt;br /&gt;
human ability.&lt;/li&gt;
&lt;li&gt;Emacspeak 40.0 goes back to Web basics by enabling&lt;br /&gt;
&lt;a href=&quot;http://emacspeak.blogspot.com/2013/11/reading-web-content-efficiently.html&quot;&gt;efficient access&lt;/a&gt; to large amounts of readable Web content.&lt;/li&gt;
&lt;li&gt;Emacspeak 39.0 continues the Emacspeak tradition of increasing the breadth of&lt;br /&gt;
user tasks that are covered without introducing unnecessary&lt;br /&gt;
bloatware.&lt;/li&gt;
&lt;li&gt;Emacspeak 38.0 is the latest in a series of award-winning&lt;br /&gt;
releases from Emacspeak Inc.&lt;/li&gt;
&lt;li&gt;Emacspeak 37.0 continues the tradition of&lt;br /&gt;
delivering robust software as reflected by its code-name.&lt;/li&gt;
&lt;li&gt;Emacspeak 36.0 enhances the audio desktop with many new tools including full&lt;br /&gt;
EPub support — hence the name EPubDog.&lt;/li&gt;
&lt;li&gt;Emacspeak 35.0 is all about&lt;br /&gt;
teaching a new dog old tricks — and is aptly code-named HeadDog in&lt;br /&gt;
on  of our new Press/Analyst contact. emacspeak-34.0 (AKA Bubbles)&lt;br /&gt;
established a new beach-head with respect to rapid task completion in&lt;br /&gt;
an eyes-free environment.&lt;/li&gt;
&lt;li&gt;Emacspeak-33.0 AKA StarDog brings&lt;br /&gt;
unparalleled cloud access to the audio desktop.&lt;/li&gt;
&lt;li&gt;Emacspeak 32.0 AKA&lt;br /&gt;
LuckyDog continues to innovate via open technologies for better&lt;br /&gt;
access.&lt;/li&gt;
&lt;li&gt;Emacspeak 31.0 AKA TweetDog — adds tweeting to the Emacspeak&lt;br /&gt;
desktop.&lt;/li&gt;
&lt;li&gt;Emacspeak 30.0 AKA SocialDog brings the Social Web to the&lt;br /&gt;
audio desktop—you cant but be social if you speak!&lt;/li&gt;
&lt;li&gt;Emacspeak 29.0—AKAAbleDog—is a testament to the resilliance and innovation&lt;br /&gt;
embodied by Open Source software—it would not exist without the&lt;br /&gt;
thriving Emacs community that continues to ensure that Emacs remains&lt;br /&gt;
one of the premier user environments despite perhaps also being one of&lt;br /&gt;
the oldest.&lt;/li&gt;
&lt;li&gt;Emacspeak 28.0—AKA PuppyDog—exemplifies the rapid pace of&lt;br /&gt;
development evinced by Open Source software.&lt;/li&gt;
&lt;li&gt;Emacspeak 27.0—AKA&lt;br /&gt;
FastDog—is the latest in a sequence of upgrades that make previous&lt;br /&gt;
releases obsolete and downgrades unnecessary.&lt;/li&gt;
&lt;li&gt;Emacspeak 26—AKA&lt;br /&gt;
LeadDog—continues the tradition of introducing innovative access&lt;br /&gt;
solutions that are unfettered by the constraints inherent in&lt;br /&gt;
traditional adaptive technologies.&lt;/li&gt;
&lt;li&gt;Emacspeak 25 —AKA ActiveDog&lt;br /&gt;
—re-activates open, unfettered access to online&lt;br /&gt;
information.&lt;/li&gt;
&lt;li&gt;Emacspeak-Alive —AKA LiveDog —enlivens open, unfettered&lt;br /&gt;
information access with a series of live updates that once again&lt;br /&gt;
demonstrate the power and agility of open source software&lt;br /&gt;
development.&lt;/li&gt;
&lt;li&gt;Emacspeak 23.0 &amp;#x2014; AKA Retriever—went the extra mile in&lt;br /&gt;
fetching full access.&lt;/li&gt;
&lt;li&gt;Emacspeak 22.0 —AKA GuideDog —helps users&lt;br /&gt;
navigate the Web more effectively than ever before.&lt;/li&gt;
&lt;li&gt;Emacspeak 21.0&lt;br /&gt;
—AKA PlayDog —continued the &lt;br /&gt;
Emacspeak tradition of relying on enhanced&lt;br /&gt;
productivity to liberate users.&lt;/li&gt;
&lt;li&gt;Emacspeak-20.0 —AKA LeapDog —continues&lt;br /&gt;
the long established GNU/Emacs tradition of integrated innovation to&lt;br /&gt;
create a pleasurable computing environment for eyes-free&lt;br /&gt;
interaction.&lt;/li&gt;
&lt;li&gt;emacspeak-19.0 &amp;#x2013;AKA WorkDog&amp;#x2013; is designed to enhance&lt;br /&gt;
user productivity at work and leisure.&lt;/li&gt;
&lt;li&gt;Emacspeak-18.0 &amp;#x2013;code named&lt;br /&gt;
GoodDog&amp;#x2013; continued the Emacspeak tradition of enhancing user&lt;br /&gt;
productivity and thereby reducing total cost of&lt;br /&gt;
ownership.&lt;/li&gt;
&lt;li&gt;Emacspeak-17.0 &amp;#x2013;code named HappyDog&amp;#x2013; enhances user&lt;br /&gt;
productivity by exploiting today&#39;s evolving WWW&lt;br /&gt;
standards.&lt;/li&gt;
&lt;li&gt;Emacspeak-16.0 &amp;#x2013;code named CleverDog&amp;#x2013; the follow-up to&lt;br /&gt;
SmartDog&amp;#x2013; continued the tradition of working better, faster,&lt;br /&gt;
smarter.&lt;/li&gt;
&lt;li&gt;Emacspeak-15.0 &amp;#x2013;code named SmartDog&amp;#x2013;followed up on TopDog&lt;br /&gt;
as the next in a continuing  series of award-winning audio desktop&lt;br /&gt;
releases from  Emacspeak Inc.&lt;/li&gt;
&lt;li&gt;Emacspeak-14.0 &amp;#x2013;code named TopDog&amp;#x2013;was&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;the first release of this millennium. &lt;br /&gt;
&lt;/p&gt;&lt;ul class=&quot;org-ul&quot;&gt;&lt;li&gt;Emacspeak-13.0 &amp;#x2013;codenamed&lt;br /&gt;
YellowLab&amp;#x2013; was the closing release of the&lt;br /&gt;
20th. century.&lt;/li&gt;
&lt;li&gt;Emacspeak-12.0 &amp;#x2013;code named GoldenDog&amp;#x2013; began&lt;br /&gt;
leveraging the evolving semantic WWW to provide task-oriented speech&lt;br /&gt;
access to Webformation.&lt;/li&gt;
&lt;li&gt;Emacspeak-11.0 &amp;#x2013;code named Aster&amp;#x2013; went the&lt;br /&gt;
final step in making Linux a zero-cost Internet access solution for&lt;br /&gt;
blind and visually impaired users.&lt;/li&gt;
&lt;li&gt;Emacspeak-10.0 &amp;#x2013;(AKA&lt;br /&gt;
Emacspeak-2000) code named WonderDog&amp;#x2013; continued the tradition of&lt;br /&gt;
award-winning software releases designed to make eyes-free computing a&lt;br /&gt;
productive and pleasurable experience.&lt;/li&gt;
&lt;li&gt;Emacspeak-9.0 &amp;#x2013;(AKA&lt;br /&gt;
Emacspeak 99) code named BlackLab&amp;#x2013; continued to innovate in the areas&lt;br /&gt;
of speech interaction and interactive accessibility.&lt;/li&gt;
&lt;li&gt;Emacspeak-8.0 &amp;#x2013;(AKA Emacspeak-98++) code named BlackDog&amp;#x2013; was a major upgrade to&lt;br /&gt;
the speech output extension to Emacs.&lt;/li&gt;
&lt;li&gt;Emacspeak-95 (code named Illinois) was released as OpenSource on&lt;br /&gt;
the Internet in May 1995 as the first complete speech interface&lt;br /&gt;
to UNIX workstations. The subsequent release, Emacspeak-96 (code&lt;br /&gt;
named Egypt) made available in May 1996 provided significant&lt;br /&gt;
enhancements to the interface. Emacspeak-97 (Tennessee) went&lt;br /&gt;
further in providing a true audio desktop. Emacspeak-98&lt;br /&gt;
integrated Internetworking into all aspects of the audio desktop&lt;br /&gt;
to provide the first fully interactive speech-enabled WebTop.&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-org57e89f5&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;org57e89f5&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;8&lt;/span&gt; About Emacspeak:&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-8&quot;&gt;&lt;p&gt;Originally based at Cornell (NY) —&lt;br /&gt;
&lt;a href=&quot;http://www.cs.cornell.edu/home/raman&quot;&gt;http://www.cs.cornell.edu/home/raman&lt;/a&gt; —home to Auditory User&lt;br /&gt;
Interfaces (AUI) on the WWW,  Emacspeak is now maintained on GitHub&lt;br /&gt;
—&lt;a href=&quot;https://github.com/tvraman/emacspeak&quot;&gt;https://github.com/tvraman/emacspeak&lt;/a&gt;. The system is mirrored&lt;br /&gt;
world-wide by an international network of software archives and&lt;br /&gt;
bundled voluntarily with all major Linux distributions. On Monday,&lt;br /&gt;
April 12, 1999, Emacspeak became part of the &lt;a href=&quot;http://tvraman.github.io/emacspeak/blog/smithsonian-study.html&quot;&gt;Smithsonian&#39;s Permanent&lt;br /&gt;
Research Collection&lt;/a&gt; on Information Technology at the Smithsonian&#39;s&lt;br /&gt;
National Museum of American History.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;The Emacspeak mailing list is archived at Vassar &amp;#x2013;the home of the&lt;br /&gt;
Emacspeak mailing list&amp;#x2013; thanks to Greg Priest-Dorman, and provides a&lt;br /&gt;
valuable knowledge base for new users.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-orgffc8bbd&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;orgffc8bbd&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;9&lt;/span&gt; Press/Analyst Contact: Tilden Labrador&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-9&quot;&gt;&lt;p&gt;Going forward, Tilden acknowledges his exclusive monopoly on&lt;br /&gt;
setting the direction of the Emacspeak Audio Desktop, and&lt;br /&gt;
promises to exercise this freedom to innovate and her resulting&lt;br /&gt;
power responsibly (as before) in the interest of all dogs.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;*About This Release:&lt;br /&gt;
&lt;/p&gt;&lt;hr  /&gt;&lt;br /&gt;
&lt;p&gt;Windows-Free (WF) is a favorite battle-cry of The League Against&lt;br /&gt;
Forced Fenestration (LAFF).  &amp;#x2013;see&lt;br /&gt;
&lt;a href=&quot;http://www.usdoj.gov/atr/cases/f3800/msjudgex.htm&quot;&gt;http://www.usdoj.gov/atr/cases/f3800/msjudgex.htm&lt;/a&gt; for details on&lt;br /&gt;
the ill-effects of Forced Fenestration.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;CopyWrite )C( Aster, Hubbell and Tilden Labrador. All Writes Reserved.&lt;br /&gt;
HeadDog (DM), LiveDog (DM), GoldenDog (DM), BlackDog (DM) etc., are Registered&lt;br /&gt;
Dogmarks of Aster,  Hubbell  and Tilden Labrador.  All other dogs belong to&lt;br /&gt;
their respective owners.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/5460777600046934416'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/5460777600046934416'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2016/11/emacspeak-450-idealdog-unleashed.html' title='Emacspeak 45.0 (IdealDog) Unleashed!'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-6159575909849664627</id><published>2016-04-30T10:51:00.000-07:00</published><updated>2016-04-30T10:51:00.652-07:00</updated><title type='text'>Emacspeak 44.0 (SteadyDog) Unleashed</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;br /&gt;
&lt;div id=&quot;content&quot;&gt;&lt;h1 class=&quot;title&quot;&gt;Emacspeak 44.0—SteadyDog—Unleashed!&lt;/h1&gt;&lt;p&gt;&lt;b&gt;For Immediate Release:&lt;/b&gt;&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;San Jose, Calif., (May 1, 2016)&lt;br /&gt;
    Emacspeak:  Redefining Accessibility In The Era Of (Real)Intelligent  Computing &lt;br /&gt;
    &amp;#x2013;Zero cost of Ownership  makes priceless software Universally affordable!&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Emacspeak Inc (NASDOG: ESPK) --&lt;a href=&quot;http://emacspeak.sf.net&quot;&gt;http://emacspeak.sf.net&lt;/a&gt;&amp;#x2013; announces the&lt;br /&gt;
immediate world-wide availability of &lt;a href=&quot;https://github.com/tvraman/emacspeak/releases/download/44.0/emacspeak-44.0.tar.bz2&quot;&gt;Emacspeak 44.0&lt;/a&gt; (SteadyDog) &amp;#x2013;a&lt;br /&gt;
powerful audio desktop for leveraging today&#39;s evolving data, social&lt;br /&gt;
and service-oriented Internet cloud.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-orgheadline1&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;orgheadline1&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;1&lt;/span&gt; Investors Note:&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-1&quot;&gt;&lt;p&gt;With several prominent tweeters expanding coverage of&lt;br /&gt;
&lt;span class=&quot;underline&quot;&gt;#emacspeak&lt;/span&gt;, NASDOG: ESPK has now been consistently trading over&lt;br /&gt;
the social net at levels close to that once attained by DogCom&lt;br /&gt;
high-fliers—and as of May 2016 is trading at levels close to&lt;br /&gt;
that achieved by once better known stocks in the tech sector.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-orgheadline2&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;orgheadline2&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;2&lt;/span&gt; What Is It?&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-2&quot;&gt;&lt;p&gt;Emacspeak is a fully functional audio desktop that provides complete&lt;br /&gt;
eyes-free access to all major 32 and 64 bit operating environments. By&lt;br /&gt;
seamlessly blending live access to all aspects of the Internet such as&lt;br /&gt;
Web-surfing, blogging, social computing and electronic messaging into&lt;br /&gt;
the audio desktop, Emacspeak enables speech access to local and remote&lt;br /&gt;
information with a consistent and well-integrated user interface. A&lt;br /&gt;
rich suite of task-oriented tools provides efficient speech-enabled&lt;br /&gt;
access to the evolving service-oriented social Internet cloud.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-orgheadline3&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;orgheadline3&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;3&lt;/span&gt; Major Enhancements:&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-3&quot;&gt;&lt;ul class=&quot;org-ul&quot;&gt;&lt;li&gt;Enable playing multiple media streams using &lt;b&gt;mplayer&lt;/b&gt;. 🔊&lt;/li&gt;
&lt;li&gt;Smart Ladspa effects in &lt;b&gt;mplayer&lt;/b&gt;,  including panning.  🕪&lt;/li&gt;
&lt;li&gt;Sound theme &lt;b&gt;chimes&lt;/b&gt; has been spatialized to create theme &lt;b&gt;pan-chimes&lt;/b&gt;.  🕭-&lt;/li&gt;
&lt;li&gt;Package &lt;b&gt;elpy&lt;/b&gt; has been speech-enabled.  🐍&lt;/li&gt;
&lt;li&gt;Emacspeak now implements automatic soundscapes. 🏙&lt;/li&gt;
&lt;li&gt;Speech-enables package &lt;code&gt;helm&lt;/code&gt;.𝍎&lt;/li&gt;
&lt;li&gt;Emacs EWW: Consume Web content efficiently.   🕷&lt;/li&gt;
&lt;li&gt;Updated Info manual 🕮&lt;/li&gt;
&lt;li&gt;emacspeak-url-templates: Smart Web access.  ♅&lt;/li&gt;
&lt;li&gt;emacspeak-websearch.el Find things fast. ♁&lt;/li&gt;
&lt;li&gt;And a lot more than wil fit this margin. …&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-orgheadline4&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;orgheadline4&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;4&lt;/span&gt; Establishing Liberty, Equality And Freedom:&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-4&quot;&gt;&lt;p&gt;  Never a toy system, Emacspeak is voluntarily bundled with all&lt;br /&gt;
major Linux distributions. Though designed to be modular,&lt;br /&gt;
distributors have freely chosen to bundle the fully integrated&lt;br /&gt;
system without any undue pressure—a documented success for&lt;br /&gt;
the integrated innovation embodied by Emacspeak. As the system&lt;br /&gt;
evolves, both upgrades and downgrades continue to be available at&lt;br /&gt;
the same zero-cost to all users. The integrity of the Emacspeak&lt;br /&gt;
codebase is ensured by the reliable and secure Linux platform&lt;br /&gt;
used to develop and distribute the software.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Extensive studies have shown that thanks to these features, users&lt;br /&gt;
consider Emacspeak to be absolutely priceless. Thanks to this&lt;br /&gt;
wide-spread user demand, the present version remains   priceless&lt;br /&gt;
as ever—it is being made available at the same zero-cost as&lt;br /&gt;
previous releases.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;At the same time, Emacspeak continues to innovate in the area of&lt;br /&gt;
eyes-free social interaction and carries forward the&lt;br /&gt;
well-established Open Source tradition of introducing user&lt;br /&gt;
interface features that eventually show up in luser environments.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;On this theme, when once challenged by a proponent of a crash-prone&lt;br /&gt;
but well-marketed mousetrap with the assertion &quot;Emacs is a system from&lt;br /&gt;
the 70&#39;s&quot;, the creator of Emacspeak evinced surprise at the unusual&lt;br /&gt;
candor manifest in the assertion that it would take popular&lt;br /&gt;
idiot-proven interfaces until the year 2070 to catch up to where the&lt;br /&gt;
Emacspeak audio desktop is today. Industry experts welcomed this&lt;br /&gt;
refreshing breath of Courage Certainty and Clarity (CCC) at a time&lt;br /&gt;
when users are reeling from the Fear Uncertainty and Doubt (FUD)&lt;br /&gt;
unleashed by complex software systems backed by even more convoluted&lt;br /&gt;
press releases.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-orgheadline6&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;orgheadline6&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;5&lt;/span&gt; Independent Test Results:&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-5&quot;&gt;&lt;p&gt;Independent test results have proven that unlike some modern (and&lt;br /&gt;
not so modern) software, Emacspeak can be safely uninstalled without&lt;br /&gt;
adversely affecting the continued performance of the computer. These&lt;br /&gt;
same tests also revealed that once uninstalled, the user stopped&lt;br /&gt;
functioning altogether. Speaking with Aster Labrador, the creator of&lt;br /&gt;
Emacspeak once pointed out that these results re-emphasize the&lt;br /&gt;
user-centric design of Emacspeak; &quot;It is the user &amp;#x2013;and not the&lt;br /&gt;
computer&amp;#x2013; that stops functioning when Emacspeak is uninstalled!&quot;.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-orgheadline5&quot; class=&quot;outline-3&quot;&gt;&lt;h3 id=&quot;orgheadline5&quot;&gt;&lt;span class=&quot;section-number-3&quot;&gt;5.1&lt;/span&gt; Note from Aster,Bubbles and Tilden:&lt;/h3&gt;&lt;div class=&quot;outline-text-3&quot; id=&quot;text-5-1&quot;&gt;&lt;p&gt;UnDoctored Videos Inc. is looking for volunteers to star in a&lt;br /&gt;
video demonstrating such complete user failure.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-orgheadline7&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;orgheadline7&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;6&lt;/span&gt; Obtaining Emacspeak:&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-6&quot;&gt;&lt;p&gt;Emacspeak can be downloaded from GitHub &amp;#x2013;see&lt;br /&gt;
&lt;a href=&quot;https://github.com/tvraman/emacspeak&quot;&gt;https://github.com/tvraman/emacspeak&lt;/a&gt; you can visit Emacspeak on the&lt;br /&gt;
WWW at &lt;a href=&quot;http://emacspeak.sf.net&quot;&gt;http://emacspeak.sf.net&lt;/a&gt;. You can subscribe to the emacspeak&lt;br /&gt;
mailing list — emacspeak@cs.vassar.edu — by sending mail to the&lt;br /&gt;
list request address emacspeak-request@cs.vassar.edu. The &lt;a href=&quot;http://emacspeak.blogspot.com&quot;&gt;Emacspeak&lt;br /&gt;
Blog&lt;/a&gt; is a good source for news about recent enhancements and how to&lt;br /&gt;
use them.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;The latest development snapshot of Emacspeak is always available via&lt;br /&gt;
Git  from GitHub  at &lt;br /&gt;
&lt;a href=&quot;https://github.com/tvraman/emacspeak&quot;&gt;Emacspeak GitHub &lt;/a&gt;.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-orgheadline8&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;orgheadline8&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;7&lt;/span&gt; History:&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-7&quot;&gt;&lt;ul class=&quot;org-ul&quot;&gt;&lt;li&gt;Emacspeak 44.0 continues the steady pace of innovation on the&lt;br /&gt;
audio desktop.&lt;/li&gt;
&lt;li&gt;Emacspeak  43.0 brings even more end-user efficiency by leveraging the&lt;br /&gt;
ability to spatially place multiple audio streams to provide timely&lt;br /&gt;
auditory feedback.&lt;/li&gt;
&lt;li&gt;Emacspeak 42.0 while moving to GitHub from Google Code continues to&lt;br /&gt;
innovate in the areas of auditory user interfaces and efficient,&lt;br /&gt;
light-weight Internet access.&lt;/li&gt;
&lt;li&gt;Emacspeak 41.0 continues to improve &lt;br /&gt;
on  the desire to provide not just equal, but superior access —&lt;br /&gt;
technology when correctly implemented can significantly enhance the&lt;br /&gt;
human ability.&lt;/li&gt;
&lt;li&gt;Emacspeak 40.0 goes back to Web basics by enabling&lt;br /&gt;
&lt;a href=&quot;http://emacspeak.blogspot.com/2013/11/reading-web-content-efficiently.html&quot;&gt;efficient access&lt;/a&gt; to large amounts of readable Web content.&lt;/li&gt;
&lt;li&gt;Emacspeak 39.0 continues the Emacspeak tradition of increasing the breadth of&lt;br /&gt;
user tasks that are covered without introducing unnecessary&lt;br /&gt;
bloatware.&lt;/li&gt;
&lt;li&gt;Emacspeak 38.0 is the latest in a series of award-winning&lt;br /&gt;
releases from Emacspeak Inc.&lt;/li&gt;
&lt;li&gt;Emacspeak 37.0 continues the tradition of&lt;br /&gt;
delivering robust software as reflected by its code-name.&lt;/li&gt;
&lt;li&gt;Emacspeak 36.0 enhances the audio desktop with many new tools including full&lt;br /&gt;
EPub support — hence the name EPubDog.&lt;/li&gt;
&lt;li&gt;Emacspeak 35.0 is all about&lt;br /&gt;
teaching a new dog old tricks — and is aptly code-named HeadDog in&lt;br /&gt;
on  of our new Press/Analyst contact. emacspeak-34.0 (AKA Bubbles)&lt;br /&gt;
established a new beach-head with respect to rapid task completion in&lt;br /&gt;
an eyes-free environment.&lt;/li&gt;
&lt;li&gt;Emacspeak-33.0 AKA StarDog brings&lt;br /&gt;
unparalleled cloud access to the audio desktop.&lt;/li&gt;
&lt;li&gt;Emacspeak 32.0 AKA&lt;br /&gt;
LuckyDog continues to innovate via open technologies for better&lt;br /&gt;
access.&lt;/li&gt;
&lt;li&gt;Emacspeak 31.0 AKA TweetDog — adds tweeting to the Emacspeak&lt;br /&gt;
desktop.&lt;/li&gt;
&lt;li&gt;Emacspeak 30.0 AKA SocialDog brings the Social Web to the&lt;br /&gt;
audio desktop—you cant but be social if you speak!&lt;/li&gt;
&lt;li&gt;Emacspeak 29.0—AKAAbleDog—is a testament to the resilliance and innovation&lt;br /&gt;
embodied by Open Source software—it would not exist without the&lt;br /&gt;
thriving Emacs community that continues to ensure that Emacs remains&lt;br /&gt;
one of the premier user environments despite perhaps also being one of&lt;br /&gt;
the oldest.&lt;/li&gt;
&lt;li&gt;Emacspeak 28.0—AKA PuppyDog—exemplifies the rapid pace of&lt;br /&gt;
development evinced by Open Source software.&lt;/li&gt;
&lt;li&gt;Emacspeak 27.0—AKA&lt;br /&gt;
FastDog—is the latest in a sequence of upgrades that make previous&lt;br /&gt;
releases obsolete and downgrades unnecessary.&lt;/li&gt;
&lt;li&gt;Emacspeak 26—AKA&lt;br /&gt;
LeadDog—continues the tradition of introducing innovative access&lt;br /&gt;
solutions that are unfettered by the constraints inherent in&lt;br /&gt;
traditional adaptive technologies.&lt;/li&gt;
&lt;li&gt;Emacspeak 25 —AKA ActiveDog&lt;br /&gt;
—re-activates open, unfettered access to online&lt;br /&gt;
information.&lt;/li&gt;
&lt;li&gt;Emacspeak-Alive —AKA LiveDog —enlivens open, unfettered&lt;br /&gt;
information access with a series of live updates that once again&lt;br /&gt;
demonstrate the power and agility of open source software&lt;br /&gt;
development.&lt;/li&gt;
&lt;li&gt;Emacspeak 23.0 &amp;#x2013; AKA Retriever—went the extra mile in&lt;br /&gt;
fetching full access.&lt;/li&gt;
&lt;li&gt;Emacspeak 22.0 —AKA GuideDog —helps users&lt;br /&gt;
navigate the Web more effectively than ever before.&lt;/li&gt;
&lt;li&gt;Emacspeak 21.0&lt;br /&gt;
—AKA PlayDog —continued the &lt;br /&gt;
Emacspeak tradition of relying on enhanced&lt;br /&gt;
productivity to liberate users.&lt;/li&gt;
&lt;li&gt;Emacspeak-20.0 —AKA LeapDog —continues&lt;br /&gt;
the long established GNU/Emacs tradition of integrated innovation to&lt;br /&gt;
create a pleasurable computing environment for eyes-free&lt;br /&gt;
interaction.&lt;/li&gt;
&lt;li&gt;emacspeak-19.0 &amp;#x2013;AKA WorkDog&amp;#x2013; is designed to enhance&lt;br /&gt;
user productivity at work and leisure.&lt;/li&gt;
&lt;li&gt;Emacspeak-18.0 &amp;#x2013;code named&lt;br /&gt;
GoodDog&amp;#x2013; continued the Emacspeak tradition of enhancing user&lt;br /&gt;
productivity and thereby reducing total cost of&lt;br /&gt;
ownership.&lt;/li&gt;
&lt;li&gt;Emacspeak-17.0 &amp;#x2013;code named HappyDog&amp;#x2013; enhances user&lt;br /&gt;
productivity by exploiting today&#39;s evolving WWW&lt;br /&gt;
standards.&lt;/li&gt;
&lt;li&gt;Emacspeak-16.0 &amp;#x2013;code named CleverDog&amp;#x2013; the follow-up to&lt;br /&gt;
SmartDog&amp;#x2013; continued the tradition of working better, faster,&lt;br /&gt;
smarter.&lt;/li&gt;
&lt;li&gt;Emacspeak-15.0 &amp;#x2013;code named SmartDog&amp;#x2013;followed up on TopDog&lt;br /&gt;
as the next in a continuing  series of award-winning audio desktop&lt;br /&gt;
releases from  Emacspeak Inc.&lt;/li&gt;
&lt;li&gt;Emacspeak-14.0 &amp;#x2013;code named TopDog&amp;#x2013;was&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;the first release of this millennium. &lt;br /&gt;
&lt;/p&gt;&lt;ul class=&quot;org-ul&quot;&gt;&lt;li&gt;Emacspeak-13.0 &amp;#x2013;codenamed&lt;br /&gt;
YellowLab&amp;#x2013; was the closing release of the&lt;br /&gt;
20th. century.&lt;/li&gt;
&lt;li&gt;Emacspeak-12.0 &amp;#x2013;code named GoldenDog&amp;#x2013; began&lt;br /&gt;
leveraging the evolving semantic WWW to provide task-oriented speech&lt;br /&gt;
access to Webformation.&lt;/li&gt;
&lt;li&gt;Emacspeak-11.0 &amp;#x2013;code named Aster&amp;#x2013; went the&lt;br /&gt;
final step in making Linux a zero-cost Internet access solution for&lt;br /&gt;
blind and visually impaired users.&lt;/li&gt;
&lt;li&gt;Emacspeak-10.0 &amp;#x2013;(AKA&lt;br /&gt;
Emacspeak-2000) code named WonderDog&amp;#x2013; continued the tradition of&lt;br /&gt;
award-winning software releases designed to make eyes-free computing a&lt;br /&gt;
productive and pleasurable experience.&lt;/li&gt;
&lt;li&gt;Emacspeak-9.0 &amp;#x2013;(AKA&lt;br /&gt;
Emacspeak 99) code named BlackLab&amp;#x2013; continued to innovate in the areas&lt;br /&gt;
of speech interaction and interactive accessibility.&lt;/li&gt;
&lt;li&gt;Emacspeak-8.0 &amp;#x2013;(AKA Emacspeak-98++) code named BlackDog&amp;#x2013; was a major upgrade to&lt;br /&gt;
the speech output extension to Emacs.&lt;/li&gt;
&lt;li&gt;Emacspeak-95 (code named Illinois) was released as OpenSource on&lt;br /&gt;
the Internet in May 1995 as the first complete speech interface&lt;br /&gt;
to UNIX workstations. The subsequent release, Emacspeak-96 (code&lt;br /&gt;
named Egypt) made available in May 1996 provided significant&lt;br /&gt;
enhancements to the interface. Emacspeak-97 (Tennessee) went&lt;br /&gt;
further in providing a true audio desktop. Emacspeak-98&lt;br /&gt;
integrated Internetworking into all aspects of the audio desktop&lt;br /&gt;
to provide the first fully interactive speech-enabled WebTop.&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-orgheadline9&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;orgheadline9&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;8&lt;/span&gt; About Emacspeak:&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-8&quot;&gt;&lt;p&gt;Originally based at Cornell (NY) —&lt;br /&gt;
&lt;a href=&quot;http://www.cs.cornell.edu/home/raman&quot;&gt;http://www.cs.cornell.edu/home/raman&lt;/a&gt; —home to Auditory User&lt;br /&gt;
Interfaces (AUI) on the WWW, - Emacspeak is now maintained on GitHub&lt;br /&gt;
—&lt;a href=&quot;https://github.com/tvraman/emacspeak&quot;&gt;https://github.com/tvraman/emacspeak&lt;/a&gt;. The system is mirrored&lt;br /&gt;
world-wide by an international network of software archives and&lt;br /&gt;
bundled voluntarily with all major Linux distributions. On Monday,&lt;br /&gt;
April 12, 1999, Emacspeak became part of the &lt;a href=&quot;http://tvraman.github.io/emacspeak/blog/smithsonian-study.html&quot;&gt;Smithsonian&#39;s Permanent&lt;br /&gt;
Research Collection&lt;/a&gt; on Information Technology at the Smithsonian&#39;s&lt;br /&gt;
National Museum of American History.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;The Emacspeak mailing list is archived at Vassar &amp;#x2013;the home of the&lt;br /&gt;
Emacspeak mailing list&amp;#x2013; thanks to Greg Priest-Dorman, and provides a&lt;br /&gt;
valuable knowledge base for new users.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-orgheadline10&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;orgheadline10&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;9&lt;/span&gt; Press/Analyst Contact: Tilden Labrador&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-9&quot;&gt;&lt;p&gt;Going forward, Tilden acknowledges his exclusive monopoly on&lt;br /&gt;
setting the direction of the Emacspeak Audio Desktop, and&lt;br /&gt;
promises to exercise this freedom to innovate and her resulting&lt;br /&gt;
power responsibly (as before) in the interest of all dogs.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;*About This Release:&lt;br /&gt;
&lt;/p&gt;&lt;hr  /&gt;&lt;br /&gt;
&lt;p&gt;Windows-Free (WF) is a favorite battle-cry of The League Against&lt;br /&gt;
Forced Fenestration (LAFF).  &amp;#x2013;see&lt;br /&gt;
&lt;a href=&quot;http://www.usdoj.gov/atr/cases/f3800/msjudgex.htm&quot;&gt;http://www.usdoj.gov/atr/cases/f3800/msjudgex.htm&lt;/a&gt; for details on&lt;br /&gt;
the ill-effects of Forced Fenestration.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;CopyWrite )C( Aster, Hubbell and Tilden Labrador. All Writes Reserved.&lt;br /&gt;
HeadDog (DM), LiveDog (DM), GoldenDog (DM), BlackDog (DM) etc., are Registered&lt;br /&gt;
Dogmarks of Aster,  Hubbell  and Tilden Labrador.  All other dogs belong to&lt;br /&gt;
their respective owners.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/6159575909849664627'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/6159575909849664627'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2016/04/emacspeak-440-steadydog-unleashed.html' title='Emacspeak 44.0 (SteadyDog) Unleashed'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-8485619754252778620</id><published>2016-02-25T17:56:00.001-08:00</published><updated>2016-02-25T17:56:25.651-08:00</updated><title type='text'>Augmented Headphone Listening On Linux For The Emacspeak Audio Desktop</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div id=&quot;content&quot;&gt;&lt;h1 class=&quot;title&quot;&gt;Augmented Headphone Listening On Linux For The Emacspeak Audio Desktop&lt;/h1&gt;&lt;div id=&quot;outline-container-orgheadline1&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;orgheadline1&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;1&lt;/span&gt; Executive Summary&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-1&quot;&gt;&lt;p&gt;A combination of &lt;b&gt;ALSA&lt;/b&gt;, &lt;b&gt;Ladspa&lt;/b&gt; and &lt;b&gt;OpenAL&lt;/b&gt; can provide an enhanced&lt;br /&gt;
headphone listening experience on Linux &amp;#x2014;  this article summarizes&lt;br /&gt;
various tools and techniques for leveraging these affordances on the&lt;br /&gt;
Emacspeak Audio Desktop.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-orgheadline2&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;orgheadline2&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;2&lt;/span&gt; Glossary&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-2&quot;&gt;&lt;dl class=&quot;org-dl&quot;&gt;&lt;dt&gt;ALSA&lt;/dt&gt;&lt;dd&gt;Advanced Linux Sound Architecture. This is my  prefered
means of controlling audio, and I entirely avoid Pulseaudio on
all my machines.&lt;/dd&gt;
&lt;dt&gt;Ladspa &lt;/dt&gt;&lt;dd&gt;Linux Audio Developer&#39;s Simple Plugin API. Enables
the injection of Digital Signal Processing (DSP)  when playing
media. It is a layer that sits above &lt;b&gt;ALSA&lt;/b&gt;. &lt;b&gt;Ladspa&lt;/b&gt; filters
can be  used by  user-space applications like &lt;b&gt;MPlayer&lt;/b&gt; and
&lt;b&gt;SoX&lt;/b&gt; when playing media. They can also be used  within the
user&#39;s &lt;b&gt;ASoundRC&lt;/b&gt; to define virtual audio devices that inject
DSP plugins into the media stream.&lt;/dd&gt;
&lt;dt&gt;OpenAL&lt;/dt&gt;&lt;dd&gt;OpenAL is an API for enabling cross-platform 3D
audio. User-space applications like &lt;b&gt;MPlayer&lt;/b&gt; can use OpenAL as
the audio output driver &amp;#x2014; note that OpenAL on Linux writes to
&lt;b&gt;ALSA&lt;/b&gt; under the covers.&lt;/dd&gt;
&lt;/dl&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-orgheadline3&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;orgheadline3&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;3&lt;/span&gt; Playing Media Using MPlayer&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-3&quot;&gt;&lt;ol class=&quot;org-ol&quot;&gt;&lt;li&gt;With Ladspa and its associated plugins installed &amp;#x2014; at the minimum&lt;br /&gt;
I would recommend installing &lt;code&gt;tap-plugins&lt;/code&gt;, module&lt;br /&gt;
&lt;code&gt;emacspeak-m-player&lt;/code&gt; provides a number of affordances for&lt;br /&gt;
interactively applying Ladspa filters. See commands&lt;br /&gt;
&lt;span class=&quot;underline&quot;&gt;emacspeak-m-player-apply-reverb-preset_(bound to _P&lt;/span&gt; in &lt;code&gt;M-Player&lt;/code&gt;)&lt;br /&gt;
and command &lt;span class=&quot;underline&quot;&gt;emacspeak-m-player-add-filter&lt;/span&gt; (bound to &lt;span class=&quot;underline&quot;&gt;f&lt;/span&gt; in&lt;br /&gt;
&lt;code&gt;M-Player&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Command &lt;span class=&quot;underline&quot;&gt;emacspeak-m-player-apply-reverb-preset&lt;/span&gt; lets you pick&lt;br /&gt;
among a total of 42 reverb presets defined by Ladspa module &lt;code&gt;tap_reverb&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Command &lt;span class=&quot;underline&quot;&gt;emacspeak-m-player-add-filter&lt;/span&gt; lets you add some of the&lt;br /&gt;
more commonly used Ladspa effects with smart minibuffer&lt;br /&gt;
prompts. Use tab completion to discover some of the predefined&lt;br /&gt;
filters &amp;#x2014; these are just convenience shortcuts &amp;#x2014; and you can&lt;br /&gt;
add  any filters you use commonly to this list.&lt;/li&gt;
&lt;li&gt;Note that &lt;code&gt;mplayer&lt;/code&gt; also has its own&lt;br /&gt;
HRTF filter, but that  filter requires that the stream being played is&lt;br /&gt;
a 48K stream.&lt;/li&gt;
&lt;li&gt;Command &lt;span class=&quot;underline&quot;&gt;emacspeak-m-player-using-openal&lt;/span&gt; bound by default to&lt;br /&gt;
&lt;span class=&quot;underline&quot;&gt;Hyper ;&lt;/span&gt; launches &lt;code&gt;mplayer&lt;/code&gt; with &lt;span class=&quot;underline&quot;&gt;OpenAL&lt;/span&gt; as the audio output&lt;br /&gt;
driver &amp;#x2014; adding  the following line&lt;/li&gt;
&lt;/ol&gt;&lt;p&gt;to your _~/.alsoftrc~ file will apply a suitable  HRTF filter for&lt;br /&gt;
augmented headphone listening. &lt;br /&gt;
&lt;/p&gt;&lt;pre class=&quot;example&quot;&gt;hrtf=true
&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-orgheadline4&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;orgheadline4&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;4&lt;/span&gt; Defining Virtual Audio Devices For Use With Soundscapes&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-4&quot;&gt;&lt;p&gt;I use soundscapes to provide a pleasant auditory background as I work&lt;br /&gt;
&amp;#x2014; see earlier blog article that describes &lt;a href=&quot;http://emacspeak.blogspot.com/2015/12/soundscapes-on-emacspeak-audio-desktop.html&quot;&gt;Soundscapes On The&lt;br /&gt;
Emacspeak Audio Desktop&lt;/a&gt;. Defining virtual ALSA devices that inject&lt;br /&gt;
Ladspa plugins into the output processing chain is an elegant means&lt;br /&gt;
for enhancing the auditory experience provided by these&lt;br /&gt;
soundscapes. In this instance, I apply one of the predefined reverb&lt;br /&gt;
effects (Ambiance) from Ladspa module &lt;code&gt;tap-plugins&lt;/code&gt; and pass the&lt;br /&gt;
results through a BS2B (Bauer Stereo To Binaural) filter &amp;#x2014; see file&lt;br /&gt;
&lt;a href=&quot;https://github.com/tvraman/emacspeak/blob/master/scapes/ladspa-asoundrc&quot;&gt;scapes/ladspa-asoundrc&lt;/a&gt; in the emacspeak Github Repo. Notice that that&lt;br /&gt;
file defines a number of virtual audio devices and can serve as a&lt;br /&gt;
template for injecting any installed Ladspa plugins &amp;#x2014; you can first&lt;br /&gt;
experiment with filters using Emacspeak&#39;s  &lt;a href=&quot;http://emacspeak.blogspot.com/2015/12/a-ladspa-work-bench-for-emacspeak.html&quot;&gt;Laudible&lt;/a&gt; module to find&lt;br /&gt;
settings that work for you before applying them via a virtual device&lt;br /&gt;
defined in your &lt;code&gt;asoundrc&lt;/code&gt; file. Finally, you can customize option&lt;br /&gt;
&lt;code&gt;soundscape-manager-options&lt;/code&gt;  to add &lt;span class=&quot;underline&quot;&gt;&amp;#x2013;device &amp;lt;devicename&amp;gt;&lt;/span&gt; to have&lt;br /&gt;
the soundscapes use the desired virtual device.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div id=&quot;outline-container-orgheadline5&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;orgheadline5&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;5&lt;/span&gt; Summary&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-5&quot;&gt;&lt;p&gt;Laptops today have plenty of processing power and some really nice&lt;br /&gt;
audio hardware.  Linux has a powerful audio processing stack in ALSA,&lt;br /&gt;
Ladspa and OpenAL. Connecting the dots can be fun and provide an&lt;br /&gt;
enhanced auditory environment.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div id=&quot;postamble&quot; class=&quot;status&quot;&gt;&lt;p class=&quot;date&quot;&gt;Date: &lt;span class=&quot;timestamp-wrapper&quot;&gt;&lt;span class=&quot;timestamp&quot;&gt;&amp;lt;2016-02-25 Thu&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;author&quot;&gt;Author: raman&lt;/p&gt;&lt;p class=&quot;date&quot;&gt;Created: 2016-02-25 Thu 17:47&lt;/p&gt;&lt;p class=&quot;validation&quot;&gt;&lt;a href=&quot;http://validator.w3.org/check?uri=referer&quot;&gt;Validate&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/8485619754252778620'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/8485619754252778620'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2016/02/augmented-headphone-listening-on-linux.html' title='Augmented Headphone Listening On Linux For The Emacspeak Audio Desktop'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-1743443909224540427</id><published>2015-12-18T11:07:00.004-08:00</published><updated>2015-12-18T11:07:51.853-08:00</updated><title type='text'>Soundscapes On The Emacspeak Audio Desktop</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div id=&quot;content&quot;&gt;&lt;h1 class=&quot;title&quot;&gt;Soundscapes On The Emacspeak Audio Desktop&lt;/h1&gt;&lt;div id=&quot;outline-container-orgheadline1&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;orgheadline1&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;1&lt;/span&gt; Executive Summary&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-1&quot;&gt;&lt;p&gt;Emacspeak module &lt;a href=&quot;http://tvraman.github.io/emacspeak/manual/soundscape.html&quot;&gt;soundscape&lt;/a&gt; adds the ability to automatically switch&lt;br /&gt;
&lt;b&gt;Soundscapes&lt;/b&gt; based on the current buffer. A &lt;b&gt;Soundscape&lt;/b&gt; can be any&lt;br /&gt;
continuously playing stream of audio; in practice, using nature sounds&lt;br /&gt;
that repeat softly in a pseudo-random manner appears to be&lt;br /&gt;
effective. Soundscapes are activated based on the currently active&lt;br /&gt;
&lt;i&gt;Emacs Major Mode&lt;/i&gt; and as a consequence directly mirror the user&#39;s&lt;br /&gt;
current activity. The present implementation uses Python package&lt;br /&gt;
&lt;a href=&quot;http://boodler.org/&quot;&gt;Boodler&lt;/a&gt; to generate soundscapes.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-orgheadline2&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;orgheadline2&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;2&lt;/span&gt; Usage&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-2&quot;&gt;&lt;p&gt;Note that package &lt;code&gt;soundscape.el&lt;/code&gt; does not have any Emacspeak&lt;br /&gt;
dependencies. See the &lt;a href=&quot;http://tvraman.github.io/emacspeak/manual/soundscape&quot;&gt;package documentation&lt;/a&gt; for details on installing&lt;br /&gt;
and configuring &lt;a href=&quot;http://boodler.org/&quot;&gt;Boodler&lt;/a&gt;. &lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;You can experiment with installed Boodler agents using command&lt;br /&gt;
&lt;code&gt;soundscape&lt;/code&gt; and &lt;code&gt;soundscape-stop&lt;/code&gt;. You can enable and disable&lt;br /&gt;
&lt;i&gt;automatic soundscapes&lt;/i&gt; using command &lt;code&gt;soundscape-toggle&lt;/code&gt;. The&lt;br /&gt;
currently active default Soundscape theme can be inspected via command&lt;br /&gt;
&lt;code&gt;soundscape-display&lt;/code&gt; &amp;#x2014; this produces a buffer that lists the&lt;br /&gt;
currently defined /major-mode -&amp;gt; Soundscape mapping. &lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Package &lt;code&gt;soundscape.el&lt;/code&gt; considers the inheritance relationship among&lt;br /&gt;
Emacs major-modes when computing the set of &lt;i&gt;soundscapes&lt;/i&gt; to&lt;br /&gt;
activate.As an example, &lt;span class=&quot;underline&quot;&gt;eww-mode&lt;/span&gt; inherits from &lt;span class=&quot;underline&quot;&gt;special-mode&lt;/span&gt; &amp;#x2014; as&lt;br /&gt;
a consequence, two soundscapes (&lt;i&gt;LightWind&lt;/i&gt; and &lt;i&gt;BackgroundWaves&lt;/i&gt;)&lt;br /&gt;
become active when reading Web content.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-orgheadline3&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;orgheadline3&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;3&lt;/span&gt; Default Major-Mode-&amp;gt;Soundscape (Mood) Mapping:&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-3&quot;&gt;&lt;p&gt;Here is a table showing the mapping of major-mmodes to Soundscape&lt;br /&gt;
moods at the time of writing. For readability, I have stripped out the&lt;br /&gt;
&lt;span class=&quot;underline&quot;&gt;package-name&lt;/span&gt; for these soundscapes.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;table border=&quot;2&quot; cellspacing=&quot;0&quot; cellpadding=&quot;6&quot; rules=&quot;groups&quot; frame=&quot;hsides&quot;&gt;

&lt;colgroup&gt;
&lt;col  class=&quot;org-left&quot; /&gt;

&lt;col  class=&quot;org-left&quot; /&gt;
&lt;/colgroup&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td class=&quot;org-left&quot;&gt;Soundscape (Mood)&lt;/td&gt;
&lt;td class=&quot;org-left&quot;&gt;List Of Major Modes&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td class=&quot;org-left&quot;&gt;BuddhaLoop&lt;/td&gt;
&lt;td class=&quot;org-left&quot;&gt;fundamental&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td class=&quot;org-left&quot;&gt;LightStorm&lt;/td&gt;
&lt;td class=&quot;org-left&quot;&gt;special&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td class=&quot;org-left&quot;&gt;RainForever&lt;/td&gt;
&lt;td class=&quot;org-left&quot;&gt;Info help Man Custom messages-buffer&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td class=&quot;org-left&quot;&gt;LightWind&lt;/td&gt;
&lt;td class=&quot;org-left&quot;&gt;comint elfeed-search&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td class=&quot;org-left&quot;&gt;TonkSpace&lt;/td&gt;
&lt;td class=&quot;org-left&quot;&gt;tabulated-list&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td class=&quot;org-left&quot;&gt;Cavern&lt;/td&gt;
&lt;td class=&quot;org-left&quot;&gt;prog&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td class=&quot;org-left&quot;&gt;Drip&lt;/td&gt;
&lt;td class=&quot;org-left&quot;&gt;message gnus-summary gnus-article gnus-group mspools vm-presentation vm mail twittering jabber-roster jabber-chat erc&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td class=&quot;org-left&quot;&gt;Still&lt;/td&gt;
&lt;td class=&quot;org-left&quot;&gt;text&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td class=&quot;org-left&quot;&gt;Water&lt;/td&gt;
&lt;td class=&quot;org-left&quot;&gt;dired&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td class=&quot;org-left&quot;&gt;Steady&lt;/td&gt;
&lt;td class=&quot;org-left&quot;&gt;calendar diary&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td class=&quot;org-left&quot;&gt;BackgroundWaves&lt;/td&gt;
&lt;td class=&quot;org-left&quot;&gt;w3 eww&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-orgheadline4&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;orgheadline4&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;4&lt;/span&gt; Soundscape Research&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-4&quot;&gt;&lt;p&gt;I implemented package &lt;code&gt;soundscape.el&lt;/code&gt; to create a platform that would&lt;br /&gt;
let me experiment with different tools that aid in&lt;br /&gt;
concentration. After using Soundscapes for about a week, I have also&lt;br /&gt;
found that it reduces some of the fatigue that results from having to&lt;br /&gt;
listen to synthetic text-to-speech for extended  periods.&lt;br /&gt;
The true value (if any) of this package will be a function of how heavily&lt;br /&gt;
I find myself using it six months from now &amp;#x2014; as a metric, &lt;i&gt;complete&lt;br /&gt;
success&lt;/i&gt;  might mean that in mid-2016, I still  have automatic&lt;br /&gt;
soundscapes turned on.&lt;br /&gt;
As I type this article in Emacs &lt;span class=&quot;underline&quot;&gt;org-mode&lt;/span&gt;, I hear  the sound of&lt;br /&gt;
water-drops falling softly in the background, and I take note&lt;br /&gt;
that I have not switched tasks  for the entire time I have spent&lt;br /&gt;
writing this article.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Other success metrics &amp;#x2014; harder to measure &amp;#x2014; might include how&lt;br /&gt;
effective Soundscapes are in helping the user stay focused on a&lt;br /&gt;
given activity for extended periods of time. In an ever-connected&lt;br /&gt;
world buzzing with a constant stream of distractions ranging from&lt;br /&gt;
incoming email and instant-messages to a flood of twitter updates,&lt;br /&gt;
this is likely the most relevant metric.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/1743443909224540427'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/1743443909224540427'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2015/12/soundscapes-on-emacspeak-audio-desktop.html' title='Soundscapes On The Emacspeak Audio Desktop'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-6914615005759113231</id><published>2015-12-04T20:09:00.003-08:00</published><updated>2015-12-04T20:09:41.132-08:00</updated><title type='text'>A Ladspa Work-Bench For The Emacspeak Desktop </title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div id=&quot;content&quot;&gt;&lt;h1 class=&quot;title&quot;&gt;A Ladspa Work-Bench For The Emacspeak Audio Desktop&lt;/h1&gt;&lt;div id=&quot;outline-container-orgheadline1&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;orgheadline1&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;1&lt;/span&gt; Executive Summary&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-1&quot;&gt;&lt;p&gt;Module &lt;code&gt;ladspa.el&lt;/code&gt;  in the Emacspeak GitHub repository implements a&lt;br /&gt;
high-level interface for experimenting with Ladspa Plugins using&lt;br /&gt;
&lt;code&gt;MPlayer&lt;/code&gt; and &lt;code&gt;SoX&lt;/code&gt;.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-orgheadline2&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;orgheadline2&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;2&lt;/span&gt; Module &lt;code&gt;ladspa.el&lt;/code&gt;&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-2&quot;&gt;&lt;p&gt;This  module implements the following functionality:&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;ol class=&quot;org-ol&quot;&gt;&lt;li&gt;Builds up a table of installed Ladspa plugins along with their&lt;br /&gt;
associated metadata.&lt;/li&gt;
&lt;li&gt;Command &lt;code&gt;M-x ladspa&lt;/code&gt; displays  installed Ladspa Plugins in a&lt;br /&gt;
special &lt;code&gt;*Ladspa*&lt;/code&gt; buffer.&lt;/li&gt;
&lt;li&gt;Plugins can be instantiated by pressing &lt;code&gt;RET&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Instantiating a plugin prompts for its arguments and displays the&lt;br /&gt;
instantiated plugin in a new buffer.&lt;/li&gt;
&lt;li&gt;This plugin can then be applied to a running &lt;code&gt;MPlayer&lt;/code&gt; media&lt;br /&gt;
stream by pressing &lt;code&gt;a&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The effect can be deleted by pressing &lt;code&gt;d&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Plugin parameters can be edited  by pressing &lt;code&gt;e&lt;/code&gt; with point on&lt;br /&gt;
the parameter to edit.&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-orgheadline3&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;orgheadline3&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;3&lt;/span&gt; Interfacing With SoX&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-3&quot;&gt;&lt;p&gt;Module &lt;code&gt;sox.el&lt;/code&gt; implements an &lt;b&gt;Audio Workbench&lt;/b&gt; using &lt;code&gt;SoX&lt;/code&gt;. Module&lt;br /&gt;
&lt;code&gt;ladspa.el&lt;/code&gt; integrates with that module by allowing the addition of&lt;br /&gt;
&lt;code&gt;ladspa&lt;/code&gt; as a supported SoX effect. Adding a &lt;code&gt;ladspa&lt;/code&gt; effect results&lt;br /&gt;
in a completion interface for picking one of the available Ladspa&lt;br /&gt;
plugin; once selected, that plugin then prompts for its parameters as&lt;br /&gt;
needed.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div id=&quot;postamble&quot; class=&quot;status&quot;&gt;&lt;p class=&quot;date&quot;&gt;Date: &lt;span class=&quot;timestamp-wrapper&quot;&gt;&lt;span class=&quot;timestamp&quot;&gt;&amp;lt;2015-12-04 Fri&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;author&quot;&gt;Author: raman&lt;/p&gt;&lt;p class=&quot;date&quot;&gt;Created: 2015-12-04 Fri 20:03&lt;/p&gt;&lt;p class=&quot;validation&quot;&gt;&lt;a href=&quot;http://validator.w3.org/check?uri=referer&quot;&gt;Validate&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;br /&gt;
&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/6914615005759113231'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/6914615005759113231'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2015/12/a-ladspa-work-bench-for-emacspeak.html' title='A Ladspa Work-Bench For The Emacspeak Desktop '/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-3241221996464808070</id><published>2015-11-30T17:21:00.003-08:00</published><updated>2015-11-30T17:21:56.651-08:00</updated><title type='text'>Generating Spatialized Auditory Icons Using MPlayer And Ladspa</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div id=&quot;content&quot;&gt;&lt;h1 class=&quot;title&quot;&gt;Generating Spatialized Auditory Icons Using MPlayer And Ladspa&lt;/h1&gt;&lt;div id=&quot;outline-container-orgheadline1&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;orgheadline1&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;1&lt;/span&gt; Executive Summary&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-1&quot;&gt;&lt;p&gt;The Emacspeak GitHub repository now includes a new auditory icon theme&lt;br /&gt;
&lt;code&gt;pan-chimes&lt;/code&gt; &amp;#x2014; these are the result of spatializing theme &lt;code&gt;chimes&lt;/code&gt;.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-orgheadline2&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;orgheadline2&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;2&lt;/span&gt; Fun With Ladspa, MPlayer and Library &lt;code&gt;tap-plugins&lt;/code&gt;&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-2&quot;&gt;&lt;p&gt;Here is the result of some fun with MPlayer and Ladspa over the&lt;br /&gt;
Thanksgiving weekend. Package &lt;code&gt;tap-plugins&lt;/code&gt; provides a number of&lt;br /&gt;
interesting Ladspa plugins; one of these, &lt;code&gt;tap_reverb&lt;/code&gt; is used in&lt;br /&gt;
module &lt;code&gt;emacspeak-m-player&lt;/code&gt; to provide a variety of predefined&lt;br /&gt;
effects.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Library &lt;code&gt;tap-plugins&lt;/code&gt; also includes Ladspa filter &lt;code&gt;tap_autopan&lt;/code&gt; that&lt;br /&gt;
 pans the input audio signal &amp;#x2014; see that  plugin&#39;s documentation for&lt;br /&gt;
 details.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;The Linux media player &lt;code&gt;mplayer&lt;/code&gt;  allows the injection of &lt;code&gt;ladspa&lt;br /&gt;
plugins&lt;/code&gt; in its processing chain.&lt;br /&gt;
Combining these, I have created theme &lt;code&gt;pan-chimes&lt;/code&gt; that  provides a&lt;br /&gt;
spatialized version of sound-theme &lt;code&gt;chimes&lt;/code&gt;.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;See script &lt;code&gt;apply-pan.sh&lt;/code&gt; in the Github repository to see how this new&lt;br /&gt;
theme was generated.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/3241221996464808070'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/3241221996464808070'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2015/11/generating-spatialized-auditory-icons.html' title='Generating Spatialized Auditory Icons Using MPlayer And Ladspa'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-7606050581558531435</id><published>2015-11-23T15:25:00.001-08:00</published><updated>2015-11-23T15:25:28.520-08:00</updated><title type='text'>Listening To Multiple Media Streams On The Emacspeak Audio Desktop</title><content type='html'> &lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div id=&quot;content&quot;&gt;&lt;h1 class=&quot;title&quot;&gt;Listening To Multiple Media Streams On The Emacspeak Audio Desktop&lt;/h1&gt;&lt;div id=&quot;outline-container-orgheadline1&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;orgheadline1&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;1&lt;/span&gt; Executive Summary&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-1&quot;&gt;&lt;p&gt;The GitHub version of Emacspeak now supports launching and controlling&lt;br /&gt;
multiple media streams. This enables one to listen to the news while&lt;br /&gt;
playing a music stream, or relaxing nature sounds.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-orgheadline2&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;orgheadline2&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;2&lt;/span&gt; Sample Usage&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-2&quot;&gt;&lt;p&gt;Here are some examples of using this feature:&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;ol class=&quot;org-ol&quot;&gt;&lt;li&gt;Launch your favorite news station &amp;#x2014; BBC World Service in my&lt;br /&gt;
case &amp;#x2014; &lt;span class=&quot;underline&quot;&gt;C-e ; RET&lt;/span&gt;.&lt;/li&gt;
&lt;li&gt;Place the News on the left channel &amp;#x2014; &lt;span class=&quot;underline&quot;&gt;C-e ; (&lt;/span&gt;.&lt;/li&gt;
&lt;li&gt;Persist the currently playing News stream by invoking command&lt;br /&gt;
&lt;span class=&quot;underline&quot;&gt;emacspeak-m-player-persist-stream&lt;/span&gt; bound to &lt;span class=&quot;underline&quot;&gt;C-e ; \&lt;/span&gt;. This lets&lt;br /&gt;
you launch a second stream via Emacspeak media key &lt;span class=&quot;underline&quot;&gt;C-e ;&lt;/span&gt; rather&lt;br /&gt;
than controlling the currently playing stream.&lt;/li&gt;
&lt;li&gt;Launch a classical music  media-stream  &amp;#x2014; &lt;span class=&quot;underline&quot;&gt;C-e ; lu RET&lt;/span&gt; for a lullaby&lt;br /&gt;
media stream.&lt;/li&gt;
&lt;li&gt;Now Emacspeak M-Player commands will  control the most recently&lt;br /&gt;
launched stream;  you can once again invoke command&lt;br /&gt;
&lt;span class=&quot;underline&quot;&gt;emacspeak-m-player-persist-stream&lt;/span&gt; if you  wish.&lt;/li&gt;
&lt;li&gt;The previously launched (and still playing) News stream is now in a&lt;br /&gt;
buffer named &lt;code&gt;*Persistent-...*&lt;/code&gt;. Command&lt;br /&gt;
&lt;span class=&quot;underline&quot;&gt;emacspeak-wizards-view-buffers-filtered-by-m-player-mode&lt;/span&gt; can be&lt;br /&gt;
used to list   buffers that hold a live &lt;code&gt;m-player&lt;/code&gt; instance. It is&lt;br /&gt;
bound to &lt;span class=&quot;underline&quot;&gt;b&lt;/span&gt; in &lt;code&gt;emacspeak-m-player-mode&lt;/code&gt;. I also bind this command&lt;br /&gt;
to &lt;span class=&quot;underline&quot;&gt;C-; ;&lt;/span&gt; in my global keymap.&lt;/li&gt;
&lt;li&gt;You can make  an M-Player instance &lt;b&gt;current&lt;/b&gt; by switching to its&lt;br /&gt;
buffer and invoking command &lt;span class=&quot;underline&quot;&gt;emacspeak-m-player-restore-process&lt;/span&gt;&lt;br /&gt;
bound to &lt;span class=&quot;underline&quot;&gt;/&lt;/span&gt; in &lt;code&gt;emacspeak-m-player-mode&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;&lt;p&gt;Share And Enjoy&amp;#x2013;&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/7606050581558531435'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/7606050581558531435'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2015/11/listening-to-multiple-media-streams-on.html' title='Listening To Multiple Media Streams On The Emacspeak Audio Desktop'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-9210947851534696007</id><published>2015-11-20T08:59:00.001-08:00</published><updated>2015-11-20T10:07:08.626-08:00</updated><title type='text'>Emacspeak 43.0 (SoundDog) Unleashed!</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div id=&quot;content&quot;&gt;&lt;h1 class=&quot;title&quot;&gt;Emacspeak 43.0—SoundDog—Unleashed!&lt;/h1&gt;&lt;p&gt;&lt;b&gt;For Immediate Release:&lt;/b&gt;&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;San Jose, Calif., (Nov 20, 2015)&lt;br /&gt;
Emacspeak:  Redefining Accessibility In The Era Of Internet  Computing &lt;br /&gt;
&amp;#x2013;Zero cost of Ownership  makes priceless software Universally affordable!&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Emacspeak Inc (NASDOG: ESPK) --&lt;a href=&quot;http://emacspeak.sf.net/&quot;&gt;http://emacspeak.sf.net/&lt;/a&gt;&amp;#x2013; announces the&lt;br /&gt;
immediate world-wide availability of &lt;a href=&quot;https://github.com/tvraman/emacspeak/releases/download/43.0/emacspeak-43.0.tar.bz2&quot;&gt;Emacspeak 43.0&lt;/a&gt; (SoundDog) &amp;#x2013;a&lt;br /&gt;
powerful audio desktop for leveraging today&#39;s evolving data, social&lt;br /&gt;
and service-oriented Internet cloud.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-orgheadline1&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;orgheadline1&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;1&lt;/span&gt; Investors Note:&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-1&quot;&gt;&lt;p&gt;With several prominent tweeters expanding coverage of&lt;br /&gt;
&lt;span class=&quot;underline&quot;&gt;#emacspeak&lt;/span&gt;, NASDOG: ESPK has now been consistently trading over&lt;br /&gt;
the social net at levels close to that once attained by DogCom&lt;br /&gt;
high-fliers—and as of Nov 2015 is trading at levels close to&lt;br /&gt;
that achieved by once better known stocks in the tech sector.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-orgheadline2&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;orgheadline2&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;2&lt;/span&gt; What Is It?&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-2&quot;&gt;&lt;p&gt;Emacspeak is a fully functional audio desktop that provides&lt;br /&gt;
complete eyes-free access to all major 32 and 64 bit operating&lt;br /&gt;
environments. By seamlessly blending live access to all aspects&lt;br /&gt;
of the Internet such as Web-surfing, blogging, social computing&lt;br /&gt;
and electronic messaging into the audio desktop, Emacspeak&lt;br /&gt;
enables speech access to local and remote information with a&lt;br /&gt;
consistent and well-integrated user interface. A rich suite of&lt;br /&gt;
task-oriented tools provides efficient speech-enabled access to&lt;br /&gt;
the evolving service-oriented social Internet cloud.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-orgheadline3&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;orgheadline3&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;3&lt;/span&gt; Major Enhancements:&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-3&quot;&gt;&lt;ul class=&quot;org-ul&quot;&gt;&lt;li&gt;Multiple spatially located TTS streams  for efficient communication. 🕪&lt;/li&gt;
&lt;li&gt;Refactored, improved sound themes.℗&lt;/li&gt;
&lt;li&gt;Updated org-mode support.  🎶&lt;/li&gt;
&lt;li&gt;Speech-enables package &lt;code&gt;helm&lt;/code&gt;.𝍎&lt;/li&gt;
&lt;li&gt;Speech-enable package &lt;code&gt;yasnippet&lt;/code&gt; for smart templates. ䷾&lt;/li&gt;
&lt;li&gt;Context-sensitive  keyboard shortcuts via package &lt;code&gt;emacspeak-muggles&lt;/code&gt;. ⌨&lt;/li&gt;
&lt;li&gt;Speech-enables &lt;code&gt;lua-mode&lt;/code&gt; for LUA programming. &lt;/li&gt;
&lt;li&gt;Speech-enable package &lt;code&gt;projectile&lt;/code&gt; for software project&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;management. 📽&lt;br /&gt;
&lt;/p&gt;&lt;ul class=&quot;org-ul&quot;&gt;&lt;li&gt;Speech-enable package &lt;code&gt;slime&lt;/code&gt; for Lisp programming. Λ&lt;/li&gt;
&lt;li&gt;Updated Librivox support to the new API. 📖&lt;/li&gt;
&lt;li&gt;Package &lt;code&gt;XBacklight&lt;/code&gt; for controlling LCD brightness. ⎚&lt;/li&gt;
&lt;li&gt;Updated NPR client for one-click access to present and past NPR content.📻&lt;/li&gt;
&lt;li&gt;BBC radio programs via IPlayer and friends. 📢&lt;/li&gt;
&lt;li&gt;Emacs EWW: Consume Web content efficiently.   🕷&lt;/li&gt;
&lt;li&gt;Updated Info manual 🕮&lt;/li&gt;
&lt;li&gt;Speech-enabled Elfeed, an Emacs Feed Reader 🗞&lt;/li&gt;
&lt;li&gt;emacspeak-url-templates: Smart Web access.  ♅&lt;/li&gt;
&lt;li&gt;emacspeak-websearch.el Find things fast. ♁&lt;/li&gt;
&lt;li&gt;And a lot more than wil fit this margin. …&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-orgheadline4&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;orgheadline4&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;4&lt;/span&gt; Establishing Liberty, Equality And Freedom:&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-4&quot;&gt;&lt;p&gt;Never a toy system, Emacspeak is voluntarily bundled with all&lt;br /&gt;
major Linux distributions. Though designed to be modular,&lt;br /&gt;
distributors have freely chosen to bundle the fully integrated&lt;br /&gt;
system without any undue pressure—a documented success for&lt;br /&gt;
the integrated innovation embodied by Emacspeak. As the system&lt;br /&gt;
evolves, both upgrades and downgrades continue to be available at&lt;br /&gt;
the same zero-cost to all users. The integrity of the Emacspeak&lt;br /&gt;
codebase is ensured by the reliable and secure Linux platform&lt;br /&gt;
used to develop and distribute the software.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Extensive studies have shown that thanks to these features, users&lt;br /&gt;
consider Emacspeak to be absolutely priceless. Thanks to this&lt;br /&gt;
wide-spread user demand, the present version remains   priceless&lt;br /&gt;
as ever—it is being made available at the same zero-cost as&lt;br /&gt;
previous releases.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;At the same time, Emacspeak continues to innovate in the area of&lt;br /&gt;
eyes-free social interaction and carries forward the&lt;br /&gt;
well-established Open Source tradition of introducing user&lt;br /&gt;
interface features that eventually show up in luser environments.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;On this theme, when once challenged by a proponent of a crash-prone&lt;br /&gt;
but well-marketed mousetrap with the assertion &quot;Emacs is a system from&lt;br /&gt;
the 70&#39;s&quot;, the creator of Emacspeak evinced surprise at the unusual&lt;br /&gt;
candor manifest in the assertion that it would take popular&lt;br /&gt;
idiot-proven interfaces until the year 2070 to catch up to where the&lt;br /&gt;
Emacspeak audio desktop is today. Industry experts welcomed this&lt;br /&gt;
refreshing breath of Courage Certainty and Clarity (CCC) at a time&lt;br /&gt;
when users are reeling from the Fear Uncertainty and Doubt (FUD)&lt;br /&gt;
unleashed by complex software systems backed by even more convoluted&lt;br /&gt;
press releases.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-orgheadline6&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;orgheadline6&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;5&lt;/span&gt; Independent Test Results:&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-5&quot;&gt;&lt;p&gt;Independent test results have proven that unlike some modern (and&lt;br /&gt;
not so modern) software, Emacspeak can be safely uninstalled without&lt;br /&gt;
adversely affecting the continued performance of the computer. These&lt;br /&gt;
same tests also revealed that once uninstalled, the user stopped&lt;br /&gt;
functioning altogether. Speaking with Aster Labrador, the creator of&lt;br /&gt;
Emacspeak once pointed out that these results re-emphasize the&lt;br /&gt;
user-centric design of Emacspeak; &quot;It is the user &amp;#x2013;and not the&lt;br /&gt;
computer&amp;#x2013; that stops functioning when Emacspeak is uninstalled!&quot;.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-orgheadline5&quot; class=&quot;outline-3&quot;&gt;&lt;h3 id=&quot;orgheadline5&quot;&gt;&lt;span class=&quot;section-number-3&quot;&gt;5.1&lt;/span&gt; Note from Aster,Bubbles and Tilden:&lt;/h3&gt;&lt;div class=&quot;outline-text-3&quot; id=&quot;text-5-1&quot;&gt;&lt;p&gt;UnDoctored Videos Inc. is looking for volunteers to star in a&lt;br /&gt;
video demonstrating such complete user failure.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-orgheadline7&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;orgheadline7&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;6&lt;/span&gt; Obtaining Emacspeak:&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-6&quot;&gt;&lt;p&gt;Emacspeak can be downloaded from GitHub  &amp;#x2013;see&lt;br /&gt;
&lt;a href=&quot;https://github.com/tvraman/emacspeak&quot;&gt;https://github.com/tvraman/emacspeak&lt;/a&gt;  you can visit &lt;br /&gt;
Emacspeak on the WWW at &lt;a href=&quot;http://emacspeak.sf.net/&quot;&gt;http://emacspeak.sf.net/&lt;/a&gt;.  You can subscribe&lt;br /&gt;
to the emacspeak mailing list emacspeak@cs.vassar.edu by sending&lt;br /&gt;
mail to the list request address&lt;br /&gt;
emacspeak-request@cs.vassar.edu. The&lt;br /&gt;
&lt;a href=&quot;http://emacspeak.blogspot.com/&quot;&gt;Emacspeak Blog&lt;/a&gt; is a good source&lt;br /&gt;
for news about recent enhancements and how to use them.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;The latest development snapshot of Emacspeak is always available via&lt;br /&gt;
Git  from GitHub  at &lt;br /&gt;
&lt;a href=&quot;https://github.com/tvraman/emacspeak&quot;&gt;Emacspeak GitHub &lt;/a&gt;.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-orgheadline8&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;orgheadline8&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;7&lt;/span&gt; History:&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-7&quot;&gt;&lt;ul class=&quot;org-ul&quot;&gt;&lt;li&gt;Emacspeak  43.0 brings even more end-user efficiency by leveraging the&lt;br /&gt;
ability to spatially place multiple audio streams to provide timely&lt;br /&gt;
auditory feedback.&lt;/li&gt;
&lt;li&gt;Emacspeak 42.0 while moving to GitHub from Google Code continues to&lt;br /&gt;
innovate in the areas of auditory user interfaces and efficient,&lt;br /&gt;
light-weight Internet access.&lt;/li&gt;
&lt;li&gt;Emacspeak 41.0 continues to improve &lt;br /&gt;
on  the desire to provide not just equal, but superior access —&lt;br /&gt;
technology when correctly implemented can significantly enhance the&lt;br /&gt;
human ability.&lt;/li&gt;
&lt;li&gt;Emacspeak 40.0 goes back to Web basics by enabling&lt;br /&gt;
&lt;a href=&quot;http://emacspeak.blogspot.com/2013/11/reading-web-content-efficiently.html&quot;&gt;efficient access&lt;/a&gt; to large amounts of readable Web content.&lt;/li&gt;
&lt;li&gt;Emacspeak 39.0 continues the Emacspeak tradition of increasing the breadth of&lt;br /&gt;
user tasks that are covered without introducing unnecessary&lt;br /&gt;
bloatware.&lt;/li&gt;
&lt;li&gt;Emacspeak 38.0 is the latest in a series of award-winning&lt;br /&gt;
releases from Emacspeak Inc.&lt;/li&gt;
&lt;li&gt;Emacspeak 37.0 continues the tradition of&lt;br /&gt;
delivering robust software as reflected by its code-name.&lt;/li&gt;
&lt;li&gt;Emacspeak 36.0 enhances the audio desktop with many new tools including full&lt;br /&gt;
EPub support &amp;#x2014; hence the name EPubDog.&lt;/li&gt;
&lt;li&gt;Emacspeak 35.0 is all about&lt;br /&gt;
teaching a new dog old tricks &amp;#x2014; and is aptly code-named HeadDog in&lt;br /&gt;
on  of our new Press/Analyst contact. emacspeak-34.0 (AKA Bubbles)&lt;br /&gt;
established a new beach-head with respect to rapid task completion in&lt;br /&gt;
an eyes-free environment.&lt;/li&gt;
&lt;li&gt;Emacspeak-33.0 AKA StarDog brings&lt;br /&gt;
unparalleled cloud access to the audio desktop.&lt;/li&gt;
&lt;li&gt;Emacspeak 32.0 AKA&lt;br /&gt;
LuckyDog continues to innovate via open technologies for better&lt;br /&gt;
access.&lt;/li&gt;
&lt;li&gt;Emacspeak 31.0 AKA TweetDog &amp;#x2014; adds tweeting to the Emacspeak&lt;br /&gt;
desktop.&lt;/li&gt;
&lt;li&gt;Emacspeak 30.0 AKA SocialDog brings the Social Web to the&lt;br /&gt;
audio desktop—you cant but be social if you speak!&lt;/li&gt;
&lt;li&gt;Emacspeak 29.0—AKAAbleDog—is a testament to the resilliance and innovation&lt;br /&gt;
embodied by Open Source software—it would not exist without the&lt;br /&gt;
thriving Emacs community that continues to ensure that Emacs remains&lt;br /&gt;
one of the premier user environments despite perhaps also being one of&lt;br /&gt;
the oldest.&lt;/li&gt;
&lt;li&gt;Emacspeak 28.0—AKA PuppyDog—exemplifies the rapid pace of&lt;br /&gt;
development evinced by Open Source software.&lt;/li&gt;
&lt;li&gt;Emacspeak 27.0—AKA&lt;br /&gt;
FastDog—is the latest in a sequence of upgrades that make previous&lt;br /&gt;
releases obsolete and downgrades unnecessary.&lt;/li&gt;
&lt;li&gt;Emacspeak 26—AKA&lt;br /&gt;
LeadDog—continues the tradition of introducing innovative access&lt;br /&gt;
solutions that are unfettered by the constraints inherent in&lt;br /&gt;
traditional adaptive technologies.&lt;/li&gt;
&lt;li&gt;Emacspeak 25 —AKA ActiveDog&lt;br /&gt;
—re-activates open, unfettered access to online&lt;br /&gt;
information.&lt;/li&gt;
&lt;li&gt;Emacspeak-Alive —AKA LiveDog —enlivens open, unfettered&lt;br /&gt;
information access with a series of live updates that once again&lt;br /&gt;
demonstrate the power and agility of open source software&lt;br /&gt;
development.&lt;/li&gt;
&lt;li&gt;Emacspeak 23.0 &amp;#x2013; AKA Retriever—went the extra mile in&lt;br /&gt;
fetching full access.&lt;/li&gt;
&lt;li&gt;Emacspeak 22.0 —AKA GuideDog —helps users&lt;br /&gt;
navigate the Web more effectively than ever before.&lt;/li&gt;
&lt;li&gt;Emacspeak 21.0&lt;br /&gt;
—AKA PlayDog —continued the &lt;br /&gt;
Emacspeak tradition of relying on enhanced&lt;br /&gt;
productivity to liberate users.&lt;/li&gt;
&lt;li&gt;Emacspeak-20.0 —AKA LeapDog —continues&lt;br /&gt;
the long established GNU/Emacs tradition of integrated innovation to&lt;br /&gt;
create a pleasurable computing environment for eyes-free&lt;br /&gt;
interaction.&lt;/li&gt;
&lt;li&gt;emacspeak-19.0 &amp;#x2013;AKA WorkDog&amp;#x2013; is designed to enhance&lt;br /&gt;
user productivity at work and leisure.&lt;/li&gt;
&lt;li&gt;Emacspeak-18.0 &amp;#x2013;code named&lt;br /&gt;
GoodDog&amp;#x2013; continued the Emacspeak tradition of enhancing user&lt;br /&gt;
productivity and thereby reducing total cost of&lt;br /&gt;
ownership.&lt;/li&gt;
&lt;li&gt;Emacspeak-17.0 &amp;#x2013;code named HappyDog&amp;#x2013; enhances user&lt;br /&gt;
productivity by exploiting today&#39;s evolving WWW&lt;br /&gt;
standards.&lt;/li&gt;
&lt;li&gt;Emacspeak-16.0 &amp;#x2013;code named CleverDog&amp;#x2013; the follow-up to&lt;br /&gt;
SmartDog&amp;#x2013; continued the tradition of working better, faster,&lt;br /&gt;
smarter.&lt;/li&gt;
&lt;li&gt;Emacspeak-15.0 &amp;#x2013;code named SmartDog&amp;#x2013;followed up on TopDog&lt;br /&gt;
as the next in a continuing  series of award-winning audio desktop&lt;br /&gt;
releases from  Emacspeak Inc.&lt;/li&gt;
&lt;li&gt;Emacspeak-14.0 &amp;#x2013;code named TopDog&amp;#x2013;was&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;the first release of this millennium. &lt;br /&gt;
&lt;/p&gt;&lt;ul class=&quot;org-ul&quot;&gt;&lt;li&gt;Emacspeak-13.0 &amp;#x2013;codenamed&lt;br /&gt;
YellowLab&amp;#x2013; was the closing release of the&lt;br /&gt;
20th. century.&lt;/li&gt;
&lt;li&gt;Emacspeak-12.0 &amp;#x2013;code named GoldenDog&amp;#x2013; began&lt;br /&gt;
leveraging the evolving semantic WWW to provide task-oriented speech&lt;br /&gt;
access to Webformation.&lt;/li&gt;
&lt;li&gt;Emacspeak-11.0 &amp;#x2013;code named Aster&amp;#x2013; went the&lt;br /&gt;
final step in making Linux a zero-cost Internet access solution for&lt;br /&gt;
blind and visually impaired users.&lt;/li&gt;
&lt;li&gt;Emacspeak-10.0 &amp;#x2013;(AKA&lt;br /&gt;
Emacspeak-2000) code named WonderDog&amp;#x2013; continued the tradition of&lt;br /&gt;
award-winning software releases designed to make eyes-free computing a&lt;br /&gt;
productive and pleasurable experience.&lt;/li&gt;
&lt;li&gt;Emacspeak-9.0 &amp;#x2013;(AKA&lt;br /&gt;
Emacspeak 99) code named BlackLab&amp;#x2013; continued to innovate in the areas&lt;br /&gt;
of speech interaction and interactive accessibility.&lt;/li&gt;
&lt;li&gt;Emacspeak-8.0 &amp;#x2013;(AKA Emacspeak-98++) code named BlackDog&amp;#x2013; was a major upgrade to&lt;br /&gt;
the speech output extension to Emacs.&lt;/li&gt;
&lt;li&gt;Emacspeak-95 (code named Illinois) was released as OpenSource on&lt;br /&gt;
the Internet in May 1995 as the first complete speech interface&lt;br /&gt;
to UNIX workstations. The subsequent release, Emacspeak-96 (code&lt;br /&gt;
named Egypt) made available in May 1996 provided significant&lt;br /&gt;
enhancements to the interface. Emacspeak-97 (Tennessee) went&lt;br /&gt;
further in providing a true audio desktop. Emacspeak-98&lt;br /&gt;
integrated Internetworking into all aspects of the audio desktop&lt;br /&gt;
to provide the first fully interactive speech-enabled WebTop.&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-orgheadline9&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;orgheadline9&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;8&lt;/span&gt; About Emacspeak:&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-8&quot;&gt;&lt;p&gt;Originally based at Cornell (NY)&lt;br /&gt;
&lt;a href=&quot;http://www.cs.cornell.edu/home/raman&quot;&gt;http://www.cs.cornell.edu/home/raman&lt;/a&gt; &amp;#x2013;home to Auditory User&lt;br /&gt;
Interfaces (AUI) on the WWW&amp;#x2013; Emacspeak is now maintained on&lt;br /&gt;
GitHub --&lt;a href=&quot;https://github.com/tvraman/emacspeak&quot;&gt;https://github.com/tvraman/emacspeak&lt;/a&gt; —and&lt;br /&gt;
Sourceforge —&lt;a href=&quot;http://emacspeak.sf.net/&quot;&gt;http://emacspeak.sf.net/&lt;/a&gt;. The system is mirrored&lt;br /&gt;
world-wide by an international network of software archives and&lt;br /&gt;
bundled voluntarily with all major Linux distributions. On&lt;br /&gt;
Monday, April 12, 1999, Emacspeak became part of the&lt;br /&gt;
Smithsonian&#39;s Permanent Research Collection on Information&lt;br /&gt;
Technology at the Smithsonian&#39;s National Museum of American&lt;br /&gt;
History.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;The Emacspeak mailing list is archived at Vassar &amp;#x2013;the home of the&lt;br /&gt;
Emacspeak mailing list&amp;#x2013; thanks to Greg Priest-Dorman, and provides a&lt;br /&gt;
valuable knowledge base for new users.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-orgheadline10&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;orgheadline10&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;9&lt;/span&gt; Press/Analyst Contact: Tilden Labrador&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-9&quot;&gt;&lt;p&gt;Going forward, Tilden acknowledges his exclusive monopoly on&lt;br /&gt;
setting the direction of the Emacspeak Audio Desktop, and&lt;br /&gt;
promises to exercise this freedom to innovate and her resulting&lt;br /&gt;
power responsibly (as before) in the interest of all dogs.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;*About This Release:&lt;br /&gt;
&lt;/p&gt;&lt;hr  /&gt;&lt;br /&gt;
&lt;p&gt;Windows-Free (WF) is a favorite battle-cry of The League Against&lt;br /&gt;
Forced Fenestration (LAFF).  &amp;#x2013;see&lt;br /&gt;
&lt;a href=&quot;http://www.usdoj.gov/atr/cases/f3800/msjudgex.htm&quot;&gt;http://www.usdoj.gov/atr/cases/f3800/msjudgex.htm&lt;/a&gt; for details on&lt;br /&gt;
the ill-effects of Forced Fenestration.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;CopyWrite )C( Aster and Hubbell Labrador. All Writes Reserved.&lt;br /&gt;
HeadDog (DM), LiveDog (DM), GoldenDog (DM), BlackDog (DM) etc., are Registered&lt;br /&gt;
Dogmarks of Aster,  Hubbell  and Tilden Labrador.  All other dogs belong to&lt;br /&gt;
their respective owners.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
m</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/9210947851534696007'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/9210947851534696007'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2015/11/emacspeak-430-sounddog-unleashed.html' title='Emacspeak 43.0 (SoundDog) Unleashed!'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-4148707080078147942</id><published>2015-11-10T18:07:00.000-08:00</published><updated>2015-11-10T18:12:14.858-08:00</updated><title type='text'>Using Multiple TTS Streams On The emacspeak Audio Desktop</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div id=&quot;content&quot;&gt;&lt;h1 class=&quot;title&quot;&gt;Using Multiple TTS Streams On The Emacspeak Audio Desktop&lt;/h1&gt;&lt;div id=&quot;outline-container-orgheadline1&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;orgheadline1&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;1&lt;/span&gt; Executive Summary&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-1&quot;&gt;&lt;p&gt;Emacspeak now uses multiple text-to-speech streams &amp;#x2014; as an example,&lt;br /&gt;
this enables spoken notifications that do not interrupt ongoing spoken&lt;br /&gt;
output. To make such notifications more perceivable, Emacspeak places&lt;br /&gt;
notifications to the right of the user by leveraging Linux-ALSA&lt;br /&gt;
features that allow one to scale the amplitude of the left and right&lt;br /&gt;
audio channels.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-orgheadline2&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;orgheadline2&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;2&lt;/span&gt; Background&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-2&quot;&gt;&lt;p&gt;Until now, Emacspeak has used a single instance of a Text-To-Speech&lt;br /&gt;
(TTS) engine to produce all spoken feedback. An unfortunate&lt;br /&gt;
consequence is that any spoken announcement necessarily interrupts&lt;br /&gt;
ongoing speech; as an example, an incoming instant-message (e.g.,&lt;br /&gt;
Jabber notification) can interrupt what you&#39;re currently&lt;br /&gt;
reading. &lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Emacs itself produces a large number of asynchronous messages&lt;br /&gt;
depending on the number of processes running within Emacs; at present,&lt;br /&gt;
all Emacs generated messages are &lt;i&gt;equal&lt;/i&gt; though there are ongoing&lt;br /&gt;
plans to improve this situation going forward, e.g., using package&lt;br /&gt;
&lt;code&gt;alert&lt;/code&gt;. With Emacspeak now able to use multiple TTS streams, arrival&lt;br /&gt;
of package &lt;code&gt;alert&lt;/code&gt; within Emacs should facilitate smarter handling of&lt;br /&gt;
different categories of messages over time.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Playing multiple TTS streams simultaneously can make it hard to&lt;br /&gt;
understand the resulting output; Emacspeak leverages underlying ALSA&lt;br /&gt;
functionality to send notifications to a virtual ALSA device that&lt;br /&gt;
places the auditory output &lt;i&gt;mostly&lt;/i&gt; on the right channel. See the&lt;br /&gt;
following paragraphs on setup/configuration. I&#39;m presently using this&lt;br /&gt;
on Linux with the &lt;code&gt;linux-outloud&lt;/code&gt; voice &amp;#x2014; you need to have a copy of&lt;br /&gt;
this TTS engine installed and working &amp;#x2014; see &lt;a href=&quot;http://voxin.oralux.net/&quot;&gt;Voxin&lt;/a&gt; for details on&lt;br /&gt;
obtaining that engine. Note: the Emacspeak &lt;code&gt;espeak&lt;/code&gt; server does not&lt;br /&gt;
use raw ALSA for its output &amp;#x2014; consequently, notifications produced&lt;br /&gt;
by  &lt;code&gt;espeak&lt;/code&gt; play on both left and right channels, making it&lt;br /&gt;
impossible to understand. The &lt;code&gt;mac&lt;/code&gt; server may be able to support&lt;br /&gt;
this functionality using something Mac-specific &amp;#x2014; patches welcome.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-orgheadline3&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;orgheadline3&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;3&lt;/span&gt; Emacspeak Setup&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-3&quot;&gt;&lt;ul class=&quot;org-ul&quot;&gt;&lt;li&gt;Emacspeak now adds user-option&lt;br /&gt;
&lt;code&gt;emacspeak-tts-use-notify-stream&lt;/code&gt;. If this is set to &lt;code&gt;t&lt;/code&gt; in the&lt;br /&gt;
user&#39;s initialization file &lt;b&gt;before Emacspeak is loaded&lt;/b&gt;, Emacspeak&lt;br /&gt;
checks to see if the user&#39;s selected TTS engine supports multiple&lt;br /&gt;
instances, and if so launches a second instance of the TTS engine&lt;br /&gt;
for use as a &lt;i&gt;Notification TTS Stream&lt;/i&gt;. See my&lt;br /&gt;
&lt;code&gt;tvr/emacs-startup.el&lt;/code&gt; in the Emacspeak Git Repository for  an&lt;br /&gt;
example setup.&lt;/li&gt;
&lt;li&gt;The &lt;i&gt;Notification TTS Stream&lt;/i&gt; can be restarted via command&lt;br /&gt;
&lt;code&gt;dtk-notify-initialize&lt;/code&gt; bound to &lt;code&gt;C-e d C-n&lt;/code&gt;. You should&lt;br /&gt;
ordinarily not need   to invoke this command.&lt;/li&gt;
&lt;li&gt;The &lt;i&gt;Notification TTS Stream&lt;/i&gt; can be shut-down using command&lt;br /&gt;
&lt;code&gt;dtk-notify-shutdown&lt;/code&gt; bound to &lt;code&gt;C-e d C-s&lt;/code&gt;. When  the  /Notification&lt;br /&gt;
TTS Stream is not available, Emacspeak defaults to using a single&lt;br /&gt;
TTS stream for all spoken output &amp;#x2014; i.e., no change.&lt;/li&gt;
&lt;li&gt;At present, emacspeak tries to use a separate  &lt;i&gt;Notification TTS&lt;br /&gt;
Stream&lt;/i&gt;  when the selected TTS engine is a software TTS &lt;br /&gt;
running locally.&lt;/li&gt;
&lt;li&gt;File &lt;code&gt;servers/linux-outloud/notify-asoundrc&lt;/code&gt; contains the&lt;br /&gt;
&lt;code&gt;.asoundrc&lt;/code&gt; that I am using on my thinkpad. To have Emacspeak&lt;br /&gt;
place the &lt;i&gt;Notification TTS Stream&lt;/i&gt; mostly on the right,  the&lt;br /&gt;
contents of that file (suitably modified for your sound card)&lt;br /&gt;
need  to be placed in file &lt;code&gt;$HOME/.asoundrc&lt;/code&gt;. Warning: Handle with&lt;br /&gt;
care &amp;#x2014; a broken &lt;code&gt;.asoundrc&lt;/code&gt; can kill all audio output.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;.asoundrc&lt;/code&gt; scales  left and right amplitude  to place the&lt;br /&gt;
output &lt;i&gt;mostly on the right&lt;/i&gt; &amp;#x2014; to change this behavior, you can&lt;br /&gt;
edit the &lt;i&gt;Transformation Table&lt;/i&gt; for virtual device &lt;code&gt;tts_mono&lt;/code&gt; in&lt;br /&gt;
the &lt;code&gt;.asoundrc&lt;/code&gt; file.&lt;/li&gt;
&lt;li&gt;This set-up has not been tested with &lt;code&gt;pulseaudio&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-orgheadline4&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;orgheadline4&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;4&lt;/span&gt; Summary&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-4&quot;&gt;&lt;p&gt;Share and enjoy &amp;#x2014;&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/4148707080078147942'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/4148707080078147942'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2015/11/using-multiple-tts-streams-on-emacspeak.html' title='Using Multiple TTS Streams On The emacspeak Audio Desktop'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-563774085883333398</id><published>2015-10-16T15:46:00.002-07:00</published><updated>2015-10-16T15:46:38.322-07:00</updated><title type='text'>Smart Actions In Directory Buffers For The Emacspeak Audio Desktop</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div id=&quot;content&quot;&gt;&lt;h1 class=&quot;title&quot;&gt;Smart Actions In Directory Buffers For The Emacspeak Audio Desktop&lt;/h1&gt;&lt;div id=&quot;outline-container-orgheadline1&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;orgheadline1&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;1&lt;/span&gt; Overview&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-1&quot;&gt;&lt;p&gt;Emacspeak now provides  a &lt;b&gt;smart  actions&lt;/b&gt; feature in Emacs&#39; Directory&lt;br /&gt;
Editor (DirEd) buffers.&lt;br /&gt;
Pressing key &lt;code&gt;Ctrl-RET&lt;/code&gt; in &lt;code&gt;DirEd&lt;/code&gt; buffers now invokes &lt;br /&gt;
an appropriate Emacspeak action on the current file.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-orgheadline2&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;orgheadline2&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;2&lt;/span&gt; Background&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-2&quot;&gt;&lt;p&gt;Over time, Emacspeak has come to include a number of smart handlers&lt;br /&gt;
for different file types:&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;ul class=&quot;org-ul&quot;&gt;&lt;li&gt;An MPlayer interface for media files.&lt;/li&gt;
&lt;li&gt;An EPub reader for electronic books.&lt;/li&gt;
&lt;li&gt;A light-weight PDF viewer.&lt;/li&gt;
&lt;li&gt;A table browser for &lt;code&gt;csv&lt;/code&gt; files.&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;p&gt;Command &lt;code&gt;emacspeak-dired-open-this-file&lt;/code&gt; bound to &lt;code&gt;Ctrl-RET&lt;/code&gt; in&lt;br /&gt;
&lt;code&gt;DirEd&lt;/code&gt; buffers unifies this functionality by invoking the appropriate&lt;br /&gt;
Emacspeak action on the file on the current line. &lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;div id=&quot;outline-container-orgheadline3&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;orgheadline3&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;3&lt;/span&gt; Extending To &lt;code&gt;*Locate*&lt;/code&gt; Buffers&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-3&quot;&gt;&lt;p&gt;This facility is also available in &lt;code&gt;locate-mode&lt;/code&gt;&lt;br /&gt;
buffers.  Emacspeak provides two content-specific&lt;br /&gt;
&lt;b&gt;Locate&lt;/b&gt; commands:&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;ul class=&quot;org-ul&quot;&gt;&lt;li&gt;Command &lt;code&gt;emacspeak-m-player-locate (I have this bound to key&lt;br /&gt;
    ~Super-l&lt;/code&gt;) for locating media files that match a pattern.&lt;/li&gt;
&lt;li&gt;Command  &lt;code&gt;emacspeak-epub-locate-epub&lt;/code&gt; bound to &lt;code&gt;l&lt;/code&gt; in &lt;b&gt;EPub&lt;br /&gt;
Interaction&lt;/b&gt; for locating &lt;code&gt;epub&lt;/code&gt; files.&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;p&gt;Pressing key &lt;code&gt;Ctrl-RET&lt;/code&gt; in the resulting &lt;code&gt;*Locate*&lt;/code&gt; buffers invokes&lt;br /&gt;
the afore-mentioned smart action.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/563774085883333398'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/563774085883333398'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2015/10/smart-actions-in-directory-buffers-for.html' title='Smart Actions In Directory Buffers For The Emacspeak Audio Desktop'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-4176978858272937705</id><published>2015-09-21T11:24:00.000-07:00</published><updated>2015-09-21T14:18:00.842-07:00</updated><title type='text'>Announcing Emacspeak-Muggles: Keyboard Conveniences For Emacspeak</title><content type='html'>&lt;div id=&quot;content&quot;&gt;&lt;h1 class=&quot;title&quot;&gt;Announcing Emacspeak-Muggles: Keyboard Conveniences For Emacspeak&lt;/h1&gt;&lt;div id=&quot;outline-container-sec-1&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;sec-1&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;1&lt;/span&gt; Announcing Emacspeak-Muggles: Keyboard Conveniences For Emacspeak&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-1&quot;&gt;&lt;/div&gt;&lt;div id=&quot;outline-container-sec-1-1&quot; class=&quot;outline-3&quot;&gt;&lt;h3 id=&quot;sec-1-1&quot;&gt;&lt;span class=&quot;section-number-3&quot;&gt;1.1&lt;/span&gt; Executive Summary:&lt;/h3&gt;&lt;div class=&quot;outline-text-3&quot; id=&quot;text-1-1&quot;&gt;&lt;p&gt;new module &lt;i&gt;emacspeak-muggles&lt;/i&gt; uses package &lt;span class=&quot;underline&quot;&gt;hydra&lt;/span&gt; to provide keyboard conveniences.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-sec-1-2&quot; class=&quot;outline-3&quot;&gt;&lt;h3 id=&quot;sec-1-2&quot;&gt;&lt;span class=&quot;section-number-3&quot;&gt;1.2&lt;/span&gt; Overview:&lt;/h3&gt;&lt;div class=&quot;outline-text-3&quot; id=&quot;text-1-2&quot;&gt;&lt;p&gt;Package &lt;span class=&quot;underline&quot;&gt;hydra&lt;/span&gt; allows convenient grouping of keyboard commands, see that package&#39;s description for details. It can be installed by executing&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;pre class=&quot;example&quot;&gt;M-x package-install hydra
&lt;/pre&gt;&lt;br /&gt;
&lt;p&gt;Module &lt;span class=&quot;underline&quot;&gt;emacspeak-muggles&lt;/span&gt; implements a set of convenience hydras  that make invoking groups of related commands easy. Here are the  &lt;b&gt;Muggles&lt;/b&gt; currently implemented:&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;dl class=&quot;org-dl&quot;&gt;&lt;dt&gt; Brightness &lt;/dt&gt;&lt;dd&gt;Control laptop display brightness using xbacklight.
&lt;dl class=&quot;org-dl&quot;&gt;&lt;dt&gt; view-mode &lt;/dt&gt;&lt;dd&gt;Access view-mode functionality without  invoking view-mode explicitly.
&lt;/dd&gt;
&lt;dt&gt; org-table-ui  &lt;/dt&gt;&lt;dd&gt;Access Emacspeak Table UI functionality for org-mode tables.
&lt;/dd&gt;
&lt;dt&gt; … &lt;/dt&gt;&lt;dd&gt;And a lot more to come.
&lt;/dd&gt;
&lt;/dl&gt;&lt;/dd&gt;&lt;br /&gt;
&lt;/dl&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-sec-1-3&quot; class=&quot;outline-3&quot;&gt;&lt;h3 id=&quot;sec-1-3&quot;&gt;&lt;span class=&quot;section-number-3&quot;&gt;1.3&lt;/span&gt; Blogger Note:&lt;/h3&gt;&lt;div class=&quot;outline-text-3&quot; id=&quot;text-1-3&quot;&gt;&lt;p&gt;Going forward, these articles will be published via GitHub &amp;#x2013; rather than Blogspot &amp;#x2014; the new Blogspot API  requires  browser-based authentication that is beyond Emacs.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div id=&quot;postamble&quot; class=&quot;status&quot;&gt;&lt;p class=&quot;date&quot;&gt;Date: &lt;span class=&quot;timestamp-wrapper&quot;&gt;&lt;span class=&quot;timestamp&quot;&gt;&amp;lt;2015-07-13 Mon&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;author&quot;&gt;Author: raman&lt;/p&gt;&lt;p class=&quot;date&quot;&gt;Created: 2015-07-13 Mon 09:17&lt;/p&gt;&lt;p class=&quot;creator&quot;&gt;Emacs 25.0.50.1 (Org mode 8.2.10)&lt;/p&gt;&lt;p class=&quot;validation&quot;&gt;&lt;a href=&quot;http://validator.w3.org/check?uri=referer&quot;&gt;Validate&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/4176978858272937705'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/4176978858272937705'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2015/09/announcing-emacspeak-muggles-keyboard.html' title='Announcing Emacspeak-Muggles: Keyboard Conveniences For Emacspeak'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-283249542002790254</id><published>2015-09-21T11:22:00.000-07:00</published><updated>2015-09-21T14:21:56.607-07:00</updated><title type='text'>Emacspeak: An Overview Of Voice-Lock Over The Years</title><content type='html'>&lt;div id=&quot;content&quot;&gt;&lt;h1 class=&quot;title&quot;&gt;Emacspeak: An Overview Of Voice-Lock Over The Years&lt;/h1&gt;&lt;div id=&quot;outline-container-orgheadline1&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;orgheadline1&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;1&lt;/span&gt; Executive Summary&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-1&quot;&gt;&lt;p&gt;Audio formatted output is provided via &lt;code&gt;voice-lock&lt;/code&gt; in Emacspeak.&lt;br /&gt;
The feature was originally implemented in 1994 and  significantly&lt;br /&gt;
overhauled in 2002 (with no change in functionality). Now, in 2015,&lt;br /&gt;
the implementation has been reworked to be once again simpler &amp;#x2014; but&lt;br /&gt;
with the same functionality.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-orgheadline2&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;orgheadline2&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;2&lt;/span&gt; 1994: Original Implementation&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-2&quot;&gt;&lt;p&gt;Font-lock was a new feature in Emacs 19 &amp;#x2014; it was introduced right&lt;br /&gt;
around the time the Emacspeak project was started.&lt;br /&gt;
At the time, there  were multiple font-lock packages in&lt;br /&gt;
Emacs. Emacspeak implemented &lt;code&gt;voice-lock&lt;/code&gt; via a stand-alone module&lt;br /&gt;
that attached property &lt;code&gt;personality&lt;/code&gt; to buffer contents. The&lt;br /&gt;
&lt;code&gt;dtk-speak&lt;/code&gt; Text-To-Speech module treated strings annotated with&lt;br /&gt;
property &lt;code&gt;personality&lt;/code&gt; as an &lt;i&gt;aural display list&lt;/i&gt; when producing&lt;br /&gt;
spoken output.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;In  the winter of 1995, I implemented Aural CSS in emacspeak, and&lt;br /&gt;
this resulted in module &lt;code&gt;acss.el&lt;/code&gt; &amp;#x2014; that module provides a clean&lt;br /&gt;
abstraction for defining &lt;i&gt;values&lt;/i&gt; that can be assigned to property&lt;br /&gt;
&lt;code&gt;personality&lt;/code&gt;. Next, the rest of emacspeak was overhauled to&lt;br /&gt;
express all &lt;code&gt;voice-lock&lt;/code&gt; features via the ACSS abstraction.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-orgheadline3&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;orgheadline3&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;3&lt;/span&gt; 2002 Overhaul&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-3&quot;&gt;&lt;p&gt;With feature &lt;code&gt;font-lock&lt;/code&gt; now mature, Emacs itself converged on a&lt;br /&gt;
single font-lock module with &lt;code&gt;jit-lock.el&lt;/code&gt; providing just-in-time font&lt;br /&gt;
locking. This meant that Emacspeak&#39;s &lt;code&gt;voice-lock&lt;/code&gt; feature could now be&lt;br /&gt;
more easily implemented by attaching appropriate advice to lisp&lt;br /&gt;
functions &lt;code&gt;put-text-property&lt;/code&gt; and friends &amp;#x2014; this led to the deletion&lt;br /&gt;
of module &lt;code&gt;voice-lock.el&lt;/code&gt; and the creation of module&lt;br /&gt;
&lt;code&gt;emacspeak-personality.el&lt;/code&gt;.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;That module provided multiple options for how faces were mapped to&lt;br /&gt;
personalities:&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;ul class=&quot;org-ul&quot;&gt;&lt;li&gt;Cumulative where  property &lt;code&gt;personality&lt;/code&gt; was either appended or&lt;br /&gt;
prepended to the list of personalities  at any given position.&lt;/li&gt;
&lt;li&gt;Simple: where the new personality directly replaced any previously&lt;br /&gt;
applied &lt;code&gt;personality&lt;/code&gt; property.&lt;/li&gt;
&lt;li&gt;None: Where faces were not mapped to personalities.&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-orgheadline4&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;orgheadline4&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;4&lt;/span&gt; 2015 Overhaul&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-4&quot;&gt;&lt;p&gt;And now, in 2015, the code in module &lt;code&gt;dtk-speak.el&lt;/code&gt; that implements&lt;br /&gt;
audio-formatting has been overhauled to directly map faces to&lt;br /&gt;
personalities.  This implementation can be enabled by setting the&lt;br /&gt;
option &lt;code&gt;emacspeak-personality-voiceify-faces&lt;/code&gt; provided in module&lt;br /&gt;
&lt;code&gt;emacspeak-personality.el&lt;/code&gt; to &lt;span class=&quot;underline&quot;&gt;All&lt;/span&gt;.  This means that the new&lt;br /&gt;
implementation can co-exist (at least for a while) with the earlier&lt;br /&gt;
advice-based implementation from module &lt;code&gt;emacspeak-personality.el&lt;/code&gt;.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;once deemed to be stable, the new implementation will become the&lt;br /&gt;
default &amp;#x2014; by changing the default value of&lt;br /&gt;
&lt;code&gt;emacspeak-personality-voiceify-faces&lt;/code&gt; to &lt;span class=&quot;underline&quot;&gt;none&lt;/span&gt;.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;div id=&quot;outline-container-orgheadline5&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;orgheadline5&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;5&lt;/span&gt; Summary&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-5&quot;&gt;&lt;p&gt;From an end-user&#39;s perspective, nothing has changed in 21 years. From&lt;br /&gt;
the perspective of implementing voice-lock for Emacs modules, nothing&lt;br /&gt;
has changed &amp;#x2014; all that an Emacspeak extension for a specific package&lt;br /&gt;
needs to do to enable &lt;code&gt;voice-lock&lt;/code&gt; is to set up a face-&amp;gt;personality&lt;br /&gt;
mapping as before via function &lt;code&gt;voice-setup-add-map&lt;/code&gt;. Note that&lt;br /&gt;
property &lt;code&gt;personality&lt;/code&gt; will continue to have higher precedence than&lt;br /&gt;
property &lt;code&gt;face&lt;/code&gt; with respect to the audio formatting that gets applied&lt;br /&gt;
i.e. Emacspeak first consults value of property &lt;code&gt;personality&lt;/code&gt;, and if&lt;br /&gt;
that is not set, but there is a &lt;code&gt;face&lt;/code&gt; property set, then that&lt;br /&gt;
face-&amp;gt;personality mapping (if defined) is used as the aural style.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div id=&quot;postamble&quot; class=&quot;status&quot;&gt;&lt;p class=&quot;date&quot;&gt;Date: &lt;span class=&quot;timestamp-wrapper&quot;&gt;&lt;span class=&quot;timestamp&quot;&gt;&amp;lt;2015-08-18 Tue&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;author&quot;&gt;Author: T.V Raman&lt;/p&gt;&lt;p class=&quot;date&quot;&gt;Created: 2015-08-21 Fri 10:18&lt;/p&gt;&lt;p class=&quot;validation&quot;&gt;&lt;a href=&quot;http://validator.w3.org/check?uri=referer&quot;&gt;Validate&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/283249542002790254'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/283249542002790254'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2015/09/emacspeak-overview-of-voice-lock-over.html' title='Emacspeak: An Overview Of Voice-Lock Over The Years'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-59350072126563443</id><published>2015-09-21T11:20:00.002-07:00</published><updated>2015-09-21T11:20:34.475-07:00</updated><title type='text'>Emacspeak:Setting up StumpWM as a speech-enabled Window Manager. </title><content type='html'>&lt;br /&gt;
&lt;div id=&quot;content&quot;&gt;&lt;h1 class=&quot;title&quot;&gt;Emacspeak support for StumpWM&lt;/h1&gt;&lt;div id=&quot;outline-container-orgheadline1&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;orgheadline1&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;1&lt;/span&gt; Summary:&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-1&quot;&gt;&lt;p&gt;Describes my Linux X-Windowing setup using &lt;b&gt;lightdm&lt;/b&gt; to initialize the desktop and StumpWM configured as a talking Window Manager.&lt;br /&gt;
These files can be found under &lt;code&gt;emacspeak/stumpwm&lt;/code&gt; in your Emacspeak installation, or  in the source code cloned from  &lt;a href=&quot;https://github.com/tvraman/emacspeak&quot;&gt;https://github.com/tvraman/emacspeak&lt;/a&gt;.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-orgheadline2&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;orgheadline2&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;2&lt;/span&gt; Overview&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-2&quot;&gt;&lt;p&gt;File &lt;code&gt;stumpwmrc&lt;/code&gt; is my StumpWM init file that  I use to set up&lt;br /&gt;
StumpWM as a talking window manager.  With this setup, I run Emacs in&lt;br /&gt;
one window and Chrome+ChromeVox in another window. &lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;File &lt;code&gt;xsession&lt;/code&gt; is my &lt;code&gt;.xsession&lt;/code&gt; file  &amp;#x2014; it launches StumpWM once &lt;code&gt;lightdm&lt;/code&gt; has finished authentication.&lt;br /&gt;
You can find my &lt;code&gt;lightdm&lt;/code&gt; setup files in  directory &lt;code&gt;emacspeak/tvr/lightdm&lt;/code&gt;.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div id=&quot;outline-container-orgheadline3&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;orgheadline3&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;3&lt;/span&gt; Contents&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-3&quot;&gt;&lt;dl class=&quot;org-dl&quot;&gt;&lt;dt&gt;tts.lisp&lt;/dt&gt;&lt;dd&gt;Interface to Emacspeak TTS  servers.&lt;/dd&gt;
&lt;dt&gt;stumpwmrc&lt;/dt&gt;&lt;dd&gt;Code to insert into personal =.stumpwmr&lt;/dd&gt;
&lt;dt&gt;xsession- &lt;/dt&gt;&lt;dd&gt;My= .xsession= file.&lt;/dd&gt;
&lt;dt&gt;xlock&lt;/dt&gt;&lt;dd&gt;A light-weight screen-lock script.&lt;/dd&gt;
&lt;/dl&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div id=&quot;outline-container-orgheadline4&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;orgheadline4&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;4&lt;/span&gt; Resulting Functionality&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-4&quot;&gt;&lt;p&gt;To set this up, You should only need to edit the value of&lt;br /&gt;
&lt;code&gt;*emacspeak-dir*&lt;/code&gt; in the &lt;code&gt;stumpwmrc&lt;/code&gt; file for setup.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;ol class=&quot;org-ol&quot;&gt;&lt;li&gt;All Keybindings  match my usual &lt;code&gt;screen&lt;/code&gt; setup, including the window-manager prefix-key.&lt;/li&gt;
&lt;li&gt;C-\ is the window-manager key.&lt;/li&gt;
&lt;li&gt;Switching windows speaks the title of the new window.&lt;/li&gt;
&lt;li&gt;Stumpwm command for displaying window list &lt;code&gt;C-\w&lt;/code&gt; also speaks the output.&lt;/li&gt;
&lt;li&gt;The init file provides a simple lock-screen command bound to &lt;code&gt;C-\d&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The above lock command invokes shell script &lt;code&gt;xlock&lt;/code&gt; &amp;#x2014; that script takes care of playing an auditory icon when the desktop is locked or unlocked.&lt;/li&gt;
&lt;li&gt;Window manager messages speak automatically; this can be toggled with &lt;code&gt;C-\t&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;If there is a lot of activity in a window that is not focused,&lt;br /&gt;
you can turn off automatic speaking of messages using &lt;code&gt;C-\t&lt;/code&gt; to&lt;br /&gt;
avoid distraction.&lt;/li&gt;
&lt;li&gt;StumpWM is set up to deny raise-focus requests &amp;#x2014; this is so that activity in a window doesn&#39;t automatically grab focus.&lt;br /&gt;
I typically run with only one window displayed at a time.&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div id=&quot;postamble&quot; class=&quot;status&quot;&gt;&lt;p class=&quot;date&quot;&gt;Date: &lt;span class=&quot;timestamp-wrapper&quot;&gt;&lt;span class=&quot;timestamp&quot;&gt;&amp;lt;2015-09-07 Mon&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;author&quot;&gt;Author: raman&lt;/p&gt;&lt;p class=&quot;date&quot;&gt;Created: 2015-09-07 Mon 14:44&lt;/p&gt;&lt;p class=&quot;validation&quot;&gt;&lt;a href=&quot;http://validator.w3.org/check?uri=referer&quot;&gt;Validate&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/59350072126563443'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/59350072126563443'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2015/09/emacspeaksetting-up-stumpwm-as-speech.html' title='Emacspeak:Setting up StumpWM as a speech-enabled Window Manager. '/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-4287314264250464130</id><published>2015-09-21T11:18:00.001-07:00</published><updated>2015-09-21T11:18:45.471-07:00</updated><title type='text'>Setting Up An X Environment For Using With Emacspeak, ChromeVox and StumpWM </title><content type='html'>&lt;br /&gt;
&lt;div id=&quot;content&quot;&gt;&lt;h1 class=&quot;title&quot;&gt;Setting Up An X Environment For Using With Emacspeak, ChromeVox and StumpWM&lt;/h1&gt;&lt;div id=&quot;outline-container-orgheadline1&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;orgheadline1&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;1&lt;/span&gt; Executive Summary&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-1&quot;&gt;&lt;p&gt;This is a follow-up to &lt;a href=&quot;./stumpwm-setup.html&quot;&gt;the article on my Window Manager  set-up&lt;/a&gt;&lt;br /&gt;
and details the setup of my X environment. This setup is specifically geared around the following use-cases:&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;ol class=&quot;org-ol&quot;&gt;&lt;li&gt;Emacspeak running in a window to provide a local audio desktop.&lt;/li&gt;
&lt;li&gt;ChromeVox running in a second window to provide access to JS-powered WebApps. Note  that for the content-oriented Web, I  use Emacs&#39; built-in EWW browser.&lt;/li&gt;
&lt;li&gt;SSH running in an XTerm to my remote Linux desktop  in a third window. The remote desktop runs Emacspeak and produces  auditory feedback through a local speech server.&lt;/li&gt;
&lt;/ol&gt;&lt;br /&gt;
&lt;p&gt;The setup described below is implemented via my personal &lt;code&gt;.XResources&lt;/code&gt;&lt;br /&gt;
file &amp;#x2014; that file along with my &lt;code&gt;.xsession&lt;/code&gt; file that loads it are&lt;br /&gt;
both checked into the GitHub repo under &lt;code&gt;emacspeak/stumpwm&lt;/code&gt; along with any needed helper files.&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;The remaining sections give a brief descriptive overview of the&lt;br /&gt;
&lt;code&gt;.XResources&lt;/code&gt; and &lt;code&gt;.xsession&lt;/code&gt; files as they exist  at the time of&lt;br /&gt;
writing.&lt;br /&gt;
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div id=&quot;outline-container-orgheadline2&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;orgheadline2&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;2&lt;/span&gt; Resulting Functionality: What This Gives  Us&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-2&quot;&gt;&lt;ol class=&quot;org-ol&quot;&gt;&lt;li&gt;You can cut-and-paste between the local Chrome and local Emacspeak using standard clipboard copy/paste commands. Make sure Emacs is set up to use the clipboard, and not the primary X selection.&lt;/li&gt;
&lt;li&gt;Output displayed in the Xterm, e.g., by the remote Emacspeak session, can be brought into the local Emacspeak session by hitting &lt;code&gt;PrintEverything&lt;/code&gt; bound to &lt;code&gt;Ctrl-Return&lt;/code&gt; in the XTerm window.&lt;/li&gt;
&lt;li&gt;Contents of  the local clipboard, i.e. Chrome, Emacspeak etc., can be pasted into the remote Emacspeak  running in the XTerm using key &lt;code&gt;Ctrl-Shift-Space&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div id=&quot;outline-container-orgheadline3&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;orgheadline3&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;3&lt;/span&gt; Initializing X Session Via File &lt;code&gt;.xsession&lt;/code&gt;&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-3&quot;&gt;&lt;pre class=&quot;example&quot;&gt;#!/bin/sh
#Caps Lock is Control
setxkbmap -option ctrl:nocaps       
#load in XResources to customize X environment 
xrdb -merge $HOME/.Xresources &amp;amp;
#Display locks after  30 minutes of inactivity
xautolock -detectsleep -time 30  -locker  &quot;$HOME/bin/xlock&quot; &amp;amp; 
# Launch Emacs 
emacs  -title Emacs &amp;amp;
# XTerm for SSH to remote desktop
xterm  -title Retriever &amp;amp;
# StumpWM Setup: Use SBCL 
export LISP=sbcl
# Export our  X auth environment 
${HOME}/bin/export_x_info &amp;amp;
# Launch StumpWM
exec  /usr/local/bin/stumpwm
&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div id=&quot;outline-container-orgheadline4&quot; class=&quot;outline-2&quot;&gt;&lt;h2 id=&quot;orgheadline4&quot;&gt;&lt;span class=&quot;section-number-2&quot;&gt;4&lt;/span&gt; Customizing X Environment Via File &lt;code&gt;.XResources&lt;/code&gt;&lt;/h2&gt;&lt;div class=&quot;outline-text-2&quot; id=&quot;text-4&quot;&gt;&lt;pre class=&quot;example&quot;&gt;! Setup Emacs Visual Look And Feel
Emacs*font:     -adobe-Utopia-normal-normal-normal-*-*-*-*-*-*-0-iso10646-1
Emacs.FontBackend:      xft,x
Emacs.menuBar:  off
Emacs.toolBar:  off
Emacs.verticalScrollBars:       off
&lt;/pre&gt;&lt;p&gt;:! Setup XTerm Look And Feel:&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;pre class=&quot;example&quot;&gt;XTerm*Background:       black
XTerm*Foreground:       white
! Setup XTerm key-bindings to match Emacspeak
XTerm*VT100.translations:       #override \n\
Ctrl &amp;lt;Key&amp;gt;semicolon: string(0x18) string(&quot;@h&quot;) \n\
Ctrl &amp;lt;Key&amp;gt;comma: string(0x18) string(&quot;@a&quot;) \n\
Ctrl &amp;lt;Key&amp;gt;period: string(0x18) string(&quot;@s&quot;) \n\
Ctrl &amp;lt;Key&amp;gt;apostrophe: string(0x18) string(&quot;@s&quot;) \n\
Shift &amp;lt;Key&amp;gt;Return: string(0x18) string(&quot;@s&quot;) string(0x0d)\n\
Ctrl &amp;lt;Key&amp;gt;Return: print-everything()\n\
Ctrl Shift &amp;lt;Key&amp;gt;space:    insert-selection(CLIPBOARD) 
&lt;/pre&gt;&lt;p&gt;:! Configure rest of XTerm &lt;br /&gt;
&lt;/p&gt;&lt;pre class=&quot;example&quot;&gt;XTerm*eightBitInput:    false
XTerm*faceName: xft:Inconsolata:pixelsize=14
XTerm*metaSendsEscape:  true
&lt;/pre&gt;&lt;br /&gt;
&lt;pre class=&quot;example&quot;&gt;! emacs-pipe.pl is under emacspeak/etc in the Emacspeak Git Repository
! This helps us view XTerm output in a buffer in the locally running Emacspeak
&lt;/pre&gt;&lt;br /&gt;
&lt;pre class=&quot;example&quot;&gt;XTerm.*.printerCommand:     /usr/local/bin/emacs-pipe.pl
XTerm.*.printAttributes: 0
&lt;/pre&gt;&lt;br /&gt;
&lt;pre class=&quot;example&quot;&gt;!X Font environment
Xft*antialias:  true
Xft*dpi:        96
Xft*hinting:    true
Xft*hintstyle:  hintfull
Xft*rgba:       rgb
&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div id=&quot;postamble&quot; class=&quot;status&quot;&gt;&lt;p class=&quot;date&quot;&gt;Date: &lt;span class=&quot;timestamp-wrapper&quot;&gt;&lt;span class=&quot;timestamp&quot;&gt;&amp;lt;2015-09-21 Mon&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;author&quot;&gt;Author: raman&lt;/p&gt;&lt;p class=&quot;date&quot;&gt;Created: 2015-09-21 Mon 09:14&lt;/p&gt;&lt;p class=&quot;validation&quot;&gt;&lt;a href=&quot;http://validator.w3.org/check?uri=referer&quot;&gt;Validate&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/4287314264250464130'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/4287314264250464130'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2015/09/setting-up-x-environment-for-using-with.html' title='Setting Up An X Environment For Using With Emacspeak, ChromeVox and StumpWM '/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-1698175370010769215</id><published>2015-04-30T15:37:00.001-07:00</published><updated>2015-04-30T15:37:55.362-07:00</updated><title type='text'>Announcing Emacspeak 42.0 (AnswerDog)</title><content type='html'>
    &lt;div xmlns=&#39;http://www.w3.org/1999/xhtml&#39;&gt;
&lt;div id=&#39;content&#39;&gt;
&lt;h1 class=&#39;title&#39;&gt;Emacspeak 42.0—AnswerDog—Unleashed!&lt;/h1&gt;

&lt;div class=&#39;outline-2&#39; id=&#39;outline-container-sec-1&#39;&gt;
&lt;h2 id=&#39;sec-1&#39;&gt;&lt;span class=&#39;section-number-2&#39;&gt;1&lt;/span&gt; Emacspeak-42.0 (AnswerDog) Unleashed!&lt;/h2&gt;
&lt;div id=&#39;text-1&#39; class=&#39;outline-text-2&#39;&gt;
&lt;p&gt;
**  For Immediate Release:
&lt;/p&gt;

&lt;p&gt;
San Jose, Calif., (May 1, 2015)
    Emacspeak:  Redefining Accessibility In The Era Of Internet  Computing 
    –Zero cost of upgrades/downgrades makes priceless software affordable!
&lt;/p&gt;

&lt;p&gt;
Emacspeak Inc (NASDOG: ESPK) --&lt;a href=&#39;http://emacspeak.sf.net&#39;&gt;http://emacspeak.sf.net&lt;/a&gt;– announces the
immediate world-wide availability of &lt;a href=&#39;https://github.com/tvraman/emacspeak/releases/download/42.0/emacspeak-42.0.tar.bz2&#39;&gt;Emacspeak 42.0&lt;/a&gt; (AnswerDog) –a
powerful audio desktop for leveraging today&#39;s evolving data, social
and service-oriented Internet cloud.
&lt;/p&gt;
&lt;/div&gt;

&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-sec-1-1&#39;&gt;
&lt;h3 id=&#39;sec-1-1&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.1&lt;/span&gt; Investors Note:&lt;/h3&gt;
&lt;div id=&#39;text-1-1&#39; class=&#39;outline-text-3&#39;&gt;
&lt;p&gt;
With several prominent tweeters expanding coverage of
&lt;span class=&#39;underline&#39;&gt;#emacspeak&lt;/span&gt;, NASDOG: ESPK has now been consistently trading over
the social net at levels close to that once attained by DogCom
high-fliers—and as of May 2015 is trading at levels close to
that achieved by once better known stocks in the tech sector.
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-sec-1-2&#39;&gt;
&lt;h3 id=&#39;sec-1-2&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.2&lt;/span&gt; What Is It?&lt;/h3&gt;
&lt;div id=&#39;text-1-2&#39; class=&#39;outline-text-3&#39;&gt;
&lt;p&gt;
Emacspeak is a fully functional audio desktop that provides
complete eyes-free access to all major 32 and 64 bit operating
environments. By seamlessly blending live access to all aspects
of the Internet such as Web-surfing, blogging, social computing
and electronic messaging into the audio desktop, Emacspeak
enables speech access to local and remote information with a
consistent and well-integrated user interface. A rich suite of
task-oriented tools provides efficient speech-enabled access to
the evolving service-oriented social Internet cloud.
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-sec-1-3&#39;&gt;
&lt;h3 id=&#39;sec-1-3&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.3&lt;/span&gt; Major Enhancements:&lt;/h3&gt;
&lt;div id=&#39;text-1-3&#39; class=&#39;outline-text-3&#39;&gt;
&lt;ul class=&#39;org-ul&#39;&gt;
&lt;li&gt;Emacs EWW: Consume Web content efficiently.   🕷
&lt;/li&gt;
&lt;li&gt;Updated Info manual 🕮
&lt;/li&gt;
&lt;li&gt;SoX integration for generating auditory feedback ℗
&lt;/li&gt;
&lt;li&gt;Speech-enabled Elfeed, an Emacs Feed Reader 🗞
&lt;/li&gt;
&lt;li&gt;CSound generated 3d Auditory Icons ⟀
&lt;/li&gt;
&lt;li&gt;Audacious — An Audio Workbench using SoX   🝧
&lt;/li&gt;
&lt;li&gt;Audio presets for MPlayer using Ladspa filters ♮
&lt;/li&gt;
&lt;li&gt;emacspeak-url-templates: Smart Web access.  ♅
&lt;/li&gt;
&lt;li&gt;Integrated TuneIn Radio search, browse and play 📻
&lt;/li&gt;
&lt;li&gt;emacspeak-websearch.el Find things fast. ♁
&lt;/li&gt;
&lt;li&gt;Calibre integration for searching and viewing epub 📚 📔
&lt;/li&gt;
&lt;li&gt;Complete anything via company integration  ∁
&lt;/li&gt;
&lt;li&gt;Emacs 24.4: Supports all new features in Emacs 24.4. 🌚
&lt;/li&gt;
&lt;li&gt;And a lot more than wil fit this margin. …
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-sec-1-4&#39;&gt;
&lt;h3 id=&#39;sec-1-4&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.4&lt;/span&gt; Establishing Liberty, Equality And Freedom:&lt;/h3&gt;
&lt;div id=&#39;text-1-4&#39; class=&#39;outline-text-3&#39;&gt;
&lt;p&gt;
  Never a toy system, Emacspeak is voluntarily bundled with all
major Linux distributions. Though designed to be modular,
distributors have freely chosen to bundle the fully integrated
system without any undue pressure—a documented success for
the integrated innovation embodied by Emacspeak. As the system
evolves, both upgrades and downgrades continue to be available at
the same zero-cost to all users. The integrity of the Emacspeak
codebase is ensured by the reliable and secure Linux platform
used to develop and distribute the software.
&lt;/p&gt;

&lt;p&gt;
Extensive studies have shown that thanks to these features, users
consider Emacspeak to be absolutely priceless. Thanks to this
wide-spread user demand, the present version remains   priceless
as ever—it is being made available at the same zero-cost as
previous releases.
&lt;/p&gt;

&lt;p&gt;
At the same time, Emacspeak continues to innovate in the area of
eyes-free social interaction and carries forward the
well-established Open Source tradition of introducing user
interface features that eventually show up in luser environments.
&lt;/p&gt;

&lt;p&gt;
On this theme, when once challenged by a proponent of a crash-prone
but well-marketed mousetrap with the assertion &quot;Emacs is a system from
the 70&#39;s&quot;, the creator of Emacspeak evinced surprise at the unusual
candor manifest in the assertion that it would take popular
idiot-proven interfaces until the year 2070 to catch up to where the
Emacspeak audio desktop is today. Industry experts welcomed this
refreshing breath of Courage Certainty and Clarity (CCC) at a time
when users are reeling from the Fear Uncertainty and Doubt (FUD)
unleashed by complex software systems backed by even more convoluted
press releases.
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-sec-1-5&#39;&gt;
&lt;h3 id=&#39;sec-1-5&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.5&lt;/span&gt; Independent Test Results:&lt;/h3&gt;
&lt;div id=&#39;text-1-5&#39; class=&#39;outline-text-3&#39;&gt;
&lt;p&gt;
Independent test results have proven that unlike some modern (and
not so modern) software, Emacspeak can be safely uninstalled without
adversely affecting the continued performance of the computer. These
same tests also revealed that once uninstalled, the user stopped
functioning altogether. Speaking with Aster Labrador, the creator of
Emacspeak once pointed out that these results re-emphasize the
user-centric design of Emacspeak; &quot;It is the user –and not the
computer– that stops functioning when Emacspeak is uninstalled!&quot;.
&lt;/p&gt;
&lt;/div&gt;

&lt;div class=&#39;outline-4&#39; id=&#39;outline-container-sec-1-5-1&#39;&gt;
&lt;h4 id=&#39;sec-1-5-1&#39;&gt;&lt;span class=&#39;section-number-4&#39;&gt;1.5.1&lt;/span&gt; Note from Aster,Bubbles and Tilden:&lt;/h4&gt;
&lt;div id=&#39;text-1-5-1&#39; class=&#39;outline-text-4&#39;&gt;
&lt;p&gt;
UnDoctored Videos Inc. is looking for volunteers to star in a
video demonstrating such complete user failure.
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-sec-1-6&#39;&gt;
&lt;h3 id=&#39;sec-1-6&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.6&lt;/span&gt; Obtaining Emacspeak:&lt;/h3&gt;
&lt;div id=&#39;text-1-6&#39; class=&#39;outline-text-3&#39;&gt;
&lt;p&gt;
Emacspeak can be downloaded from GitHub  –see
&lt;a href=&#39;https://github.com/tvraman/emacspeak&#39;&gt;https://github.com/tvraman/emacspeak&lt;/a&gt;  you can visit 
Emacspeak on the WWW at &lt;a href=&#39;http://emacspeak.sf.net&#39;&gt;http://emacspeak.sf.net&lt;/a&gt;.  You can subscribe
to the emacspeak mailing list emacspeak@cs.vassar.edu by sending
mail to the list request address
emacspeak-request@cs.vassar.edu. The
&lt;a href=&#39;http://emacspeak.blogspot.com&#39;&gt;Emacspeak Blog&lt;/a&gt; is a good source
 for news about recent enhancements and how to use them.
&lt;/p&gt;

&lt;p&gt;
The latest development snapshot of Emacspeak is always available via
Git  from GitHub  at 
&lt;a href=&#39;https://github.com/tvraman/emacspeak&#39;&gt;Emacspeak GitHub &lt;/a&gt;.
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-sec-1-7&#39;&gt;
&lt;h3 id=&#39;sec-1-7&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.7&lt;/span&gt; History:&lt;/h3&gt;
&lt;div id=&#39;text-1-7&#39; class=&#39;outline-text-3&#39;&gt;
&lt;p&gt;
Emacspeak 42.0 while moving to GitHub from Google Code continues to
innovate in the areas of auditory user interfaces and efficient,
light-weight Internet access.  Emacspeak 41.0 continues to improve
upon the desire to provide not just equal, but superior access —
technology when correctly implemented can significantly enhance the
human ability. Emacspeak 40.0 goes back to Web basics by enabling
&lt;a href=&#39;http://emacspeak.blogspot.com/2013/11/reading-web-content-efficiently.html&#39;&gt;efficient access&lt;/a&gt; to large amounts of readable Web content. Emacspeak
39.0 continues the Emacspeak tradition of increasing the breadth of
user tasks that are covered without introducing unnecessary
bloatware. Emacspeak 38.0 is the latest in a series of award-winning
releases from Emacspeak Inc. Emacspeak 37.0 continues the tradition of
delivering robust software as reflected by its code-name. Emacspeak
36.0 enhances the audio desktop with many new tools including full
EPub support — hence the name EPubDog. Emacspeak 35.0 is all about
teaching a new dog old tricks — and is aptly code-named HeadDog in
honor of our new Press/Analyst contact. emacspeak-34.0 (AKA Bubbles)
established a new beach-head with respect to rapid task completion in
an eyes-free environment. Emacspeak-33.0 AKA StarDog brings
unparalleled cloud access to the audio desktop. Emacspeak 32.0 AKA
LuckyDog continues to innovate via open technologies for better
access. Emacspeak 31.0 AKA TweetDog — adds tweeting to the Emacspeak
desktop. Emacspeak 30.0 AKA SocialDog brings the Social Web to the
audio desktop—you cant but be social if you speak! Emacspeak
29.0—AKAAbleDog—is a testament to the resilliance and innovation
embodied by Open Source software—it would not exist without the
thriving Emacs community that continues to ensure that Emacs remains
one of the premier user environments despite perhaps also being one of
the oldest. Emacspeak 28.0—AKA PuppyDog—exemplifies the rapid pace of
development evinced by Open Source software. Emacspeak 27.0—AKA
FastDog—is the latest in a sequence of upgrades that make previous
releases obsolete and downgrades unnecessary. Emacspeak 26—AKA
LeadDog—continues the tradition of introducing innovative access
solutions that are unfettered by the constraints inherent in
traditional adaptive technologies. Emacspeak 25 —AKA ActiveDog
—re-activates open, unfettered access to online
information. Emacspeak-Alive —AKA LiveDog —enlivens open, unfettered
information access with a series of live updates that once again
demonstrate the power and agility of open source software
development. Emacspeak 23.0 – AKA Retriever—went the extra mile in
fetching full access. Emacspeak 22.0 —AKA GuideDog —helps users
navigate the Web more effectively than ever before. Emacspeak 21.0
—AKA PlayDog —continued the Emacspeak tradition of relying on enhanced
productivity to liberate users. Emacspeak-20.0 —AKA LeapDog —continues
the long established GNU/Emacs tradition of integrated innovation to
create a pleasurable computing environment for eyes-free
interaction. emacspeak-19.0 –AKA WorkDog– is designed to enhance
user productivity at work and leisure. Emacspeak-18.0 –code named
GoodDog– continued the Emacspeak tradition of enhancing user
productivity and thereby reducing total cost of
ownership. Emacspeak-17.0 –code named HappyDog– enhances user
productivity by exploiting today&#39;s evolving WWW
standards. Emacspeak-16.0 –code named CleverDog– the follow-up to
SmartDog– continued the tradition of working better, faster,
smarter. Emacspeak-15.0 –code named SmartDog–followed up on TopDog
as the next in a continuing a series of award-winning audio desktop
releases from Emacspeak Inc. Emacspeak-14.0 –code named TopDog–was
the first release of this millennium. Emacspeak-13.0 –codenamed
YellowLab– was the closing release of the
20th. century. Emacspeak-12.0 –code named GoldenDog– began
leveraging the evolving semantic WWW to provide task-oriented speech
access to Webformation. Emacspeak-11.0 –code named Aster– went the
final step in making Linux a zero-cost Internet access solution for
blind and visually impaired users. Emacspeak-10.0 –(AKA
Emacspeak-2000) code named WonderDog– continued the tradition of
award-winning software releases designed to make eyes-free computing a
productive and pleasurable experience. Emacspeak-9.0 –(AKA
Emacspeak 99) code named BlackLab– continued to innovate in the areas
of speech interaction and interactive accessibility. Emacspeak-8.0
–(AKA Emacspeak-98++) code named BlackDog– was a major upgrade to
the speech output extension to Emacs.
&lt;/p&gt;

&lt;p&gt;
Emacspeak-95 (code named Illinois) was released as OpenSource on
the Internet in May 1995 as the first complete speech interface
to UNIX workstations. The subsequent release, Emacspeak-96 (code
named Egypt) made available in May 1996 provided significant
enhancements to the interface. Emacspeak-97 (Tennessee) went
further in providing a true audio desktop. Emacspeak-98
integrated Internetworking into all aspects of the audio desktop
to provide the first fully interactive speech-enabled WebTop.
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-sec-1-8&#39;&gt;
&lt;h3 id=&#39;sec-1-8&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.8&lt;/span&gt; About Emacspeak:&lt;/h3&gt;
&lt;div id=&#39;text-1-8&#39; class=&#39;outline-text-3&#39;&gt;
&lt;p&gt;
Originally based at Cornell (NY)
&lt;a href=&#39;http://www.cs.cornell.edu/home/raman&#39;&gt;http://www.cs.cornell.edu/home/raman&lt;/a&gt; –home to Auditory User
Interfaces (AUI) on the WWW– Emacspeak is now maintained on
GitHub --&lt;a href=&#39;https://github.com/tvraman/emacspeak&#39;&gt;https://github.com/tvraman/emacspeak&lt;/a&gt; —and
Sourceforge —&lt;a href=&#39;http://emacspeak.sf.net&#39;&gt;http://emacspeak.sf.net&lt;/a&gt;. The system is mirrored
world-wide by an international network of software archives and
bundled voluntarily with all major Linux distributions. On
Monday, April 12, 1999, Emacspeak became part of the
Smithsonian&#39;s Permanent Research Collection on Information
Technology at the Smithsonian&#39;s National Museum of American
History.
&lt;/p&gt;

&lt;p&gt;
The Emacspeak mailing list is archived at Vassar –the home of the
Emacspeak mailing list– thanks to Greg Priest-Dorman, and provides a
valuable knowledge base for new users.
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-sec-1-9&#39;&gt;
&lt;h3 id=&#39;sec-1-9&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.9&lt;/span&gt; Press/Analyst Contact: Tilden Labrador&lt;/h3&gt;
&lt;div id=&#39;text-1-9&#39; class=&#39;outline-text-3&#39;&gt;
&lt;p&gt;
Going forward, Tilden acknowledges his exclusive monopoly on
setting the direction of the Emacspeak Audio Desktop, and
promises to exercise this freedom to innovate and her resulting
power responsibly (as before) in the interest of all dogs.
&lt;/p&gt;

&lt;p&gt;
**About This Release:
&lt;/p&gt;
&lt;hr/&gt;

&lt;p&gt;
Windows-Free (WF) is a favorite battle-cry of The League Against
Forced Fenestration (LAFF).  –see
&lt;a href=&#39;http://www.usdoj.gov/atr/cases/f3800/msjudgex.htm&#39;&gt;http://www.usdoj.gov/atr/cases/f3800/msjudgex.htm&lt;/a&gt; for details on
the ill-effects of Forced Fenestration.
&lt;/p&gt;

&lt;p&gt;
CopyWrite )C( Aster and Hubbell Labrador. All Writes Reserved.
HeadDog (DM), LiveDog (DM), GoldenDog (DM), BlackDog (DM) etc., are Registered
Dogmarks of Aster,  Hubbell  and Tilden Labrador.  All other dogs belong to
their respective owners.
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#39;status&#39; id=&#39;postamble&#39;&gt;
&lt;p class=&#39;author&#39;&gt;Author: T.V Raman&lt;/p&gt;
&lt;p class=&#39;date&#39;&gt;Created: 2015-04-30 Thu 15:35&lt;/p&gt;
&lt;p class=&#39;creator&#39;&gt;&lt;a href=&#39;http://www.gnu.org/software/emacs/&#39;&gt;Emacs&lt;/a&gt; 25.0.50.1 (&lt;a href=&#39;http://orgmode.org&#39;&gt;Org&lt;/a&gt; mode 8.2.10)&lt;/p&gt;
&lt;p class=&#39;validation&#39;&gt;&lt;a href=&#39;http://validator.w3.org/check?uri=referer&#39;&gt;Validate&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
    &lt;/div&gt;
  </content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/1698175370010769215'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/1698175370010769215'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2015/04/announcing-emacspeak-420-answerdog.html' title='Announcing Emacspeak 42.0 (AnswerDog)'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-4322999248520814794</id><published>2015-04-25T09:49:00.001-07:00</published><updated>2015-04-25T09:49:43.791-07:00</updated><title type='text'>Emacspeak 3.0: Released 20 Years Ago Today!</title><content type='html'>
    &lt;div xmlns=&#39;http://www.w3.org/1999/xhtml&#39;&gt;
&lt;div id=&#39;content&#39;&gt;
&lt;h1 class=&#39;title&#39;&gt;twenty-years-after&lt;/h1&gt;
&lt;div class=&#39;outline-2&#39; id=&#39;outline-container-sec-1&#39;&gt;
&lt;h2 id=&#39;sec-1&#39;&gt;&lt;span class=&#39;section-number-2&#39;&gt;1&lt;/span&gt; Emacspeak Was Released Twenty Years Ago Today&lt;/h2&gt;
&lt;div id=&#39;text-1&#39; class=&#39;outline-text-2&#39;&gt;
&lt;p&gt;
The more things change, the more they remain the same.
&lt;/p&gt;

&lt;p&gt;
Emacspeak was released 20 years ago on April 25, 1995 with &lt;a href=&#39;http://emacspeak.sourceforge.net/releases/release-3.0.html&#39;&gt;this
announcement&lt;/a&gt;. The Emacspeak mailing list itself did not exist in its
present form — note that the original announcement talks about a
mailing list at DEC CRL.  When Greg started the mailing list at
Vassar, we seeded the list from some/all of the messages from the
archive for the mailing list at DEC.e
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
    &lt;/div&gt;
  </content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/4322999248520814794'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/4322999248520814794'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2015/04/emacspeak-30-released-20-years-ago-today.html' title='Emacspeak 3.0: Released 20 Years Ago Today!'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-131675225312108827</id><published>2015-04-15T17:37:00.001-07:00</published><updated>2015-04-15T17:37:32.705-07:00</updated><title type='text'>HowTo: Log Speech Server Output To Aid In Developing TTS Servers</title><content type='html'>
    &lt;div xmlns=&#39;http://www.w3.org/1999/xhtml&#39;&gt;
&lt;div id=&#39;content&#39;&gt;
&lt;h1 class=&#39;title&#39;&gt;HowTo: Log TTS Server Output To Aid In TTS Server Development&lt;/h1&gt;
&lt;div class=&#39;outline-2&#39; id=&#39;outline-container-sec-1&#39;&gt;
&lt;h2 id=&#39;sec-1&#39;&gt;&lt;span class=&#39;section-number-2&#39;&gt;1&lt;/span&gt; HowTo: Log TTS Server Output To Aid In TTS Server Development&lt;/h2&gt;
&lt;div id=&#39;text-1&#39; class=&#39;outline-text-2&#39;&gt;
&lt;p&gt;
This is mostly of interest to developers of Emacspeak speech servers.
This article outlines how one can log TTS server output to a file.
The loggeds record all commands send by Emacspeak to the TTS server.
It is best to generate the logs in an Emacs session that is separate
from the Emacs session where you are developping your code.
This keeps the logs short, and makes isolating problems much easier.
&lt;/p&gt;
&lt;/div&gt;

&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-sec-1-1&#39;&gt;
&lt;h3 id=&#39;sec-1-1&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.1&lt;/span&gt; How It Works&lt;/h3&gt;
&lt;div id=&#39;text-1-1&#39; class=&#39;outline-text-3&#39;&gt;
&lt;p&gt;
The &lt;span class=&#39;underline&#39;&gt;emacspeak/servers&lt;/span&gt; directory now contains &lt;span class=&#39;underline&#39;&gt;log_&amp;lt;tts-name&amp;gt;&lt;/span&gt;
servers for the various supported speech servers.  When selected,
these &lt;i&gt;log-speech&lt;/i&gt; servers produce no speech output; instead, they
output the speech server commands received from Emacspeak to a file in
&lt;span class=&#39;underline&#39;&gt;/tmp&lt;/span&gt; named &lt;span class=&#39;underline&#39;&gt;tts-log-$$&lt;/span&gt;.
Once you&#39;re done logging, you can examine this file  from the primary Emacs session.
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-sec-1-2&#39;&gt;
&lt;h3 id=&#39;sec-1-2&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.2&lt;/span&gt; Typical Workflow&lt;/h3&gt;
&lt;div id=&#39;text-1-2&#39; class=&#39;outline-text-3&#39;&gt;
&lt;p&gt;
Assume you want to see the speech-server commands sent by Emacs when you perform a specific action, in this instance, pressing &lt;span class=&#39;underline&#39;&gt;C-e m&lt;/span&gt; to execute command &lt;span class=&#39;underline&#39;&gt;emacspeak-speak-mode-line&lt;/span&gt;.
&lt;/p&gt;

&lt;ol class=&#39;org-ol&#39;&gt;
&lt;li&gt;In  a separate Linux  console or X-Window, launch Emacs with Emacspeak loaded — this is  separate from your primary Emacs session.
&lt;/li&gt;
&lt;li&gt;In this Emacs session, use &lt;span class=&#39;underline&#39;&gt;C-e d d&lt;/span&gt; (command &lt;span class=&#39;underline&#39;&gt;dtk-select-server&lt;/span&gt;) and select &lt;span class=&#39;underline&#39;&gt;log-&amp;lt;tts-name&amp;gt;&lt;/span&gt; as the speech server, where &lt;span class=&#39;underline&#39;&gt;tts-name&lt;/span&gt; corresponds to the speech engine you&#39;re testing.
&lt;/li&gt;
&lt;li&gt;Emacspeak will now start the logging server, and fall silent; all  commands sent by Emacspeak to the speech-server will be logged to a file in &lt;span class=&#39;underline&#39;&gt;/tmp&lt;/span&gt;.
&lt;/li&gt;
&lt;li&gt;Press &lt;span class=&#39;underline&#39;&gt;C-e m&lt;/span&gt; – to produce the log output you want to see.
&lt;/li&gt;
&lt;li&gt;Use command _emacspeak-emergency-tts-restart  to get speech back.
&lt;/li&gt;
&lt;li&gt;Open a &lt;span class=&#39;underline&#39;&gt;dired&lt;/span&gt; buffer on &lt;span class=&#39;underline&#39;&gt;/tmp&lt;/span&gt;, press &lt;span class=&#39;underline&#39;&gt;s&lt;/span&gt; to sort files by date, and find your generated log output at the top of the list.
&lt;/li&gt;
&lt;li&gt;Note: It is useful to configure your default speech engine via  Custom – see user option  &lt;span class=&#39;underline&#39;&gt;emacspeak-emergency-tts-server&lt;/span&gt;.   It provides a quick-fire means to get speech back if you ever switch to a speech-server that fails for some reason.
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
&lt;b&gt;Share And Enjoy&lt;/b&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#39;status&#39; id=&#39;postamble&#39;&gt;
&lt;p class=&#39;date&#39;&gt;Date: &lt;span class=&#39;timestamp-wrapper&#39;&gt;&lt;span class=&#39;timestamp&#39;&gt;&amp;lt;2015-04-15 Wed&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&#39;author&#39;&gt;Author: raman&lt;/p&gt;
&lt;p class=&#39;date&#39;&gt;Created: 2015-04-15 Wed 17:33&lt;/p&gt;
&lt;p class=&#39;creator&#39;&gt;Emacs 25.0.50.1 (Org mode 8.2.10)&lt;/p&gt;
&lt;p class=&#39;validation&#39;&gt;&lt;a href=&#39;http://validator.w3.org/check?uri=referer&#39;&gt;Validate&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
    &lt;/div&gt;
  </content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/131675225312108827'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/131675225312108827'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2015/04/howto-log-speech-server-output-to-aid.html' title='HowTo: Log Speech Server Output To Aid In Developing TTS Servers'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-7044326487827026820</id><published>2015-03-09T08:39:00.001-07:00</published><updated>2015-03-09T08:39:08.290-07:00</updated><title type='text'>Emacspeak Development Is Moving To GitHub</title><content type='html'> 
    &lt;div xmlns=&#39;http://www.w3.org/1999/xhtml&#39;&gt; 
&lt;div id=&#39;content&#39;&gt; 
&lt;h1 class=&#39;title&#39;&gt;Emacspeak Development Is Moving To GitHub&lt;/h1&gt; 
&lt;div class=&#39;outline-2&#39; id=&#39;outline-container-sec-1&#39;&gt; 
&lt;h2 id=&#39;sec-1&#39;&gt;&lt;span class=&#39;section-number-2&#39;&gt;1&lt;/span&gt; Summary:&lt;/h2&gt; 
&lt;div id=&#39;text-1&#39; class=&#39;outline-text-2&#39;&gt; 
&lt;p&gt; 
Emacspeak development is moving from &lt;a href=&#39;http://emacspeak.googlecode.com&#39;&gt;Google Code Hosting&lt;/a&gt; to &lt;a href=&#39;https://github.com/tvraman/emacspeak&#39;&gt;GitHub&lt;/a&gt;. 
If you have been running from the SVN repository, I recommend you 
switch to the GitHub version by executing: 
&lt;/p&gt; 
 
&lt;pre class=&#39;example&#39;&gt; 
git clone https://github.com/tvraman/emacspeak.git 
make config 
make -j 
&lt;/pre&gt; 
&lt;ul class=&#39;org-ul&#39;&gt; 
&lt;li&gt;If using Outloud TTS: 
&lt;/li&gt; 
&lt;/ul&gt; 
&lt;pre class=&#39;example&#39;&gt; 
cd servers/linux-outloud  &amp;amp;&amp;amp;  make 
&lt;/pre&gt; 
&lt;ul class=&#39;org-ul&#39;&gt; 
&lt;li&gt;If using Espeak TTS: 
&lt;/li&gt; 
&lt;/ul&gt; 
&lt;pre class=&#39;example&#39;&gt; 
cd servers/linux-espeak &amp;amp;&amp;amp; make 
&lt;/pre&gt; 
&lt;ul class=&#39;org-ul&#39;&gt; 
&lt;li&gt;After this,  all you should need to stay up to date is a periodic  
&lt;/li&gt; 
&lt;/ul&gt; 
&lt;pre class=&#39;example&#39;&gt; 
git pull; make config; make  
&lt;/pre&gt; 
&lt;/div&gt; 
&lt;/div&gt; 
 
&lt;div class=&#39;outline-2&#39; id=&#39;outline-container-sec-2&#39;&gt; 
&lt;h2 id=&#39;sec-2&#39;&gt;&lt;span class=&#39;section-number-2&#39;&gt;2&lt;/span&gt; A Brief History&lt;/h2&gt; 
&lt;div id=&#39;text-2&#39; class=&#39;outline-text-2&#39;&gt; 
&lt;ul class=&#39;org-ul&#39;&gt; 
&lt;li&gt;The first five years of Emacspeak development used a local RCS 
repository on my home machine (1994 –1999). 
&lt;/li&gt; 
&lt;li&gt;The first few releases of Emacspeak were distributed through the 
Web site and FTP server at Digital Research; they were also 
mirrored at Cornell. 
&lt;/li&gt; 
&lt;li&gt;After moving to Adobe Systems in the fall of 1995, Emacspeak was 
distributed exclusively through my Web page on the Cornell CS 
Department Web server, which also hosted my personal Web site. 
&lt;/li&gt; 
&lt;li&gt;In 2000, I created &lt;a href=&#39;http://emacspeak.sf.net&#39;&gt;Emacspeak On SourceForge&lt;/a&gt; 
&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt; 
and used that site for both hosting the Emacspeak source code as 
well as the Web site — coincidentally, I lost the ability to 
update my Web site at &lt;a href=&#39;http://www.cs.cornell.edu/home/raman&#39;&gt;Cornell CS&lt;/a&gt; around the same time. 
&lt;/p&gt; 
&lt;ul class=&#39;org-ul&#39;&gt; 
&lt;li&gt;Over time it became harder and harder to publish new Emacspeak 
releases through the SourceForge interface. Luckily, Google Code 
Hosting came along a few months after I joined Google, and moving 
the source code repository to &lt;a href=&#39;http://emacspeak.googlecode.com/svn/trunk&#39;&gt;Google Code SVN&lt;/a&gt; was a no-brainer. 
&lt;/li&gt; 
&lt;li&gt;My friend and colleague Fitz helped me migrate the 5+ years of CVS 
history to SVN; this meant that the source code repository on 
Google Code also recorded all of the development history that had 
been built up on Sourceforge. 
&lt;/li&gt; 
&lt;li&gt;Now, it&#39;s time to move to GitHub. I&#39;ve been using Git for most of 
my work the last few years, but was simply too lazy to move 
Emacspeak development from SVN to Git on GoogleCode. 
&lt;/li&gt; 
&lt;li&gt;But over time, the advantages present in Git as a source control 
system and GitHub as a hosting service have increased — primary 
among these — a rich set of Emacs tools that have been written 
to leverage the GitHub API. 
&lt;/li&gt; 
&lt;li&gt;For Git integration in Emacs, my personal preference is package 
Magit available through Elpa — 
&lt;/li&gt; 
&lt;/ul&gt; 
&lt;pre class=&#39;example&#39;&gt; 
M-x package-install magit in Emacs. 
&lt;/pre&gt; 
&lt;ul class=&#39;org-ul&#39;&gt; 
&lt;li&gt;The GitHub Web site itself is fairly heavy-weight in terms of its 
use of scripting, i.e. performing all operations through the 
&lt;a href=&#39;http://github.com&#39;&gt;github.com&lt;/a&gt; Web site from within Emacs is fairly unpleasant.  But 
the afore-mentioned GitHub API makes this a non-issue at this 
point with respect to the type of workflow I prefer. 
&lt;/li&gt; 
&lt;li&gt;So this week, I did the work to migrate Emacspeak development to 
&lt;a href=&#39;https://github.com/tvraman/emacspeak&#39;&gt;Emacspeak On GitHub&lt;/a&gt;. 
&lt;/li&gt; 
&lt;/ul&gt; 
&lt;/div&gt; 
&lt;/div&gt; 
 
&lt;div class=&#39;outline-2&#39; id=&#39;outline-container-sec-3&#39;&gt; 
&lt;h2 id=&#39;sec-3&#39;&gt;&lt;span class=&#39;section-number-2&#39;&gt;3&lt;/span&gt; Status Of Migration&lt;/h2&gt; 
&lt;div id=&#39;text-3&#39; class=&#39;outline-text-2&#39;&gt; 
&lt;ul class=&#39;org-ul&#39;&gt; 
&lt;li&gt;With help from some of the kind folk at Google Code Hosting, I&#39;ve 
successfully migrated the source code repository including all 
release tags to GitHub. 
&lt;/li&gt; 
&lt;li&gt;I am now checking in changes into GitHub; the SVN repository on 
Google Code Hosting is now frozen, and I do not plan to make any 
commits there. 
&lt;/li&gt; 
&lt;li&gt;I presently have no immediate plans to start using features of 
GitHub like the Issue Tracker; for now we will continue to use the 
Emacspeak mailing list which has served us well for 20 years. 
&lt;/li&gt; 
&lt;li&gt;I have also taken this opportunity to prune out legacy portions of 
the Emacspeak codebase by moving modules to &lt;span class=&#39;underline&#39;&gt;obsolete&lt;/span&gt; at each 
level of the directory tree. 
&lt;/li&gt; 
&lt;li&gt;Since starting the &lt;a href=&#39;http://emacspeak.blogspot.com&#39;&gt;Emacspeak Blog&lt;/a&gt; in late 2005, I have published a 
sequence of articles describing Emacspeak features and usage 
patterns; I felt that having these articles for local reference 
made a useful supplement to the emacspeak online 
documentation. Toward this end, I have downloaded all articles 
published so far and checked in both XML and HTML versions into 
sub-directory &lt;span class=&#39;underline&#39;&gt;blogs&lt;/span&gt;. 
&lt;/li&gt; 
&lt;li&gt;Note that newer articles are also available as .org files under sub-directory &lt;span class=&#39;underline&#39;&gt;announcements&lt;/span&gt;. 
&lt;/li&gt; 
&lt;/ul&gt; 
&lt;/div&gt; 
&lt;/div&gt; 
 
&lt;div class=&#39;outline-2&#39; id=&#39;outline-container-sec-4&#39;&gt; 
&lt;h2 id=&#39;sec-4&#39;&gt;&lt;span class=&#39;section-number-2&#39;&gt;4&lt;/span&gt; Next Steps&lt;/h2&gt; 
&lt;div id=&#39;text-4&#39; class=&#39;outline-text-2&#39;&gt; 
&lt;ul class=&#39;org-ul&#39;&gt; 
&lt;li&gt;I still need to learn how to do software releases on GitHub. 
&lt;/li&gt; 
&lt;/ul&gt; 
 
 
 
 
&lt;p&gt; 
&lt;b&gt;Share And Enjoy!&lt;/b&gt; 
&lt;/p&gt; 
&lt;/div&gt; 
&lt;/div&gt; 
&lt;/div&gt; 
&lt;div class=&#39;status&#39; id=&#39;postamble&#39;&gt; 
&lt;p class=&#39;date&#39;&gt;Date: &lt;span class=&#39;timestamp-wrapper&#39;&gt;&lt;span class=&#39;timestamp&#39;&gt;&amp;lt;2015-03-06 Fri&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; 
&lt;p class=&#39;author&#39;&gt;Author: raman&lt;/p&gt; 
&lt;p class=&#39;date&#39;&gt;Created: 2015-03-07 Sat 08:12&lt;/p&gt; 
&lt;p class=&#39;creator&#39;&gt;Emacs 25.0.50.1 (Org mode 8.2.10)&lt;/p&gt; 
&lt;p class=&#39;validation&#39;&gt;&lt;a href=&#39;http://validator.w3.org/check?uri=referer&#39;&gt;Validate&lt;/a&gt;&lt;/p&gt; 
&lt;/div&gt; 
    &lt;/div&gt; 
  </content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/7044326487827026820'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/7044326487827026820'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2015/03/emacspeak-development-is-moving-to.html' title='Emacspeak Development Is Moving To GitHub'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-8289264463441948640</id><published>2015-02-17T17:40:00.001-08:00</published><updated>2015-02-17T17:40:22.919-08:00</updated><title type='text'>Enhanced Audio On The Emacspeak Desktop</title><content type='html'>
    &lt;div xmlns=&#39;http://www.w3.org/1999/xhtml&#39;&gt;
&lt;div id=&#39;content&#39;&gt;
&lt;h1 class=&#39;title&#39;&gt;Enhanced Audio On The Emacspeak Desktop&lt;/h1&gt;
&lt;div class=&#39;outline-2&#39; id=&#39;outline-container-sec-1&#39;&gt;
&lt;h2 id=&#39;sec-1&#39;&gt;&lt;span class=&#39;section-number-2&#39;&gt;1&lt;/span&gt; Enhanced Audio On The Emacspeak Desktop&lt;/h2&gt;
&lt;div id=&#39;text-1&#39; class=&#39;outline-text-2&#39;&gt;
&lt;p&gt;
I recently added a set of modules to Emacspeak to leverage some
of the high-end audio functionality available   on Linux machines
on modern hardware. As an example, applying effects such as 3D
spatialization, high-end reverb effects etc. once consumed
CPU cycles to the extent where it was not possible to play with
these in realtime. All these now take less than 1–5% of the CPU,
and that when my laptop is running in power-save mode!
&lt;/p&gt;
&lt;/div&gt;

&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-sec-1-1&#39;&gt;
&lt;h3 id=&#39;sec-1-1&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.1&lt;/span&gt; An Audio Workbench Using SoX&lt;/h3&gt;
&lt;div id=&#39;text-1-1&#39; class=&#39;outline-text-3&#39;&gt;
&lt;p&gt;
Sound Exchange (SoX), described as the Swiss army knife of sound
processing, has been around since the time I was a graduate
student. Today it provides a versatile set of tools for editing
and manipulating both wave and mp3 files. Module sox.el
implements a simple Audio Workbench for the Emacspeak desktop.
&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&#39;outline-4&#39; id=&#39;outline-container-sec-1-1-1&#39;&gt;
&lt;h4 id=&#39;sec-1-1-1&#39;&gt;&lt;span class=&#39;section-number-4&#39;&gt;1.1.1&lt;/span&gt; Pre-Requisites&lt;/h4&gt;
&lt;div id=&#39;text-1-1-1&#39; class=&#39;outline-text-4&#39;&gt;
&lt;p&gt;
SoX with all available auxillary packages for adding support for
various filetypes such as mp3.
The various Ladspa related packages for installing additional
audio effect filters. 
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&#39;outline-4&#39; id=&#39;outline-container-sec-1-1-2&#39;&gt;
&lt;h4 id=&#39;sec-1-1-2&#39;&gt;&lt;span class=&#39;section-number-4&#39;&gt;1.1.2&lt;/span&gt; Usage Instructions For SoX.el&lt;/h4&gt;
&lt;div id=&#39;text-1-1-2&#39; class=&#39;outline-text-4&#39;&gt;
&lt;ul class=&#39;org-ul&#39;&gt;
&lt;li&gt;Launch the Audio Workbench via  by  executing &lt;span class=&#39;underline&#39;&gt;M-x sox&lt;/span&gt;.
&lt;/li&gt;
&lt;li&gt;Use &lt;span class=&#39;underline&#39;&gt;f&lt;/span&gt; to open a wave or mp3 file you wish to manipulate.
&lt;/li&gt;
&lt;li&gt;Add any of the supported effects using &lt;span class=&#39;underline&#39;&gt;e&lt;/span&gt;.
&lt;/li&gt;
&lt;li&gt;Use upper-case &lt;span class=&#39;underline&#39;&gt;E&lt;/span&gt; to add more than one effect.
&lt;/li&gt;
&lt;li&gt;Hit &lt;span class=&#39;underline&#39;&gt;p&lt;/span&gt; to play the result, &lt;span class=&#39;underline&#39;&gt;s&lt;/span&gt; to save the result to a new
file.
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
At present sox.el supports a few effects such as  &lt;span class=&#39;underline&#39;&gt;trim&lt;/span&gt; for
clipping files, &lt;span class=&#39;underline&#39;&gt;reverb&lt;/span&gt; for adding a reverb etc., with more to
come as I use it.
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;


&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-sec-1-2&#39;&gt;
&lt;h3 id=&#39;sec-1-2&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.2&lt;/span&gt; Adding High-End Reverb When Playing Media Streams&lt;/h3&gt;
&lt;div id=&#39;text-1-2&#39; class=&#39;outline-text-3&#39;&gt;
&lt;p&gt;
I use &lt;span class=&#39;underline&#39;&gt;mplayer&lt;/span&gt; to play both local and network media
streams. MPlayer can apply a wide range of filters to the audio
stream; more interestingly it can also apply effects implemented
as Ladspa plugins.   Package &lt;span class=&#39;underline&#39;&gt;tap-plugins&lt;/span&gt; implements a large
number of high-quality Ladspa filters, including a versatile
&lt;span class=&#39;underline&#39;&gt;Reverb&lt;/span&gt; filter.
&lt;/p&gt;

&lt;p&gt;
Once you have package &lt;span class=&#39;underline&#39;&gt;tap-plugins&lt;/span&gt; and its dependencies
installed, and a relatively new version of MPlayer (with support
for Ladspa plugins), you can now apply various &lt;i&gt;Reverb Presets&lt;/i&gt;
to your media streams via Emacspeak MPlayer command
&lt;span class=&#39;underline&#39;&gt;emacspeak-m-player-apply-reverb-preset&lt;/span&gt; bound to &lt;span class=&#39;underline&#39;&gt;P&lt;/span&gt; in
Emacspeak MPlayer. Package &lt;span class=&#39;underline&#39;&gt;tap-plugins&lt;/span&gt; defines a total of 42
Reverb Presets, experiment with these when wearing headsets.
Once you have applied a Reverb Preset, you can edit its current
settings via command emacspeak-m-player-edit-reverb  bound to &lt;span class=&#39;underline&#39;&gt;R&lt;/span&gt;
in Emacspeak MPlayer.
Alternatively, you can pick a default effect to use via Emacs&#39;
custom interface; see option  &lt;span class=&#39;underline&#39;&gt;emacspeak-m-player-reverb-filter&lt;/span&gt;.
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;



&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-sec-1-3&#39;&gt;
&lt;h3 id=&#39;sec-1-3&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.3&lt;/span&gt; Defining Convenient MPLayer Shortcuts&lt;/h3&gt;
&lt;div id=&#39;text-1-3&#39; class=&#39;outline-text-3&#39;&gt;
&lt;p&gt;
Finally, You can now bind shortcut keys for launching Emacspeak
MPlayer   from specific locations where you store media, e.g.,
you can have separate shortcuts for &lt;i&gt;Music&lt;/i&gt; vs &lt;i&gt;Audio Books&lt;/i&gt; –
see command &lt;span class=&#39;underline&#39;&gt;emacspeak-m-player-accelerator&lt;/span&gt;.
This is best used by customizing Emacspeak option
&lt;span class=&#39;underline&#39;&gt;emacspeak-media-location-bindings&lt;/span&gt; — just use the Customize
interface to specify  pairs of shortcut keys and media locations.
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#39;status&#39; id=&#39;postamble&#39;&gt;
&lt;p class=&#39;date&#39;&gt;Date: &lt;span class=&#39;timestamp-wrapper&#39;&gt;&lt;span class=&#39;timestamp&#39;&gt;&amp;lt;2015-02-17 Tue&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&#39;author&#39;&gt;Author: raman&lt;/p&gt;
&lt;p class=&#39;date&#39;&gt;Created: 2015-02-17 Tue 17:37&lt;/p&gt;
&lt;p class=&#39;creator&#39;&gt;Emacs 25.0.50.1 (Org mode 8.2.10)&lt;/p&gt;
&lt;p class=&#39;validation&#39;&gt;&lt;a href=&#39;http://validator.w3.org/check?uri=referer&#39;&gt;Validate&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
    &lt;/div&gt;
  </content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/8289264463441948640'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/8289264463441948640'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2015/02/enhanced-audio-on-emacspeak-desktop.html' title='Enhanced Audio On The Emacspeak Desktop'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-6710753170618770899</id><published>2015-02-17T16:49:00.001-08:00</published><updated>2015-02-17T16:49:04.554-08:00</updated><title type='text'>Internet Radio: Tune-In For Emacspeak</title><content type='html'>
    &lt;div xmlns=&#39;http://www.w3.org/1999/xhtml&#39;&gt;
&lt;div id=&#39;content&#39;&gt;
&lt;h1 class=&#39;title&#39;&gt;Internet Radio: Tune-In For Emacspeak&lt;/h1&gt;
&lt;div class=&#39;outline-2&#39; id=&#39;outline-container-sec-1&#39;&gt;
&lt;h2 id=&#39;sec-1&#39;&gt;&lt;span class=&#39;section-number-2&#39;&gt;1&lt;/span&gt; Internet Radio: Tune-In For Emacspeak&lt;/h2&gt;
&lt;div id=&#39;text-1&#39; class=&#39;outline-text-2&#39;&gt;
&lt;p&gt;
I just checked in  the  ability to browse, search and play
radio-stations from TuneIn  on the Emacspeak Audio Desktop.
&lt;/p&gt;
&lt;/div&gt;

&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-sec-1-1&#39;&gt;
&lt;h3 id=&#39;sec-1-1&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.1&lt;/span&gt; Pre-Requisites&lt;/h3&gt;
&lt;div id=&#39;text-1-1&#39; class=&#39;outline-text-3&#39;&gt;
&lt;ol class=&#39;org-ol&#39;&gt;
&lt;li&gt;xsltproc for xsl stylesheet processing.
&lt;/li&gt;
&lt;li&gt;Linux mplayer for playing streams, preferably the latest version
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;


&lt;div class=&#39;outline-2&#39; id=&#39;outline-container-sec-2&#39;&gt;
&lt;h2 id=&#39;sec-2&#39;&gt;&lt;span class=&#39;section-number-2&#39;&gt;2&lt;/span&gt; Simple Usage Summary&lt;/h2&gt;
&lt;div id=&#39;text-2&#39; class=&#39;outline-text-2&#39;&gt;
&lt;ul class=&#39;org-ul&#39;&gt;
&lt;li&gt;M-x emacspeak-wizards-tune-in-radio-browse brings up  the
browse interface.
&lt;/li&gt;
&lt;li&gt;M-x emacspeak-wizards-tune-in-radio-search prompts for a
query and brings up search results.
&lt;/li&gt;
&lt;li&gt;Both &lt;i&gt;browse&lt;/i&gt; and &lt;i&gt;search&lt;/i&gt; get the results back as an &lt;span class=&#39;underline&#39;&gt;OPML&lt;/span&gt;
feed, which gets displayed as a simple Web page within the
Emacs Web Browser (EWW if using 24.4).
&lt;/li&gt;
&lt;li&gt;Items identified as (link) are themselves &lt;span class=&#39;underline&#39;&gt;OPML&lt;/span&gt; feeds and
can be opened via command emacspeak-feeds-opml-display.
&lt;/li&gt;
&lt;li&gt;The initial browse buffer is set up to use opml-display
when you click on link items.
&lt;/li&gt;
&lt;li&gt;You can play (audio) links by invoking command
&lt;span class=&#39;underline&#39;&gt;emacspeak-webutils-play-media-at-point — this command is
bound to _;&lt;/span&gt; in  EWW.
&lt;/li&gt;
&lt;li&gt;You need to provide an interactive prefix argument to the
above command to indicate that it is a playlist — so you
actually press &lt;span class=&#39;underline&#39;&gt;C-u ;&lt;/span&gt; on audio links.
&lt;/li&gt;
&lt;li&gt;Many of the audio links do not return a playlist – they
instead return a link that is a pointer to a playlist. Newer
versions of &lt;span class=&#39;underline&#39;&gt;mplayer&lt;/span&gt; will throw a security error — you can
tell &lt;span class=&#39;underline&#39;&gt;mplayer&lt;/span&gt; to follow them by invoking the earlier command
with two prefix args so &lt;span class=&#39;underline&#39;&gt;C-u C-u ;&lt;/span&gt;.
&lt;/li&gt;
&lt;li&gt;All this works about 90% of the time. In some cases –
depending on whether the server failed to generate the right
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
mimetype for the play URL etc, you may need to run
&lt;/p&gt;
&lt;pre class=&#39;example&#39;&gt;
curl --silent &amp;lt;url&amp;gt; 
&lt;/pre&gt;
&lt;p&gt;
where &amp;lt;url&amp;gt; is the URL of the audio link, then  pass that
resulting URL to command &lt;span class=&#39;underline&#39;&gt;emacspeak-m-player-url&lt;/span&gt;.
&lt;/p&gt;

&lt;p&gt;
Share And Enjoy!
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#39;status&#39; id=&#39;postamble&#39;&gt;
&lt;p class=&#39;date&#39;&gt;Date: &lt;span class=&#39;timestamp-wrapper&#39;&gt;&lt;span class=&#39;timestamp&#39;&gt;&amp;lt;2015-02-17 Tue&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&#39;author&#39;&gt;Author: T.V Raman&lt;/p&gt;
&lt;p class=&#39;date&#39;&gt;Created: 2015-02-17 Tue 16:41&lt;/p&gt;
&lt;p class=&#39;creator&#39;&gt;Emacs 25.0.50.1 (Org mode 8.2.10)&lt;/p&gt;
&lt;p class=&#39;validation&#39;&gt;&lt;a href=&#39;http://validator.w3.org/check?uri=referer&#39;&gt;Validate&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
    &lt;/div&gt;
  </content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/6710753170618770899'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/6710753170618770899'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2015/02/internet-radio-tune-in-for-emacspeak.html' title='Internet Radio: Tune-In For Emacspeak'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-8322832952612579359</id><published>2015-01-06T09:15:00.001-08:00</published><updated>2015-01-06T09:15:12.551-08:00</updated><title type='text'>3D: A Spatial Auditory Icon Theme Generated Using CSound</title><content type='html'>
    &lt;div xmlns=&#39;http://www.w3.org/1999/xhtml&#39;&gt;
&lt;div id=&#39;content&#39;&gt;
&lt;h2 class=&#39;title&#39;&gt;Using CSound To Generate Auditory Icons&lt;/h2&gt;
&lt;div class=&#39;outline-2&#39; id=&#39;outline-container-sec-1&#39;&gt;
&lt;h3 id=&#39;sec-1&#39;&gt;&lt;span class=&#39;section-number-2&#39;&gt;1&lt;/span&gt; Auditory Icon Theme: 3d&lt;/h3&gt;
&lt;div id=&#39;text-1&#39; class=&#39;outline-text-2&#39;&gt;
&lt;p&gt;
&lt;a href=&#39;http://www.csounds.com/&#39;&gt;CSound&lt;/a&gt; is a sophisticated music sound synthesis system with a
strong community of developers.  I&#39;ve played off and on with
CSound ever since the early 90&#39;s  and have always been intrigued
by the possibility of   algorithmically creating new auditory icon themes for
Emacspeak  using CSound.
&lt;/p&gt;

&lt;p&gt;
Over the holidays last December, I finally got around to creating
my first complete CSound-generated auditory icon theme – it is
now checked into Emacspeak SVN as theme &lt;a href=&#39;http://emacspeak.googlecode.com/svn/trunk/sounds/3d/&#39;&gt;3d&lt;/a&gt;. This theme is best
experienced with headphones — many of the generated icons use
spatial audio to good effect.
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
    &lt;/div&gt;
  </content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/8322832952612579359'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/8322832952612579359'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2015/01/3d-spatial-auditory-icon-theme.html' title='3D: A Spatial Auditory Icon Theme Generated Using CSound'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-1737069223455578017</id><published>2014-11-26T07:09:00.001-08:00</published><updated>2014-11-26T07:09:50.389-08:00</updated><title type='text'>Announcing Emacspeak 41.0: NiceDog</title><content type='html'>
    &lt;div xmlns=&#39;http://www.w3.org/1999/xhtml&#39;&gt;
&lt;div id=&#39;content&#39;&gt; 
&lt;h1 class=&#39;title&#39;&gt;Emacspeak 41.0—NiceDog—Unleashed!&lt;/h1&gt; 
 
&lt;div class=&#39;outline-2&#39; id=&#39;outline-container-sec-1&#39;&gt; 
&lt;h2 id=&#39;sec-1&#39;&gt;&lt;span class=&#39;section-number-2&#39;&gt;1&lt;/span&gt; Emacspeak-41.0 (NiceDog) Unleashed!&lt;/h2&gt; 
&lt;div id=&#39;text-1&#39; class=&#39;outline-text-2&#39;&gt; 
&lt;p&gt; 
**  For Immediate Release: 
&lt;/p&gt; 
 
&lt;p&gt; 
San Jose, Calif., (Nov 26, 2014) 
    Emacspeak:  Redefining Accessibility In The Era Of Web  Computing  
    –Zero cost of upgrades/downgrades makes priceless software affordable! 
&lt;/p&gt; 
 
&lt;p&gt; 
Emacspeak Inc (NASDOG: ESPK) --&lt;a href=&#39;http://emacspeak.sf.net&#39;&gt;http://emacspeak.sf.net&lt;/a&gt;– 
announces the immediate world-wide availability of Emacspeak 41.0 
(NiceDog) –a powerful audio desktop for leveraging today&#39;s 
evolving data, social and service-oriented Web cloud. 
&lt;/p&gt; 
&lt;/div&gt; 
 
&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-sec-1-1&#39;&gt; 
&lt;h3 id=&#39;sec-1-1&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.1&lt;/span&gt; Investors Note:&lt;/h3&gt; 
&lt;div id=&#39;text-1-1&#39; class=&#39;outline-text-3&#39;&gt; 
&lt;p&gt; 
With several prominent tweeters expanding coverage of 
&lt;span class=&#39;underline&#39;&gt;#emacspeak&lt;/span&gt;, NASDOG: ESPK has now been consistently trading over 
the social net at levels close to that once attained by DogCom 
high-fliers—and as of November 2014 is trading at levels close to 
that achieved by once better known stocks in the tech sector. 
&lt;/p&gt; 
&lt;/div&gt; 
&lt;/div&gt; 
 
&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-sec-1-2&#39;&gt; 
&lt;h3 id=&#39;sec-1-2&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.2&lt;/span&gt; What Is It?&lt;/h3&gt; 
&lt;div id=&#39;text-1-2&#39; class=&#39;outline-text-3&#39;&gt; 
&lt;p&gt; 
Emacspeak is a fully functional audio desktop that provides 
complete eyes-free access to all major 32 and 64 bit operating 
environments. By seamlessly blending live access to all aspects 
of the Internet such as Web-surfing, blogging, social computing 
and electronic messaging into the audio desktop, Emacspeak 
enables speech access to local and remote information with a 
consistent and well-integrated user interface. A rich suite of 
task-oriented tools provides efficient speech-enabled access to 
the evolving service-oriented social Web cloud. 
&lt;/p&gt; 
&lt;/div&gt; 
&lt;/div&gt; 
 
&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-sec-1-3&#39;&gt; 
&lt;h3 id=&#39;sec-1-3&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.3&lt;/span&gt; Major Enhancements:&lt;/h3&gt; 
&lt;div id=&#39;text-1-3&#39; class=&#39;outline-text-3&#39;&gt; 
&lt;ul class=&#39;org-ul&#39;&gt; 
&lt;li&gt;Emacs EWW: Consume Web content efficiently.   📚 
&lt;/li&gt; 
&lt;li&gt;emacspeak-url-templates: Smart Web access. ♅ 
&lt;/li&gt; 
&lt;li&gt;emacspeak-websearch.el Find things fast. ♁ 
&lt;/li&gt; 
&lt;li&gt;emacspeak-google.el: Improved Google integration. ⁈ 
&lt;/li&gt; 
&lt;li&gt;Calibre integration for searching and viewing epub 📚 
&lt;/li&gt; 
&lt;li&gt;Complete anything via company integration  🗜 
&lt;/li&gt; 
&lt;li&gt;Speech-enabled 2048 🂠 
&lt;/li&gt; 
&lt;li&gt;Emacspeak At Twenty -Historical Overview ⛬ 
&lt;/li&gt; 
&lt;li&gt;gmaps.el: Find places, read reviews, get there. 🌐 
&lt;/li&gt; 
&lt;li&gt;Feed Browser Consume feeds post Google-Reader.  ␌ 
&lt;/li&gt; 
&lt;li&gt;Freebase Search: Explore freebase knowledge base. 🆓 
&lt;/li&gt; 
&lt;li&gt;Emacs 24.4: Supports all new features in Emacs 24.4. 🌚 
&lt;/li&gt; 
&lt;li&gt;And a lot more than wil fit this margin. … 
&lt;/li&gt; 
&lt;/ul&gt; 
&lt;/div&gt; 
&lt;/div&gt; 
 
&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-sec-1-4&#39;&gt; 
&lt;h3 id=&#39;sec-1-4&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.4&lt;/span&gt; Establishing Liberty, Equality And Freedom:&lt;/h3&gt; 
&lt;div id=&#39;text-1-4&#39; class=&#39;outline-text-3&#39;&gt; 
&lt;p&gt; 
  Never a toy system, Emacspeak is voluntarily bundled with all 
major Linux distributions. Though designed to be modular, 
distributors have freely chosen to bundle the fully integrated 
system without any undue pressure—a documented success for 
the integrated innovation embodied by Emacspeak. As the system 
evolves, both upgrades and downgrades continue to be available at 
the same zero-cost to all users. The integrity of the Emacspeak 
codebase is ensured by the reliable and secure Linux platform 
used to develop and distribute the software. 
&lt;/p&gt; 
 
&lt;p&gt; 
Extensive studies have shown that thanks to these features, users 
consider Emacspeak to be absolutely priceless. Thanks to this 
wide-spread user demand, the present version remains   priceless 
as ever—it is being made available at the same zero-cost as 
previous releases. 
&lt;/p&gt; 
 
&lt;p&gt; 
At the same time, Emacspeak continues to innovate in the area of 
eyes-free social interaction and carries forward the 
well-established Open Source tradition of introducing user 
interface features that eventually show up in luser environments. 
&lt;/p&gt; 
 
&lt;p&gt; 
On this theme, when once challenged by a proponent of a 
crash-prone but well-marketed mousetrap with the assertion 
&quot;Emacs is a system from the 70&#39;s&quot;, the creator of Emacspeak 
evinced surprise at the unusual candor manifest in the assertion 
that it would take popular idiot-proven interfaces until the year 
2070 to catch up to where the Emacspeak audio desktop is 
today. Industry experts welcomed this refreshing breath of 
Courage Certainty and Clarity (CCC) at a time when users are 
reeling from the Fear Uncertainty and Doubt (FUD) unleashed by 
complex software systems backed by even more convoluted press 
releases. 
&lt;/p&gt; 
&lt;/div&gt; 
&lt;/div&gt; 
 
&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-sec-1-5&#39;&gt; 
&lt;h3 id=&#39;sec-1-5&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.5&lt;/span&gt; Independent Test Results:&lt;/h3&gt; 
&lt;div id=&#39;text-1-5&#39; class=&#39;outline-text-3&#39;&gt; 
&lt;p&gt; 
Independent test results have proven that unlike some modern (and 
not so modern) software, Emacspeak can be safely uninstalled without 
adversely affecting the continued performance of the computer. These 
same tests also revealed that once uninstalled, the user stopped 
functioning altogether. Speaking with Aster Labrador, the creator of 
Emacspeak once pointed out that these results re-emphasize the 
user-centric design of Emacspeak; &quot;It is the user –and not the 
computer– that stops functioning when Emacspeak is uninstalled!&quot;. 
&lt;/p&gt; 
&lt;/div&gt; 
 
&lt;div class=&#39;outline-4&#39; id=&#39;outline-container-sec-1-5-1&#39;&gt; 
&lt;h4 id=&#39;sec-1-5-1&#39;&gt;&lt;span class=&#39;section-number-4&#39;&gt;1.5.1&lt;/span&gt; Note from Aster,Bubbles and Tilden:&lt;/h4&gt; 
&lt;div id=&#39;text-1-5-1&#39; class=&#39;outline-text-4&#39;&gt; 
&lt;p&gt; 
UnDoctored Videos Inc. is looking for volunteers to star in a 
video demonstrating such complete user failure. 
&lt;/p&gt; 
&lt;/div&gt; 
&lt;/div&gt; 
&lt;/div&gt; 
 
&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-sec-1-6&#39;&gt; 
&lt;h3 id=&#39;sec-1-6&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.6&lt;/span&gt; Obtaining Emacspeak:&lt;/h3&gt; 
&lt;div id=&#39;text-1-6&#39; class=&#39;outline-text-3&#39;&gt; 
&lt;p&gt; 
Emacspeak can be downloaded from Google Code  –see 
&lt;a href=&#39;http://code.google.com/p/emacspeak/&#39;&gt;http://code.google.com/p/emacspeak/&lt;/a&gt; You can visit 
Emacspeak on the WWW at &lt;a href=&#39;http://emacspeak.sf.net&#39;&gt;http://emacspeak.sf.net&lt;/a&gt;.  You can subscribe 
to the emacspeak mailing list emacspeak@cs.vassar.edu by sending 
mail to the list request address 
emacspeak-request@cs.vassar.edu. The 
&lt;a href=&#39;http://emacspeak.blogspot.com&#39;&gt;Emacspeak Blog&lt;/a&gt; is a good source 
 for news about recent enhancements and how to use them. 
The WowDog release is at  
&lt;a href=&#39;http://emacspeak.googlecode.com/svn/wiki/downloads/emacspeak-41.0.tar.bz2&#39;&gt;http://emacspeak.googlecode.com/svn/wiki/downloads/emacspeak-41.0.tar.bz2&lt;/a&gt;. 
The latest development snapshot of Emacspeak is always available via 
Subversion from Google Code  at  
&lt;a href=&#39;http://emacspeak.googlecode.com/svn/trunk/&#39;&gt;http://emacspeak.googlecode.com/svn/trunk/&lt;/a&gt; 
&lt;/p&gt; 
&lt;/div&gt; 
&lt;/div&gt; 
&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-sec-1-7&#39;&gt; 
&lt;h3 id=&#39;sec-1-7&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.7&lt;/span&gt; History:&lt;/h3&gt; 
&lt;div id=&#39;text-1-7&#39; class=&#39;outline-text-3&#39;&gt; 
&lt;p&gt; 
Emacspeak 41.0 continues to improve upon the desire to provide 
not just equal, but superior access — technology  
when correctly implemented can significantly enhance the human 
ability. Emacspeak 40.0 goes back to Web basics by enabling 
&lt;a href=&#39;http://emacspeak.blogspot.com/2013/11/reading-web-content-efficiently.html&#39;&gt;efficient access&lt;/a&gt; to large amounts of readable Web 
content. Emacspeak 39.0 continues the Emacspeak tradition of 
increasing the breadth of user tasks that are covered without 
introducing unnecessary bloatware. Emacspeak 38.0 is the latest 
in a series of award-winning releases from Emacspeak 
Inc. Emacspeak 37.0 continues the tradition of delivering robust 
software as reflected by its code-name. Emacspeak 36.0 enhances 
the audio desktop with many new tools including full EPub support 
— hence the name EPubDog. Emacspeak 35.0 is all about teaching 
a new dog old tricks — and is aptly code-named HeadDog in honor 
of our new Press/Analyst contact. emacspeak-34.0 (AKA Bubbles) 
established a new beach-head with respect to rapid task 
completion in an eyes-free environment. Emacspeak-33.0 AKA 
StarDog brings unparalleled cloud access to the audio 
desktop. Emacspeak 32.0 AKA LuckyDog continues to innovate via 
open technologies for better access. Emacspeak 31.0 AKA TweetDog 
— adds tweeting to the Emacspeak desktop. Emacspeak 30.0 AKA 
SocialDog brings the Social Web to the audio desktop—you cant but 
be social if you speak! Emacspeak 29.0—AKAAbleDog—is a testament 
to the resilliance and innovation embodied by Open Source 
software—it would not exist without the thriving Emacs community 
that continues to ensure that Emacs remains one of the premier 
user environments despite perhaps also being one of the 
oldest. Emacspeak 28.0—AKA PuppyDog—exemplifies the rapid pace of 
development evinced by Open Source software. Emacspeak 27.0—AKA 
FastDog—is the latest in a sequence of upgrades that make 
previous releases obsolete and downgrades unnecessary. Emacspeak 
26—AKA LeadDog—continues the tradition of introducing innovative 
access solutions that are unfettered by the constraints inherent 
in traditional adaptive technologies. Emacspeak 25 —AKA ActiveDog 
—re-activates open, unfettered access to online 
information. Emacspeak-Alive —AKA LiveDog —enlivens open, 
unfettered information access with a series of live updates that 
once again demonstrate the power and agility of open source 
software development. Emacspeak 23.0 – AKA Retriever—went the 
extra mile in fetching full access. Emacspeak 22.0 —AKA GuideDog 
—helps users navigate the Web more effectively than ever 
before. Emacspeak 21.0 —AKA PlayDog —continued the Emacspeak 
tradition of relying on enhanced productivity to liberate 
users. Emacspeak-20.0 —AKA LeapDog —continues the long 
established GNU/Emacs tradition of integrated innovation to 
create a pleasurable computing environment for eyes-free 
interaction. emacspeak-19.0 –AKA WorkDog– is designed to 
enhance user productivity at work and leisure. Emacspeak-18.0 
–code named GoodDog– continued the Emacspeak tradition of 
enhancing user productivity and thereby reducing total cost of 
ownership. Emacspeak-17.0 –code named HappyDog– enhances user 
productivity by exploiting today&#39;s evolving WWW 
standards. Emacspeak-16.0 –code named CleverDog– the follow-up 
to SmartDog– continued the tradition of working better, faster, 
smarter. Emacspeak-15.0 –code named SmartDog–followed up on 
TopDog as the next in a continuing a series of award-winning 
audio desktop releases from Emacspeak Inc. Emacspeak-14.0 –code 
named TopDog–was the first release of this 
millennium. Emacspeak-13.0 –codenamed YellowLab– was the 
closing release of the 20th. century. Emacspeak-12.0 –code named 
GoldenDog– began leveraging the evolving semantic WWW to provide 
task-oriented speech access to Webformation. Emacspeak-11.0 
–code named Aster– went the final step in making Linux a 
zero-cost Internet access solution for blind and visually 
impaired users. Emacspeak-10.0 –(AKA Emacspeak-2000) code named 
WonderDog– continued the tradition of award-winning software 
releases designed to make eyes-free computing a productive and 
pleasurable experience. Emacspeak-9.0 –(AKA Emacspeak 99) code 
named BlackLab– continued to innovate in the areas of speech 
interaction and interactive accessibility. Emacspeak-8.0 –(AKA 
Emacspeak-98++) code named BlackDog– was a major upgrade to the 
speech output extension to Emacs. 
&lt;/p&gt; 
 
&lt;p&gt; 
Emacspeak-95 (code named Illinois) was released as OpenSource on 
the Internet in May 1995 as the first complete speech interface 
to UNIX workstations. The subsequent release, Emacspeak-96 (code 
named Egypt) made available in May 1996 provided significant 
enhancements to the interface. Emacspeak-97 (Tennessee) went 
further in providing a true audio desktop. Emacspeak-98 
integrated Internetworking into all aspects of the audio desktop 
to provide the first fully interactive speech-enabled WebTop. 
&lt;/p&gt; 
 
&lt;p&gt; 
About Emacspeak: 
&lt;/p&gt; 
&lt;hr/&gt; 
 
&lt;p&gt; 
Originally based at Cornell (NY) 
&lt;a href=&#39;http://www.cs.cornell.edu/home/raman&#39;&gt;http://www.cs.cornell.edu/home/raman&lt;/a&gt; –home to Auditory User 
Interfaces (AUI) on the WWW– Emacspeak is now maintained on 
GoogleCode --&lt;a href=&#39;http://code.google.com/p/emacspeak&#39;&gt;http://code.google.com/p/emacspeak&lt;/a&gt; —and 
Sourceforge —&lt;a href=&#39;http://emacspeak.sf.net&#39;&gt;http://emacspeak.sf.net&lt;/a&gt;. The system is mirrored 
world-wide by an international network of software archives and 
bundled voluntarily with all major Linux distributions. On 
Monday, April 12, 1999, Emacspeak became part of the 
Smithsonian&#39;s Permanent Research Collection on Information 
Technology at the Smithsonian&#39;s National Museum of American 
History. 
&lt;/p&gt; 
 
&lt;p&gt; 
The Emacspeak mailing list is archived at Vassar –the home of the 
Emacspeak mailing list– thanks to Greg Priest-Dorman, and provides a 
valuable knowledge base for new users. 
&lt;/p&gt; 
&lt;/div&gt; 
&lt;/div&gt; 
 
&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-sec-1-8&#39;&gt; 
&lt;h3 id=&#39;sec-1-8&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.8&lt;/span&gt; Press/Analyst Contact: Tilden Labrador&lt;/h3&gt; 
&lt;div id=&#39;text-1-8&#39; class=&#39;outline-text-3&#39;&gt; 
&lt;p&gt; 
Going forward, Tilden acknowledges his exclusive monopoly on 
setting the direction of the Emacspeak Audio Desktop, and 
promises to exercise this freedom to innovate and her resulting 
power responsibly (as before) in the interest of all dogs. 
&lt;/p&gt; 
 
&lt;p&gt; 
**About This Release: 
&lt;/p&gt; 
&lt;hr/&gt; 
 
&lt;p&gt; 
Windows-Free (WF) is a favorite battle-cry of The League Against 
Forced Fenestration (LAFF).  –see 
&lt;a href=&#39;http://www.usdoj.gov/atr/cases/f3800/msjudgex.htm&#39;&gt;http://www.usdoj.gov/atr/cases/f3800/msjudgex.htm&lt;/a&gt; for details on 
the ill-effects of Forced Fenestration. 
&lt;/p&gt; 
 
&lt;p&gt; 
CopyWrite )C( Aster and Hubbell Labrador. All Writes Reserved. 
HeadDog (DM), LiveDog (DM), GoldenDog (DM), BlackDog (DM) etc., are Registered 
Dogmarks of Aster,  Hubbell  and Tilden Labrador.  All other dogs belong to 
their respective owners. 
&lt;/p&gt; 
&lt;/div&gt; 
&lt;/div&gt; 
&lt;/div&gt; 
&lt;/div&gt;
    &lt;/div&gt;
  </content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/1737069223455578017'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/1737069223455578017'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2014/11/announcing-emacspeak-410-nicedog.html' title='Announcing Emacspeak 41.0: NiceDog'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-669045308065263176</id><published>2014-09-15T14:11:00.001-07:00</published><updated>2014-09-15T14:11:25.613-07:00</updated><title type='text'>Emacspeak At Twenty: Looking Back, Looking Forward</title><content type='html'>
    &lt;div xmlns=&#39;http://www.w3.org/1999/xhtml&#39;&gt;
&lt;div id=&#39;content&#39;&gt;
&lt;h1 class=&#39;title&#39;&gt;Emacspeak At Twenty: Looking Back, Looking Forward&lt;/h1&gt;
&lt;div id=&#39;table-of-contents&#39;&gt;
&lt;h2&gt;Table of Contents&lt;/h2&gt;
&lt;div id=&#39;text-table-of-contents&#39;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#39;#sec-1&#39;&gt;1. Introduction&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#39;#sec-2&#39;&gt;2. Using UNIX With Speech Output —  1994&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#39;#sec-3&#39;&gt;3. Key Enabler — Emacs And Lisp Advice&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#39;#sec-4&#39;&gt;4. Key Component —  Text To Speech (TTS)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#39;#sec-5&#39;&gt;5. Emacspeak And Software Development&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#39;#sec-5-1&#39;&gt;5.1. Programming Defensively&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#39;#sec-6&#39;&gt;6. Emacspeak And Authoring Documents&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#39;#sec-7&#39;&gt;7. Emacspeak And The Early Days Of The Web&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#39;#sec-8&#39;&gt;8. Audio Formatting —  Generalizing Aural CSS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#39;#sec-9&#39;&gt;9. Conversational Gestures For The Audio Desktop&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#39;#sec-9-1&#39;&gt;9.1. Speech-Enabling Interactive Games&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#39;#sec-10&#39;&gt;10. Accessing Media Streams&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#39;#sec-11&#39;&gt;11. EBooks—   Ubiquitous Access To Books&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#39;#sec-12&#39;&gt;12. Leveraging Computational Tools —  From SQL And R To IPython Notebooks&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#39;#sec-13&#39;&gt;13. Social Web  — EMail, Instant Messaging, Blogging  And Tweeting Using Open Protocols&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#39;#sec-14&#39;&gt;14. The RESTful Web —  Web Wizards And URL Templates For Faster Access&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#39;#sec-15&#39;&gt;15. Mashing It Up —  Leveraging Evolving Web APIs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#39;#sec-16&#39;&gt;16. Conclusion&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#39;#sec-17&#39;&gt;17. References&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#39;outline-2&#39; id=&#39;outline-container-sec-1&#39;&gt;
&lt;h2 id=&#39;sec-1&#39;&gt;&lt;span class=&#39;section-number-2&#39;&gt;1&lt;/span&gt; Introduction&lt;/h2&gt;
&lt;div id=&#39;text-1&#39; class=&#39;outline-text-2&#39;&gt;
&lt;p&gt;
One afternoon in the third week of September 1994, I started
writing myself a small Emacs extension using Lisp Advice to make
Emacs speak to me so I could use a Linux laptop. As Emacspeak
turns twenty, this article is both a quick look back over the
twenty years of lessons learned, as well as a glimpse into what
might be possible as we evolve to a world of connected,
ubiquitous computing. This article draws on &lt;a href=&#39;http://norvig.com/21-days.html&#39;&gt;Learning To Program
In 10 Years&lt;/a&gt; by Peter Norvig for some of its inspiration.
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&#39;outline-2&#39; id=&#39;outline-container-sec-2&#39;&gt;
&lt;h2 id=&#39;sec-2&#39;&gt;&lt;span class=&#39;section-number-2&#39;&gt;2&lt;/span&gt; Using UNIX With Speech Output —  1994&lt;/h2&gt;
&lt;div id=&#39;text-2&#39; class=&#39;outline-text-2&#39;&gt;
&lt;p&gt;
As a graduate student at &lt;a href=&#39;http://www.cs.cornell.edu/info/people/raman/raman.html&#39;&gt;Cornell&lt;/a&gt;, I accessed my Unix workstation
(SunOS) from an Intel 486 PC running IBM Screen-Reader. There
 was no means of directly using a UNIX box at the time; after
 graduating, I continued doing the same for about six months at
 Digital Research in Cambridge — the only difference being that
 my desktop workstation was now a DEC-Alpha. Throughout this
 time, Emacs was my environment of choice for everything from
 software development and Internet access to writing documents.
&lt;/p&gt;


&lt;p&gt;
In fall of 1994, I wanted to start using a laptop running Linux;
a colleague (Dave Wecker) was retiring his 386mhz laptop that
already had Linux on it and I decided to inherit it. But there
was only one problem — until then I had always accessed a UNIX
machine from a secondary PC running a screen-reader — something
that would clearly make no sense with a laptop!
&lt;/p&gt;

&lt;p&gt;
Another colleague, Win Treese, had pointed out the interesting
possibilities presented by package &lt;b&gt;advice&lt;/b&gt; in Emacs 19.23 — a
few weeks earlier, he had sent around a small snippet of code
that magically modified Emacs&#39; version-control primitive to first
create an &lt;i&gt;RCS&lt;/i&gt; directory if none existed before adding a file to
version control. When I speculated about using the Linux laptop,
Dave remarked — you live in Emacs anyway — why dont you just make
it talk!
&lt;/p&gt;

&lt;p&gt;
Connecting the dots, I decided to write myself a tool that
augmented Emacs&#39; default behavior to &lt;i&gt;speak&lt;/i&gt; — within about 4
hours, version 0.01 of Emacspeak was up and running.
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;


&lt;div class=&#39;outline-2&#39; id=&#39;outline-container-sec-3&#39;&gt;
&lt;h2 id=&#39;sec-3&#39;&gt;&lt;span class=&#39;section-number-2&#39;&gt;3&lt;/span&gt; Key Enabler — Emacs And Lisp Advice&lt;/h2&gt;
&lt;div id=&#39;text-3&#39; class=&#39;outline-text-2&#39;&gt;
&lt;p&gt;
It took me a couple of weeks to fully recognize the potential of
what I had built with Emacs Lisp Advice. Until then, I had used
screen-readers to listen to the contents of the visual display —
but Lisp Advice let me do a lot more — it enabled Emacspeak to
generate highly context-specific spoken feedback, augmented by a
set of auditory icons. I later formalized this design under the
name &lt;a href=&#39;http://en.wikipedia.org/wiki/Self-voicing&#39;&gt;speech-enabled applications&lt;/a&gt;. For a detailed overview of the
architecture of Emacspeak, see the &lt;a href=&#39;http://emacspeak.sourceforge.net/raman/publications/bc-emacspeak/publish-emacspeak-bc.html&#39;&gt;chapter on Emacspeak&lt;/a&gt; in the
book &lt;a href=&#39;http://emacspeak.blogspot.com/2007/07/emacspeak-and-beautiful-code.html&#39;&gt;Beautiful Code&lt;/a&gt; from O&#39;Reilly.
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&#39;outline-2&#39; id=&#39;outline-container-sec-4&#39;&gt;
&lt;h2 id=&#39;sec-4&#39;&gt;&lt;span class=&#39;section-number-2&#39;&gt;4&lt;/span&gt; Key Component —  Text To Speech (TTS)&lt;/h2&gt;
&lt;div id=&#39;text-4&#39; class=&#39;outline-text-2&#39;&gt;
&lt;p&gt;
Emacspeak is a speech-subsystem for Emacs; it depends on an
external Text-To-Speech (TTS) engine to produce speech. In 1994,
Digital Equipment released what would turn out to be the last in
the line of hardware DECTalk synthesizers, the DECTalk
Express. This was essentially an Intel 386with 1mb of flash
memory that ran a version of the DECTalk TTS software — to date,
it still remains my favorite Text-To-Speech engine. At the time,
I also had a software version of the same engine running on my
DEC-Alpha workstation; the desire to use either a software or
hardware solution to produce speech output defined the Emacspeak
speech-server architecture.
&lt;/p&gt;

&lt;p&gt;
I went to IBM Research in 1999; this coincided with IBM releasing
a version of the Eloquennce TTS engine on Linux under the name
&lt;i&gt;ViaVoice Outloud&lt;/i&gt;. My colleague Jeffrey Sorenson implemented an
early version of the Emacspeak speech-server for this engine
using the OSS API; I later updated it to use the ALSA library
while on a flight back to SFO from Boston in 2001. That is still
the TTS engine that is speaking as I type this article on my
laptop.
&lt;/p&gt;

&lt;p&gt;
20 years on, TTS continues to be the weakest link on Linux; the
best available solution in terms of quality continues to be the
Linux port of Eloquence TTS available from Voxin in Europe for a
small price. Looking back across 20 years, the state of TTS on
Linux in particular and across all platforms in general continues
to be a disappointment; most of today&#39;s newer TTS engines are
geared toward mainstream use-cases where &lt;i&gt;naturalness&lt;/i&gt; of the
voice tends to supersede intelligibility at higher
speech-rates. Ironically, modern TTS engines also give
applications far less control over the generated output — as a
case in point, I implemented
&lt;a href=&#39;http://www.cs.cornell.edu/home/raman/aster/demo.html&#39;&gt;Audio System For Technical Readings (AsTeR)&lt;/a&gt; in 1994 using the
DECTalk; 20 years later, we implemented &lt;a href=&#39;http://allthingsd.com/20130604/t-v-ramans-audio-deja-vu-from-google-a-math-reading-system-for-the-web/&#39;&gt;MathML support&lt;/a&gt; in
&lt;a href=&#39;http://www.chromevox.com/&#39;&gt;ChromeVox&lt;/a&gt; using Google TTS. In 2013, it turned out to be
difficult or impossible to implement the type of audio renderings
that were possible with the admittedly less-natural sounding
DECTalk!
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&#39;outline-2&#39; id=&#39;outline-container-sec-5&#39;&gt;
&lt;h2 id=&#39;sec-5&#39;&gt;&lt;span class=&#39;section-number-2&#39;&gt;5&lt;/span&gt; Emacspeak And Software Development&lt;/h2&gt;
&lt;div id=&#39;text-5&#39; class=&#39;outline-text-2&#39;&gt;
&lt;p&gt;
Version 0.01 of Emacspeak was written using IBM Screen-Reader on
a PC with a terminal emulator accessing a UNIX workstation. But
in about 2 weeks, Emacspeak was already a better environment for
developing Emacspeak in particular and software development in
general. Here are a few highlights in 1994 that made Emacspeak a
good software development environment, present-day users of
Emacspeak will see that that was just scratching the surface.
&lt;/p&gt;

&lt;ul class=&#39;org-ul&#39;&gt;
&lt;li&gt;Audio formatting using voice-lock to provide aural syntax
highlighting.
&lt;/li&gt;
&lt;li&gt;Succinct auditory icons to provide efficient feedback.
&lt;/li&gt;
&lt;li&gt;Emacs&#39; ability to navigate code structurally   — 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
as opposed to moving around by plain-text units such as
  characters, lines and words. S-Expressions are a major win!
&lt;/p&gt;
&lt;ul class=&#39;org-ul&#39;&gt;
&lt;li&gt;Emacs&#39; ability to specialize behavior based on major and
minor modes.
&lt;/li&gt;
&lt;li&gt;Ability to browse program code using  tags, and getting
fluent spoken feedback.
&lt;/li&gt;
&lt;li&gt;Completion &lt;b&gt;everywhere&lt;/b&gt;.
&lt;/li&gt;
&lt;li&gt;Everything is searchable   —   this is a huge win when you
cannot see the screen.
&lt;/li&gt;
&lt;li&gt;Interactive spell-checking using ISpell with continuous
spoken feedback augmented by aural highlights.
&lt;/li&gt;
&lt;li&gt;Running code compilation  and being able to jump to errors
with spoken feedback.
&lt;/li&gt;
&lt;li&gt;Ability to move through diff chunks when working with source
code and source control systems; refined diffs as provided by
the &lt;b&gt;ediff&lt;/b&gt; package when speech-enabled is a major
productivity win.
&lt;/li&gt;
&lt;li&gt;Ability to easily move between email, document authoring and
programming — though this may appear trivial, it continues to
be one of Emacs&#39; biggest wins.
&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;
Long-term Emacs users will recognize all of the above as being
among the reasons why they do most things inside Emacs — there is
little that is Emacspeak specific in the above list — except that
Emacspeak was able to provide fluent, well-integrated contextual
feedback for all of these tasks. And that was a game-changer
given what I had had before Emacspeak. As a case in point, I did
not dare program in Python before I speech-enabled Emacs&#39;
Python-Mode; the fact that white space is significant in Python
made it difficult to program using a plain screen-reader that was
unaware of the semantics of the underlying content being
accessed.
&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-sec-5-1&#39;&gt;
&lt;h3 id=&#39;sec-5-1&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;5.1&lt;/span&gt; Programming Defensively&lt;/h3&gt;
&lt;div id=&#39;text-5-1&#39; class=&#39;outline-text-3&#39;&gt;
&lt;p&gt;
As an aside, note that all of Emacspeak has been developed over
the last 20 years with Emacspeak being the only adaptive
technology on my system. This has led to  some interesting design
consequences, primary among them being  a strong education in
&lt;b&gt;programming defensively&lt;/b&gt;.  Here are some other key features of
the Emacspeak code-base:
&lt;/p&gt;

&lt;ol class=&#39;org-ol&#39;&gt;
&lt;li&gt;The code-base is extremely &lt;b&gt;bushy&lt;/b&gt; rather than deeply
hierarchical — this means that when a module breaks, it does
not affect the rest of the system.
&lt;/li&gt;
&lt;li&gt;Separation of concerns with respect to the various layers, a
tightly knit  core speech library  interfaces  with  any one
of many  speech servers  running as an external process.
&lt;/li&gt;
&lt;li&gt;Audio formatting is abstracted by using the formalism
defined in Aural CSS.
&lt;/li&gt;
&lt;li&gt;Emacspeak integrates with Emacs&#39; user interface conventions
by taking over a single prefix key &lt;b&gt;C-e&lt;/b&gt; with &lt;i&gt;all&lt;/i&gt;
Emacspeak commands accessed through that single keymap.
This helps embedding Emacspeak functionality into a large
variety of third party modules without any loss of functionality.
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;


&lt;div class=&#39;outline-2&#39; id=&#39;outline-container-sec-6&#39;&gt;
&lt;h2 id=&#39;sec-6&#39;&gt;&lt;span class=&#39;section-number-2&#39;&gt;6&lt;/span&gt; Emacspeak And Authoring Documents&lt;/h2&gt;
&lt;div id=&#39;text-6&#39; class=&#39;outline-text-2&#39;&gt;
&lt;p&gt;
In 1994, my preferred environment for authoring &lt;b&gt;all&lt;/b&gt; documents
was &lt;b&gt;LaTeX&lt;/b&gt; using the Auctex package. Later I started writing
either LaTeX or HTML using the appropriate support modes; today I
use &lt;b&gt;org-mode&lt;/b&gt; to do most of my content authoring. Personally, I
have never been a fan of What You See Is What You Get (WYSIWYG)
authoring tools — in my experience that places an undue burden on
the author by drawing attention away from the content to focus on
the final appearance. An added benefit of creating content in
Emacs in the form of light-weight markup is that the content is
long-lived — I can still usefully process and re-use things I
have written 25 years ago.
&lt;/p&gt;

&lt;p&gt;
Emacs, with Emacspeak providing audio formatting and
context-specific feedback remains my environment of choice for
writing all forms of content ranging from simple email messages
to polished documents for print publishing. And it is worth
repeating that I &lt;b&gt;never&lt;/b&gt; need to focus on what the content is
going to look like — that job is best left to the computer.
&lt;/p&gt;

&lt;p&gt;
As an example of producing high-fidelity visual content, see this
write-up on
&lt;a href=&#39;http://emacspeak.sourceforge.net/raman/publications/polyhedra/&#39;&gt;Polyhedral
Geometry&lt;/a&gt; that I published in 2000; all of the content,
including the drawings were created by me using Emacs.
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&#39;outline-2&#39; id=&#39;outline-container-sec-7&#39;&gt;
&lt;h2 id=&#39;sec-7&#39;&gt;&lt;span class=&#39;section-number-2&#39;&gt;7&lt;/span&gt; Emacspeak And The Early Days Of The Web&lt;/h2&gt;
&lt;div id=&#39;text-7&#39; class=&#39;outline-text-2&#39;&gt;
&lt;p&gt;
Right around the time that I was writing version 0.01 of
emacspeak, a far more significant software movement was under way
— the World Wide Web was moving from the realms of academia to
the mainstream world with the launch of NCSA Mosaic — and in late
1994 by the first commercial Web browser in Netscape
Navigator. Emacs had always enabled integrated access to FTP
archives via package &lt;i&gt;ange-ftp&lt;/i&gt;; in late 1993, William Perry
released Emacs-W3, a Web browser for Emacs written entirely in
Emacs Lisp. W3 was one of the first large packages to be
speech-enabled by Emacspeak — later it was the browser on which I
implemented the first draft of the
&lt;a href=&#39;http://www.w3.org/TR/CSS2/aural.html&#39;&gt;Aural CSS
specification&lt;/a&gt;. Emacs-W3 enabled many early innovations in the
context of providing non-visual access to Web content, including
audio formatting and structured content navigation; in summer of
1995, Dave Raggett and I outlined a few extensions to HTML Forms,
including the &lt;b&gt;label&lt;/b&gt; element as a means of associating metadata
with interactive form controls in HTML, and many of these ideas
were prototyped in Emacs-W3 at the time. Over the years, Emacs-W3
fell behind the times — especially as the Web moved away from
cleanly structured HTML to a massive soup of unmatched tags. This
made parsing and error-correcting badly-formed HTML markup
expensive to do in Emacs-Lisp — and performance suffered. To add
to this, mainstream users moved away because Emacs&#39; rendering
engine at the time was not rich enough to provide the type of
visual renderings that users had come to expect. The advent of
DHTML, and JavaScript based Web Applications finally killed off
Emacs-W3 as far as most Emacs users were concerned.
&lt;/p&gt;

&lt;p&gt;
But Emacs-W3 went through a revival on the emacspeak audio
desktop in late 1999 with the arrival of XSLT, and Daniel
Veillard&#39;s excellent implementation via the &lt;b&gt;libxml2&lt;/b&gt; and
&lt;b&gt;libxslt&lt;/b&gt; packages. With these in hand, Emacspeak was able to
hand-off the bulk of HTML error correction to the &lt;b&gt;xsltproc&lt;/b&gt;
tool. The lack of visual fidelity didn&#39;t matter much for an
eyes-free environment; so Emacs-W3 continued to be a useful tool
for consuming large amounts of Web content that did not require
JavaScript support.
&lt;/p&gt;

&lt;p&gt;
During the last 24 months, &lt;b&gt;libxml2&lt;/b&gt; has been built into Emacs;
this means that you can now parse arbitrary HTML as found in the
wild without incurring a performance hit. This functionality was
leveraged first by package &lt;b&gt;shr&lt;/b&gt; (Simple HTML Renderer) within
the &lt;b&gt;gnus&lt;/b&gt; package for rendering HTML email. Later, the author of
&lt;b&gt;gnus&lt;/b&gt; and &lt;b&gt;shr&lt;/b&gt; created a new light-weight HTML viewer called
&lt;b&gt;eww&lt;/b&gt; that is now part of Emacs 24. With improved support for
variable pitch fonts and image embedding, Emacs is once again
able to provide visual renderings for a large proportion of
text-heavy Web content where it becomes useful for mainstream
Emacs users to view at least some Web content within Emacs;
during the last year, I have added support within emacspeak to
&lt;a href=&#39;http://emacspeak.blogspot.com/2014/05/emacspeak-eww-updates-for-complete.html&#39;&gt;extend package &lt;b&gt;eww&lt;/b&gt;&lt;/a&gt; with support for DOM filtering and quick
content navigation.
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&#39;outline-2&#39; id=&#39;outline-container-sec-8&#39;&gt;
&lt;h2 id=&#39;sec-8&#39;&gt;&lt;span class=&#39;section-number-2&#39;&gt;8&lt;/span&gt; Audio Formatting —  Generalizing Aural CSS&lt;/h2&gt;
&lt;div id=&#39;text-8&#39; class=&#39;outline-text-2&#39;&gt;
&lt;p&gt;
A key idea in Audio System For Technical Readings &lt;a href=&#39;http://www.cs.cornell.edu/home/raman/aster/aster-toplevel.html&#39;&gt;(AsTeR)&lt;/a&gt; was the
use of various voice properties in combination with non-speech
auditory icons to create rich aural renderings. When I
implemented Emacspeak, I brought over the notion of audio
formatting to all buffers in Emacs by creating a &lt;b&gt;voice-lock&lt;/b&gt;
module that paralleled Emacs&#39; &lt;b&gt;font-lock&lt;/b&gt; module. The visual
medium is far richer in terms of available fonts and colors as
compared to voice parameters available on TTS engines —
consequently, it did not make sense to directly map Emacs&#39; &lt;b&gt;face&lt;/b&gt;
properties to voice parameters. To aid in projecting visual
formatting onto auditory space, I created property &lt;b&gt;personality&lt;/b&gt;
analogous to Emacs&#39; &lt;b&gt;face&lt;/b&gt; property that could be applied to
content displayed in Emacs; module &lt;b&gt;voice-lock&lt;/b&gt; applied that
property appropriately, and the Emacspeak core handled the
details of mapping personality values to the underlying TTS
engine.
&lt;/p&gt;

&lt;p&gt;
The values used in property &lt;b&gt;personality&lt;/b&gt; were abstract, i.e.,
they were independent of any given speech engine. Later in the
fall of 1995, I re-expressed these set of abstract voice
properties in terms of Aural CSS; the work was published as a
first draft toward the end of 1995, and implemented in Emacs-W3
in early 1996. Aural CSS was an appendix in the CSS-1.0
specification; later, it graduated to being its own module within
CSS-2.0.
&lt;/p&gt;

&lt;p&gt;
Later in 1996, all of Emacs&#39; &lt;b&gt;voice-lock&lt;/b&gt; functionality was
re-implemented in terms of Aural CSS; the implementation has
stood the test of time in that as I added support for more TTS
engines, I was able to implement engine-specific mappings of
Aural-CSS values. This meant that the rest of Emacspeak could
define various types of voices for use in specific contexts
without having to worry about individual TTS
engines. Conceptually, property &lt;b&gt;personality&lt;/b&gt; can be thought of
as holding an &lt;b&gt;aural display list&lt;/b&gt; — various parts of the system
can annotate pieces of text with relevant properties that finally
get rendered in the aggregate. This model also works well with
the notion of Emacs overlays where a moving overlay is used to
temporarily highlight text that has other context-specific
properties applied to it.
&lt;/p&gt;


&lt;p&gt;
Audio formatting as implemented in Emacspeak is extremely
effective when working with all types of content ranging from
richly structured mark-up documents (LaTeX, org-mode) and
formatted Web pages to program source code. Perceptually,
switching to audio formatted output feels like switching from a
black-and-white monitor to a rich color display. Today,
Emacspeak&#39;s audio formatted output is the only way I can
correctly write &lt;b&gt;else if&lt;/b&gt; vs &lt;b&gt;elsif&lt;/b&gt; in various programming
languages!
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&#39;outline-2&#39; id=&#39;outline-container-sec-9&#39;&gt;
&lt;h2 id=&#39;sec-9&#39;&gt;&lt;span class=&#39;section-number-2&#39;&gt;9&lt;/span&gt; Conversational Gestures For The Audio Desktop&lt;/h2&gt;
&lt;div id=&#39;text-9&#39; class=&#39;outline-text-2&#39;&gt;
&lt;p&gt;
By 1996, Emacspeak was the only piece of adaptive technology I
used; in fall of 1995, I had moved to Adobe Systems from DEC
Research to focus on enhancing the Portable Document Format (PDF)
to make PDF content repurposable. Between 1996 and 1998, I was
primarily focused on electronic document formats — I took this
opportunity to step back and evaluate what I had built as an
auditory interface within Emacspeak. This retrospect proved
extremely useful in gaining a sense of perspective and led to
formalizing the high-level concept of &lt;i&gt;Conversational Gestures&lt;/i&gt;
and structured browsing/searching as a means of thinking about
user interfaces.
&lt;/p&gt;

&lt;p&gt;
By now, Emacspeak was a complete environment — I formalized what
it provided under the moniker &lt;i&gt;Complete Audio Desktop&lt;/i&gt;. The fully
integrated user experience allowed me to move forward with
respect to defining interaction models that were highly optimized
to eyes-free interaction — as an example, see how Emacspeak
interfaces with modes like &lt;b&gt;dired&lt;/b&gt; (Directory Editor) for
browsing and manipulating the filesystem, or &lt;b&gt;proced&lt;/b&gt; (Process
Editor) for browsing and manipulating running processes. Emacs&#39;
integration with &lt;b&gt;ispell&lt;/b&gt; for spell checking, as well as its
various completion facilities ranging from minibuffer completion
to other forms of dynamic completion while typing text provided
more opportunities for creating innovative forms of eyes-free
interaction. With respect to what had gone before (and is still
par for the course as far as traditional screen-readers are
concerned), these types of highly dynamic interfaces present a
challenge. For example, consider handling a completion interface
using a screen-reader that is speaking the visual display. There
is a significant challenge in deciding &lt;i&gt;what to speak&lt;/i&gt; e.g., when
presented with a list of completions, the currently typed text,
and the default completion, which of these should you speak, and
in what order? The problem gets harder when you consider that the
underlying semantics of these items is generally not available
from examining the visual presentation in a consistent manner. By
having direct access to the underlying information being
presented, Emacspeak had a leg up with respect to addressing the
higher-level question — when you do have access to this
information, how do you present it effectively in an eyes-free
environment? For this and many other cases of dynamic
interaction, a combination of audio formatting, auditory icons,
and the ability to synthesize succinct messages from a
combination of information items — rather than having to forcibly
speak each item as it is rendered visually provided for highly
efficient eyes-free interaction.
&lt;/p&gt;


&lt;p&gt;
This was also when I stepped back to build out Emacspeak&#39;s table
browsing facilities — see the online Emacspeak documentation for
details on Emacspeak&#39;s table browsing functionality which
continues to remain one of the richest collection of end-user
affordances for working with two-dimensional data.
&lt;/p&gt;
&lt;/div&gt;

&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-sec-9-1&#39;&gt;
&lt;h3 id=&#39;sec-9-1&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;9.1&lt;/span&gt; Speech-Enabling Interactive Games&lt;/h3&gt;
&lt;div id=&#39;text-9-1&#39; class=&#39;outline-text-3&#39;&gt;
&lt;p&gt;
So in 1997, I went the next step in asking — given access to the
underlying infromation, is it possible to build effective
eyes-free interaction to highly interactive tasks? I picked
&lt;b&gt;Tetris&lt;/b&gt; as a means of exploring this space, the result was an
Emacspeak extension to speech-enable module &lt;b&gt;tetris.el&lt;/b&gt;. The
details of what was learned were published as a paper in Assets
98, and expanded as a chapter on Conversational Gestures in my
book on Auditory Interfaces; that book was in a sense a
culmination of stepping back and gaining a sense of perspective
of what I had build during this period. The work on
Conversational Gestures also helped in formalizing the abstract
user interface layer that formed part of the
&lt;a href=&#39;http://www.w3.org/MarkUp/Forms/&#39;&gt;XForms&lt;/a&gt; work at the W3C.
&lt;/p&gt;

&lt;p&gt;
Speech-enabling games for effective eyes-free interaction has
proven highly educational. Interactive games are typically built
to challenge the user, and if the eyes-free interface is
inefficient, you just wont play the game — contrast this with a
task that you &lt;b&gt;must&lt;/b&gt; perform, where you&#39;re likely to make do with
a sub-optimal interface. Over the years, Emacspeak has come to
include eyes-free interfaces to several games including &lt;a href=&#39;http://en.wikipedia.org/wiki/Tetris&#39;&gt;Tetris&lt;/a&gt;,
&lt;a href=&#39;http://en.wikipedia.org/wiki/2048_(video_game)&#39;&gt;Sudoku&lt;/a&gt;, and of late the popular &lt;a href=&#39;http://en.wikipedia.org/wiki/2048_(video_game)&#39;&gt;2048 game&lt;/a&gt;. Each of these have in
turn contributed to enhancing the interaction model in Emacspeak,
and those innovations typically make their way to the rest of the
environment.
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;


&lt;div class=&#39;outline-2&#39; id=&#39;outline-container-sec-10&#39;&gt;
&lt;h2 id=&#39;sec-10&#39;&gt;&lt;span class=&#39;section-number-2&#39;&gt;10&lt;/span&gt; Accessing Media Streams&lt;/h2&gt;
&lt;div id=&#39;text-10&#39; class=&#39;outline-text-2&#39;&gt;
&lt;p&gt;
Streaming real-time audio on the Internet became a reality with
the advent of RealAudio in 1995; soon there were a large number
of media streams available on the Internet ranging from music
streams to live radio stations. But there was an interesting
twist — for the most part, all of these media streams expected
one to look at the screen, even though the primary content was
purely audio (streaming video hadn&#39;t arrived yet!). Starting in
1996, Emacspeak started including a variety of eyes-free
front-ends for accessing media streams. Initially, this was
achieved by building a wrapper around &lt;b&gt;trplayer&lt;/b&gt; — a headless
version of RealPlayer; later I built Emacspeak module
&lt;b&gt;emacspeak-m-player&lt;/b&gt; for interfacing with package &lt;b&gt;mplayer&lt;/b&gt;. A
key aspect of streaming media integration in emacspeak is that
one can launch and control streams without ever switching away
from one&#39;s primary task; thus, you can continue to type email or
edit code while seamlessly launching and controlling media
streams. Over the years, Emacspeak has come to integrate with
Emacs packages like &lt;b&gt;emms&lt;/b&gt; as well as providing wrappers for
&lt;b&gt;mplayer&lt;/b&gt; and &lt;b&gt;alsaplayer&lt;/b&gt; — collectively, these let you
efficiently launch all types of media streams, including
streaming video, without having to explicitly switch context.
&lt;/p&gt;


&lt;p&gt;
In the mid-90&#39;s, Emacspeak started including a directory of media
links to some of the more popular radio stations — primarily as a
means of helping users getting started — Emacs&#39; ability to
rapidly complete directory and file-names turned out to be the
most effective means of quickly launching everything from
streaming radio stations to audio books. And even better — as the
Emacs community develops better and smarter ways of navigating
the filesystem using completions, e.g., package &lt;b&gt;ido&lt;/b&gt;, these
types of actions become even more efficient!
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&#39;outline-2&#39; id=&#39;outline-container-sec-11&#39;&gt;
&lt;h2 id=&#39;sec-11&#39;&gt;&lt;span class=&#39;section-number-2&#39;&gt;11&lt;/span&gt; EBooks—   Ubiquitous Access To Books&lt;/h2&gt;
&lt;div id=&#39;text-11&#39; class=&#39;outline-text-2&#39;&gt;
&lt;p&gt;
AsTeR — was motivated by the increasing availability of technical
material as online electronic documents. While AsTeR processed
the TeX family of markup languages, more general ebooks came in a
wide range of formats, ranging from plain text generated from
various underlying file formats to structured EBooks, with
Project &lt;a href=&#39;http://www.gutenberg.org/&#39;&gt;Gutenberg&lt;/a&gt; leading the way. During the mid-90&#39;s, I had
access to a wide range of electronic materials from sources such
as O&#39;Reilly Publishing and various electronic journals — The Perl
Journal (TPJ) is one that I still remember fondly.
&lt;/p&gt;

&lt;p&gt;
Emacspeak provided fairly light-weight but efficient access to
all of the electronic books I had on my local disk — Emacs&#39;
strengths with respect to browsing textual documents meant that I
needed to build little that was specific to Emacspeak. The late
90&#39;s saw the arival of Daisy as an XML-based format for
accessible electronic books. The last decade has seen the rapid
convergence to &lt;b&gt;epub&lt;/b&gt; as a distribution format of choice for
electronic books. Emacspeak provides interaction modes that make
organizing, searching and reading these materials on the
Emacspeak Audio Desktop a pleasant experience. Emacspeak also
provides an OCR-Mode — this enables one to call out to an
external OCR program and read the content efficiently.
&lt;/p&gt;

&lt;p&gt;
The somewhat informal process used by publishers like O&#39;Reilly to
make technical material available to users with print impairments
was later formalized by &lt;a href=&#39;https://www.bookshare.org/&#39;&gt;BookShare&lt;/a&gt; — today, qualified users can
obtain a large number of books and periodicals initially as
Daisy-3 and increasingly as &lt;b&gt;EPub&lt;/b&gt;. BookShare provides a RESTful
API for searching and downloading books; Emacspeak module
&lt;b&gt;emacspeak-bookshare&lt;/b&gt; implements this API to create a client for
browsing the BookShare library, downloading and organizing books
locally, and an integrated ebook reading mode to round off the
experience.
&lt;/p&gt;

&lt;p&gt;
A useful complement to this suite of tools is the Calibre package
for organizing ones ebook collection; Emacspeak now implements an
&lt;b&gt;EPub Interaction&lt;/b&gt; mode that leverages Calibre (actually sqlite3)
to search and browse books, along with an integrated &lt;b&gt;EPub mode&lt;/b&gt;
for reading books.
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&#39;outline-2&#39; id=&#39;outline-container-sec-12&#39;&gt;
&lt;h2 id=&#39;sec-12&#39;&gt;&lt;span class=&#39;section-number-2&#39;&gt;12&lt;/span&gt; Leveraging Computational Tools —  From SQL And R To IPython Notebooks&lt;/h2&gt;
&lt;div id=&#39;text-12&#39; class=&#39;outline-text-2&#39;&gt;
&lt;p&gt;
The ability to invoke external processes and interface with them
via a simple read-eval-loop (REPL) is perhaps one of Emacs&#39;
strongest extension points. This means that a wide variety of
computational tools become immediately available for embedding
within the Emacs environment — a facility that has been widely
exploited by the Emacs community. Over the years, Emacspeak has
leveraged many of these facilities to provide a well-integrated
auditory interface.
&lt;/p&gt;

&lt;p&gt;
Starting from a tight code, eval, test form of iterative
programming as encouraged by Lisp. Applied to languages like
Python and Ruby to explorative computational tools such as R for
data analysis and SQL for database interaction, the Emacspeak
Audio Desktop has come to encompass a collection of rich
computational tools that provide an efficient eyes-free
experience.
&lt;/p&gt;


&lt;p&gt;
In this context, module &lt;b&gt;ein&lt;/b&gt; — Emacs IPython Notebooks —
provides another excellent example of an Emacs tool that helps
interface seamlessly with others in the technical domain. IPython
Notebooks provide an easy means of reaching a large audience when
publishing technical material with interactive computational
content; module &lt;b&gt;ein&lt;/b&gt; brings the power and convenience of Emacs &#39;
editting facilities when developing the content. Speech-enabling
package &lt;b&gt;ein&lt;/b&gt; is a major win since editting program source code
in an eyes-free environment is far smoother in Emacs than in a
browser-based editor.
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&#39;outline-2&#39; id=&#39;outline-container-sec-13&#39;&gt;
&lt;h2 id=&#39;sec-13&#39;&gt;&lt;span class=&#39;section-number-2&#39;&gt;13&lt;/span&gt; Social Web  — EMail, Instant Messaging, Blogging  And Tweeting Using Open Protocols&lt;/h2&gt;
&lt;div id=&#39;text-13&#39; class=&#39;outline-text-2&#39;&gt;
&lt;p&gt;
The ability to process large amounts of email and electronic news
has always been a feature of Emacs. I started using package &lt;b&gt;vm&lt;/b&gt;
for email in 1990, along with &lt;b&gt;gnus&lt;/b&gt; for Usenet access many years
before developing Emacspeak. So these were the first major
packages that Emacspeak speech-enabled. Being able to access the
underlying data structures used to visually render email messages
and Usenet articles enabled Emacspeak to produce rich, succinct
auditory output — this vastly increased my ability to consume and
organize large amounts of information. Toward the turn of the
century, instant messaging arrived in the mainstream — package
&lt;b&gt;tnt&lt;/b&gt; provided an Emacs implementation of a chat client that
could communicate with users on the then popular AOL Instant
Messenger platform. At the time, I worked at IBM Research, and
inspired by package &lt;b&gt;tnt&lt;/b&gt;, I created an Emacs client called
&lt;b&gt;ChatterBox&lt;/b&gt; using the Lotus Sametime API — this enabled me to
communicate with colleagues at work from the comfort of
Emacs. Packages like &lt;b&gt;vm&lt;/b&gt;, &lt;b&gt;gnus&lt;/b&gt;, &lt;b&gt;tnt&lt;/b&gt; and &lt;b&gt;ChatterBox&lt;/b&gt; provide
an interesting example of how availability of a clean underlying
API to a specific service or content stream can encourage the
creation of efficient (and different) user interfaces. The
touchstone of such successful implementations is a simple test —
can the user of a specific interface tell if the person whom he
is communicating with is also using the same interface? In each
of the examples enumerated above, a user at one end of the
communication chain cannot tell, and in fact shouldn&#39;t be able to
tell what client the user at the other end is using. Contrast
this with closed services that have an inherent &lt;i&gt;lock-in&lt;/i&gt; model
e.g., proprietary word processors that use undocumented
serialization formats — for a fun read, see this write-up on
&lt;a href=&#39;http://emacspeak.sourceforge.net/publications/colored-paper.html&#39;&gt;Universe Of Fancy Colored Paper&lt;/a&gt;.
&lt;/p&gt;


&lt;p&gt;
Today, my personal choice for instant messaging is the open
Jabber platform. I connect to Jabber via Emacs package
&lt;b&gt;emacs-jabber&lt;/b&gt; and with Emacspeak providing a light-weight
wrapper for generating the eyes-free interface, I can communicate
seamlessly with colleagues and friends around the world.
&lt;/p&gt;

&lt;p&gt;
As the Web evolved to encompass ever-increasing swathes of
communication functionality that had already been available on
the Internet, we saw the world move from Usenet groups to &lt;b&gt;Blogs&lt;/b&gt;
— I remember initially dismissing the blogging phenomenon as just
a re-invention of Usenet in the early days. However, mainstream
users flocked to Blogging, and I later realized that blogging as
a publishing platform brought along interesting features that
made communicating and publishing information &lt;b&gt;much&lt;/b&gt; easier. In
2005, I joined Google; during the winter holidays that year, I
implemented a light-weight client for Blogger that became the
start of Emacs package &lt;b&gt;g-client&lt;/b&gt; — this package provides Emacs
wrappers for Google services that provide a RESTful API.
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;


&lt;div class=&#39;outline-2&#39; id=&#39;outline-container-sec-14&#39;&gt;
&lt;h2 id=&#39;sec-14&#39;&gt;&lt;span class=&#39;section-number-2&#39;&gt;14&lt;/span&gt; The RESTful Web —  Web Wizards And URL Templates For Faster Access&lt;/h2&gt;
&lt;div id=&#39;text-14&#39; class=&#39;outline-text-2&#39;&gt;
&lt;p&gt;
Today, the Web, based on URLs and HTTP-style protocols is widely
recognized as a platform in its own right. This platform emerged
over time — to me, Web APIs arrived in the late 90&#39;s when I
observed the following with respect to my own behavior on many
popular sites:
&lt;/p&gt;

&lt;ol class=&#39;org-ol&#39;&gt;
&lt;li&gt;I opened a Web page that took a while to load (remember,  I
was still using Emacs-W3),
&lt;/li&gt;
&lt;li&gt;I then searched through the page to find a form-field that
I filled out, e.g., start and end destinations on Yahoo
Maps,
&lt;/li&gt;
&lt;li&gt;I hit &lt;b&gt;submit&lt;/b&gt;, and once again waited for a heavy-weight
HTML page to load,
&lt;/li&gt;
&lt;li&gt;And finally, I hunted through the rendered content to find
what I was looking for.
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;
This pattern repeated across a wide-range of interactive Web
sites ranging from AltaVista for search (this was pre-Google),
Yahoo Maps for directions, and Amazon for product searches to
name but a few. So I decided to automate away the pain by
creating Emacspeak module &lt;b&gt;emacspeak-websearch&lt;/b&gt; that did the
following:
&lt;/p&gt;

&lt;ol class=&#39;org-ol&#39;&gt;
&lt;li&gt;Prompt via the minibuffer for the requisite fields,
&lt;/li&gt;
&lt;li&gt;Consed up an HTTP GET URL,
&lt;/li&gt;
&lt;li&gt;Retrieved this URL,
&lt;/li&gt;
&lt;li&gt;And filtered out the specific portion of the HTML  DOM that
held the generated response.
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;
Notice that the above implementation hard-wires the CGI parameter
names used by a given Web application into the code implemented
in module &lt;b&gt;emacspeak-websearch&lt;/b&gt;. REST as a design pattern had not
yet been recognized, leave alone formalized, and module
&lt;b&gt;emacspeak-websearch&lt;/b&gt; was initially decryed as being fragile.
&lt;/p&gt;

&lt;p&gt;
However, over time, the CGI parameter names remained fixed — the
 only things that have required updating in the Emacspeak
 code-base are the content filtering rules that extract the
 response — for popular services, this has averaged about one to
 two times a year.
&lt;/p&gt;


&lt;p&gt;
I later codified these filtering rules in terms of XPath, and
also integrated XSLT-based pre-processing of incoming HTML
content before it got handed off to Emacs-W3 — and yes,
Emacs/Advice once again came in handy with respect to injecting
XSLT pre-processing into Emacs-W3!
&lt;/p&gt;

&lt;p&gt;
Later, in early 2000, I created companion module
&lt;b&gt;emacspeak-url-templates&lt;/b&gt; — partially inspired by Emacs&#39;
&lt;b&gt;webjump&lt;/b&gt; module. URL templates in Emacspeak leveraged the
recognized REST interaction pattern to provide a large collection
of Web widgets that could be quickly invoked to provide rapid
access to the right pieces of information on the Web.
&lt;/p&gt;

&lt;p&gt;
The final icing on the cake was the arrival of RSS and Atom feeds
and the consequent deep-linking into content-rich sites — this
meant that Emacspeak could provide audio renderings of useful
content without having to deal with complex visual navigation!
While Google Reader existed, Emacspeak provided a light-weight
&lt;b&gt;greader&lt;/b&gt; client for managing ones feed subscriptions; with the
demise of Google Reader, I implemented module &lt;b&gt;emacspeak-feeds&lt;/b&gt;
for organizing feeds on the Emacspeak desktop. A companion
package &lt;b&gt;emacspeak-webspace&lt;/b&gt; implements additional goodies
including a continuously updating ticker of headlines taken from
the user&#39;s collection of subscribed feeds.
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;


&lt;div class=&#39;outline-2&#39; id=&#39;outline-container-sec-15&#39;&gt;
&lt;h2 id=&#39;sec-15&#39;&gt;&lt;span class=&#39;section-number-2&#39;&gt;15&lt;/span&gt; Mashing It Up —  Leveraging Evolving Web APIs&lt;/h2&gt;
&lt;div id=&#39;text-15&#39; class=&#39;outline-text-2&#39;&gt;
&lt;p&gt;
The next step in this evolution came with the arrival of richer
Web APIs — especially ones that defined a clean client/server
separation. In this respect, the world of Web APIs is a somewhat
mixed bag in that many Web sites equate a Web API with a JS-based
API that can be exclusively invoked from within a Web-Browser
run-time. The issue with that type of API binding is that the
only runtime that is supported is a full-blown Web browser; but
the arrival of native mobile apps has actually proven a net
positive in encouraging sites to create a cleaner
separation. Emacspeak has leveraged these APIs to create
Emacspeak front-ends to many useful services, here are a few:
&lt;/p&gt;

&lt;ol class=&#39;org-ol&#39;&gt;
&lt;li&gt;Minibuffer completion for Google Search using Google Suggest
to provide completions.
&lt;/li&gt;
&lt;li&gt;Librivox for browsing  and playing free audio books.
&lt;/li&gt;
&lt;li&gt;NPR  for browsing and playing NPR archived programs.
&lt;/li&gt;
&lt;li&gt;BBC for playing a wide variety of streaming content
available from the BBC.
&lt;/li&gt;
&lt;li&gt;A Google Maps front-end that  provides instantaneous access
to directions and Places search.
&lt;/li&gt;
&lt;li&gt;Access to Twitter via package &lt;b&gt;twittering-mode&lt;/b&gt;.
&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;
And a lot more than will fit this margin! This is an example of
generalizing the concept of a mashup as seen on the Web with
respect to creating hybrid applications by bringing together a
collection of different Web APIs. Another way to think of such
separation is to view an application as a &lt;b&gt;head&lt;/b&gt; and a &lt;b&gt;body&lt;/b&gt; —
where the &lt;b&gt;head&lt;/b&gt; is a specific user interface, with the &lt;b&gt;body&lt;/b&gt;
implementing the application logic. A cleanly defined separation
between the &lt;b&gt;head&lt;/b&gt; and &lt;b&gt;body&lt;/b&gt; allows one to attach &lt;i&gt;different&lt;/i&gt;
user interfaces i.e., &lt;b&gt;heads&lt;/b&gt; to the given &lt;b&gt;body&lt;/b&gt; without any
loss of functionality, or the need to re-implement the entire
application. Modern platforms like Android enable such separation
via an
&lt;a href=&#39;http://developer.android.com/reference/android/content/Intent.html&#39;&gt;Intent&lt;/a&gt;
mechanism. The Web platform as originally defined around URLs is
actually well-suited to this type of separation — though the full
potential of this design pattern remains to be fully realized
given today&#39;s tight association of the Web to the Web Browser.
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&#39;outline-2&#39; id=&#39;outline-container-sec-16&#39;&gt;
&lt;h2 id=&#39;sec-16&#39;&gt;&lt;span class=&#39;section-number-2&#39;&gt;16&lt;/span&gt; Conclusion&lt;/h2&gt;
&lt;div id=&#39;text-16&#39; class=&#39;outline-text-2&#39;&gt;
&lt;p&gt;
In 1996, I wrote an article entitled
&lt;a href=&#39;http://www.drdobbs.com/user-interface-a-means-to-an-end/184410453&#39;&gt;User
Interface — A Means To An End&lt;/a&gt; pointing out that the size and
shape of computers were determined by the keyboard and
display. This is even more true in today&#39;s world of tablets,
phablets and large-sized phones — with the only difference that
the keyboard has been replaced by a touch screen. The next
generation in the evolution of &lt;b&gt;personal&lt;/b&gt; devices is that they
will become truly personal by being wearables — this once again
forces a separation of the user interface peripherals from the
underlying compute engine. Imagine a variety of wearables that
collectively connect to ones cell phone, which itself connects to
the cloud for all its computational and information needs. Such
an environment is rich in possibilities for creating a wide
variety of user experiences to a single underlying body of
information; Eyes-Free interfaces as pioneered by systems like
Emacspeak will come to play an increasingly vital role alongside
visual interaction when this comes to pass.
&lt;/p&gt;



&lt;p&gt;
–T.V. Raman, San Jose, CA, September 12, 2014
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;






&lt;div class=&#39;outline-2&#39; id=&#39;outline-container-sec-17&#39;&gt;
&lt;h2 id=&#39;sec-17&#39;&gt;&lt;span class=&#39;section-number-2&#39;&gt;17&lt;/span&gt; References&lt;/h2&gt;
&lt;div id=&#39;text-17&#39; class=&#39;outline-text-2&#39;&gt;
&lt;ul class=&#39;org-ul&#39;&gt;
&lt;li&gt;&lt;a href=&#39;http://emacspeak.sourceforge.net/raman/aui/aui.html&#39;&gt;Auditory User Interfaces&lt;/a&gt;   Klewer Publishing, 1997.
&lt;/li&gt;
&lt;li&gt;Advice      An Emacs Lisp package by    &lt;a href=&#39;http://www.isi.edu/~hans/&#39;&gt;Hans Chalupsky&lt;/a&gt; that
became part of Emacs 19.23.
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#39;http://emacspeak.blogspot.com/2007/07/emacspeak-and-beautiful-code.html&#39;&gt;Beautiful Code&lt;/a&gt;   An overview of the Emacspeak architecture.
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#39;http://emacspeak.sourceforge.net/raman/publications/chi96-emacspeak/&#39;&gt;Speech-Enabled Applications&lt;/a&gt;   Emacspeak at CHI 1996.
&lt;/li&gt;
&lt;li&gt;EWW   Emacspeak  &lt;a href=&#39;http://emacspeak.blogspot.com/2014/05/emacspeak-eww-updates-for-complete.html&#39;&gt;extends EWW &lt;/a&gt;.
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#39;http://artlung.com/smorgasborg/C_R_Y_P_T_O_N_O_M_I_C_O_N.shtml&#39;&gt;In The Beginning Was The Command Line&lt;/a&gt; By Neal Stephenson 
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
    &lt;/div&gt;
  </content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/669045308065263176'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/669045308065263176'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2014/09/emacspeak-at-twenty-looking-back.html' title='Emacspeak At Twenty: Looking Back, Looking Forward'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-3679250138370991755</id><published>2014-05-27T08:54:00.001-07:00</published><updated>2014-05-27T08:54:34.942-07:00</updated><title type='text'>Emacspeak And Company: Complete Anything Front-End For emacspeak</title><content type='html'>
    &lt;div xmlns=&#39;http://www.w3.org/1999/xhtml&#39;&gt;
&lt;div id=&#39;content&#39;&gt;
&lt;h1 class=&#39;title&#39;&gt;Emacspeak And Company: Complete Anything Front-End For Emacspeak&lt;/h1&gt;
&lt;div class=&#39;outline-2&#39; id=&#39;outline-container-sec-1&#39;&gt;
&lt;h2 id=&#39;sec-1&#39;&gt;&lt;span class=&#39;section-number-2&#39;&gt;1&lt;/span&gt; Emacspeak And Company: Complete Anything Front-End For Emacspeak&lt;/h2&gt;
&lt;div id=&#39;text-1&#39; class=&#39;outline-text-2&#39;&gt;
&lt;p&gt;
Module &lt;a href=&#39;http://emacspeak.googlecode.com/svn/trunk/lisp/emacspeak-company.el&#39;&gt;emacspeak-company&lt;/a&gt; speech-enables package 
&lt;a href=&#39;http://www.emacswiki.org/emacs/CompanyMode&#39;&gt;Company&lt;/a&gt; — a  flexible &lt;b&gt;complete-anything&lt;/b&gt;   extension for Emacs.
Package &lt;i&gt;company&lt;/i&gt; gains much of its flexibility by providing an
extensible framework for both back-ends and front-ends; back-ends
are responsible for  language-specific support e.g., &lt;b&gt;C++&lt;/b&gt; vs
&lt;b&gt;Emacs Lisp&lt;/b&gt;; front-ends can provide different &lt;i&gt;visualizations&lt;/i&gt;
of the available completions.
&lt;/p&gt;

&lt;p&gt;
I started using package &lt;b&gt;company&lt;/b&gt; as I taught myself to program
in &lt;a href=&#39;http://golang.org&#39;&gt;Go&lt;/a&gt;  over the last couple of weeks, and package
&lt;b&gt;emacspeak-company&lt;/b&gt;  was one of the bi-products.
&lt;/p&gt;
&lt;/div&gt;

&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-sec-1-1&#39;&gt;
&lt;h3 id=&#39;sec-1-1&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.1&lt;/span&gt; Using Company With Emacspeak&lt;/h3&gt;
&lt;div id=&#39;text-1-1&#39; class=&#39;outline-text-3&#39;&gt;
&lt;p&gt;
You can turn on &lt;i&gt;company-mode&lt;/i&gt; in dividual buffers; you can also
turn it on globally. Company comes pre-packaged with backend
support for many programming languages; for programming in Go, I
use module &lt;i&gt;company-go&lt;/i&gt; in conjunction with the &lt;a href=&#39;http://github.com/nsf/gocode&#39;&gt;GoCode&lt;/a&gt; tool.
&lt;/p&gt;

&lt;p&gt;
See customization group &lt;i&gt;company&lt;/i&gt;  to customize package
&lt;i&gt;company&lt;/i&gt;;
Emacspeak loads package &lt;i&gt;emacspeak-company&lt;/i&gt;  when package
&lt;i&gt;company&lt;/i&gt; is loaded, and that automatically sets up the
&lt;b&gt;Emacspeak&lt;/b&gt; front-end.
&lt;/p&gt;

&lt;p&gt;
Once activated, package &lt;i&gt;company&lt;/i&gt; shows available completions
where available once you type a prescribed number of
characters. Available candidates are displayed visually via an
overlay and can be traversed using either the &lt;span class=&#39;underline&#39;&gt;up/down&lt;/span&gt; arrows or
keys &lt;span class=&#39;underline&#39;&gt;M-n&lt;/span&gt; and &lt;span class=&#39;underline&#39;&gt;M-p&lt;/span&gt;. You can also search and filter the
available completions, see documentation for command
&lt;span class=&#39;underline&#39;&gt;company-mode&lt;/span&gt;. The available visual front-ends also display
relevant metadata for the current candidate in the echo
area. 
&lt;/p&gt;

&lt;p&gt;
Front-end &lt;i&gt;emacspeak-company&lt;/i&gt; performs the following additional
actions:
&lt;/p&gt;

&lt;ul class=&#39;org-ul&#39;&gt;
&lt;li&gt;Speaks current candidate along with the relevant metadata.
&lt;/li&gt;
&lt;li&gt;The metadata is spoken using  &lt;span class=&#39;underline&#39;&gt;voice-annotate&lt;/span&gt;.
&lt;/li&gt;
&lt;li&gt;Auditory icon &lt;span class=&#39;underline&#39;&gt;help&lt;/span&gt; indicates  that  completion has started.
&lt;/li&gt;
&lt;li&gt;pressing &lt;span class=&#39;underline&#39;&gt;F1&lt;/span&gt; during completion displays documentation for
the current candidate.
&lt;/li&gt;
&lt;li&gt;You can choose the current candidate by pressing &lt;span class=&#39;underline&#39;&gt;RET&lt;/span&gt;; this
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
speaks the selected candidate.
&lt;/p&gt;
&lt;ul class=&#39;org-ul&#39;&gt;
&lt;li&gt;Auditory icon &lt;span class=&#39;underline&#39;&gt;close-object&lt;/span&gt; indicates that completion has finished.
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;


&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-sec-1-2&#39;&gt;
&lt;h3 id=&#39;sec-1-2&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.2&lt;/span&gt; Insights From Speech-Enabling Company&lt;/h3&gt;
&lt;div id=&#39;text-1-2&#39; class=&#39;outline-text-3&#39;&gt;
&lt;p&gt;
Company uses a fluid visual interface to display completions
without the user having to switch contexts — it achieves this by
using overlays that appear briefly in the form of a conceptual
tooltip. These pseudo tooltips are created and destroyed via a
timer; keyboard interaction causes these to be updated —
including hiding the tooltip where appropriate.
&lt;/p&gt;

&lt;p&gt;
Module &lt;i&gt;emacspeak-company&lt;/i&gt;   speech-enables this interface by
examining the underlying information used to create the
visualization  to produce an effective audio-formatted representation.
The net effect is that you can write code with completion helping
you along the way; you do not need  to switch tasks to lookup
details  as to what completions are available.
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-sec-1-3&#39;&gt;
&lt;h3 id=&#39;sec-1-3&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.3&lt;/span&gt; Acknowledgements&lt;/h3&gt;
&lt;div id=&#39;text-1-3&#39; class=&#39;outline-text-3&#39;&gt;
&lt;p&gt;
Thanks again to the authors of package &lt;i&gt;company&lt;/i&gt; for a really
nice tool —  it&#39;s a real productivity winner — especially when
learning a new language and its built-in packages.
&lt;/p&gt;

&lt;p&gt;
I found these articles really helpful while learning to write
package &lt;i&gt;emacspeak-company&lt;/i&gt;.
&lt;/p&gt;
&lt;ul class=&#39;org-ul&#39;&gt;
&lt;li&gt;&lt;a href=&#39;http://yousefourabi.com/blog/2014/05/emacs-for-go/&#39;&gt;Setting Up GoMode&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#39;http://dominik.honnef.co/posts/2013/08/writing_go_in_emacs__cont__/&#39;&gt;Writing Go In Emacs&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;
Learning Go was a pleasure (it&#39;s still a pleasure — I&#39;m still
learning:-))
and the documentation on &lt;a href=&#39;http://golang.org&#39;&gt;GoLang&lt;/a&gt;  is excellent. As an added bonus,
that entire site uses clean, well-formed HTML  without any
unnecessary  artifacts that make so much of today&#39;s Web a  giant
mess; I have been able to use Emacs/EWW exclusively while working
with &lt;i&gt;golang.org&lt;/i&gt;  — a real bonus for someone programming heavily
in Emacs.
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#39;status&#39; id=&#39;postamble&#39;&gt;
&lt;p class=&#39;date&#39;&gt;Date: &lt;span class=&#39;timestamp-wrapper&#39;&gt;&lt;span class=&#39;timestamp&#39;&gt;&amp;lt;2014-05-27 Tue&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&#39;author&#39;&gt;Author: T.V Raman&lt;/p&gt;
&lt;p class=&#39;date&#39;&gt;Created: 2014-05-27 Tue 08:51&lt;/p&gt;
&lt;p class=&#39;creator&#39;&gt;Emacs 24.3.91.1 (Org mode 8.2.6)&lt;/p&gt;
&lt;p class=&#39;validation&#39;&gt;&lt;a href=&#39;http://validator.w3.org/check?uri=referer&#39;&gt;Validate&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
    &lt;/div&gt;
  </content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/3679250138370991755'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/3679250138370991755'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2014/05/emacspeak-and-company-complete-anything.html' title='Emacspeak And Company: Complete Anything Front-End For emacspeak'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-5171030908858943189</id><published>2014-05-12T07:52:00.001-07:00</published><updated>2014-05-12T07:52:29.164-07:00</updated><title type='text'>Announcing Emacspeak 40.0 AKA WowDog!</title><content type='html'> 
     
    &lt;div id=&#39;content&#39;&gt; 
      &lt;h1 class=&#39;title&#39;&gt;Emacspeak 40.0—WowDog—Unleashed!&lt;/h1&gt; 
 
      &lt;div class=&#39;outline-2&#39; id=&#39;outline-container-sec-1&#39;&gt; 
        &lt;h2 id=&#39;sec-1&#39;&gt;&lt;span class=&#39;section-number-2&#39;&gt;1&lt;/span&gt; Emacspeak-40.0 (WowDog) Unleashed!&lt;/h2&gt; 
        &lt;div id=&#39;text-1&#39; class=&#39;outline-text-2&#39;&gt; 
          &lt;p&gt; 
            **  For Immediate Release: 
          &lt;/p&gt; 
 
          &lt;p&gt; 
            San Jose, Calif., (May 13, 2014) 
            Emacspeak:  Redefining Accessibility In The Era Of Web  Computing  
            –Zero cost of upgrades/downgrades makes priceless software affordable! 
          &lt;/p&gt; 
 
          &lt;p&gt; 
            Emacspeak Inc (NASDOG: ESPK) --&lt;a href=&#39;http://emacspeak.sf.net&#39;&gt;http://emacspeak.sf.net&lt;/a&gt;– 
            announces the immediate world-wide availability of Emacspeak 40.0 
            (WowDog) –a powerful audio desktop for leveraging today&#39;s 
            evolving data, social and service-oriented Web cloud. 
          &lt;/p&gt; 
        &lt;/div&gt; 
 
        &lt;div class=&#39;outline-3&#39; id=&#39;outline-container-sec-1-1&#39;&gt; 
          &lt;h3 id=&#39;sec-1-1&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.1&lt;/span&gt; Investors Note:&lt;/h3&gt; 
          &lt;div id=&#39;text-1-1&#39; class=&#39;outline-text-3&#39;&gt; 
            &lt;p&gt; 
              With several prominent tweeters expanding coverage of 
              &lt;span class=&#39;underline&#39;&gt;#emacspeak&lt;/span&gt;, NASDOG: ESPK has now been consistently trading over 
              the social net at levels close to that once attained by DogCom 
              high-fliers—and as of November 2013 is trading at levels close to 
              that achieved by once better known stocks in the tech sector. 
            &lt;/p&gt; 
          &lt;/div&gt; 
        &lt;/div&gt; 
        &lt;div class=&#39;outline-3&#39; id=&#39;outline-container-sec-1-2&#39;&gt; 
          &lt;h3 id=&#39;sec-1-2&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.2&lt;/span&gt; What Is It?&lt;/h3&gt; 
          &lt;div id=&#39;text-1-2&#39; class=&#39;outline-text-3&#39;&gt; 
            &lt;p&gt; 
              Emacspeak is a fully functional audio desktop that provides 
              complete eyes-free access to all major 32 and 64 bit operating 
              environments. By seamlessly blending live access to all aspects 
              of the Internet such as Web-surfing, blogging, social computing 
              and electronic messaging into the audio desktop, Emacspeak 
              enables speech access to local and remote information with a 
              consistent and well-integrated user interface. A rich suite of 
              task-oriented tools provides efficient speech-enabled access to 
              the evolving service-oriented social Web cloud. 
            &lt;/p&gt; 
          &lt;/div&gt; 
        &lt;/div&gt; 
        &lt;div class=&#39;outline-3&#39; id=&#39;outline-container-sec-1-3&#39;&gt; 
          &lt;h3 id=&#39;sec-1-3&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.3&lt;/span&gt; Major Enhancements:&lt;/h3&gt; 
          &lt;div id=&#39;text-1-3&#39; class=&#39;outline-text-3&#39;&gt; 
            &lt;ul class=&#39;org-ul&#39;&gt; 
              &lt;li&gt;Emacs EWW: Consume Web content efficiently.   📚 
              &lt;/li&gt; 
              &lt;li&gt;emacspeak-url-templates: Smart Web access. ♅ 
              &lt;/li&gt; 
              &lt;li&gt;emacspeak-websearch.el Find things fast. ♁ 
              &lt;/li&gt; 
              &lt;li&gt;gmaps.el: Find places, read reviews, get there. 🌐 
              &lt;/li&gt; 
              &lt;li&gt;Feed Browser Consume feeds post Google-Reader.  ␌ 
              &lt;/li&gt; 
              &lt;li&gt;Freebase Search: Explore freebase knowledge base. 🆓 
              &lt;/li&gt; 
              &lt;li&gt;Emacs 24.4: Supports all new features in Emacs 24.4. 🌚 
              &lt;/li&gt; 
              &lt;li&gt;And a lot more than wil fit this margin. … 
              &lt;/li&gt; 
            &lt;/ul&gt; 
          &lt;/div&gt; 
        &lt;/div&gt; 
        &lt;div class=&#39;outline-3&#39; id=&#39;outline-container-sec-1-4&#39;&gt; 
          &lt;h3 id=&#39;sec-1-4&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.4&lt;/span&gt; Establishing Liberty, Equality And Freedom:&lt;/h3&gt; 
          &lt;div id=&#39;text-1-4&#39; class=&#39;outline-text-3&#39;&gt; 
            &lt;p&gt; 
              Never a toy system, Emacspeak is voluntarily bundled with all 
              major Linux distributions. Though designed to be modular, 
              distributors have freely chosen to bundle the fully integrated 
              system without any undue pressure—a documented success for 
              the integrated innovation embodied by Emacspeak. As the system 
              evolves, both upgrades and downgrades continue to be available at 
              the same zero-cost to all users. The integrity of the Emacspeak 
              codebase is ensured by the reliable and secure Linux platform 
              used to develop and distribute the software. 
            &lt;/p&gt; 
 
            &lt;p&gt; 
              Extensive studies have shown that thanks to these features, users 
              consider Emacspeak to be absolutely priceless. Thanks to this 
              wide-spread user demand, the present version remains   priceless 
              as ever—it is being made available at the same zero-cost as 
              previous releases. 
            &lt;/p&gt; 
 
            &lt;p&gt; 
              At the same time, Emacspeak continues to innovate in the area of 
              eyes-free social interaction and carries forward the 
              well-established Open Source tradition of introducing user 
              interface features that eventually show up in luser environments. 
            &lt;/p&gt; 
 
            &lt;p&gt; 
              On this theme, when once challenged by a proponent of a 
              crash-prone but well-marketed mousetrap with the assertion 
              &quot;Emacs is a system from the 70&#39;s&quot;, the creator of Emacspeak 
              evinced surprise at the unusual candor manifest in the assertion 
              that it would take popular idiot-proven interfaces until the year 
              2070 to catch up to where the Emacspeak audio desktop is 
              today. Industry experts welcomed this refreshing breath of 
              Courage Certainty and Clarity (CCC) at a time when users are 
              reeling from the Fear Uncertainty and Doubt (FUD) unleashed by 
              complex software systems backed by even more convoluted press 
              releases. 
            &lt;/p&gt; 
          &lt;/div&gt; 
        &lt;/div&gt; 
        &lt;div class=&#39;outline-3&#39; id=&#39;outline-container-sec-1-5&#39;&gt; 
          &lt;h3 id=&#39;sec-1-5&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.5&lt;/span&gt; Independent Test Results:&lt;/h3&gt; 
          &lt;div id=&#39;text-1-5&#39; class=&#39;outline-text-3&#39;&gt; 
            &lt;p&gt; 
              Independent test results have proven that unlike some modern (and 
              not so modern) software, Emacspeak can be safely uninstalled without 
              adversely affecting the continued performance of the computer. These 
              same tests also revealed that once uninstalled, the user stopped 
              functioning altogether. Speaking with Aster Labrador, the creator of 
              Emacspeak once pointed out that these results re-emphasize the 
              user-centric design of Emacspeak; &quot;It is the user –and not the 
              computer– that stops functioning when Emacspeak is uninstalled!&quot;. 
            &lt;/p&gt; 
          &lt;/div&gt; 
 
          &lt;div class=&#39;outline-4&#39; id=&#39;outline-container-sec-1-5-1&#39;&gt; 
            &lt;h4 id=&#39;sec-1-5-1&#39;&gt;&lt;span class=&#39;section-number-4&#39;&gt;1.5.1&lt;/span&gt; Note from Aster,Bubbles and Tilden:&lt;/h4&gt; 
            &lt;div id=&#39;text-1-5-1&#39; class=&#39;outline-text-4&#39;&gt; 
              &lt;p&gt; 
                UnDoctored Videos Inc. is looking for volunteers to star in a 
                video demonstrating such complete user failure. 
              &lt;/p&gt; 
            &lt;/div&gt; 
          &lt;/div&gt; 
        &lt;/div&gt; 
        &lt;div class=&#39;outline-3&#39; id=&#39;outline-container-sec-1-6&#39;&gt; 
          &lt;h3 id=&#39;sec-1-6&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.6&lt;/span&gt; Obtaining Emacspeak:&lt;/h3&gt; 
          &lt;div id=&#39;text-1-6&#39; class=&#39;outline-text-3&#39;&gt; 
            &lt;p&gt; 
              Emacspeak can be downloaded from Google Code  –see 
              &lt;a href=&#39;http://code.google.com/p/emacspeak/&#39;&gt;http://code.google.com/p/emacspeak/&lt;/a&gt; You can visit 
              Emacspeak on the WWW at &lt;a href=&#39;http://emacspeak.sf.net&#39;&gt;http://emacspeak.sf.net&lt;/a&gt;.  You can subscribe 
              to the emacspeak mailing list emacspeak@cs.vassar.edu by sending 
              mail to the list request address 
              emacspeak-request@cs.vassar.edu. The 
              &lt;a href=&#39;http://emacspeak.blogspot.com&#39;&gt;Emacspeak Blog&lt;/a&gt; is a good source 
              for news about recent enhancements and how to use them. 
              The WowDog release is at  
              &lt;a href=&#39;http://emacspeak.googlecode.com/svn/wiki/downloads/emacspeak-40.0.tar.bz2&#39;&gt;http://emacspeak.googlecode.com/svn/wiki/downloads/emacspeak-40.0.tar.bz2&lt;/a&gt;. 
              The latest development snapshot of Emacspeak is always available via 
              Subversion from Google Code  at  
              &lt;a href=&#39;http://emacspeak.googlecode.com/svn/trunk/&#39;&gt;http://emacspeak.googlecode.com/svn/trunk/&lt;/a&gt; 
            &lt;/p&gt; 
          &lt;/div&gt; 
        &lt;/div&gt; 
 
        &lt;div class=&#39;outline-3&#39; id=&#39;outline-container-sec-1-7&#39;&gt; 
          &lt;h3 id=&#39;sec-1-7&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.7&lt;/span&gt; History:&lt;/h3&gt; 
          &lt;div id=&#39;text-1-7&#39; class=&#39;outline-text-3&#39;&gt; 
            &lt;p&gt; 
              Emacspeak 40.0 goes back to Web basics by enabling &lt;a href=&#39;http://emacspeak.blogspot.com/2013/11/reading-web-content-efficiently.html&#39;&gt;efficient 
              access&lt;/a&gt; to large amounts of readable Web content. Emacspeak 39.0 
              continues the Emacspeak tradition of increasing the breadth of 
              user tasks that are covered without introducing unnecessary 
              bloatware. Emacspeak 38.0 is the latest in a series of 
              award-winning releases from Emacspeak Inc. Emacspeak 37.0 
              continues the tradition of delivering robust software as 
              reflected by its code-name. Emacspeak 36.0 enhances the audio 
              desktop with many new tools including full EPub support — hence 
              the name EPubDog. Emacspeak 35.0 is all about teaching a new dog 
              old tricks — and is aptly code-named HeadDog in honor of our 
              new Press/Analyst contact. emacspeak-34.0 (AKA Bubbles) 
              established a new beach-head with respect to rapid task 
              completion in an eyes-free environment. Emacspeak-33.0 AKA 
              StarDog brings unparalleled cloud access to the audio 
              desktop. Emacspeak 32.0 AKA LuckyDog continues to innovate via 
              open technologies for better access. Emacspeak 31.0 AKA TweetDog 
              — adds tweeting to the Emacspeak desktop. Emacspeak 30.0 AKA 
              SocialDog brings the Social Web to the audio desktop—you cant but 
              be social if you speak! Emacspeak 29.0—AKAAbleDog—is a testament 
              to the resilliance and innovation embodied by Open Source 
              software—it would not exist without the thriving Emacs community 
              that continues to ensure that Emacs remains one of the premier 
              user environments despite perhaps also being one of the 
              oldest. Emacspeak 28.0—AKA PuppyDog—exemplifies the rapid pace of 
              development evinced by Open Source software. Emacspeak 27.0—AKA 
              FastDog—is the latest in a sequence of upgrades that make 
              previous releases obsolete and downgrades unnecessary. Emacspeak 
              26—AKA LeadDog—continues the tradition of introducing innovative 
              access solutions that are unfettered by the constraints inherent 
              in traditional adaptive technologies. Emacspeak 25 —AKA ActiveDog 
              —re-activates open, unfettered access to online 
              information. Emacspeak-Alive —AKA LiveDog —enlivens open, 
              unfettered information access with a series of live updates that 
              once again demonstrate the power and agility of open source 
              software development. Emacspeak 23.0 – AKA Retriever—went the 
              extra mile in fetching full access. Emacspeak 22.0 —AKA GuideDog 
              —helps users navigate the Web more effectively than ever 
              before. Emacspeak 21.0 —AKA PlayDog —continued the Emacspeak 
              tradition of relying on enhanced productivity to liberate 
              users. Emacspeak-20.0 —AKA LeapDog —continues the long 
              established GNU/Emacs tradition of integrated innovation to 
              create a pleasurable computing environment for eyes-free 
              interaction. emacspeak-19.0 –AKA WorkDog– is designed to 
              enhance user productivity at work and leisure. Emacspeak-18.0 
              –code named GoodDog– continued the Emacspeak tradition of 
              enhancing user productivity and thereby reducing total cost of 
              ownership. Emacspeak-17.0 –code named HappyDog– enhances user 
              productivity by exploiting today&#39;s evolving WWW 
              standards. Emacspeak-16.0 –code named CleverDog– the follow-up 
              to SmartDog– continued the tradition of working better, faster, 
              smarter. Emacspeak-15.0 –code named SmartDog–followed up on 
              TopDog as the next in a continuing a series of award-winning 
              audio desktop releases from Emacspeak Inc. Emacspeak-14.0 –code 
              named TopDog–was the first release of this 
              millennium. Emacspeak-13.0 –codenamed YellowLab– was the 
              closing release of the 20th. century. Emacspeak-12.0 –code named 
              GoldenDog– began leveraging the evolving semantic WWW to provide 
              task-oriented speech access to Webformation. Emacspeak-11.0 
              –code named Aster– went the final step in making Linux a 
              zero-cost Internet access solution for blind and visually 
              impaired users. Emacspeak-10.0 –(AKA Emacspeak-2000) code named 
              WonderDog– continued the tradition of award-winning software 
              releases designed to make eyes-free computing a productive and 
              pleasurable experience. Emacspeak-9.0 –(AKA Emacspeak 99) code 
              named BlackLab– continued to innovate in the areas of speech 
              interaction and interactive accessibility. Emacspeak-8.0 –(AKA 
              Emacspeak-98++) code named BlackDog– was a major upgrade to the 
              speech output extension to Emacs. 
            &lt;/p&gt; 
 
            &lt;p&gt; 
              Emacspeak-95 (code named Illinois) was released as OpenSource on 
              the Internet in May 1995 as the first complete speech interface 
              to UNIX workstations. The subsequent release, Emacspeak-96 (code 
              named Egypt) made available in May 1996 provided significant 
              enhancements to the interface. Emacspeak-97 (Tennessee) went 
              further in providing a true audio desktop. Emacspeak-98 
              integrated Internetworking into all aspects of the audio desktop 
              to provide the first fully interactive speech-enabled WebTop. 
            &lt;/p&gt; 
 
            &lt;p&gt; 
              About Emacspeak: 
            &lt;/p&gt; 
            &lt;hr/&gt; 
 
            &lt;p&gt; 
              Originally based at Cornell (NY) 
              &lt;a href=&#39;http://www.cs.cornell.edu/home/raman&#39;&gt;http://www.cs.cornell.edu/home/raman&lt;/a&gt; –home to Auditory User 
              Interfaces (AUI) on the WWW– Emacspeak is now maintained on 
              GoogleCode --&lt;a href=&#39;http://code.google.com/p/emacspeak&#39;&gt;http://code.google.com/p/emacspeak&lt;/a&gt; —and 
              Sourceforge —&lt;a href=&#39;http://emacspeak.sf.net&#39;&gt;http://emacspeak.sf.net&lt;/a&gt;. The system is mirrored 
              world-wide by an international network of software archives and 
              bundled voluntarily with all major Linux distributions. On 
              Monday, April 12, 1999, Emacspeak became part of the 
              Smithsonian&#39;s Permanent Research Collection on Information 
              Technology at the Smithsonian&#39;s National Museum of American 
              History. 
            &lt;/p&gt; 
 
            &lt;p&gt; 
              The Emacspeak mailing list is archived at Vassar –the home of the 
              Emacspeak mailing list– thanks to Greg Priest-Dorman, and provides a 
              valuable knowledge base for new users. 
            &lt;/p&gt; 
          &lt;/div&gt; 
        &lt;/div&gt; 
        &lt;div class=&#39;outline-3&#39; id=&#39;outline-container-sec-1-8&#39;&gt; 
          &lt;h3 id=&#39;sec-1-8&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.8&lt;/span&gt; Press/Analyst Contact: Tilden Labrador&lt;/h3&gt; 
          &lt;div id=&#39;text-1-8&#39; class=&#39;outline-text-3&#39;&gt; 
            &lt;p&gt; 
              Going forward, Tilden acknowledges his exclusive monopoly on 
              setting the direction of the Emacspeak Audio Desktop, and 
              promises to exercise this freedom to innovate and her resulting 
              power responsibly (as before) in the interest of all dogs. 
            &lt;/p&gt; 
 
            &lt;p&gt; 
              **About This Release: 
            &lt;/p&gt; 
            &lt;hr/&gt; 
 
            &lt;p&gt; 
              Windows-Free (WF) is a favorite battle-cry of The League Against 
              Forced Fenestration (LAFF).  –see 
              &lt;a href=&#39;http://www.usdoj.gov/atr/cases/f3800/msjudgex.htm&#39;&gt;http://www.usdoj.gov/atr/cases/f3800/msjudgex.htm&lt;/a&gt; for details on 
              the ill-effects of Forced Fenestration. 
            &lt;/p&gt; 
 
            &lt;p&gt; 
              CopyWrite )C( Aster and Hubbell Labrador. All Writes Reserved. 
              HeadDog (DM), LiveDog (DM), GoldenDog (DM), BlackDog (DM) etc., are Registered 
              Dogmarks of Aster,  Hubbell  and Tilden Labrador.  All other dogs belong to 
              their respective owners. 
            &lt;/p&gt; 
          &lt;/div&gt; 
        &lt;/div&gt; 
      &lt;/div&gt; 
    &lt;/div&gt; 
    &lt;div class=&#39;status&#39; id=&#39;postamble&#39;&gt; 
      &lt;p class=&#39;author&#39;&gt;Author: T.V Raman&lt;/p&gt; 
      &lt;p class=&#39;date&#39;&gt;Created: 2014-05-09 Fri 08:44&lt;/p&gt; 
      &lt;p class=&#39;creator&#39;&gt;&lt;a href=&#39;http://www.gnu.org/software/emacs/&#39;&gt;Emacs&lt;/a&gt; 24.4.50.2 (&lt;a href=&#39;http://orgmode.org&#39;&gt;Org&lt;/a&gt; mode 8.2.6)&lt;/p&gt; 
      &lt;p class=&#39;validation&#39;&gt;&lt;a href=&#39;http://validator.w3.org/check?uri=referer&#39;&gt;Validate&lt;/a&gt;&lt;/p&gt; 
    &lt;/div&gt; 
   
  </content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/5171030908858943189'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/5171030908858943189'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2014/05/announcing-emacspeak-400-aka-wowdog.html' title='Announcing Emacspeak 40.0 AKA WowDog!'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-7522454771756394603</id><published>2014-05-01T17:30:00.001-07:00</published><updated>2014-05-01T17:30:45.917-07:00</updated><title type='text'>Emacspeak: EWW Updates For The Complete Audio Desktop</title><content type='html'>
    &lt;div xmlns=&#39;http://www.w3.org/1999/xhtml&#39;&gt;

&lt;div id=&#39;content&#39;&gt;
&lt;h1 class=&#39;title&#39;&gt;Emacspeak EWW Updates&lt;/h1&gt;
&lt;div class=&#39;outline-2&#39; id=&#39;outline-container-sec-1&#39;&gt;
&lt;h2 id=&#39;sec-1&#39;&gt;&lt;span class=&#39;section-number-2&#39;&gt;1&lt;/span&gt; Emacspeak EWW Updates&lt;/h2&gt;
&lt;div id=&#39;text-1&#39; class=&#39;outline-text-2&#39;&gt;
&lt;p&gt;
Within a few weeks, &lt;a href=&#39;http://emacspeak.blogspot.com/2013/11/reading-web-content-efficiently.html&#39;&gt;EWW&lt;/a&gt; has become my prefered way of consuming
large amounts of Web content — except for simple fill-out
forms, it has entirely replaced Emacs/W3 for me. Goes without
saying that I still use ChromeVox for Js-heavy Web sites.
&lt;/p&gt;

&lt;p&gt;
This article summarizes  some of the major enhancements to EWW
implemented in module &lt;span class=&#39;underline&#39;&gt;emacspeak-eww&lt;/span&gt;; See the online
documentation and key-binding help for complete details.
&lt;/p&gt;
&lt;/div&gt;

&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-sec-1-1&#39;&gt;
&lt;h3 id=&#39;sec-1-1&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.1&lt;/span&gt; EWW And Masquerade Mode&lt;/h3&gt;
&lt;div id=&#39;text-1-1&#39; class=&#39;outline-text-3&#39;&gt;
&lt;p&gt;
You can now have EWW masquerade as modern  browsers; note that
some sites might serve you more feature-rich content in this
mode. 
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-sec-1-2&#39;&gt;
&lt;h3 id=&#39;sec-1-2&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.2&lt;/span&gt; Smart Google Searches&lt;/h3&gt;
&lt;div id=&#39;text-1-2&#39; class=&#39;outline-text-3&#39;&gt;
&lt;p&gt;
All of the features from module &lt;span class=&#39;underline&#39;&gt;emacspeak-google&lt;/span&gt; have been
integrated to work with EWW. In addition, if running in
masquerade-mode, you can quickly access knowledge cards if
available on the current results page.
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-sec-1-3&#39;&gt;
&lt;h3 id=&#39;sec-1-3&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.3&lt;/span&gt; Rich DOM  Filtering&lt;/h3&gt;
&lt;div id=&#39;text-1-3&#39; class=&#39;outline-text-3&#39;&gt;
&lt;p&gt;
The suite of DOM filtered views has been enhanced to support
filtering by class, id, role, or element-list.  In addition, you
can also invert these filters.
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-sec-1-4&#39;&gt;
&lt;h3 id=&#39;sec-1-4&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.4&lt;/span&gt; Structure Navigation&lt;/h3&gt;
&lt;div id=&#39;text-1-4&#39; class=&#39;outline-text-3&#39;&gt;
&lt;p&gt;
Emacspeak now supports structured navigation in pages rendered by
EWW, see the key-bindings for details.
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-sec-1-5&#39;&gt;
&lt;h3 id=&#39;sec-1-5&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.5&lt;/span&gt; Integration With URL-Templates And Feeds&lt;/h3&gt;
&lt;div id=&#39;text-1-5&#39; class=&#39;outline-text-3&#39;&gt;
&lt;p&gt;
EWW is now fully integrated with Emacspeak WebSearch,
URL-Templates and Feeds. This means that hitting &lt;span class=&#39;underline&#39;&gt;g&lt;/span&gt; in an EWW
buffer does the &lt;i&gt;right thing&lt;/i&gt; with respect to updating the
rendered buffer:
&lt;/p&gt;

&lt;ul class=&#39;org-ul&#39;&gt;
&lt;li&gt;If viewing a feed, the feed is reloaded before it is rendered
as HTML.
&lt;/li&gt;
&lt;li&gt;If viewing a url-template, the template is re-opened,
prompting for user-input if needed.
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-sec-1-6&#39;&gt;
&lt;h3 id=&#39;sec-1-6&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.6&lt;/span&gt; XSLT Integration&lt;/h3&gt;
&lt;div id=&#39;text-1-6&#39; class=&#39;outline-text-3&#39;&gt;
&lt;p&gt;
Most of the functionality provided by module &lt;span class=&#39;underline&#39;&gt;emacspeak-xslt&lt;/span&gt; for
filtering the DOM in the world of Emacs/W3 is achieved more
effectively via the DOM  filtering commands in &lt;span class=&#39;underline&#39;&gt;emacspeak-eww&lt;/span&gt;
—that said, XSLT pre-processing is fully integrated with EWW via
supporting modules &lt;span class=&#39;underline&#39;&gt;emacspeak-ew&lt;/span&gt; and &lt;span class=&#39;underline&#39;&gt;emacspeak-webutils&lt;/span&gt;.
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-sec-1-7&#39;&gt;
&lt;h3 id=&#39;sec-1-7&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.7&lt;/span&gt; Other Fun Things To Do&lt;/h3&gt;
&lt;div id=&#39;text-1-7&#39; class=&#39;outline-text-3&#39;&gt;
&lt;p&gt;
Here are some more fun things that might be worth doing:
&lt;/p&gt;

&lt;ul class=&#39;org-ul&#39;&gt;
&lt;li&gt;Integrate &lt;a href=&#39;http://phantomjs.org/&#39;&gt;PhantomJS&lt;/a&gt; with EWW  to load content that is
rendered via JS &lt;span class=&#39;underline&#39;&gt;document.write&lt;/span&gt;.
&lt;/li&gt;
&lt;li&gt;Integrate with  &lt;a href=&#39;http://casperjs.org/./index.html&#39;&gt;CasperJS&lt;/a&gt; to enable interaction with
light-weight WebApps.
&lt;/li&gt;
&lt;li&gt;Integrate with Chrome over the debugger API to access the
live DOM  within Chrome.
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
&lt;b&gt;Share And Enjoy&lt;/b&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
    &lt;/div&gt;
  </content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/7522454771756394603'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/7522454771756394603'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2014/05/emacspeak-eww-updates-for-complete.html' title='Emacspeak: EWW Updates For The Complete Audio Desktop'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-6419858702011543886</id><published>2014-03-24T17:51:00.001-07:00</published><updated>2014-03-25T19:40:13.966-07:00</updated><title type='text'>Emacspeak Webspace: Glancing At Information On The Audio Desktop</title><content type='html'> 
    &lt;div&gt; 
&lt;div id=&#39;content&#39;&gt; 
&lt;h1 class=&#39;title&#39;&gt;A Web News Ticker For Emacs&lt;/h1&gt; 
&lt;div id=&#39;outline-container-sec-1&#39; class=&#39;outline-2&#39;&gt; 
&lt;h2 id=&#39;sec-1&#39;&gt;&lt;span class=&#39;section-number-2&#39;&gt;1&lt;/span&gt; WebSpace: A Web News Ticker For Emacs&lt;/h2&gt; 
&lt;div class=&#39;outline-text-2&#39; id=&#39;text-1&#39;&gt; 
&lt;p&gt; 
Module Emacspeak-Webspace provides a rolling ticker of 
information  that is automatically retrieved, cached and 
maintained by Emacspeak.  Using this functionality, you can set 
up specific buffers to have &lt;i&gt;interesting&lt;/i&gt; tidbits of information 
displayed automatically in the header-line; Emacspeak speaks 
these items of information as you switch contexts. This article 
explains the usage model and underlying  design of Emacspeak 
Webspaces. 
&lt;/p&gt; 
&lt;/div&gt; 
&lt;div id=&#39;outline-container-sec-1-1&#39; class=&#39;outline-3&#39;&gt; 
&lt;h3 id=&#39;sec-1-1&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.1&lt;/span&gt; Background&lt;/h3&gt; 
&lt;div class=&#39;outline-text-3&#39; id=&#39;text-1-1&#39;&gt; 
&lt;p&gt; 
The Emacspeak Webspace module was originally created in early 
&lt;a href=&#39;http://emacspeak.blogspot.com/2008/03/emacspeak-webspace-interaction-free.html&#39;&gt;Interaction 
Free Information Access (2008)&lt;/a&gt; 
because I wanted the audio equivalent of being able to 
quickly &lt;i&gt;glance&lt;/i&gt; at information.  Here are some aspects of visual 
interaction that I wanted to emulate: 
&lt;/p&gt; 
&lt;ul class=&#39;org-ul&#39;&gt; 
&lt;li&gt;You can quickly glance at something while switching contexts, 
and ignore it if it is not important. 
&lt;/li&gt; 
&lt;li&gt;The object that you &lt;i&gt;glance&lt;/i&gt; at while switching contexts does 
not become an object of attention ie, the casual task remains 
casual, as opposed to becoming the primary task.  Email is 
the antithesis to this model — where if you start glancing 
at email, it&#39;s a sufficiently strong distraction that you&#39;ll 
start doing email  — as opposed to what you were supposed 
to be doing. 
&lt;/li&gt; 
&lt;li&gt;If the item you glanced at deserves further attention, you 
can come back to it later — and the system gives you 
sufficient confidence in your ability to come back to it 
later — note that this is &lt;b&gt;essential&lt;/b&gt; to ensure the 
previous  requirement. 
&lt;/li&gt; 
&lt;li&gt;Items  are cached  but get pushed out by newer items — this 
makes sure you dont feel pressured to &lt;i&gt;read everything&lt;/i&gt; or 
have to explicitly &lt;i&gt;catch-up&lt;/i&gt; — in prior systems including 
email and Google Reader, I always found the task of hitting 
&lt;i&gt;catch-up&lt;/i&gt; without reading everything  a fairly stressful experience. 
&lt;/li&gt; 
&lt;li&gt;Applied to information updates, think &lt;i&gt;hallway conversations&lt;/i&gt; 
outside your office — you mostly ignore them, but sometime 
get drawn because you hear some specific keywords and/or 
concepts that draw your attention. 
&lt;/li&gt; 
&lt;/ul&gt; 
&lt;/div&gt; 
&lt;/div&gt; 
&lt;div id=&#39;outline-container-sec-1-2&#39; class=&#39;outline-3&#39;&gt; 
&lt;h3 id=&#39;sec-1-2&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.2&lt;/span&gt; Early Implementation In 2009&lt;/h3&gt; 
&lt;div class=&#39;outline-text-3&#39; id=&#39;text-1-2&#39;&gt; 
&lt;p&gt; 
I used the WebSpace functionality in Emacspeak for news and 
weather updates starting 2009; at some time in late 2009, I cut 
it over to get updates from my Google Reader stream.  It was 
extremely effective for my usage pattern — I typically 
activated the functionality in all shell buffers. In my work 
style where I switch among the primary tasks of engineering 
(writing/reviewing  code), writing/reviewing design documents, 
and doing email to facilitate the previous two tasks, the shell 
buffer is where I switch to while context-switching e.g., 
launching a build after writing code as an example.  Having the 
Webspace functionality say &lt;i&gt;something interesting&lt;/i&gt; at those times 
was optimal. 
&lt;/p&gt; 
&lt;/div&gt; 
&lt;/div&gt; 
&lt;div id=&#39;outline-container-sec-1-3&#39; class=&#39;outline-3&#39;&gt; 
&lt;h3 id=&#39;sec-1-3&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.3&lt;/span&gt; Initial Implementation And Design&lt;/h3&gt; 
&lt;div class=&#39;outline-text-3&#39; id=&#39;text-1-3&#39;&gt; 
&lt;p&gt; 
The information to be pulled in the rolling header line is pulled 
from a cache — in 2009, this cache was populated from my Google 
Reader stream. The cache was maintained in a ring with older 
items falling off the end.  You could optionally switch to a 
buffer displaying all of the currently cached items — this 
functionality assured me that  I could always later find an item 
that  had caught my attention while  I was in the process of 
context switching amongst tasks. Notice that if I didn&#39;t go back 
and check for that item within a day, it would fall off the 
ring-buffer cache — and this usually would mean that it likely 
wasn&#39;t that important after all. 
&lt;/p&gt; 
&lt;/div&gt; 
&lt;/div&gt; 
&lt;div id=&#39;outline-container-sec-1-4&#39; class=&#39;outline-3&#39;&gt; 
&lt;h3 id=&#39;sec-1-4&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.4&lt;/span&gt; Life After Google Reader&lt;/h3&gt; 
&lt;div class=&#39;outline-text-3&#39; id=&#39;text-1-4&#39;&gt; 
&lt;p&gt; 
With the passing of Google Reader last year, I started 
implementing the feed-reading functionality I needed in Emacspeak 
independent of Google Reader; see the earlier article in this 
blog titled &lt;a href=&#39;http://emacspeak.blogspot.com/2013/12/managing-and-accessing-feeds-on.html&#39;&gt;Managing And Accessing Feeds On The Emacspeak Audio 
Desktop&lt;/a&gt;. 
Next, I updated the Emacspeak WebSpace functionality to build its 
cache from the set of feeds in &lt;span class=&#39;underline&#39;&gt;emacspeak&lt;sub&gt;feeds&lt;/sub&gt;&lt;/span&gt;. 
&lt;/p&gt; 
&lt;/div&gt; 
&lt;/div&gt; 
&lt;div id=&#39;outline-container-sec-1-5&#39; class=&#39;outline-3&#39;&gt; 
&lt;h3 id=&#39;sec-1-5&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.5&lt;/span&gt; Usage Pattern&lt;/h3&gt; 
&lt;div class=&#39;outline-text-3&#39; id=&#39;text-1-5&#39;&gt; 
&lt;p&gt; 
This section details my own usage pattern and set-up — this is 
by no means the only way to use this functionality. 
&lt;/p&gt; 
&lt;ol class=&#39;org-ol&#39;&gt; 
&lt;li&gt;Emacspeak binds Webspace functionality to  &lt;span class=&#39;underline&#39;&gt;Hyper Space&lt;/span&gt;  as 
a prefix key. 
&lt;/li&gt; 
&lt;li&gt;&lt;span class=&#39;underline&#39;&gt;Hyper Space h&lt;/span&gt; invokes command 
&lt;span class=&#39;underline&#39;&gt;emacspeak-webspace-headlines&lt;/span&gt;  — this command 
initializes the feed-store cache, and sets up the 
header-line in the current buffer to display a rolling 
ticker.  Note that you can invoke this command in multiple 
buffers;  those buffers will share a common headlines cache. 
&lt;/li&gt; 
&lt;li&gt;The feed-store is updated during Emacs idle-time; I often 
invoke  the elisp form 
&lt;span class=&#39;underline&#39;&gt;(emacspeak-webspace-headlines-populate)&lt;/span&gt; to populate the 
cache initially. Note that depending on your network, and 
the number of feeds you have in &lt;span class=&#39;underline&#39;&gt;emacspeak-feeds&lt;/span&gt;, this can 
block emacs for a couple of minutes. 
&lt;/li&gt; 
&lt;li&gt;Command &lt;span class=&#39;underline&#39;&gt;emacspeak-webspace-headlines-browse&lt;/span&gt;  displays an 
interactive buffer containing the current set  of cached 
headlines — this is where you go to track down a headline 
you heard in passing. I bind this to &lt;span class=&#39;underline&#39;&gt;Super h&lt;/span&gt; by 
customizing &lt;span class=&#39;underline&#39;&gt;emacspeak-super-keys&lt;/span&gt;. 
&lt;/li&gt; 
&lt;li&gt;You can set up other types of information in your rolling 
header — something I initially used it for was weather 
— see command  &lt;span class=&#39;underline&#39;&gt;emacspeak-webspace-weather&lt;/span&gt;   personally, 
I &#39;ve not found this as useful in CA given how consistently 
good the weather is here. 
&lt;/li&gt; 
&lt;li&gt;For related work in Emacs, see Emacs package &lt;span class=&#39;underline&#39;&gt;newsticker&lt;/span&gt;. 
That package works well with Emacspeak, but in using it 
earlier, I found that I could not prevent myself from 
starting to read content i.e., it failed to meet the 
&lt;i&gt;glance and continue&lt;/i&gt; requirement. 
&lt;/li&gt; 
&lt;/ol&gt; 
&lt;/div&gt; 
&lt;/div&gt; 
&lt;/div&gt; 
&lt;/div&gt; 
&lt;div id=&#39;postamble&#39; class=&#39;status&#39;&gt; 
&lt;p class=&#39;date&#39;&gt;Date: &lt;span class=&#39;timestamp-wrapper&#39;&gt;&lt;span class=&#39;timestamp&#39;&gt;&amp;lt;2014-03-24 Mon&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; 
&lt;p class=&#39;author&#39;&gt;Author: T.V Raman&lt;/p&gt; 
&lt;p class=&#39;date&#39;&gt;Created: 2014-03-24 Mon 18:00&lt;/p&gt; 
&lt;p class=&#39;creator&#39;&gt;Emacs 24.3.50.2 (Org mode 8.2.5c)&lt;/p&gt; 
&lt;p class=&#39;validation&#39;&gt;&lt;a href=&#39;http://validator.w3.org/check?uri=referer&#39;&gt;Validate&lt;/a&gt;&lt;/p&gt; 
&lt;/div&gt; 
&lt;/div&gt; 
  </content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/6419858702011543886'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/6419858702011543886'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2014/03/emacspeak-webspace-glancing-at.html' title='Emacspeak Webspace: Glancing At Information On The Audio Desktop'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-4505425483465638321</id><published>2014-02-08T17:00:00.001-08:00</published><updated>2014-02-08T17:00:41.306-08:00</updated><title type='text'>Searching GMail Using IMap And GNUS</title><content type='html'>
    &lt;div xmlns=&#39;http://www.w3.org/1999/xhtml&#39;&gt;
&lt;div id=&#39;content&#39;&gt;
&lt;h1 class=&#39;title&#39;&gt;Searching GMail Using IMap and GNUS&lt;/h1&gt;
&lt;div class=&#39;outline-2&#39; id=&#39;outline-container-sec-1&#39;&gt;
&lt;h2 id=&#39;sec-1&#39;&gt;&lt;span class=&#39;section-number-2&#39;&gt;1&lt;/span&gt; Searching GMail Using IMap and GNUS&lt;/h2&gt;
&lt;div id=&#39;text-1&#39; class=&#39;outline-text-2&#39;&gt;
&lt;p&gt;
Emacs package GNUS provides a very efficient interface for
consuming large amounts of email.
You can access GMail using GNUS&#39; IMap interface, for my own
configuration for doing this, see file &lt;span class=&#39;underline&#39;&gt;tvr/gnus-prepare.el&lt;/span&gt; in
the Emacspeak SVN  repository.
Module &lt;span class=&#39;underline&#39;&gt;gm-nnir.el&lt;/span&gt;  in package &lt;span class=&#39;underline&#39;&gt;g-client&lt;/span&gt; implements some
convenience hooks to enable efficient searching of GMail. Module
&lt;span class=&#39;underline&#39;&gt;emacspeak-gnus&lt;/span&gt; has been updated to bind commands from module
&lt;span class=&#39;underline&#39;&gt;gm-nnir.el&lt;/span&gt; to &lt;span class=&#39;underline&#39;&gt;?&lt;/span&gt; and &lt;span class=&#39;underline&#39;&gt;/&lt;/span&gt; in  the &lt;b&gt;Group&lt;/b&gt; buffer.
&lt;/p&gt;
&lt;/div&gt;

&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-sec-1-1&#39;&gt;
&lt;h3 id=&#39;sec-1-1&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.1&lt;/span&gt; Basic Usage&lt;/h3&gt;
&lt;div id=&#39;text-1-1&#39; class=&#39;outline-text-3&#39;&gt;
&lt;p&gt;
Assuming you already have GNUS configured to read GMail via IMap,
you can:
&lt;/p&gt;

&lt;ul class=&#39;org-ul&#39;&gt;
&lt;li&gt;Press &lt;span class=&#39;underline&#39;&gt;/&lt;/span&gt; in the  groups buffer  to search your mail. This
command accepts all GMail queries, so for example,
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&#39;example&#39;&gt;
after: 2014/02/01 to: me
&lt;/pre&gt;
&lt;p&gt;
Will find all messages received after   February 1, 2014 and
addressed to you.
&lt;/p&gt;
&lt;pre class=&#39;example&#39;&gt;
label: foo after: 2014/01/01
&lt;/pre&gt;
&lt;p&gt;
Will find messages with label &lt;span class=&#39;underline&#39;&gt;foo&lt;/span&gt; and received after January
1, 2014.
&lt;/p&gt;
&lt;ul class=&#39;org-ul&#39;&gt;
&lt;li&gt;Press &lt;span class=&#39;underline&#39;&gt;?&lt;/span&gt; in the Group buffer to execute a more extensive
search command; this accepts both IMap query specifications
(per RFC 3501) as well as GMail query specifications. The
command provides smart completion, follow the prompts  to
build up complex queries. In general, there is almost
nothing you cannot do with the GMail query language, so this
command is mostly there as a backup.
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-sec-1-2&#39;&gt;
&lt;h3 id=&#39;sec-1-2&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.2&lt;/span&gt; The Technical Details&lt;/h3&gt;
&lt;div id=&#39;text-1-2&#39; class=&#39;outline-text-3&#39;&gt;
&lt;p&gt;
The GMail query language is exposed to IMap via custom search key
&lt;span class=&#39;underline&#39;&gt;X-GM-RAW&lt;/span&gt;; commands &lt;span class=&#39;underline&#39;&gt;gm-nnir-group-make-gmail-group&lt;/span&gt; and
&lt;span class=&#39;underline&#39;&gt;gm-nnir-group-make-nnir-group&lt;/span&gt; use this functionality to
construct &lt;i&gt;ephemeral&lt;/i&gt; groups that hold the search results.
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
    &lt;/div&gt;
  </content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/4505425483465638321'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/4505425483465638321'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2014/02/searching-gmail-using-imap-and-gnus.html' title='Searching GMail Using IMap And GNUS'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-2775932127867625241</id><published>2014-01-01T08:51:00.001-08:00</published><updated>2014-01-01T08:51:39.130-08:00</updated><title type='text'>Exploring And Accessing BBC Podcasts and Program Archives</title><content type='html'>
    &lt;div xmlns=&#39;http://www.w3.org/1999/xhtml&#39;&gt;
&lt;div id=&#39;content&#39;&gt;
&lt;h1 class=&#39;title&#39;&gt;Exploring  BBC  Podcasts And Program Archives&lt;/h1&gt;
&lt;div class=&#39;outline-2&#39; id=&#39;outline-container-sec-1&#39;&gt;
&lt;h2 id=&#39;sec-1&#39;&gt;&lt;span class=&#39;section-number-2&#39;&gt;1&lt;/span&gt; Exploring  BBC  Podcasts And Program Archives&lt;/h2&gt;
&lt;div id=&#39;text-1&#39; class=&#39;outline-text-2&#39;&gt;
&lt;/div&gt;&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-sec-1-1&#39;&gt;
&lt;h3 id=&#39;sec-1-1&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.1&lt;/span&gt; Summary&lt;/h3&gt;
&lt;div id=&#39;text-1-1&#39; class=&#39;outline-text-3&#39;&gt;
&lt;p&gt;
A short overview of tools on the emacspeak desktop for easily
exploring and accessing BBC program content.
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-sec-1-2&#39;&gt;
&lt;h3 id=&#39;sec-1-2&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.2&lt;/span&gt; Background&lt;/h3&gt;
&lt;div id=&#39;text-1-2&#39; class=&#39;outline-text-3&#39;&gt;
&lt;p&gt;
The BBC offers a wealth of audio content from both domestic BBC
Radio as well as BBC World Service.
Much of this content is available as Podcasts for a week after it
has been broadcast; in some instances, content is archived and
available for more than a week.
&lt;/p&gt;


&lt;p&gt;
The  primary gateway to this content is BBC IPlayer. In
addition, one can subscribe to RSS feeds for BBC Podcasts.
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-sec-1-3&#39;&gt;
&lt;h3 id=&#39;sec-1-3&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.3&lt;/span&gt; Accessing BBC Content From Emacspeak&lt;/h3&gt;
&lt;div id=&#39;text-1-3&#39; class=&#39;outline-text-3&#39;&gt;
&lt;p&gt;
Here are some of the tools I  use on the Emacspeak desktop to
quickly find and access content from the BBC:
&lt;/p&gt;

&lt;ul class=&#39;org-ul&#39;&gt;
&lt;li&gt;The BBC publishes a continuously updated directory of 
 RSS feeds; Emacspeak url template  &lt;b&gt;BBC Podcast Directory&lt;/b&gt;
can be used to open this directory of feeds.
&lt;/li&gt;
&lt;li&gt;With the above directory of feeds at hand, it is easy to
subscribe to oft-accessed feeds via &lt;b&gt;emacspeak-feeds&lt;/b&gt; — see
&lt;a href=&#39;http://emacspeak.blogspot.com/2013/12/managing-and-accessing-feeds-on.html&#39;&gt;Managing And Accessing Feeds&lt;/a&gt;.
&lt;/li&gt;
&lt;li&gt;In addition to the directory of feeds covered above, the BBC
publishes a detailed program guide as XML; Emacspeak url
template &lt;b&gt;BBC  Program Guide&lt;/b&gt; accesses the program guide.
&lt;/li&gt;
&lt;li&gt;The program guide described above gives access to RSS feeds
for both current programs as 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
  well as past archives. The program guide is a wealth of
information that makes all the information available in one
location, unlike the BBC IPlayer site.
&lt;/p&gt;
&lt;ul class=&#39;org-ul&#39;&gt;
&lt;li&gt;A note for UK users; the program guide above is presently set
up to  only show content that is available world-wide; if
you&#39;re in the UK, you may want to remove the test for
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&#39;example&#39;&gt;
region=&#39;all&#39;
&lt;/pre&gt;
&lt;p&gt;
in the XSL  stylesheet  emacspeak/xsl/bbc-ppg.xsl.
&lt;/p&gt;
&lt;ul class=&#39;org-ul&#39;&gt;
&lt;li&gt;You can find the &lt;a href=&#39;http://downloads.bbc.co.uk/podcasts/ppg.xml&#39;&gt;XML feed&lt;/a&gt; for the BBC Program Guide, as well
as the associated &lt;a href=&#39;http://downloads.bbc.co.uk/podcasts/ppg.xsd&#39;&gt;XML Schema&lt;/a&gt; definition on the BBC&#39;s Web
site.
&lt;/li&gt;
&lt;li&gt;Finally, you can access the BBC IPlayer page for any given
BBC channel via Emacspeak url template &lt;b&gt;BBC IPlayer&lt;/b&gt;.
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
&lt;b&gt;Share And Enjoy!&lt;/b&gt; And Hear&#39;s Wishing Everyone A Very Happy 2014!
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
    
    &lt;/div&gt;
  </content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/2775932127867625241'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/2775932127867625241'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2014/01/exploring-and-accessing-bbc-podcasts.html' title='Exploring And Accessing BBC Podcasts and Program Archives'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-5712406582541330143</id><published>2013-12-29T08:35:00.001-08:00</published><updated>2013-12-29T08:35:19.818-08:00</updated><title type='text'>Managing And Accessing Feeds On The Emacspeak Audio Desktop</title><content type='html'>
    &lt;div xmlns=&#39;http://www.w3.org/1999/xhtml&#39;&gt;
&lt;div id=&#39;content&#39;&gt;
&lt;h1 class=&#39;title&#39;&gt;Managing And Accessing Feeds  On The Emacspeak Audio Desktop&lt;/h1&gt;
&lt;div class=&#39;outline-2&#39; id=&#39;outline-container-sec-1&#39;&gt;
&lt;h2 id=&#39;sec-1&#39;&gt;&lt;span class=&#39;section-number-2&#39;&gt;1&lt;/span&gt; Managing And Accessing Feeds  On The Emacspeak Audio Desktop&lt;/h2&gt;
&lt;div id=&#39;text-1&#39; class=&#39;outline-text-2&#39;&gt;
&lt;/div&gt;&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-sec-1-1&#39;&gt;
&lt;h3 id=&#39;sec-1-1&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.1&lt;/span&gt; Summary&lt;/h3&gt;
&lt;div id=&#39;text-1-1&#39; class=&#39;outline-text-3&#39;&gt;
&lt;p&gt;
Feature &lt;b&gt;emacspeak-feeds&lt;/b&gt; enables rapid access to managing and
accessing Atom, RSS and OPML feeds. Feeds can be browsed from a
dedicated buffer, or accessed via minibuffer completion for
oft-accessed feeds. Feeds are stored as a user customizable
option, and can be added and deleted either via Emacs&#39; customize
interface or directly via interactive Emacs commands.
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-sec-1-2&#39;&gt;
&lt;h3 id=&#39;sec-1-2&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.2&lt;/span&gt; How It Works&lt;/h3&gt;
&lt;div id=&#39;text-1-2&#39; class=&#39;outline-text-3&#39;&gt;
&lt;p&gt;
The list of subscribed feeds is stored in variable
&lt;span class=&#39;underline&#39;&gt;emacspeak-feeds&lt;/span&gt; which is managed via Emacs&#39; &lt;span class=&#39;underline&#39;&gt;customize&lt;/span&gt;
interface. Each entry this list contains a label for the feed,
the feed URL, and the type of the feed (&lt;sub&gt;rss&lt;/sub&gt;_, &lt;span class=&#39;underline&#39;&gt;atom&lt;/span&gt;, or
&lt;span class=&#39;underline&#39;&gt;opml&lt;/span&gt;).
&lt;/p&gt;

&lt;p&gt;
Interactive command  &lt;span class=&#39;underline&#39;&gt;emacspeak-webspace-feed-reader&lt;/span&gt; opens a
buffer containing the list of subscribed feeds; feeds can be
opened by pressing &lt;span class=&#39;underline&#39;&gt;enter&lt;/span&gt; on the relevant feed. 
&lt;/p&gt;

&lt;p&gt;
Oft-accessed feeds can be opened directly via command
&lt;span class=&#39;underline&#39;&gt;emacspeak-feed-browse&lt;/span&gt; bound to &lt;span class=&#39;underline&#39;&gt;C-e C-u&lt;/span&gt; — this command prompts
for a feed label with minibuffer completion.
&lt;/p&gt;

&lt;p&gt;
Feeds can be added or deleted by customizing &lt;span class=&#39;underline&#39;&gt;emacspeak-feeds&lt;/span&gt;
via Emacs&#39; &lt;span class=&#39;underline&#39;&gt;M-x customize-variable&lt;/span&gt; — bound by default in
emacspeak to &lt;span class=&#39;underline&#39;&gt;C-h V&lt;/span&gt;. Alternatively, interactive command
&lt;span class=&#39;underline&#39;&gt;emacspeak-feed-add-feed&lt;/span&gt; bound to &lt;span class=&#39;underline&#39;&gt;C-e M-u&lt;/span&gt; can be used to
subscribe to feeds. Note that both methods result in the
subscribed feed being stored in &lt;span class=&#39;underline&#39;&gt;emacspeak-feeds&lt;/span&gt;.
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&#39;status&#39; id=&#39;postamble&#39;&gt;
&lt;p class=&#39;date&#39;&gt;Date: &lt;span class=&#39;timestamp-wrapper&#39;&gt;&lt;span class=&#39;timestamp&#39;&gt;&amp;lt;2013-12-29 Sun&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&#39;author&#39;&gt;Author: T.V Raman&lt;/p&gt;
&lt;p class=&#39;date&#39;&gt;Created: 2013-12-29 Sun 08:34&lt;/p&gt;
&lt;p class=&#39;creator&#39;&gt;Emacs 24.3.50.2 (Org mode 8.2.3a)&lt;/p&gt;
&lt;p class=&#39;validation&#39;&gt;&lt;a href=&#39;http://validator.w3.org/check?uri=referer&#39;&gt;Validate&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
    &lt;/div&gt;
  </content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/5712406582541330143'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/5712406582541330143'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2013/12/managing-and-accessing-feeds-on.html' title='Managing And Accessing Feeds On The Emacspeak Audio Desktop'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-7804883057579972872</id><published>2013-11-27T14:48:00.001-08:00</published><updated>2013-11-27T14:48:19.097-08:00</updated><title type='text'>Reading Web Content Efficiently</title><content type='html'>
    &lt;div xmlns=&#39;http://www.w3.org/1999/xhtml&#39;&gt;

&lt;div id=&#39;preamble&#39;&gt;

&lt;/div&gt;

&lt;div id=&#39;content&#39;&gt;
&lt;h1 class=&#39;title&#39;&gt;reading-web-content.org&lt;/h1&gt;


&lt;div class=&#39;outline-2&#39; id=&#39;outline-container-1&#39;&gt;
&lt;h2 id=&#39;sec-1&#39;&gt;&lt;span class=&#39;section-number-2&#39;&gt;1&lt;/span&gt; Reading Web Content&lt;/h2&gt;
&lt;div id=&#39;text-1&#39; class=&#39;outline-text-2&#39;&gt;




&lt;/div&gt;

&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-1-1&#39;&gt;
&lt;h3 id=&#39;sec-1-1&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.1&lt;/span&gt; Background&lt;/h3&gt;
&lt;div id=&#39;text-1-1&#39; class=&#39;outline-text-3&#39;&gt;


&lt;p&gt;
I still find reading Web content in emacs to be way more
efficient than in modern browsers like Chrome with ChromeVox
enabled.
Chrome+ChromeVox is what I use for rich Web Applications;
but when it comes down to reading straight content ranging from
technical documentation to news and current affairs, I find that
I can read a lot more content in a fixed amount of time with
Emacs+Emacspeak than I can with the Chrome+ChromeVox combination.
&lt;/p&gt;

&lt;/div&gt;

&lt;/div&gt;

&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-1-2&#39;&gt;
&lt;h3 id=&#39;sec-1-2&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.2&lt;/span&gt; Welcome EWW: Emacs Web Wowser&lt;/h3&gt;
&lt;div id=&#39;text-1-2&#39; class=&#39;outline-text-3&#39;&gt;


&lt;p&gt;
The author of GNUS recently added package 
EWW (Emacs Web Wowser) to The Emacs repository  — 
 see his
&lt;a href=&#39;http://lars.ingebrigtsen.no/2013/06/eww.html&#39;&gt;announcement&lt;/a&gt;.
Emacspeak 37.0 included a small addition called &lt;i&gt;shr-url&lt;/i&gt; that
leveraged his earlier &lt;i&gt;shr&lt;/i&gt; package; I&#39;ve now added support for
EWW in the Emacspeak source tree. Note that EWW is in the Emacs
source tree, i.e. it will be part of Emacs 24.4, but you can use
it now if you build your own version of Emacs, or obtain an
Emacs that is build from the Emacs source repository.
&lt;/p&gt;
&lt;p&gt;
EWW and SHR are interesting because they both leverage
&lt;i&gt;libxml2&lt;/i&gt; to parse the incoming HTML. This is way faster than
the native elisp browsing used in Emacs/W3. In my personal
opinion, it also opens up more possibilities than Emacs/W3M with
respect to manipulating and filtering content from elisp ---
something that helps create a better reading experience when
using Emacspeak.
&lt;/p&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-1-3&#39;&gt;
&lt;h3 id=&#39;sec-1-3&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.3&lt;/span&gt; EWW Tips And Tricks&lt;/h3&gt;
&lt;div id=&#39;text-1-3&#39; class=&#39;outline-text-3&#39;&gt;


&lt;p&gt;
I&#39;ve mailed out a small patch to package &lt;i&gt;eww&lt;/i&gt; that facilitates
implementing such higher-level commands; for now, you can find
that patch in &lt;span style=&#39;text-decoration:underline;&#39;&gt;emacspeak/lisp/patches&lt;/span&gt; in the Emacspeak svn
repository. With that patch in place, you can do the following to
efficiently filter popular news sites such as the New York Times
(I use &lt;a href=&#39;http://mobile.nytimes.com&#39;&gt;http://mobile.nytimes.com&lt;/a&gt;) or CNN
(&lt;a href=&#39;http://cnn.com&#39;&gt;http://cnn.com&lt;/a&gt;). 
&lt;/p&gt;
&lt;p&gt;
When visiting these and other content-heavy sites, try:
&lt;/p&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;b&gt;A&lt;/b&gt;&lt;/dt&gt;&lt;dd&gt;Filter by attributes,
&lt;/dd&gt;
&lt;dt&gt;&lt;b&gt;E&lt;/b&gt;&lt;/dt&gt;&lt;dd&gt;Filter by elements
&lt;/dd&gt;
&lt;dt&gt;&lt;b&gt;R&lt;/b&gt;&lt;/dt&gt;&lt;dd&gt;Restore original contents 
&lt;/dd&gt;
&lt;/dl&gt;


&lt;p&gt;
To flexibly obtain multiple views of a Web site.
&lt;/p&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div id=&#39;postamble&#39;&gt;
&lt;p class=&#39;date&#39;&gt;Date: 2013-11-27 Wed&lt;/p&gt;
&lt;p class=&#39;author&#39;&gt;Author: T.V Raman&lt;/p&gt;
&lt;p class=&#39;creator&#39;&gt;&lt;a href=&#39;http://orgmode.org&#39;&gt;Org&lt;/a&gt; version 7.9.3f with &lt;a href=&#39;http://www.gnu.org/software/emacs/&#39;&gt;Emacs&lt;/a&gt; version 24&lt;/p&gt;
&lt;a href=&#39;http://validator.w3.org/check?uri=referer&#39;&gt;Validate XHTML 1.0&lt;/a&gt;

&lt;/div&gt;
    &lt;/div&gt;
  </content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/7804883057579972872'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/7804883057579972872'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2013/11/reading-web-content-efficiently.html' title='Reading Web Content Efficiently'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-7652738519984086094</id><published>2013-11-26T15:56:00.001-08:00</published><updated>2013-11-26T15:56:46.796-08:00</updated><title type='text'>Emacspeak 39.0 (BigDog) Unleashed!</title><content type='html'>
    &lt;div xmlns=&#39;http://www.w3.org/1999/xhtml&#39;&gt;


&lt;div id=&#39;preamble&#39;&gt;

&lt;/div&gt;

&lt;div id=&#39;content&#39;&gt;
&lt;h1 class=&#39;title&#39;&gt;Emacspeak 39.0—BigDog—Unleashed!&lt;/h1&gt;


&lt;div class=&#39;outline-2&#39; id=&#39;outline-container-1&#39;&gt;
&lt;h2 id=&#39;sec-1&#39;&gt;&lt;span class=&#39;section-number-2&#39;&gt;1&lt;/span&gt; Emacspeak-39.0 (BigDog) Unleashed!&lt;/h2&gt;
&lt;div id=&#39;text-1&#39; class=&#39;outline-text-2&#39;&gt;

&lt;p&gt; ** For Immediate Release:
&lt;/p&gt;
&lt;p&gt;
San Jose, Calif., (November 27, 2013)&lt;br/&gt;
 Emacspeak: Redefining Accessibility In The Era Of Social Cloud Computing &lt;br/&gt;
  – Zero cost of upgrades/downgrades makes priceless software affordable!
&lt;/p&gt;
&lt;p&gt;
Emacspeak Inc (NASDOG: ESPK) --&lt;a href=&#39;http://emacspeak.sf.net&#39;&gt;http://emacspeak.sf.net&lt;/a&gt;--
announces the immediate world-wide availability of Emacspeak 39.0
(BigDog)  – a powerful audio desktop for leveraging today&#39;s
evolving data, social and service-oriented Web cloud.
&lt;/p&gt;

&lt;/div&gt;

&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-1-1&#39;&gt;
&lt;h3 id=&#39;sec-1-1&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.1&lt;/span&gt; Investors Note:&lt;/h3&gt;
&lt;div id=&#39;text-1-1&#39; class=&#39;outline-text-3&#39;&gt;



&lt;p&gt;
With several prominent tweeters expanding coverage of
&lt;span style=&#39;text-decoration:underline;&#39;&gt;#emacspeak&lt;/span&gt;, NASDOG: ESPK has now been consistently trading over
the social net at levels close to that once attained by DogCom
high-fliers—and as of November 2013 is trading at levels close to
that achieved by once better known stocks in the tech sector.
&lt;/p&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-1-2&#39;&gt;
&lt;h3 id=&#39;sec-1-2&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.2&lt;/span&gt; What Is It?&lt;/h3&gt;
&lt;div id=&#39;text-1-2&#39; class=&#39;outline-text-3&#39;&gt;

&lt;p&gt;Emacspeak is a fully functional audio desktop that provides
complete eyes-free access to all major 32 and 64 bit operating
environments. By seamlessly blending live access to all aspects
of the Internet such as Web-surfing, blogging, social computing
and electronic messaging into the audio desktop, Emacspeak
enables speech access to local and remote information with a
consistent and well-integrated user interface. A rich suite of
task-oriented tools provides efficient speech-enabled access to
the evolving service-oriented social Web cloud.
&lt;/p&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-1-3&#39;&gt;
&lt;h3 id=&#39;sec-1-3&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.3&lt;/span&gt; Major Enhancements:&lt;/h3&gt;
&lt;div id=&#39;text-1-3&#39; class=&#39;outline-text-3&#39;&gt;

&lt;ul&gt;
&lt;li&gt;Speech-Enables Ipython Notebook interaction via package EIN. 🐍
&lt;/li&gt;
&lt;li&gt;Speech-enables Chrome/Firefox integration via package JSS. ⱒ
&lt;/li&gt;
&lt;li&gt;Improved Chrome debugging via package Kite. ⾶
&lt;/li&gt;
&lt;li&gt;Updated search wizards for rapid Web access. ♄
&lt;/li&gt;
&lt;li&gt;Updated URL templates for instant Web access. ♅
&lt;/li&gt;
&lt;li&gt;Improved Emacs 24.3 support. 🌑
&lt;/li&gt;
&lt;li&gt;And a lot more than wil fit this margin. …
&lt;/li&gt;
&lt;/ul&gt;


&lt;/div&gt;

&lt;/div&gt;

&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-1-4&#39;&gt;
&lt;h3 id=&#39;sec-1-4&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.4&lt;/span&gt; Establishing Liberty, Equality And Freedom:&lt;/h3&gt;
&lt;div id=&#39;text-1-4&#39; class=&#39;outline-text-3&#39;&gt;



&lt;p&gt;
 Never a toy system, Emacspeak is voluntarily bundled with all
major Linux distributions. Though designed to be modular,
distributors have freely chosen to bundle the fully integrated
system without any undue pressure—a documented success for
the integrated innovation embodied by Emacspeak. As the system
evolves, both upgrades and downgrades continue to be available at
the same zero-cost to all users. The integrity of the Emacspeak
codebase is ensured by the reliable and secure Linux platform
used to develop and distribute the software.
&lt;/p&gt;
&lt;p&gt;
Extensive studies have shown that thanks to these features, users
consider Emacspeak to be absolutely priceless. Thanks to this
wide-spread user demand, the present version remains priceless
as ever—it is being made available at the same zero-cost as
previous releases.
&lt;/p&gt;
&lt;p&gt;
At the same time, Emacspeak continues to innovate in the area of
eyes-free social interaction and carries forward the
well-established Open Source tradition of introducing user
interface features that eventually show up in luser environments.
&lt;/p&gt;
&lt;p&gt;
On this theme, when once challenged by a proponent of a
crash-prone but well-marketed mousetrap with the assertion
&quot;Emacs is a system from the 70&#39;s&quot;, the creator of Emacspeak
evinced surprise at the unusual candor manifest in the assertion
that it would take popular idiot-proven interfaces until the year
2070 to catch up to where the Emacspeak audio desktop is
today. Industry experts welcomed this refreshing breath of
Courage Certainty and Clarity (CCC) at a time when users are
reeling from the Fear Uncertainty and Doubt (FUD) unleashed by
complex software systems backed by even more convoluted press
releases.
&lt;/p&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-1-5&#39;&gt;
&lt;h3 id=&#39;sec-1-5&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.5&lt;/span&gt; Independent Test Results:&lt;/h3&gt;
&lt;div id=&#39;text-1-5&#39; class=&#39;outline-text-3&#39;&gt;



&lt;p&gt;
Independent test results have proven that unlike some modern (and
not so modern) software, Emacspeak can be safely uninstalled without
adversely affecting the continued performance of the computer. These
same tests also revealed that once uninstalled, the user stopped
functioning altogether. Speaking with Aster Labrador, the creator of
Emacspeak once pointed out that these results re-emphasize the
user-centric design of Emacspeak; &quot;It is the user  – and not the
computer –  that stops functioning when Emacspeak is uninstalled!&quot;.
&lt;/p&gt;

&lt;/div&gt;

&lt;div class=&#39;outline-4&#39; id=&#39;outline-container-1-5-1&#39;&gt;
&lt;h4 id=&#39;sec-1-5-1&#39;&gt;&lt;span class=&#39;section-number-4&#39;&gt;1.5.1&lt;/span&gt; Note from Aster,Bubbles and Tilden:&lt;/h4&gt;
&lt;div id=&#39;text-1-5-1&#39; class=&#39;outline-text-4&#39;&gt;



&lt;p&gt;
UnDoctored Videos Inc. is looking for volunteers to star in a
video demonstrating such complete user failure.
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-1-6&#39;&gt;
&lt;h3 id=&#39;sec-1-6&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.6&lt;/span&gt; Obtaining Emacspeak:&lt;/h3&gt;
&lt;div id=&#39;text-1-6&#39; class=&#39;outline-text-3&#39;&gt;



&lt;p&gt;
Emacspeak can be downloaded from Google Code Hosting  – see
&lt;a href=&#39;http://code.google.com/p/emacspeak/&#39;&gt;http://code.google.com/p/emacspeak/&lt;/a&gt; You can visit
Emacspeak on the WWW at &lt;a href=&#39;http://emacspeak.sf.net&#39;&gt;http://emacspeak.sf.net&lt;/a&gt;. You can subscribe
to the emacspeak mailing list emacspeak@cs.vassar.edu by sending
mail to the list request address emacspeak-request@cs.vassar.edu.
The BigDog release is at 
&lt;a href=&#39;http://emacspeak.googlecode.com/files/emacspeak-39.0.tar.bz2&#39;&gt;http://emacspeak.googlecode.com/files/emacspeak-39.0.tar.bz2&lt;/a&gt;.
The latest development snapshot of Emacspeak is always available via
Subversion from Google Code at 
&lt;a href=&#39;http://emacspeak.googlecode.com/svn/trunk/&#39;&gt;http://emacspeak.googlecode.com/svn/trunk/&lt;/a&gt;
&lt;/p&gt;&lt;/div&gt;

&lt;/div&gt;

&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-1-7&#39;&gt;
&lt;h3 id=&#39;sec-1-7&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.7&lt;/span&gt; History:&lt;/h3&gt;
&lt;div id=&#39;text-1-7&#39; class=&#39;outline-text-3&#39;&gt;


&lt;p&gt;
Emacspeak 39.0 continues the Emacspeak tradition of increasing
the breadth of user tasks that are covered without introducing
unnecessary bloatware. Emacspeak 38.0 is the latest in a series
of award-winning releases from Emacspeak Inc. Emacspeak 37.0
continues the tradition of delivering robust software as
reflected by its code-name. Emacspeak 36.0 enhances the audio
desktop with many new tools including full EPub support  —  hence
the name EPubDog. Emacspeak 35.0 is all about teaching a new dog
old tricks  —  and is aptly code-named HeadDog in honor of our
new Press/Analyst contact. emacspeak-34.0 (AKA Bubbles)
established a new beach-head with respect to rapid task
completion in an eyes-free environment. Emacspeak-33.0 AKA
StarDog brings unparalleled cloud access to the audio
desktop. Emacspeak 32.0 AKA LuckyDog continues to innovate via
open technologies for better access. Emacspeak 31.0 AKA TweetDog
 —  adds tweeting to the Emacspeak desktop. Emacspeak 30.0 AKA
SocialDog brings the Social Web to the audio desktop—you cant but
be social if you speak! Emacspeak 29.0—AKAAbleDog—is a testament
to the resilliance and innovation embodied by Open Source
software—it would not exist without the thriving Emacs community
that continues to ensure that Emacs remains one of the premier
user environments despite perhaps also being one of the
oldest. Emacspeak 28.0—AKA PuppyDog—exemplifies the rapid pace of
development evinced by Open Source software. Emacspeak 27.0—AKA
FastDog—is the latest in a sequence of upgrades that make
previous releases obsolete and downgrades unnecessary. Emacspeak
26—AKA LeadDog—continues the tradition of introducing innovative
access solutions that are unfettered by the constraints inherent
in traditional adaptive technologies. Emacspeak 25 —AKA ActiveDog
—re-activates open, unfettered access to online
information. Emacspeak-Alive —AKA LiveDog —enlivens open,
unfettered information access with a series of live updates that
once again demonstrate the power and agility of open source
software development. Emacspeak 23.0  –  AKA Retriever—went the
extra mile in fetching full access. Emacspeak 22.0 —AKA GuideDog
—helps users navigate the Web more effectively than ever
before. Emacspeak 21.0 —AKA PlayDog —continued the Emacspeak
tradition of relying on enhanced productivity to liberate
users. Emacspeak-20.0 —AKA LeapDog —continues the long
established GNU/Emacs tradition of integrated innovation to
create a pleasurable computing environment for eyes-free
interaction. emacspeak-19.0  – AKA WorkDog –  is designed to
enhance user productivity at work and leisure. Emacspeak-18.0
 – code named GoodDog –  continued the Emacspeak tradition of
enhancing user productivity and thereby reducing total cost of
ownership. Emacspeak-17.0  – code named HappyDog –  enhances user
productivity by exploiting today&#39;s evolving WWW
standards. Emacspeak-16.0  – code named CleverDog –  the follow-up
to SmartDog –  continued the tradition of working better, faster,
smarter. Emacspeak-15.0  – code named SmartDog – followed up on
TopDog as the next in a continuing a series of award-winning
audio desktop releases from Emacspeak Inc. Emacspeak-14.0  – code
named TopDog – was the first release of this
millennium. Emacspeak-13.0  – codenamed YellowLab –  was the
closing release of the 20th. century. Emacspeak-12.0  – code named
GoldenDog –  began leveraging the evolving semantic WWW to provide
task-oriented speech access to Webformation. Emacspeak-11.0
 – code named Aster –  went the final step in making Linux a
zero-cost Internet access solution for blind and visually
impaired users. Emacspeak-10.0  – (AKA Emacspeak-2000) code named
WonderDog –  continued the tradition of award-winning software
releases designed to make eyes-free computing a productive and
pleasurable experience. Emacspeak-9.0  – (AKA Emacspeak 99) code
named BlackLab –  continued to innovate in the areas of speech
interaction and interactive accessibility. Emacspeak-8.0  – (AKA
Emacspeak-98++) code named BlackDog –  was a major upgrade to the
speech output extension to Emacs.
&lt;/p&gt;
&lt;p&gt;
Emacspeak-95 (code named Illinois) was released as OpenSource on
the Internet in May 1995 as the first complete speech interface
to UNIX workstations. The subsequent release, Emacspeak-96 (code
named Egypt) made available in May 1996 provided significant
enhancements to the interface. Emacspeak-97 (Tennessee) went
further in providing a true audio desktop. Emacspeak-98
integrated Internetworking into all aspects of the audio desktop
to provide the first fully interactive speech-enabled WebTop.
&lt;/p&gt;
&lt;p&gt;
About Emacspeak:

&lt;/p&gt;
&lt;hr/&gt;

&lt;p&gt;
Originally based at Cornell (NY)
&lt;a href=&#39;http://www.cs.cornell.edu/home/raman&#39;&gt;http://www.cs.cornell.edu/home/raman&lt;/a&gt;  – home to Auditory User
Interfaces (AUI) on the WWW –  Emacspeak is now maintained on
GoogleCode --&lt;a href=&#39;http://code.google.com/p/emacspeak&#39;&gt;http://code.google.com/p/emacspeak&lt;/a&gt; —and
Sourceforge —&lt;a href=&#39;http://emacspeak.sf.net&#39;&gt;http://emacspeak.sf.net&lt;/a&gt;. The system is mirrored
world-wide by an international network of software archives and
bundled voluntarily with all major Linux distributions. On
Monday, April 12, 1999, Emacspeak became part of the
Smithsonian&#39;s Permanent Research Collection on Information
Technology at the Smithsonian&#39;s National Museum of American
History.
&lt;/p&gt;
&lt;p&gt;
The Emacspeak mailing list is archived at Vassar  – the home of the
Emacspeak mailing list –  thanks to Greg Priest-Dorman, and provides a
valuable knowledge base for new users.
&lt;/p&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-1-8&#39;&gt;
&lt;h3 id=&#39;sec-1-8&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.8&lt;/span&gt; Press/Analyst Contact: Tilden Labrador&lt;/h3&gt;
&lt;div id=&#39;text-1-8&#39; class=&#39;outline-text-3&#39;&gt;


&lt;p&gt;
Going forward, Tilden acknowledges his exclusive monopoly on
setting the direction of the Emacspeak Audio Desktop, and
promises to exercise this freedom to innovate and her resulting
power responsibly (as before) in the interest of all dogs.
&lt;/p&gt;
&lt;p&gt;
**About This Release:

&lt;/p&gt;
&lt;hr/&gt;

&lt;p&gt;
Windows-Free (WF) is a favorite battle-cry of The League Against
Forced Fenestration (LAFF).  – see
&lt;a href=&#39;http://www.usdoj.gov/atr/cases/f3800/msjudgex.htm&#39;&gt;http://www.usdoj.gov/atr/cases/f3800/msjudgex.htm&lt;/a&gt; for details on
the ill-effects of Forced Fenestration.
&lt;/p&gt;
&lt;p&gt;
CopyWrite )C( Aster and Hubbell Labrador. All Writes Reserved.
HeadDog (DM), LiveDog (DM), GoldenDog (DM), BlackDog (DM) etc., are Registered
Dogmarks of Aster, Hubbell and Tilden Labrador. All other dogs belong to
their respective owners.
&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div id=&#39;postamble&#39;&gt;
&lt;p class=&#39;date&#39;&gt;Date: 2013-11-23T08:26-0800&lt;/p&gt;
&lt;p class=&#39;author&#39;&gt;Author: T.V Raman&lt;/p&gt;
&lt;p class=&#39;creator&#39;&gt;&lt;a href=&#39;http://orgmode.org&#39;&gt;Org&lt;/a&gt; version 7.9.3f with &lt;a href=&#39;http://www.gnu.org/software/emacs/&#39;&gt;Emacs&lt;/a&gt; version 24&lt;/p&gt;
&lt;a href=&#39;http://validator.w3.org/check?uri=referer&#39;&gt;Validate XHTML 1.0&lt;/a&gt;

&lt;/div&gt;

    &lt;/div&gt;
  </content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/7652738519984086094'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/7652738519984086094'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2013/11/emacspeak-390-bigdog-unleashed.html' title='Emacspeak 39.0 (BigDog) Unleashed!'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-3838103849410783364</id><published>2013-05-12T08:13:00.001-07:00</published><updated>2013-05-12T08:13:09.597-07:00</updated><title type='text'>Emacspeak 38.0 (FreeDog Unleashed</title><content type='html'>
    &lt;div xmlns=&#39;http://www.w3.org/1999/xhtml&#39;&gt;
      &lt;div id=&#39;content&#39;&gt; 
        &lt;h1 class=&#39;title&#39;&gt;Emacspeak 38.0—FreeDog—Unleashed!&lt;/h1&gt; 
 
 
        &lt;div class=&#39;outline-2&#39; id=&#39;outline-container-1&#39;&gt; 
          &lt;h2 id=&#39;sec-1&#39;&gt;&lt;span class=&#39;section-number-2&#39;&gt;1&lt;/span&gt; Emacspeak-38.0 (FreeDog) Unleashed!&lt;/h2&gt; 
          &lt;div id=&#39;text-1&#39; class=&#39;outline-text-2&#39;&gt; 
 
            &lt;p&gt;               **  For Immediate Release: 
            &lt;/p&gt; 
            &lt;p&gt; 
              San Jose, Calif., (May 13, 2013) 
              Emacspeak:  Redefining Accessibility In The Era Of Cloud Computing 
              –Zero cost of upgrades/downgrades makes priceless software affordable! 
            &lt;/p&gt; 
            &lt;p&gt; 
              Emacspeak Inc (NASDOG: ESPK) --&lt;a href=&#39;http://emacspeak.sf.net&#39;&gt;http://emacspeak.sf.net&lt;/a&gt;-- 
              announces the immediate world-wide availability of Emacspeak 38.0 
              (FreeDog) –a powerful audio desktop for leveraging today&#39;s 
              evolving data, social and service-oriented Web cloud. 
            &lt;/p&gt; 
 
          &lt;/div&gt; 
 
          &lt;div class=&#39;outline-3&#39; id=&#39;outline-container-1-1&#39;&gt; 
            &lt;h3 id=&#39;sec-1-1&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.1&lt;/span&gt; Investors Note:&lt;/h3&gt; 
            &lt;div id=&#39;text-1-1&#39; class=&#39;outline-text-3&#39;&gt; 
 
 
 
              &lt;p&gt; 
                With several prominent tweeters expanding coverage of 
                &lt;span style=&#39;text-decoration:underline;&#39;&gt;#emacspeak&lt;/span&gt;, NASDOG: ESPK has now been consistently trading over 
                the social net at levels close to that once attained by DogCom 
                high-fliers—and as of May 2013 is trading at levels close to 
                that achieved by once better known stocks in the tech sector. 
              &lt;/p&gt; 
            &lt;/div&gt; 
 
          &lt;/div&gt; 
 
          &lt;div class=&#39;outline-3&#39; id=&#39;outline-container-1-2&#39;&gt; 
            &lt;h3 id=&#39;sec-1-2&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.2&lt;/span&gt; What Is It?&lt;/h3&gt; 
            &lt;div id=&#39;text-1-2&#39; class=&#39;outline-text-3&#39;&gt; 
 
              &lt;p&gt;Emacspeak is a fully functional audio desktop that provides 
              complete eyes-free access to all major 32 and 64 bit operating 
              environments. By seamlessly blending live access to all aspects 
              of the Internet such as Web-surfing, blogging, social computing 
              and electronic messaging into the audio desktop, Emacspeak 
              enables speech access to local and remote information with a 
              consistent and well-integrated user interface. A rich suite of 
              task-oriented tools provides efficient speech-enabled access to 
              the evolving service-oriented social Web cloud. 
              &lt;/p&gt; 
            &lt;/div&gt; 
 
          &lt;/div&gt; 
 
          &lt;div class=&#39;outline-3&#39; id=&#39;outline-container-1-3&#39;&gt; 
            &lt;h3 id=&#39;sec-1-3&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.3&lt;/span&gt; Major Enhancements:&lt;/h3&gt; 
            &lt;div id=&#39;text-1-3&#39; class=&#39;outline-text-3&#39;&gt; 
 
 
              &lt;ol&gt; 
                &lt;li&gt;Get directions and find Places via Google Maps. ⛯ 
                &lt;/li&gt; 
                &lt;li&gt;Preliminary support for Eclipse integration via Eclim. ⛅ 
                &lt;/li&gt; 
                &lt;li&gt;Speech-enabled GTags (Global) for code browsing. 🌐 
                &lt;/li&gt; 
                &lt;li&gt;Updated to work with advice implementation in Emacs 24.3.  🌚 
                &lt;/li&gt; 
                &lt;li&gt;Updated Web search wizards ꩜ 
                &lt;/li&gt; 
                &lt;li&gt;Updated URL templates ♅ 
                &lt;/li&gt; 
              &lt;/ol&gt; 
 
 
 
              &lt;p&gt; 
                Plus many more changes too numerous to fit in this margin  ∞ 
              &lt;/p&gt; 
            &lt;/div&gt; 
 
          &lt;/div&gt; 
 
          &lt;div class=&#39;outline-3&#39; id=&#39;outline-container-1-4&#39;&gt; 
            &lt;h3 id=&#39;sec-1-4&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.4&lt;/span&gt; Establishing Liberty, Equality And Freedom:&lt;/h3&gt; 
            &lt;div id=&#39;text-1-4&#39; class=&#39;outline-text-3&#39;&gt; 
 
 
 
              &lt;p&gt; 
                Never a toy system, Emacspeak is voluntarily bundled with all 
                major Linux distributions. Though designed to be modular, 
                distributors have freely chosen to bundle the fully integrated 
                system without any undue pressure—a documented success for 
                the integrated innovation embodied by Emacspeak. As the system 
                evolves, both upgrades and downgrades continue to be available at 
                the same zero-cost to all users. The integrity of the Emacspeak 
                codebase is ensured by the reliable and secure Linux platform 
                used to develop and distribute the software. 
              &lt;/p&gt; 
              &lt;p&gt; 
                Extensive studies have shown that thanks to these features, users 
                consider Emacspeak to be absolutely priceless. Thanks to this 
                wide-spread user demand, the present version remains   priceless 
                as ever—it is being made available at the same zero-cost as 
                previous releases. 
              &lt;/p&gt; 
              &lt;p&gt; 
                At the same time, Emacspeak continues to innovate in the area of 
                eyes-free social interaction and carries forward the 
                well-established Open Source tradition of introducing user 
                interface features that eventually show up in luser environments. 
              &lt;/p&gt; 
              &lt;p&gt; 
                On this theme, when once challenged by a proponent of a 
                crash-prone but well-marketed mousetrap with the assertion 
                &quot;Emacs is a system from the 70&#39;s&quot;, the creator of Emacspeak 
                evinced surprise at the unusual candor manifest in the assertion 
                that it would take popular idiot-proven interfaces until the year 
                2070 to catch up to where the Emacspeak audio desktop is 
                today. Industry experts welcomed this refreshing breath of 
                Courage Certainty and Clarity (CCC) at a time when users are 
                reeling from the Fear Uncertainty and Doubt (FUD) unleashed by 
                complex software systems backed by even more convoluted press 
                releases. 
              &lt;/p&gt; 
            &lt;/div&gt; 
 
          &lt;/div&gt; 
 
          &lt;div class=&#39;outline-3&#39; id=&#39;outline-container-1-5&#39;&gt; 
            &lt;h3 id=&#39;sec-1-5&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.5&lt;/span&gt; Independent Test Results:&lt;/h3&gt; 
            &lt;div id=&#39;text-1-5&#39; class=&#39;outline-text-3&#39;&gt; 
 
 
 
              &lt;p&gt; 
                Independent test results have proven that unlike some modern (and 
                not so modern) software, Emacspeak can be safely uninstalled without 
                adversely affecting the continued performance of the computer. These 
                same tests also revealed that once uninstalled, the user stopped 
                functioning altogether. Speaking with Aster Labrador, the creator of 
                Emacspeak once pointed out that these results re-emphasize the 
                user-centric design of Emacspeak; &quot;It is the user –and not the 
                computer– that stops functioning when Emacspeak is uninstalled!&quot;. 
              &lt;/p&gt; 
 
            &lt;/div&gt; 
 
            &lt;div class=&#39;outline-4&#39; id=&#39;outline-container-1-5-1&#39;&gt; 
              &lt;h4 id=&#39;sec-1-5-1&#39;&gt;&lt;span class=&#39;section-number-4&#39;&gt;1.5.1&lt;/span&gt; Note from Aster,Bubbles and Tilden:&lt;/h4&gt; 
              &lt;div id=&#39;text-1-5-1&#39; class=&#39;outline-text-4&#39;&gt; 
 
 
 
                &lt;p&gt; 
                  UnDoctored Videos Inc. is looking for volunteers to star in a 
                  video demonstrating such complete user failure. 
                &lt;/p&gt; 
              &lt;/div&gt; 
            &lt;/div&gt; 
 
          &lt;/div&gt; 
 
          &lt;div class=&#39;outline-3&#39; id=&#39;outline-container-1-6&#39;&gt; 
            &lt;h3 id=&#39;sec-1-6&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.6&lt;/span&gt; Obtaining Emacspeak:&lt;/h3&gt; 
            &lt;div id=&#39;text-1-6&#39; class=&#39;outline-text-3&#39;&gt; 
 
 
 
              &lt;p&gt; 
                Emacspeak can be downloaded from Google Code Hosting –see 
                &lt;a href=&#39;http://code.google.com/p/emacspeak/&#39;&gt;http://code.google.com/p/emacspeak/&lt;/a&gt; You can visit 
                Emacspeak on the WWW at &lt;a href=&#39;http://emacspeak.sf.net&#39;&gt;http://emacspeak.sf.net&lt;/a&gt;.  You can subscribe 
                to the emacspeak mailing list emacspeak@cs.vassar.edu by sending 
                mail to the list request address emacspeak-request@cs.vassar.edu. 
                The FreeDog release is at  
                &lt;a href=&#39;http://emacspeak.googlecode.com/files/emacspeak-38.0.tar.bz2&#39;&gt;http://emacspeak.googlecode.com/files/emacspeak-38.0.tar.bz2&lt;/a&gt;. 
                The latest development snapshot of Emacspeak is always available via 
                Subversion from Google Code  at  
                &lt;a href=&#39;http://emacspeak.googlecode.com/svn/trunk/&#39;&gt;http://emacspeak.googlecode.com/svn/trunk/&lt;/a&gt; 
            &lt;/p&gt;&lt;/div&gt; 
 
          &lt;/div&gt; 
 
          &lt;div class=&#39;outline-3&#39; id=&#39;outline-container-1-7&#39;&gt; 
            &lt;h3 id=&#39;sec-1-7&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.7&lt;/span&gt; History:&lt;/h3&gt; 
            &lt;div id=&#39;text-1-7&#39; class=&#39;outline-text-3&#39;&gt; 
 
 
              &lt;p&gt; 
                Emacspeak 38.0 is the latest in a series of award-winning 
                releases from Emacspeak Inc.  
                Emacspeak 37.0 continues the tradition of delivering robust 
                software as reflected by its code-name. Emacspeak 36.0 enhances 
                the audio desktop with many new tools including full EPub support 
                — hence the name EPubDog. Emacspeak 35.0 is all about teaching 
                a new dog old tricks — and is aptly code-named HeadDog in honor 
                of our new Press/Analyst contact. emacspeak-34.0 (AKA Bubbles) 
                established a new beach-head with respect to rapid task 
                completion in an eyes-free environment. Emacspeak-33.0 AKA 
                StarDog brings unparalleled cloud access to the audio 
                desktop. Emacspeak 32.0 AKA LuckyDog continues to innovate via 
                open technologies for better access. Emacspeak 31.0 AKA TweetDog 
                — adds tweeting to the Emacspeak desktop. Emacspeak 30.0 AKA 
                SocialDog brings the Social Web to the audio desktop—you cant but 
                be social if you speak! Emacspeak 29.0—AKAAbleDog—is a testament 
                to the resilliance and innovation embodied by Open Source 
                software—it would not exist without the thriving Emacs community 
                that continues to ensure that Emacs remains one of the premier 
                user environments despite perhaps also being one of the 
                oldest. Emacspeak 28.0—AKA PuppyDog—exemplifies the rapid pace of 
                development evinced by Open Source software. Emacspeak 27.0—AKA 
                FastDog—is the latest in a sequence of upgrades that make 
                previous releases obsolete and downgrades unnecessary. Emacspeak 
                26—AKA LeadDog—continues the tradition of introducing innovative 
                access solutions that are unfettered by the constraints inherent 
                in traditional adaptive technologies. Emacspeak 25 —AKA ActiveDog 
                —re-activates open, unfettered access to online 
                information. Emacspeak-Alive —AKA LiveDog —enlivens open, 
                unfettered information access with a series of live updates that 
                once again demonstrate the power and agility of open source 
                software development. Emacspeak 23.0 – AKA Retriever—went the 
                extra mile in fetching full access. Emacspeak 22.0 —AKA GuideDog 
                —helps users navigate the Web more effectively than ever 
                before. Emacspeak 21.0 —AKA PlayDog —continued the Emacspeak 
                tradition of relying on enhanced productivity to liberate 
                users. Emacspeak-20.0 —AKA LeapDog —continues the long 
                established GNU/Emacs tradition of integrated innovation to 
                create a pleasurable computing environment for eyes-free 
                interaction. emacspeak-19.0 –AKA WorkDog– is designed to 
                enhance user productivity at work and leisure. Emacspeak-18.0 
                –code named GoodDog– continued the Emacspeak tradition of 
                enhancing user productivity and thereby reducing total cost of 
                ownership. Emacspeak-17.0 –code named HappyDog– enhances user 
                productivity by exploiting today&#39;s evolving WWW 
                standards. Emacspeak-16.0 –code named CleverDog– the follow-up 
                to SmartDog– continued the tradition of working better, faster, 
                smarter. Emacspeak-15.0 –code named SmartDog–followed up on 
                TopDog as the next in a continuing a series of award-winning 
                audio desktop releases from Emacspeak Inc. Emacspeak-14.0 –code 
                named TopDog–was the first release of this 
                millennium. Emacspeak-13.0 –codenamed YellowLab– was the 
                closing release of the 20th. century. Emacspeak-12.0 –code named 
                GoldenDog– began leveraging the evolving semantic WWW to provide 
                task-oriented speech access to Webformation. Emacspeak-11.0 
                –code named Aster– went the final step in making Linux a 
                zero-cost Internet access solution for blind and visually 
                impaired users. Emacspeak-10.0 –(AKA Emacspeak-2000) code named 
                WonderDog– continued the tradition of award-winning software 
                releases designed to make eyes-free computing a productive and 
                pleasurable experience. Emacspeak-9.0 –(AKA Emacspeak 99) code 
                named BlackLab– continued to innovate in the areas of speech 
                interaction and interactive accessibility. Emacspeak-8.0 –(AKA 
                Emacspeak-98++) code named BlackDog– was a major upgrade to the 
                speech output extension to Emacs. 
              &lt;/p&gt; 
              &lt;p&gt; 
                Emacspeak-95 (code named Illinois) was released as OpenSource on 
                the Internet in May 1995 as the first complete speech interface 
                to UNIX workstations. The subsequent release, Emacspeak-96 (code 
                named Egypt) made available in May 1996 provided significant 
                enhancements to the interface. Emacspeak-97 (Tennessee) went 
                further in providing a true audio desktop. Emacspeak-98 
                integrated Internetworking into all aspects of the audio desktop 
                to provide the first fully interactive speech-enabled WebTop. 
              &lt;/p&gt; 
              &lt;p&gt; 
                About Emacspeak: 
 
              &lt;/p&gt; 
              &lt;hr/&gt; 
 
              &lt;p&gt; 
                Originally based at Cornell (NY) 
                &lt;a href=&#39;http://www.cs.cornell.edu/home/raman&#39;&gt;http://www.cs.cornell.edu/home/raman&lt;/a&gt; –home to Auditory User 
                Interfaces (AUI) on the WWW– Emacspeak is now maintained on 
                GoogleCode --&lt;a href=&#39;http://code.google.com/p/emacspeak&#39;&gt;http://code.google.com/p/emacspeak&lt;/a&gt; —and 
                Sourceforge —&lt;a href=&#39;http://emacspeak.sf.net&#39;&gt;http://emacspeak.sf.net&lt;/a&gt;. The system is mirrored 
                world-wide by an international network of software archives and 
                bundled voluntarily with all major Linux distributions. On 
                Monday, April 12, 1999, Emacspeak became part of the 
                Smithsonian&#39;s Permanent Research Collection on Information 
                Technology at the Smithsonian&#39;s National Museum of American 
                History. 
              &lt;/p&gt; 
              &lt;p&gt; 
                The Emacspeak mailing list is archived at Vassar –the home of the 
                Emacspeak mailing list– thanks to Greg Priest-Dorman, and provides a 
                valuable knowledge base for new users. 
              &lt;/p&gt; 
            &lt;/div&gt; 
 
          &lt;/div&gt; 
 
          &lt;div class=&#39;outline-3&#39; id=&#39;outline-container-1-8&#39;&gt; 
            &lt;h3 id=&#39;sec-1-8&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.8&lt;/span&gt; Press/Analyst Contact: Tilden Labrador&lt;/h3&gt; 
            &lt;div id=&#39;text-1-8&#39; class=&#39;outline-text-3&#39;&gt; 
 
 
              &lt;p&gt; 
                Going forward, Tilden acknowledges his exclusive monopoly on 
                setting the direction of the Emacspeak Audio Desktop, and 
                promises to exercise this freedom to innovate and her resulting 
                power responsibly (as before) in the interest of all dogs. 
              &lt;/p&gt; 
              &lt;p&gt; 
                **About This Release: 
 
              &lt;/p&gt; 
              &lt;hr/&gt; 
 
              &lt;p&gt; 
                Windows-Free (WF) is a favorite battle-cry of The League Against 
                Forced Fenestration (LAFF).  –see 
                &lt;a href=&#39;http://www.usdoj.gov/atr/cases/f3800/msjudgex.htm&#39;&gt;http://www.usdoj.gov/atr/cases/f3800/msjudgex.htm&lt;/a&gt; for details on 
                the ill-effects of Forced Fenestration. 
              &lt;/p&gt; 
              &lt;p&gt; 
                CopyWrite )C( Aster and Hubbell Labrador. All Writes Reserved. 
                HeadDog (DM), LiveDog (DM), GoldenDog (DM), BlackDog (DM) etc., are Registered 
                Dogmarks of Aster,  Hubbell  and Tilden Labrador.  All other dogs belong to 
                their respective owners. 
              &lt;/p&gt; 
 
            &lt;/div&gt; 
          &lt;/div&gt; 
        &lt;/div&gt; 
      &lt;/div&gt; 
    &lt;/div&gt; 
  </content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/3838103849410783364'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/3838103849410783364'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2013/05/emacspeak-380-freedog-unleashed.html' title='Emacspeak 38.0 (FreeDog Unleashed'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-2252610515309333920</id><published>2013-02-28T12:47:00.001-08:00</published><updated>2013-02-28T12:47:13.744-08:00</updated><title type='text'>GMaps: Google Maps On The Emacspeak Desktop</title><content type='html'> 
    &lt;div xmlns=&#39;http://www.w3.org/1999/xhtml&#39;&gt; 
 
 
&lt;div id=&#39;content&#39;&gt; 
&lt;h1 class=&#39;title&#39;&gt;GMaps: A Google Maps Client For The Emacspeak Desktop&lt;/h1&gt; 
 
 
&lt;div class=&#39;outline-2&#39; id=&#39;outline-container-1&#39;&gt; 
&lt;h2 id=&#39;sec-1&#39;&gt;&lt;span class=&#39;section-number-2&#39;&gt;1&lt;/span&gt; GMaps: A Google Maps Client For The Emacspeak Desktop&lt;/h2&gt; 
&lt;div id=&#39;text-1&#39; class=&#39;outline-text-2&#39;&gt; 
 
 
&lt;p&gt; 
&lt;a href=&#39;http://maps.google.com&#39;&gt;Google Maps&lt;/a&gt; provides a powerful service-oriented &lt;a href=&#39;https://developers.google.com/maps/documentation/directions/&#39;&gt;Directions API&lt;/a&gt; 
and an experimental &lt;a href=&#39;https://developers.google.com/places/documentation/&#39;&gt;Places API&lt;/a&gt;. module &lt;a href=&#39;http://emacspeak.googlecode.com/svn/trunk/lisp/g-client/gmaps.el&#39;&gt;GMaps&lt;/a&gt; (part of 
g-client) implements a new specialized interaction mode that lets 
you quickly get directions and perform Map searches. 
&lt;/p&gt; 
 
&lt;/div&gt; 
 
&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-1-1&#39;&gt; 
&lt;h3 id=&#39;sec-1-1&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.1&lt;/span&gt; Overview&lt;/h3&gt; 
&lt;div id=&#39;text-1-1&#39; class=&#39;outline-text-3&#39;&gt; 
 
 
&lt;p&gt; 
Module GMaps is now in the Emacspeak svn repository and will be 
part of the next Emacspeak release.   If you are running from 
SVN, you can start using GMaps today after updating; make sure 
to  
&lt;/p&gt;&lt;pre class=&#39;example&#39;&gt; 
make config; make  
&lt;/pre&gt; 
 
&lt;p&gt;before trying to use it. 
&lt;/p&gt; 
 
&lt;/div&gt; 
 
&lt;div class=&#39;outline-4&#39; id=&#39;outline-container-1-1-1&#39;&gt; 
&lt;h4 id=&#39;sec-1-1-1&#39;&gt;&lt;span class=&#39;section-number-4&#39;&gt;1.1.1&lt;/span&gt; Usage:&lt;/h4&gt; 
&lt;div id=&#39;text-1-1-1&#39; class=&#39;outline-text-4&#39;&gt; 
 
 
&lt;p&gt; 
Run command M-x gmaps to bring up the maps interaction buffer. 
This buffer provides many special commands for talking to Google 
Maps –  use &lt;span style=&#39;text-decoration:underline;&#39;&gt;C-h b&lt;/span&gt; in emacs to get a list of 
key-bindings. Here is a brief summary of how things work: 
&lt;/p&gt; 
&lt;ul&gt; 
&lt;li&gt;You can get directions (walking, driving, by cycling, or 
    public transit)  via keystrokes &lt;span style=&#39;text-decoration:underline;&#39;&gt;w&lt;/span&gt;, &lt;span style=&#39;text-decoration:underline;&#39;&gt;d&lt;/span&gt;, &lt;span style=&#39;text-decoration:underline;&#39;&gt;b&lt;/span&gt;, or &lt;span style=&#39;text-decoration:underline;&#39;&gt;t&lt;/span&gt;. These 
    commands prompt for start and end addresses. 
&lt;/li&gt; 
&lt;li&gt;You can set your current location  by hitting &lt;span style=&#39;text-decoration:underline;&#39;&gt;c&lt;/span&gt;  — ; this 
    will be used for Places Search. 
&lt;/li&gt; 
&lt;li&gt;You can specify the radius for Places Search by pressing &lt;span style=&#39;text-decoration:underline;&#39;&gt;r&lt;/span&gt; 
    and specifying the radius  e.g. &lt;i&gt;500&lt;/i&gt; for 500m. 
&lt;/li&gt; 
&lt;li&gt;You can set up an optional  filter for your Places Search by pressing &lt;span style=&#39;text-decoration:underline;&#39;&gt;f&lt;/span&gt;. 
&lt;/li&gt; 
&lt;li&gt;Pressing &lt;span style=&#39;text-decoration:underline;&#39;&gt;n&lt;/span&gt; at this point will show you places in your 
    vicinity that match your filter criteria. 
&lt;/li&gt; 
&lt;li&gt;Pressing &#39;space&#39; on a Place displays details for that place. 
&lt;/li&gt; 
&lt;li&gt;Place details when expanded provide buttons that link you to 
    hours-of-business, Web-site for that place, and the place&#39;s 
    G+ page if any. 
&lt;/li&gt; 
&lt;/ul&gt; 
 
 
&lt;p&gt; 
Note that module GMaps replaces the now obsolete Emapspeak 
functionality that has been available on &lt;span style=&#39;text-decoration:underline;&#39;&gt;C-e?e&lt;/span&gt; since 
early 2005. 
&lt;/p&gt; 
 
&lt;/div&gt; 
&lt;/div&gt; 
&lt;/div&gt; 
&lt;/div&gt; 
&lt;/div&gt; 
 
&lt;div id=&#39;postamble&#39;&gt; 
&lt;p class=&#39;date&#39;&gt;Date: 2013-02-28 Thu&lt;/p&gt; 
&lt;p class=&#39;author&#39;&gt;Author: T.V Raman&lt;/p&gt; 
&lt;p class=&#39;creator&#39;&gt;&lt;a href=&#39;http://orgmode.org&#39;&gt;Org&lt;/a&gt; version 7.9.3d with &lt;a href=&#39;http://www.gnu.org/software/emacs/&#39;&gt;Emacs&lt;/a&gt; version 24&lt;/p&gt; 
&lt;a href=&#39;http://validator.w3.org/check?uri=referer&#39;&gt;Validate XHTML 1.0&lt;/a&gt; 
 
&lt;/div&gt; 
 
 
 
    &lt;/div&gt; 
  </content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/2252610515309333920'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/2252610515309333920'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2013/02/gmaps-google-maps-on-emacspeak-desktop.html' title='GMaps: Google Maps On The Emacspeak Desktop'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-7843402706774593002</id><published>2012-12-21T11:53:00.001-08:00</published><updated>2012-12-21T11:53:19.339-08:00</updated><title type='text'>Emacspeak 37.0 (SolidDog) Unleashed</title><content type='html'>
    &lt;div xmlns=&#39;http://www.w3.org/1999/xhtml&#39;&gt;

&lt;div id=&#39;preamble&#39;&gt;

&lt;/div&gt;

&lt;div id=&#39;content&#39;&gt;
&lt;h1 class=&#39;title&#39;&gt;Emacspeak 37.0—SolidDog—Unleashed!&lt;/h1&gt;


&lt;div class=&#39;outline-2&#39; id=&#39;outline-container-1&#39;&gt;
&lt;h2 id=&#39;sec-1&#39;&gt;&lt;span class=&#39;section-number-2&#39;&gt;1&lt;/span&gt; Emacspeak-37.0 (SolidDog) Unleashed!&lt;/h2&gt;
&lt;div id=&#39;text-1&#39; class=&#39;outline-text-2&#39;&gt;




&lt;/div&gt;

&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-1-1&#39;&gt;
&lt;h3 id=&#39;sec-1-1&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.1&lt;/span&gt; For Immediate Release:&lt;/h3&gt;
&lt;div id=&#39;text-1-1&#39; class=&#39;outline-text-3&#39;&gt;


&lt;p&gt;
San Jose, Calif., (December 21, 2012)
    Emacspeak:  Redefining Accessibility In The Era Of Cloud Computing
    –Zero cost of upgrades/downgrades makes priceless software affordable!
&lt;/p&gt;
&lt;p&gt;
Emacspeak Inc (NASDOG: ESPK) --&lt;a href=&#39;http://emacspeak.sf.net&#39;&gt;http://emacspeak.sf.net&lt;/a&gt;--
announces the immediate world-wide availability of Emacspeak
37.0 (SolidDog) –a powerful audio desktop for leveraging today&#39;s evolving
data, social and service-oriented  Web cloud.
&lt;/p&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-1-2&#39;&gt;
&lt;h3 id=&#39;sec-1-2&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.2&lt;/span&gt; Investors Note:&lt;/h3&gt;
&lt;div id=&#39;text-1-2&#39; class=&#39;outline-text-3&#39;&gt;



&lt;p&gt;
With several prominent tweeters expanding coverage of
&lt;span style=&#39;text-decoration:underline;&#39;&gt;#emacspeak&lt;/span&gt;, NASDOG: ESPK has now been consistently trading over
the net at levels close to that once attained by DogCom
high-fliers—and as of October 2009 is trading at levels close to
that achieved by once better known stocks in the tech sector.
&lt;/p&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-1-3&#39;&gt;
&lt;h3 id=&#39;sec-1-3&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.3&lt;/span&gt; What Is It?&lt;/h3&gt;
&lt;div id=&#39;text-1-3&#39; class=&#39;outline-text-3&#39;&gt;



&lt;p&gt;
Emacspeak is a fully functional audio desktop that provides
complete eyes-free access to all major 32 and 64 bit operating
environments. By seamlessly blending live access to all aspects
of the Internet such as Web-surfing, blogging, social computing
and electronic messaging into the audio desktop, Emacspeak
enables speech access to local and remote information with a
consistent and well-integrated user interface. A rich suite of
task-oriented tools provides efficient speech-enabled access to
the evolving service-oriented social Web cloud.
&lt;/p&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-1-4&#39;&gt;
&lt;h3 id=&#39;sec-1-4&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.4&lt;/span&gt; Major Enhancements:&lt;/h3&gt;
&lt;div id=&#39;text-1-4&#39; class=&#39;outline-text-3&#39;&gt;


&lt;ul&gt;
&lt;li&gt;Full EPub support: 📑
&lt;/li&gt;
&lt;li&gt;Websearch enhancements and wizards: 🐚
&lt;/li&gt;
&lt;li&gt;Updated support  git interaction via magit: ℣
&lt;/li&gt;
&lt;li&gt;Speech-enables module Kite for debugging Web Apps in Chrome ⛳
&lt;/li&gt;
&lt;li&gt;TTS  enhancements: 🙊
&lt;/li&gt;
&lt;li&gt;Updated url templates for task-oriented web actions: ♅
&lt;/li&gt;
&lt;li&gt;SSH port forwarding support for TTS servers🔉
&lt;/li&gt;
&lt;li&gt;Tested against Emacs 23 on stock Ubuntu Lucid..Precise.
&lt;/li&gt;
&lt;li&gt;Emacs 24 Support  Updated support for the forthcoming Emacs
       24 release.
&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;
Plus many more changes too numerous to fit in this margin  ∞
&lt;/p&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-1-5&#39;&gt;
&lt;h3 id=&#39;sec-1-5&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.5&lt;/span&gt; Establishing Liberty, Equality And Freedom:&lt;/h3&gt;
&lt;div id=&#39;text-1-5&#39; class=&#39;outline-text-3&#39;&gt;



&lt;p&gt;
  Never a toy system, Emacspeak is voluntarily bundled with all
major Linux distributions. Though designed to be modular,
distributors have freely chosen to bundle the fully integrated
system without any undue pressure—a documented success for
the integrated innovation embodied by Emacspeak. As the system
evolves, both upgrades and downgrades continue to be available at
the same zero-cost to all users. The integrity of the Emacspeak
codebase is ensured by the reliable and secure Linux platform
used to develop and distribute the software.
&lt;/p&gt;
&lt;p&gt;
Extensive studies have shown that thanks to these features, users
consider Emacspeak to be absolutely priceless. Thanks to this
wide-spread user demand, the present version remains   priceless
as ever—it is being made available at the same zero-cost as
previous releases.
&lt;/p&gt;
&lt;p&gt;
At the same time, Emacspeak continues to innovate in the area of
eyes-free social interaction and carries forward the
well-established Open Source tradition of introducing user
interface features that eventually show up in luser environments.
&lt;/p&gt;
&lt;p&gt;
On this theme, when once challenged by a proponent of a
crash-prone but well-marketed mousetrap with the assertion
&quot;Emacs is a system from the 70&#39;s&quot;, the creator of Emacspeak
evinced surprise at the unusual candor manifest in the assertion
that it would take popular idiot-proven interfaces until the year
2070 to catch up to where the Emacspeak audio desktop is
today. Industry experts welcomed this refreshing breath of
Courage Certainty and Clarity (CCC) at a time when users are
reeling from the Fear Uncertainty and Doubt (FUD) unleashed by
complex software systems backed by even more convoluted press
releases.
&lt;/p&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-1-6&#39;&gt;
&lt;h3 id=&#39;sec-1-6&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.6&lt;/span&gt; Independent Test Results:&lt;/h3&gt;
&lt;div id=&#39;text-1-6&#39; class=&#39;outline-text-3&#39;&gt;



&lt;p&gt;
Independent test results have proven that unlike some modern (and
not so modern) software, Emacspeak can be safely uninstalled without
adversely affecting the continued performance of the computer. These
same tests also revealed that once uninstalled, the user stopped
functioning altogether. Speaking with Aster Labrador, the creator of
Emacspeak once pointed out that these results re-emphasize the
user-centric design of Emacspeak; &quot;It is the user –and not the
computer– that stops functioning when Emacspeak is uninstalled!&quot;.
&lt;/p&gt;

&lt;/div&gt;

&lt;div class=&#39;outline-4&#39; id=&#39;outline-container-1-6-1&#39;&gt;
&lt;h4 id=&#39;sec-1-6-1&#39;&gt;&lt;span class=&#39;section-number-4&#39;&gt;1.6.1&lt;/span&gt; Note from Aster,Bubbles and Tilden:&lt;/h4&gt;
&lt;div id=&#39;text-1-6-1&#39; class=&#39;outline-text-4&#39;&gt;



&lt;p&gt;
UnDoctored Videos Inc. is looking for volunteers to star in a
video demonstrating such complete user failure.
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-1-7&#39;&gt;
&lt;h3 id=&#39;sec-1-7&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.7&lt;/span&gt; Obtaining Emacspeak:&lt;/h3&gt;
&lt;div id=&#39;text-1-7&#39; class=&#39;outline-text-3&#39;&gt;



&lt;p&gt;
Emacspeak can be downloaded from Google Code Hosting –see
&lt;a href=&#39;http://code.google.com/p/emacspeak/&#39;&gt;http://code.google.com/p/emacspeak/&lt;/a&gt; You can visit
Emacspeak on the WWW at &lt;a href=&#39;http://emacspeak.sf.net&#39;&gt;http://emacspeak.sf.net&lt;/a&gt;.  You can subscribe
to the emacspeak mailing list emacspeak@cs.vassar.edu by sending
mail to the list request address emacspeak-request@cs.vassar.edu.
The HeadDog release is at 
&lt;a href=&#39;http://emacspeak.googlecode.com/files/emacspeak-35.0.tar.bz2&#39;&gt;http://emacspeak.googlecode.com/files/emacspeak-35.0.tar.bz2&lt;/a&gt;.
The latest development snapshot of Emacspeak is available via
Subversion from Google Code Hosting at 
&lt;a href=&#39;http://emacspeak.googlecode.com/svn/trunk/&#39;&gt;http://emacspeak.googlecode.com/svn/trunk/&lt;/a&gt;
&lt;/p&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-1-8&#39;&gt;
&lt;h3 id=&#39;sec-1-8&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.8&lt;/span&gt; History:&lt;/h3&gt;
&lt;div id=&#39;text-1-8&#39; class=&#39;outline-text-3&#39;&gt;

&lt;p&gt;Emacspeak 37.0 continues the tradition of delivering robust
software as reflected by its code-name. Emacspeak 36.0 enhances
the audio desktop with many new tools including full EPub support
— hence the name EPubDog. Emacspeak 35.0 is all about teaching
a new dog old tricks — and is aptly code-named HeadDog in honor
of our new Press/Analyst contact. emacspeak-34.0 (AKA Bubbles)
established a new beach-head with respect to rapid task
completion in an eyes-free environment. Emacspeak-33.0 AKA
StarDog brings unparalleled cloud access to the audio
desktop. Emacspeak 32.0 AKA LuckyDog continues to innovate via
open technologies for better access. Emacspeak 31.0 AKA TweetDog
— adds tweeting to the Emacspeak desktop. Emacspeak 30.0 AKA
SocialDog brings the Social Web to the audio desktop—you cant but
be social if you speak! Emacspeak 29.0—AKAAbleDog—is a testament
to the resilliance and innovation embodied by Open Source
software—it would not exist without the thriving Emacs community
that continues to ensure that Emacs remains one of the premier
user environments despite perhaps also being one of the
oldest. Emacspeak 28.0—AKA PuppyDog—exemplifies the rapid pace of
development evinced by Open Source software. Emacspeak 27.0—AKA
FastDog—is the latest in a sequence of upgrades that make
previous releases obsolete and downgrades unnecessary. Emacspeak
26—AKA LeadDog—continues the tradition of introducing innovative
access solutions that are unfettered by the constraints inherent
in traditional adaptive technologies. Emacspeak 25 —AKA ActiveDog
—re-activates open, unfettered access to online
information. Emacspeak-Alive —AKA LiveDog —enlivens open,
unfettered information access with a series of live updates that
once again demonstrate the power and agility of open source
software development. Emacspeak 23.0 – AKA Retriever—went the
extra mile in fetching full access. Emacspeak 22.0 —AKA GuideDog
—helps users navigate the Web more effectively than ever
before. Emacspeak 21.0 —AKA PlayDog —continued the Emacspeak
tradition of relying on enhanced productivity to liberate
users. Emacspeak-20.0 —AKA LeapDog —continues the long
established GNU/Emacs tradition of integrated innovation to
create a pleasurable computing environment for eyes-free
interaction. emacspeak-19.0 –AKA WorkDog– is designed to
enhance user productivity at work and leisure. Emacspeak-18.0
–code named GoodDog– continued the Emacspeak tradition of
enhancing user productivity and thereby reducing total cost of
ownership. Emacspeak-17.0 –code named HappyDog– enhances user
productivity by exploiting today&#39;s evolving WWW
standards. Emacspeak-16.0 –code named CleverDog– the follow-up
to SmartDog– continued the tradition of working better, faster,
smarter. Emacspeak-15.0 –code named SmartDog–followed up on
TopDog as the next in a continuing a series of award-winning
audio desktop releases from Emacspeak Inc. Emacspeak-14.0 –code
named TopDog–was the first release of this
millennium. Emacspeak-13.0 –codenamed YellowLab– was the
closing release of the 20th. century. Emacspeak-12.0 –code named
GoldenDog– began leveraging the evolving semantic WWW to provide
task-oriented speech access to Webformation. Emacspeak-11.0
–code named Aster– went the final step in making Linux a
zero-cost Internet access solution for blind and visually
impaired users. Emacspeak-10.0 –(AKA Emacspeak-2000) code named
WonderDog– continued the tradition of award-winning software
releases designed to make eyes-free computing a productive and
pleasurable experience. Emacspeak-9.0 –(AKA Emacspeak 99) code
named BlackLab– continued to innovate in the areas of speech
interaction and interactive accessibility. Emacspeak-8.0 –(AKA
Emacspeak-98++) code named BlackDog– was a major upgrade to the
speech output extension to Emacs.
&lt;/p&gt;
&lt;p&gt;
Emacspeak-95 (code named Illinois) was released as OpenSource on
the Internet in May 1995 as the first complete speech interface
to UNIX workstations. The subsequent release, Emacspeak-96 (code
named Egypt) made available in May 1996 provided significant
enhancements to the interface. Emacspeak-97 (Tennessee) went
further in providing a true audio desktop. Emacspeak-98
integrated Internetworking into all aspects of the audio desktop
to provide the first fully interactive speech-enabled WebTop.
&lt;/p&gt;
&lt;p&gt;
About Emacspeak:

&lt;/p&gt;
&lt;hr/&gt;

&lt;p&gt;
Originally based at Cornell (NY)
&lt;a href=&#39;http://www.cs.cornell.edu/home/raman&#39;&gt;http://www.cs.cornell.edu/home/raman&lt;/a&gt; –home to Auditory User
Interfaces (AUI) on the WWW– Emacspeak is now maintained on
GoogleCode --&lt;a href=&#39;http://code.google.com/p/emacspeak&#39;&gt;http://code.google.com/p/emacspeak&lt;/a&gt; —and
Sourceforge —&lt;a href=&#39;http://emacspeak.sf.net&#39;&gt;http://emacspeak.sf.net&lt;/a&gt;. The system is mirrored
world-wide by an international network of software archives and
bundled voluntarily with all major Linux distributions. On
Monday, April 12, 1999, Emacspeak became part of the
Smithsonian&#39;s Permanent Research Collection on Information
Technology at the Smithsonian&#39;s National Museum of American
History.
&lt;/p&gt;
&lt;p&gt;
The Emacspeak mailing list is archived at Vassar –the home of the
Emacspeak mailing list– thanks to Greg Priest-Dorman, and provides a
valuable knowledge base for new users.
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;div class=&#39;outline-2&#39; id=&#39;outline-container-2&#39;&gt;
&lt;h2 id=&#39;sec-2&#39;&gt;&lt;span class=&#39;section-number-2&#39;&gt;2&lt;/span&gt; Press/Analyst Contact: Tilden Labrador&lt;/h2&gt;
&lt;div id=&#39;text-2&#39; class=&#39;outline-text-2&#39;&gt;


&lt;p&gt;
Going forward, Tilden acknowledges his exclusive monopoly on
setting the direction of the Emacspeak Audio Desktop, and
promises to exercise this freedom to innovate and her resulting
power responsibly (as before) in the interest of all dogs.
&lt;/p&gt;
&lt;p&gt;
**About This Release:

&lt;/p&gt;
&lt;hr/&gt;

&lt;p&gt;
Windows-Free (WF) is a favorite battle-cry of The League Against
Forced Fenestration (LAFF).  –see
&lt;a href=&#39;http://www.usdoj.gov/atr/cases/f3800/msjudgex.htm&#39;&gt;http://www.usdoj.gov/atr/cases/f3800/msjudgex.htm&lt;/a&gt; for details on
the ill-effects of Forced Fenestration.
&lt;/p&gt;
&lt;p&gt;
CopyWrite )C( Aster and Hubbell Labrador. All Writes Reserved.
HeadDog (DM), LiveDog (DM), GoldenDog (DM), BlackDog (DM) etc., are Registered
Dogmarks of Aster,  Hubbell  and Tilden Labrador.  All other dogs belong to
their respective owners.
&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div id=&#39;postamble&#39;&gt;
&lt;p class=&#39;date&#39;&gt;Date: 2012-12-21 11:16:59 PST&lt;/p&gt;
&lt;p class=&#39;author&#39;&gt;Author: T.V Raman&lt;/p&gt;
&lt;p class=&#39;creator&#39;&gt;Org version 7.8.11 with Emacs version 24&lt;/p&gt;
&lt;a href=&#39;http://validator.w3.org/check?uri=referer&#39;&gt;Validate XHTML 1.0&lt;/a&gt;

&lt;/div&gt;
    &lt;/div&gt;
  </content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/7843402706774593002'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/7843402706774593002'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2012/12/emacspeak-370-soliddog-unleashed.html' title='Emacspeak 37.0 (SolidDog) Unleashed'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-5529021722260648318</id><published>2012-05-03T17:16:00.001-07:00</published><updated>2012-05-03T18:26:37.397-07:00</updated><title type='text'>Emacspeak 36.0 (EPubDog) Unleashed!</title><content type='html'>   
    &lt;div xmlns=&#39;http://www.w3.org/1999/xhtml&#39;&gt;   
&lt;div&gt;   
&lt;div id=&#39;preamble&#39;&gt;   
&lt;/div&gt;   
&lt;div id=&#39;content&#39;&gt;   
&lt;h1 class=&#39;title&#39;&gt;Emacspeak 36.0—EPubDog—Unleashed!&lt;/h1&gt;   
&lt;div id=&#39;outline-container-1&#39; class=&#39;outline-2&#39;&gt;   
&lt;h2 id=&#39;sec-1&#39;&gt;&lt;span class=&#39;section-number-2&#39;&gt;1&lt;/span&gt; Emacspeak-36.0 (EPubDog) Unleashed!&lt;/h2&gt;   
&lt;div class=&#39;outline-text-2&#39; id=&#39;text-1&#39;&gt;   
&lt;/div&gt;   
&lt;div id=&#39;outline-container-1-1&#39; class=&#39;outline-3&#39;&gt;   
&lt;h3 id=&#39;sec-1-1&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.1&lt;/span&gt; For Immediate Release:&lt;/h3&gt;   
&lt;div class=&#39;outline-text-3&#39; id=&#39;text-1-1&#39;&gt;   
&lt;p&gt;   
San Jose, Calif., (May 4, 2011)   
    Emacspeak:  Redefining Accessibility In The Era Of Cloud Computing   
    —Zero cost of upgrades/downgrades makes priceless software affordable!   
&lt;/p&gt;   
&lt;p&gt;   
Emacspeak Inc (NASDOG: ESPK) --&lt;a href=&#39;http://emacspeak.sf.net&#39;&gt;http://emacspeak.sf.net&lt;/a&gt;--   
announces the immediate world-wide availability of Emacspeak   
36.0 (EPubDog) —a powerful audio desktop for leveraging today&#39;s evolving   
data, social and service-oriented  Web cloud.   
&lt;/p&gt;   
&lt;/div&gt;   
&lt;/div&gt;   
&lt;div id=&#39;outline-container-1-2&#39; class=&#39;outline-3&#39;&gt;   
&lt;h3 id=&#39;sec-1-2&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.2&lt;/span&gt; Investors Note:&lt;/h3&gt;   
&lt;div class=&#39;outline-text-3&#39; id=&#39;text-1-2&#39;&gt;   
&lt;p&gt;   
With several prominent tweeters expanding coverage of   
&lt;span style=&#39;text-decoration:underline;&#39;&gt;#emacspeak&lt;/span&gt;, NASDOG: ESPK has now been consistently trading over   
the net at levels close to that once attained by DogCom   
high-fliers—and as of October 2009 is trading at levels close to   
that achieved by once better known stocks in the tech sector.   
&lt;/p&gt;   
&lt;/div&gt;   
&lt;/div&gt;   
&lt;div id=&#39;outline-container-1-3&#39; class=&#39;outline-3&#39;&gt;   
&lt;h3 id=&#39;sec-1-3&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.3&lt;/span&gt; What Is It?&lt;/h3&gt;   
&lt;div class=&#39;outline-text-3&#39; id=&#39;text-1-3&#39;&gt;   
&lt;p&gt;   
Emacspeak is a fully functional audio desktop that provides   
complete eyes-free access to all major 32 and 64 bit operating   
environments. By seamlessly blending live access to all aspects   
of the Internet such as Web-surfing, blogging, social computing   
and electronic messaging into the audio desktop, Emacspeak   
enables speech access to local and remote information with a   
consistent and well-integrated user interface. A rich suite of   
task-oriented tools provides efficient speech-enabled access to   
the evolving service-oriented social Web cloud.   
&lt;/p&gt;   
&lt;/div&gt;   
&lt;/div&gt;   
&lt;div id=&#39;outline-container-1-4&#39; class=&#39;outline-3&#39;&gt;   
&lt;h3 id=&#39;sec-1-4&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.4&lt;/span&gt; Major Enhancements:&lt;/h3&gt;   
&lt;div class=&#39;outline-text-3&#39; id=&#39;text-1-4&#39;&gt;   
&lt;ul&gt;   
&lt;li&gt;Full EPub support: 📑   
&lt;/li&gt;   
&lt;li&gt;Websearch enhancements and wizards: 🐚   
&lt;/li&gt;   
&lt;li&gt;Speech-enables git interaction via magit: ℣   
&lt;/li&gt;   
&lt;li&gt;Speech-enabled support for finding things fast: 🚤   
&lt;/li&gt;   
&lt;li&gt;TTS  enhancements: 🙊   
&lt;/li&gt;   
&lt;li&gt;Updated url templates for task-oriented web actions: ♅   
&lt;/li&gt;   
&lt;li&gt;SSH port forwarding support for TTS servers🔉   
&lt;/li&gt;   
&lt;li&gt;Updated support for the forthcoming Emacs   
       24 release.   
&lt;/li&gt;   
&lt;/ul&gt;   
&lt;p&gt;   
Plus many more changes too numerous to fit in this margin  ∞   
&lt;/p&gt;   
&lt;/div&gt;   
&lt;/div&gt;   
&lt;div id=&#39;outline-container-1-5&#39; class=&#39;outline-3&#39;&gt;   
&lt;h3 id=&#39;sec-1-5&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.5&lt;/span&gt; Establishing Liberty, Equality And Freedom:&lt;/h3&gt;   
&lt;div class=&#39;outline-text-3&#39; id=&#39;text-1-5&#39;&gt;   
&lt;p&gt;   
  Never a toy system, Emacspeak is voluntarily bundled with all   
major Linux distributions. Though designed to be modular,   
distributors have freely chosen to bundle the fully integrated   
system without any undue pressure—a documented success for   
the integrated innovation embodied by Emacspeak. As the system   
evolves, both upgrades and downgrades continue to be available at   
the same zero-cost to all users. The integrity of the Emacspeak   
codebase is ensured by the reliable and secure Linux platform   
used to develop and distribute the software.   
&lt;/p&gt;   
&lt;p&gt;   
Extensive studies have shown that thanks to these features, users   
consider Emacspeak to be absolutely priceless. Thanks to this   
wide-spread user demand, the present version remains   priceless   
as ever—it is being made available at the same zero-cost as   
previous releases.   
&lt;/p&gt;   
&lt;p&gt;   
At the same time, Emacspeak continues to innovate in the area of   
eyes-free social interaction and carries forward the   
well-established Open Source tradition of introducing user   
interface features that eventually show up in luser environments.   
&lt;/p&gt;   
&lt;p&gt;   
On this theme, when once challenged by a proponent of a   
crash-prone but well-marketed mousetrap with the assertion   
&quot;Emacs is a system from the 70&#39;s&quot;, the creator of Emacspeak   
evinced surprise at the unusual candor manifest in the assertion   
that it would take popular idiot-proven interfaces until the year   
2070 to catch up to where the Emacspeak audio desktop is   
today. Industry experts welcomed this refreshing breath of   
Courage Certainty and Clarity (CCC) at a time when users are   
reeling from the Fear Uncertainty and Doubt (FUD) unleashed by   
complex software systems backed by even more convoluted press   
releases.   
&lt;/p&gt;   
&lt;/div&gt;   
&lt;/div&gt;   
&lt;div id=&#39;outline-container-1-6&#39; class=&#39;outline-3&#39;&gt;   
&lt;h3 id=&#39;sec-1-6&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.6&lt;/span&gt; Independent Test Results:&lt;/h3&gt;   
&lt;div class=&#39;outline-text-3&#39; id=&#39;text-1-6&#39;&gt;   
&lt;p&gt;   
Independent test results have proven that unlike some modern (and   
not so modern) software, Emacspeak can be safely uninstalled without   
adversely affecting the continued performance of the computer. These   
same tests also revealed that once uninstalled, the user stopped   
functioning altogether. Speaking with Aster Labrador, the creator of   
Emacspeak once pointed out that these results re-emphasize the   
user-centric design of Emacspeak; &quot;It is the user —and not the   
computer— that stops functioning when Emacspeak is uninstalled!&quot;.   
&lt;/p&gt;   
&lt;/div&gt;   
&lt;div id=&#39;outline-container-1-6-1&#39; class=&#39;outline-4&#39;&gt;   
&lt;h4 id=&#39;sec-1-6-1&#39;&gt;&lt;span class=&#39;section-number-4&#39;&gt;1.6.1&lt;/span&gt; Note from Aster,Bubbles and Tilden:&lt;/h4&gt;   
&lt;div class=&#39;outline-text-4&#39; id=&#39;text-1-6-1&#39;&gt;   
&lt;p&gt;   
UnDoctored Videos Inc. is looking for volunteers to star in a   
video demonstrating such complete user failure.   
&lt;/p&gt;   
&lt;/div&gt;   
&lt;/div&gt;   
&lt;/div&gt;   
&lt;div id=&#39;outline-container-1-7&#39; class=&#39;outline-3&#39;&gt;   
&lt;h3 id=&#39;sec-1-7&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.7&lt;/span&gt; Obtaining Emacspeak:&lt;/h3&gt;   
&lt;div class=&#39;outline-text-3&#39; id=&#39;text-1-7&#39;&gt;   
&lt;p&gt;   
Emacspeak can be downloaded from Google Code Hosting —see   
&lt;a href=&#39;http://code.google.com/p/emacspeak/&#39;&gt;http://code.google.com/p/emacspeak/&lt;/a&gt; You can visit   
Emacspeak on the WWW at &lt;a href=&#39;http://emacspeak.sf.net&#39;&gt;http://emacspeak.sf.net&lt;/a&gt;.  You can subscribe   
to the emacspeak mailing list emacspeak@cs.vassar.edu by sending   
mail to the list request address emacspeak-request@cs.vassar.edu.   
The EPubDog release is at    
&lt;a href=&#39;http://emacspeak.googlecode.com/files/emacspeak-36.0.tar.bz2&#39;&gt;http://emacspeak.googlecode.com/files/emacspeak-35.0.tar.bz2&lt;/a&gt;.   
The latest development snapshot of Emacspeak is available via   
Subversion from Google Code Hosting at    
&lt;a href=&#39;http://emacspeak.googlecode.com/svn/trunk/&#39;&gt;http://emacspeak.googlecode.com/svn/trunk/&lt;/a&gt;   
&lt;/p&gt;   
&lt;/div&gt;   
&lt;/div&gt;   
&lt;div id=&#39;outline-container-1-8&#39; class=&#39;outline-3&#39;&gt;   
&lt;h3 id=&#39;sec-1-8&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.8&lt;/span&gt; History:&lt;/h3&gt;   
&lt;div class=&#39;outline-text-3&#39; id=&#39;text-1-8&#39;&gt;   
&lt;p&gt;   
Emacspeak 36.0 enhances the audio desktop with many new tools   
including full EPub support — hence the name EPubDog. Emacspeak   
35.0 is all about teaching a new dog old tricks — and is aptly   
code-named HeadDog in honor of our new Press/Analyst   
contact. emacspeak-34.0 (AKA Bubbles) established a new   
beach-head with respect to rapid task completion in an eyes-free   
environment. Emacspeak-33.0 AKA StarDog brings unparalleled cloud   
access to the audio desktop. Emacspeak 32.0 AKA LuckyDog   
continues to innovate via open technologies for better   
access. Emacspeak 31.0 AKA TweetDog — adds tweeting to the   
Emacspeak desktop. Emacspeak 30.0 AKA SocialDog brings the Social   
Web to the audio desktop—you cant but be social if you speak!   
Emacspeak 29.0—AKAAbleDog—is a testament to the resilliance and   
innovation embodied by Open Source software—it would not exist   
without the thriving Emacs community that continues to ensure   
that Emacs remains one of the premier user environments despite   
perhaps also being one of the oldest. Emacspeak 28.0—AKA   
PuppyDog—exemplifies the rapid pace of development evinced by   
Open Source software. Emacspeak 27.0—AKA FastDog—is the latest in   
a sequence of upgrades that make previous releases obsolete and   
downgrades unnecessary. Emacspeak 26—AKA LeadDog—continues the   
tradition of introducing innovative access solutions that are   
unfettered by the constraints inherent in traditional adaptive   
technologies. Emacspeak 25 —AKA ActiveDog —re-activates open,   
unfettered access to online information. Emacspeak-Alive —AKA   
LiveDog —enlivens open, unfettered information access with a   
series of live updates that once again demonstrate the power and   
agility of open source software development. Emacspeak 23.0 --   
AKA Retriever—went the extra mile in fetching full   
access. Emacspeak 22.0 —AKA GuideDog —helps users navigate the   
Web more effectively than ever before. Emacspeak 21.0 —AKA   
PlayDog —continued the Emacspeak tradition of relying on enhanced   
productivity to liberate users. Emacspeak-20.0 —AKA LeapDog   
—continues the long established GNU/Emacs tradition of integrated   
innovation to create a pleasurable computing environment for   
eyes-free interaction. emacspeak-19.0 —AKA WorkDog— is designed   
to enhance user productivity at work and leisure. Emacspeak-18.0   
—code named GoodDog— continued the Emacspeak tradition of   
enhancing user productivity and thereby reducing total cost of   
ownership. Emacspeak-17.0 —code named HappyDog— enhances user   
productivity by exploiting today&#39;s evolving WWW   
standards. Emacspeak-16.0 —code named CleverDog— the follow-up   
to SmartDog— continued the tradition of working better, faster,   
smarter. Emacspeak-15.0 —code named SmartDog—followed up on   
TopDog as the next in a continuing a series of award-winning   
audio desktop releases from Emacspeak Inc. Emacspeak-14.0 —code   
named TopDog—was the first release of this   
millennium. Emacspeak-13.0 —codenamed YellowLab— was the   
closing release of the 20th. century. Emacspeak-12.0 —code named   
GoldenDog— began leveraging the evolving semantic WWW to provide   
task-oriented speech access to Webformation. Emacspeak-11.0   
—code named Aster— went the final step in making Linux a   
zero-cost Internet access solution for blind and visually   
impaired users. Emacspeak-10.0 —(AKA Emacspeak-2000) code named   
WonderDog— continued the tradition of award-winning software   
releases designed to make eyes-free computing a productive and   
pleasurable experience. Emacspeak-9.0 —(AKA Emacspeak 99) code   
named BlackLab— continued to innovate in the areas of speech   
interaction and interactive accessibility. Emacspeak-8.0 —(AKA   
Emacspeak-98++) code named BlackDog— was a major upgrade to the   
speech output extension to Emacs.   
&lt;/p&gt;   
&lt;p&gt;   
Emacspeak-95 (code named Illinois) was released as OpenSource on   
the Internet in May 1995 as the first complete speech interface   
to UNIX workstations. The subsequent release, Emacspeak-96 (code   
named Egypt) made available in May 1996 provided significant   
enhancements to the interface. Emacspeak-97 (Tennessee) went   
further in providing a true audio desktop. Emacspeak-98   
integrated Internetworking into all aspects of the audio desktop   
to provide the first fully interactive speech-enabled WebTop.   
&lt;/p&gt;   
&lt;p&gt;   
About Emacspeak:   
&lt;/p&gt;   
&lt;hr/&gt;   
&lt;p&gt;   
Originally based at Cornell (NY)   
&lt;a href=&#39;http://www.cs.cornell.edu/home/raman&#39;&gt;http://www.cs.cornell.edu/home/raman&lt;/a&gt; —home to Auditory User   
Interfaces (AUI) on the WWW— Emacspeak is now maintained on   
GoogleCode --&lt;a href=&#39;http://code.google.com/p/emacspeak&#39;&gt;http://code.google.com/p/emacspeak&lt;/a&gt; —and   
Sourceforge —&lt;a href=&#39;http://emacspeak.sf.net&#39;&gt;http://emacspeak.sf.net&lt;/a&gt;. The system is mirrored   
world-wide by an international network of software archives and   
bundled voluntarily with all major Linux distributions. On   
Monday, April 12, 1999, Emacspeak became part of the   
Smithsonian&#39;s Permanent Research Collection on Information   
Technology at the Smithsonian&#39;s National Museum of American   
History.   
&lt;/p&gt;   
&lt;p&gt;   
The Emacspeak mailing list is archived at Vassar —the home of the   
Emacspeak mailing list— thanks to Greg Priest-Dorman, and provides a   
valuable knowledge base for new users.   
&lt;/p&gt;   
&lt;/div&gt;   
&lt;/div&gt;   
&lt;/div&gt;   
&lt;div id=&#39;outline-container-2&#39; class=&#39;outline-2&#39;&gt;   
&lt;h2 id=&#39;sec-2&#39;&gt;&lt;span class=&#39;section-number-2&#39;&gt;2&lt;/span&gt; Press/Analyst Contact: Tilden Labrador&lt;/h2&gt;   
&lt;div class=&#39;outline-text-2&#39; id=&#39;text-2&#39;&gt;   
&lt;p&gt;   
Going forward, Tilden acknowledges his exclusive monopoly on   
setting the direction of the Emacspeak Audio Desktop, and   
promises to exercise this freedom to innovate and her resulting   
power responsibly (as before) in the interest of all dogs.   
&lt;/p&gt;   
&lt;p&gt;   
**About This Release:   
&lt;/p&gt;   
&lt;hr/&gt;   
&lt;p&gt;   
Windows-Free (WF) is a favorite battle-cry of The League Against   
Forced Fenestration (LAFF).  —see   
&lt;a href=&#39;http://www.usdoj.gov/atr/cases/f3800/msjudgex.htm&#39;&gt;http://www.usdoj.gov/atr/cases/f3800/msjudgex.htm&lt;/a&gt; for details on   
the ill-effects of Forced Fenestration.   
&lt;/p&gt;   
&lt;p&gt;   
CopyWrite )C( Aster and Hubbell Labrador. All Writes Reserved.   
HeadDog (DM), LiveDog (DM), GoldenDog (DM), BlackDog (DM) etc., are Registered   
Dogmarks of Aster,  Hubbell  and Tilden Labrador.  All other dogs belong to   
their respective owners.   
&lt;/p&gt;   
&lt;/div&gt;   
&lt;/div&gt;   
&lt;/div&gt;   
&lt;div id=&#39;postamble&#39;&gt;   
&lt;p class=&#39;date&#39;&gt;Date: 2012-05-02 14:21:43 PDT&lt;/p&gt;   
&lt;p class=&#39;author&#39;&gt;Author: T.V Raman&lt;/p&gt;   
&lt;p class=&#39;creator&#39;&gt;Org version 7.8.09 with Emacs version 24&lt;/p&gt;   
&lt;a href=&#39;http://validator.w3.org/check?uri=referer&#39;&gt;Validate XHTML 1.0&lt;/a&gt;   
&lt;/div&gt;   
    &lt;/div&gt;   
    &lt;/div&gt;   
  </content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/5529021722260648318'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/5529021722260648318'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2012/05/emacspeak-360-epubdog-unleashed.html' title='Emacspeak 36.0 (EPubDog) Unleashed!'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-3084012817801392916</id><published>2011-11-23T09:33:00.001-08:00</published><updated>2011-11-23T09:33:15.364-08:00</updated><title type='text'>Emacspeak 35.0 (HeadDog) Released</title><content type='html'>
    &lt;div xmlns=&#39;http://www.w3.org/1999/xhtml&#39;&gt;
&lt;div&gt;
&lt;div id=&#39;preamble&#39;&gt;

&lt;/div&gt;

&lt;div id=&#39;content&#39;&gt;
&lt;h1 class=&#39;title&#39;&gt;Emacspeak 35.0—HeadDog—Unleashed!&lt;/h1&gt;


&lt;div class=&#39;outline-2&#39; id=&#39;outline-container-1&#39;&gt;
&lt;h2 id=&#39;sec-1&#39;&gt;&lt;span class=&#39;section-number-2&#39;&gt;1&lt;/span&gt; Emacspeak-35.0 (HeadDog) Unleashed! &lt;/h2&gt;
&lt;div id=&#39;text-1&#39; class=&#39;outline-text-2&#39;&gt;




&lt;/div&gt;

&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-1-1&#39;&gt;
&lt;h3 id=&#39;sec-1-1&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.1&lt;/span&gt; For Immediate Release: &lt;/h3&gt;
&lt;div id=&#39;text-1-1&#39; class=&#39;outline-text-3&#39;&gt;


&lt;p&gt;
San Jose, Calif., (November 23, 2011)
    Emacspeak:  Redefining Accessibility In The Era Of Cloud Computing
    –Zero cost of upgrades/downgrades makes priceless software affordable!
&lt;/p&gt;
&lt;p&gt;
Emacspeak Inc (NASDOG: ESPK) --&lt;a href=&#39;http://emacspeak.sf.net&#39;&gt;http://emacspeak.sf.net&lt;/a&gt;--
announces the immediate world-wide availability of Emacspeak
35.0 (HeadDog) –a powerful audio desktop for leveraging today&#39;s evolving
data, social and service-oriented  Web cloud.
&lt;/p&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-1-2&#39;&gt;
&lt;h3 id=&#39;sec-1-2&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.2&lt;/span&gt; Investors Note: &lt;/h3&gt;
&lt;div id=&#39;text-1-2&#39; class=&#39;outline-text-3&#39;&gt;



&lt;p&gt;
With several prominent tweeters expanding coverage of
&lt;span style=&#39;text-decoration:underline;&#39;&gt;#emacspeak&lt;/span&gt;, NASDOG: ESPK has now been consistently trading over
the net at levels close to that once attained by DogCom
high-fliers—and as of October 2009 is trading at levels close to
that achieved by once better known stocks in the tech sector.
&lt;/p&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-1-3&#39;&gt;
&lt;h3 id=&#39;sec-1-3&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.3&lt;/span&gt; What Is It? &lt;/h3&gt;
&lt;div id=&#39;text-1-3&#39; class=&#39;outline-text-3&#39;&gt;



&lt;p&gt;
Emacspeak is a fully functional audio desktop that provides
complete eyes-free access to all major 32 and 64 bit operating
environments. By seamlessly blending live access to all aspects
of the Internet such as Web-surfing, blogging, social computing
and electronic messaging into the audio desktop, Emacspeak
enables speech access to local and remote information with a
consistent and well-integrated user interface. A rich suite of
task-oriented tools provides efficient speech-enabled access to
the evolving service-oriented social Web cloud.
&lt;/p&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-1-4&#39;&gt;
&lt;h3 id=&#39;sec-1-4&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.4&lt;/span&gt; Major Enhancements: &lt;/h3&gt;
&lt;div id=&#39;text-1-4&#39; class=&#39;outline-text-3&#39;&gt;



&lt;dl&gt;
&lt;dt&gt;emacspeak-websearch.el&lt;/dt&gt;&lt;dd&gt;Improved search wizards including efficient Google search.
&lt;/dd&gt;
&lt;dt&gt;emacspeak-epub.el&lt;/dt&gt;&lt;dd&gt;Preliminary EPub support.
&lt;/dd&gt;
&lt;dt&gt;emacspeak-magit.el&lt;/dt&gt;&lt;dd&gt;Support for git interaction.
&lt;/dd&gt;
&lt;dt&gt;emacspeak-pianobar.el&lt;/dt&gt;&lt;dd&gt;Pandora radio for the Emacspeak desktop.
&lt;/dd&gt;
&lt;dt&gt;emacspeak-dbus.el&lt;/dt&gt;&lt;dd&gt;DBus integration to receive network notifications.
&lt;/dd&gt;
&lt;dt&gt;emacspeak-woman.el&lt;/dt&gt;&lt;dd&gt;Speech-enable Emacs&#39; built-in Man page interface.
&lt;/dd&gt;
&lt;dt&gt;Emacspeak-npr.el&lt;/dt&gt;&lt;dd&gt;API client for NPR interaction.
&lt;/dd&gt;
&lt;dt&gt;emacspeak-librivox.el&lt;/dt&gt;&lt;dd&gt;API  Client For Free Audio Books
       from Librivox.
&lt;/dd&gt;
&lt;dt&gt;emacspeak-url-templates&lt;/dt&gt;&lt;dd&gt;Updated URL templates for efficient Web interaction.
&lt;/dd&gt;
&lt;dt&gt;emacspeak-bookshare.el&lt;/dt&gt;&lt;dd&gt;Bookshare API  Client Updated Bookshare client.
&lt;/dd&gt;
&lt;dt&gt;servers/mac&lt;/dt&gt;&lt;dd&gt;Support For Mac TTS
&lt;/dd&gt;
&lt;dt&gt;Emacs 24 Support&lt;/dt&gt;&lt;dd&gt;Updated support for the forthcoming Emacs
       24 release.
&lt;/dd&gt;
&lt;/dl&gt;


&lt;p&gt;
Plus many more changes too numerous to fit in this margin 󠇿… ∞
&lt;/p&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-1-5&#39;&gt;
&lt;h3 id=&#39;sec-1-5&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.5&lt;/span&gt; Establishing Liberty, Equality And Freedom: &lt;/h3&gt;
&lt;div id=&#39;text-1-5&#39; class=&#39;outline-text-3&#39;&gt;



&lt;p&gt;
  Never a toy system, Emacspeak is voluntarily bundled with all
major Linux distributions. Though designed to be modular,
distributors have freely chosen to bundle the fully integrated
system without any undue pressure—a documented success for
the integrated innovation embodied by Emacspeak. As the system
evolves, both upgrades and downgrades continue to be available at
the same zero-cost to all users. The integrity of the Emacspeak
codebase is ensured by the reliable and secure Linux platform
used to develop and distribute the software.
&lt;/p&gt;
&lt;p&gt;
Extensive studies have shown that thanks to these features, users
consider Emacspeak to be absolutely priceless. Thanks to this
wide-spread user demand, the present version remains   priceless
as ever—it is being made available at the same zero-cost as
previous releases.
&lt;/p&gt;
&lt;p&gt;
At the same time, Emacspeak continues to innovate in the area of
eyes-free social interaction and carries forward the
well-established Open Source tradition of introducing user
interface features that eventually show up in luser environments.
&lt;/p&gt;
&lt;p&gt;
On this theme, when once challenged by a proponent of a
crash-prone but well-marketed mousetrap with the assertion
&quot;Emacs is a system from the 70&#39;s&quot;, the creator of Emacspeak
evinced surprise at the unusual candor manifest in the assertion
that it would take popular idiot-proven interfaces until the year
2070 to catch up to where the Emacspeak audio desktop is
today. Industry experts welcomed this refreshing breath of
Courage Certainty and Clarity (CCC) at a time when users are
reeling from the Fear Uncertainty and Doubt (FUD) unleashed by
complex software systems backed by even more convoluted press
releases.
&lt;/p&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-1-6&#39;&gt;
&lt;h3 id=&#39;sec-1-6&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.6&lt;/span&gt; Independent Test Results: &lt;/h3&gt;
&lt;div id=&#39;text-1-6&#39; class=&#39;outline-text-3&#39;&gt;



&lt;p&gt;
Independent test results have proven that unlike some modern (and
not so modern) software, Emacspeak can be safely uninstalled without
adversely affecting the continued performance of the computer. These
same tests also revealed that once uninstalled, the user stopped
functioning altogether. Speaking with Aster Labrador, the creator of
Emacspeak once pointed out that these results re-emphasize the
user-centric design of Emacspeak; &quot;It is the user –and not the
computer– that stops functioning when Emacspeak is uninstalled!&quot;.
&lt;/p&gt;

&lt;/div&gt;

&lt;div class=&#39;outline-4&#39; id=&#39;outline-container-1-6-1&#39;&gt;
&lt;h4 id=&#39;sec-1-6-1&#39;&gt;&lt;span class=&#39;section-number-4&#39;&gt;1.6.1&lt;/span&gt; Note from Aster,Bubbles and Tilden: &lt;/h4&gt;
&lt;div id=&#39;text-1-6-1&#39; class=&#39;outline-text-4&#39;&gt;



&lt;p&gt;
UnDoctored Videos Inc. is looking for volunteers to star in a
video demonstrating such complete user failure.
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-1-7&#39;&gt;
&lt;h3 id=&#39;sec-1-7&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.7&lt;/span&gt; Obtaining Emacspeak: &lt;/h3&gt;
&lt;div id=&#39;text-1-7&#39; class=&#39;outline-text-3&#39;&gt;



&lt;p&gt;
Emacspeak can be downloaded from Google Code Hosting –see
&lt;a href=&#39;http://code.google.com/p/emacspeak/&#39;&gt;http://code.google.com/p/emacspeak/&lt;/a&gt; You can visit
Emacspeak on the WWW at &lt;a href=&#39;http://emacspeak.sf.net&#39;&gt;http://emacspeak.sf.net&lt;/a&gt;.  You can subscribe
to the emacspeak mailing list emacspeak@cs.vassar.edu by sending
mail to the list request address emacspeak-request@cs.vassar.edu.
The HeadDog release is at 
&lt;a href=&#39;http://emacspeak.googlecode.com/files/emacspeak-35.0.tar.bz2&#39;&gt;http://emacspeak.googlecode.com/files/emacspeak-34.0.tar.bz2&lt;/a&gt;.
The latest development snapshot of Emacspeak is available via
Subversion from Google Code Hosting at 
&lt;a href=&#39;http://emacspeak.googlecode.com/svn/trunk/&#39;&gt;http://emacspeak.googlecode.com/svn/trunk/&lt;/a&gt;
&lt;/p&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-1-8&#39;&gt;
&lt;h3 id=&#39;sec-1-8&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.8&lt;/span&gt; History: &lt;/h3&gt;
&lt;div id=&#39;text-1-8&#39; class=&#39;outline-text-3&#39;&gt;

&lt;p&gt;Emacspeak 35.0 is all about teaching a new dog old tricks — and
is aptly code-named HeadDog in honor of our new Press/Analyst
contact. emacspeak-34.0 (AKA Bubbles) established a new
beach-head with respect to rapid task completion in an eyes-free
environment. Emacspeak-33.0 AKA StarDog brings unparalleled cloud
access to the audio desktop. Emacspeak 32.0 AKA LuckyDog
continues to innovate via open technologies for better
access. Emacspeak 31.0 AKA TweetDog — adds tweeting to the
Emacspeak desktop. Emacspeak 30.0 AKA SocialDog brings the Social
Web to the audio desktop—you cant but be social if you speak!
Emacspeak 29.0—AKAAbleDog—is a testament to the resilliance and
innovation embodied by Open Source software—it would not exist
without the thriving Emacs community that continues to ensure
that Emacs remains one of the premier user environments despite
perhaps also being one of the oldest. Emacspeak 28.0—AKA
PuppyDog—exemplifies the rapid pace of development evinced by
Open Source software. Emacspeak 27.0—AKA FastDog—is the latest in
a sequence of upgrades that make previous releases obsolete and
downgrades unnecessary. Emacspeak 26—AKA LeadDog—continues the
tradition of introducing innovative access solutions that are
unfettered by the constraints inherent in traditional adaptive
technologies. Emacspeak 25 —AKA ActiveDog —re-activates open,
unfettered access to online information. Emacspeak-Alive —AKA
LiveDog —enlivens open, unfettered information access with a
series of live updates that once again demonstrate the power and
agility of open source software development. Emacspeak 23.0 --
AKA Retriever—went the extra mile in fetching full
access. Emacspeak 22.0 —AKA GuideDog —helps users navigate the
Web more effectively than ever before. Emacspeak 21.0 —AKA
PlayDog —continued the Emacspeak tradition of relying on enhanced
productivity to liberate users. Emacspeak-20.0 —AKA LeapDog
—continues the long established GNU/Emacs tradition of integrated
innovation to create a pleasurable computing environment for
eyes-free interaction. emacspeak-19.0 –AKA WorkDog– is designed
to enhance user productivity at work and leisure. Emacspeak-18.0
–code named GoodDog– continued the Emacspeak tradition of
enhancing user productivity and thereby reducing total cost of
ownership. Emacspeak-17.0 –code named HappyDog– enhances user
productivity by exploiting today&#39;s evolving WWW
standards. Emacspeak-16.0 –code named CleverDog– the follow-up
to SmartDog– continued the tradition of working better, faster,
smarter. Emacspeak-15.0 –code named SmartDog–followed up on
TopDog as the next in a continuing a series of award-winning
audio desktop releases from Emacspeak Inc. Emacspeak-14.0 –code
named TopDog–was the first release of this
millennium. Emacspeak-13.0 –codenamed YellowLab– was the
closing release of the 20th. century. Emacspeak-12.0 –code named
HeadDog– began leveraging the evolving semantic WWW to provide
task-oriented speech access to Webformation. Emacspeak-11.0
–code named Aster– went the final step in making Linux a
zero-cost Internet access solution for blind and visually
impaired users. Emacspeak-10.0 –(AKA Emacspeak-2000) code named
WonderDog– continued the tradition of award-winning software
releases designed to make eyes-free computing a productive and
pleasurable experience. Emacspeak-9.0 –(AKA Emacspeak 99) code
named BlackLab– continued to innovate in the areas of speech
interaction and interactive accessibility. Emacspeak-8.0 –(AKA
Emacspeak-98++) code named BlackDog– was a major upgrade to the
speech output extension to Emacs.
&lt;/p&gt;
&lt;p&gt;
Emacspeak-95 (code named Illinois) was released as OpenSource on
the Internet in May 1995 as the first complete speech interface
to UNIX workstations. The subsequent release, Emacspeak-96 (code
named Egypt) made available in May 1996 provided significant
enhancements to the interface. Emacspeak-97 (Tennessee) went
further in providing a true audio desktop. Emacspeak-98
integrated Internetworking into all aspects of the audio desktop
to provide the first fully interactive speech-enabled WebTop.
&lt;/p&gt;
&lt;p&gt;
About Emacspeak:

&lt;/p&gt;
&lt;hr/&gt;

&lt;p&gt;
Originally based at Cornell (NY)
&lt;a href=&#39;http://www.cs.cornell.edu/home/raman&#39;&gt;http://www.cs.cornell.edu/home/raman&lt;/a&gt; –home to Auditory User
Interfaces (AUI) on the WWW– Emacspeak is now maintained on
GoogleCode --&lt;a href=&#39;http://code.google.com/p/emacspeak&#39;&gt;http://code.google.com/p/emacspeak&lt;/a&gt; —and
Sourceforge —&lt;a href=&#39;http://emacspeak.sf.net&#39;&gt;http://emacspeak.sf.net&lt;/a&gt;. The system is mirrored
world-wide by an international network of software archives and
bundled voluntarily with all major Linux distributions. On
Monday, April 12, 1999, Emacspeak became part of the
Smithsonian&#39;s Permanent Research Collection on Information
Technology at the Smithsonian&#39;s National Museum of American
History.
&lt;/p&gt;
&lt;p&gt;
The Emacspeak mailing list is archived at Vassar –the home of the
Emacspeak mailing list– thanks to Greg Priest-Dorman, and provides a
valuable knowledge base for new users.
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;div class=&#39;outline-2&#39; id=&#39;outline-container-2&#39;&gt;
&lt;h2 id=&#39;sec-2&#39;&gt;&lt;span class=&#39;section-number-2&#39;&gt;2&lt;/span&gt; Press/Analyst Contact: Tilden Labrador &lt;/h2&gt;
&lt;div id=&#39;text-2&#39; class=&#39;outline-text-2&#39;&gt;


&lt;p&gt;
Going forward, Tilden acknowledges his exclusive monopoly on
setting the direction of the Emacspeak Audio Desktop, and
promises to exercise this freedom to innovate and her resulting
power responsibly (as before) in the interest of all dogs.
&lt;/p&gt;
&lt;p&gt;
**About This Release:

&lt;/p&gt;
&lt;hr/&gt;

&lt;p&gt;
Windows-Free (WF) is a favorite battle-cry of The League Against
Forced Fenestration (LAFF).  –see
&lt;a href=&#39;http://www.usdoj.gov/atr/cases/f3800/msjudgex.htm&#39;&gt;http://www.usdoj.gov/atr/cases/f3800/msjudgex.htm&lt;/a&gt; for details on
the ill-effects of Forced Fenestration.
&lt;/p&gt;
&lt;p&gt;
CopyWrite )C( Aster and Hubbell Labrador. All Writes Reserved.
HeadDog (DM), LiveDog (DM), HeadDog (DM), BlackDog (DM) etc., are Registered
Dogmarks of Aster,  Hubbell  and Tilden Labrador.  All other dogs belong to
their respective owners.
&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div id=&#39;postamble&#39;&gt;
&lt;p class=&#39;date&#39;&gt;Date: 2011-11-23 08:44:19 PST&lt;/p&gt;
&lt;p class=&#39;author&#39;&gt;Author: T.V Raman&lt;/p&gt;
&lt;p class=&#39;creator&#39;&gt;Org version 7.7 with Emacs version 24&lt;/p&gt;
&lt;a href=&#39;http://validator.w3.org/check?uri=referer&#39;&gt;Validate XHTML 1.0&lt;/a&gt;

&lt;/div&gt;
    &lt;/div&gt;
    &lt;/div&gt;
  </content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/3084012817801392916'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/3084012817801392916'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2011/11/emacspeak-350-headdog-released.html' title='Emacspeak 35.0 (HeadDog) Released'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-7346123054934766410</id><published>2011-08-01T17:29:00.001-07:00</published><updated>2011-08-01T18:19:02.640-07:00</updated><title type='text'>Welcome Press/Analyst Contact Tilden Labrador</title><content type='html'>&lt;div xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;strong&gt;For Immediate Release:&lt;/strong&gt;
&lt;em&gt;Monday, August 1, 2011&lt;/em&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;

Emacspeak Inc. Appoints New Press/Analyst Contact&lt;/h2&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://emacspeak.sourceforge.net/raman/tilden-labrador/tilden-bandana.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;Tilden Labrador&quot; height=&quot;640&quot; src=&quot;http://emacspeak.sourceforge.net/raman/tilden-labrador/tilden-bandana.jpg&quot; width=&quot;404&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Tilden Labrador, a young, energetic male  yellow Labrador, has
 accepted the position of Press/Analyst contact for Emacspeak
 Inc.   ---  in addition to his primary   responsibility of being
 a  fulltime guide-dog.&lt;br /&gt;
Hand-picked from an exclusive pool of high-quality caninedates, Tilden brings
a large and level head to this  position of
responsibility. Tilden grew up in Monroe Ct,  before going to
school at Guiding Eyes For The Blind (GEB), NY.
He graduated from GEB&#39;s Action program after excelling at
obstacle avoidance and path planning in Yorktown Heights,
peekskill and White Plains. He rounded out his education with a
one-week practicum  on the Google campus in Mountain View CA.&lt;br /&gt;
Tilden brings a fresh perspective to his new job --- he is the
first male Labrador to  take on the role of Emacspeak Inc.&#39;s
press/analyst contact. Asked how he felt about this unique
distinction, he pointed out:&lt;br /&gt;
&quot;On the Internet no one knows you&#39;re a dog, leave alone what
gender you are&quot;.&lt;br /&gt;
Tilden promises to steer Emacspeak in a manner that would do
his predecessors &lt;a href=&quot;http://emacspeak.sf.net/raman/aster-labrador&quot;&gt;Aster
Labrador&lt;/a&gt; and &lt;a href=&quot;http://emacspeak.sf.net/raman/hubbell-labrador&quot;&gt;Hubbell
Labrador&lt;/a&gt; proud.&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/7346123054934766410'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/7346123054934766410'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2011/08/welcome-pressanalyst-contact-tilden.html' title='Welcome Press/Analyst Contact Tilden Labrador'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-1897244149616239418</id><published>2011-05-13T11:24:00.001-07:00</published><updated>2011-05-13T11:24:23.602-07:00</updated><title type='text'>In Praise Of Bubbles — Emacspeak 34.0 Unleashed!</title><content type='html'>
    &lt;div xmlns=&#39;http://www.w3.org/1999/xhtml&#39;&gt;
&lt;div id=&#39;content&#39;&gt;

&lt;h1 class=&#39;title&#39;&gt;Emacspeak 34.0—Bubbles—Unleashed!&lt;/h1&gt;


&lt;div class=&#39;outline-2&#39; id=&#39;outline-container-1&#39;&gt;
&lt;h2 id=&#39;sec-1&#39;&gt;1 Emacspeak-34.0 (Bubbles) Unleashed! &lt;/h2&gt;
&lt;div id=&#39;text-1&#39;&gt;




&lt;/div&gt;

&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-1.1&#39;&gt;
&lt;h3 id=&#39;sec-1.1&#39;&gt;1.1 For Immediate Release: &lt;/h3&gt;
&lt;div id=&#39;text-1.1&#39;&gt;


&lt;p&gt;
San Jose, Calif., (May 13, 2011)
Emacspeak:  Redefining Accessibility In The Era Of Cloud Computing
–Zero cost of upgrades/downgrades makes priceless software affordable!
&lt;/p&gt;
&lt;p&gt;
Emacspeak Inc (NASDOG: ESPK) --&lt;a href=&#39;http://emacspeak.sf.net--&#39;&gt;http://emacspeak.sf.net--&lt;/a&gt;
announces the immediate world-wide availability of Emacspeak
34.0 (Bubbles) –a powerful audio desktop for leveraging today&#39;s evolving
data, social and service-oriented  Web cloud.
&lt;/p&gt;&lt;/div&gt;

&lt;/div&gt;

&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-1.2&#39;&gt;
&lt;h3 id=&#39;sec-1.2&#39;&gt;1.2 Code Name Note &lt;/h3&gt;
&lt;div id=&#39;text-1.2&#39;&gt;


&lt;p&gt;
After 11+ years of loyal service, Hubbell Labrador retired from
active duty as a guide-dog on April 4,2011; she stayed on as
Emacspeak&#39;s press contact for another week before finally leaving
us on April 11, 2011
— &lt;a href=&#39;http://emacspeak.sf.net/raman/hubbell-labrador/epitaph.html&#39;&gt;Epitaph&lt;/a&gt;. This release is code named Bubbles  in honour of her
unflagging service over these last 11 years.
&lt;/p&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-1.3&#39;&gt;
&lt;h3 id=&#39;sec-1.3&#39;&gt;1.3 Investors Note: &lt;/h3&gt;
&lt;div id=&#39;text-1.3&#39;&gt;



&lt;p&gt;
With several prominent tweeters expanding coverage of &lt;span style=&#39;text-decoration:underline;&#39;&gt;#emacspeak&lt;/span&gt;, NASDOG: ESPK
has now been consistently trading over the net at levels close
to that once attained by DogCom high-fliers—and as of
October 2009 is trading at levels close to that achieved by
once better known stocks in the tech sector.
&lt;/p&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-1.4&#39;&gt;
&lt;h3 id=&#39;sec-1.4&#39;&gt;1.4 What Is It? &lt;/h3&gt;
&lt;div id=&#39;text-1.4&#39;&gt;



&lt;p&gt;
Emacspeak is a fully functional audio desktop that provides
complete eyes-free access to all major 32 and 64 bit operating
environments. By seamlessly blending live access to all aspects
of the Internet such as Web-surfing, blogging, social computing
and electronic messaging into the audio desktop, Emacspeak
enables speech access to local and remote information with a
consistent and well-integrated user interface. A rich suite of
task-oriented tools provides efficient speech-enabled access to
the evolving service-oriented social Web cloud.
&lt;/p&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-1.5&#39;&gt;
&lt;h3 id=&#39;sec-1.5&#39;&gt;1.5 Major Enhancements: &lt;/h3&gt;
&lt;div id=&#39;text-1.5&#39;&gt;


&lt;ol&gt;
&lt;li&gt;
Updated URL Templates for rapid Web access. ♁
&lt;/li&gt;
&lt;li&gt;
Support for twittering-mode—including logins using OAuth.    ●
&lt;/li&gt;
&lt;li&gt;
API  Client for NPR programming. 🔘
&lt;/li&gt;
&lt;li&gt;
Librivox API  client. 📚
&lt;/li&gt;
&lt;li&gt;
Emacs 24 support ♺
&lt;/li&gt;
&lt;li&gt;
Speech server support for Mac OS.



&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Plus many more changes too numerous to fit in this margin  ∞
&lt;/p&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-1.6&#39;&gt;
&lt;h3 id=&#39;sec-1.6&#39;&gt;1.6 Establishing Liberty, Equality And Freedom: &lt;/h3&gt;
&lt;div id=&#39;text-1.6&#39;&gt;



&lt;p&gt;
Never a toy system, Emacspeak is voluntarily bundled with all
major Linux distributions. Though designed to be modular,
distributors have freely chosen to bundle the fully integrated
system without any undue pressure—a documented success for
the integrated innovation embodied by Emacspeak. As the system
evolves, both upgrades and downgrades continue to be available at
the same zero-cost to all users. The integrity of the Emacspeak
codebase is ensured by the reliable and secure Linux platform
used to develop and distribute the software.
&lt;/p&gt;
&lt;p&gt;
Extensive studies have shown that thanks to these features, users
consider Emacspeak to be absolutely priceless. Thanks to this
wide-spread user demand, the present version remains   priceless
as ever—it is being made available at the same zero-cost as
previous releases.
&lt;/p&gt;
&lt;p&gt;
At the same time, Emacspeak continues to innovate in the area of
eyes-free social interaction and carries forward the
well-established Open Source tradition of introducing user
interface features that eventually show up in luser environments.
&lt;/p&gt;
&lt;p&gt;
On this theme, when once challenged by a proponent of a
crash-prone but well-marketed mousetrap with the assertion
&quot;Emacs is a system from the 70&#39;s&quot;, the creator of Emacspeak
evinced surprise at the unusual candor manifest in the assertion
that it would take popular idiot-proven interfaces until the year
2070 to catch up to where the Emacspeak audio desktop is
today. Industry experts welcomed this refreshing breath of
Courage Certainty and Clarity (CCC) at a time when users are
reeling from the Fear Uncertainty and Doubt (FUD) unleashed by
complex software systems backed by even more convoluted press
releases.
&lt;/p&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-1.7&#39;&gt;
&lt;h3 id=&#39;sec-1.7&#39;&gt;1.7 Independent Test Results: &lt;/h3&gt;
&lt;div id=&#39;text-1.7&#39;&gt;



&lt;p&gt;
Independent test results have proven that unlike some modern (and
not so modern) software, Emacspeak can be safely uninstalled without
adversely affecting the continued performance of the computer. These
same tests also revealed that once uninstalled, the user stopped
functioning altogether. Speaking with Aster Labrador, the creator of
Emacspeak once pointed out that these results re-emphasize the
user-centric design of Emacspeak; &quot;It is the user –and not the
computer– that stops functioning when Emacspeak is uninstalled!&quot;.
&lt;/p&gt;

&lt;/div&gt;

&lt;div class=&#39;outline-4&#39; id=&#39;outline-container-1.7.1&#39;&gt;
&lt;h4 id=&#39;sec-1.7.1&#39;&gt;1.7.1 Note from Aster and Bubbles: &lt;/h4&gt;
&lt;div id=&#39;text-1.7.1&#39;&gt;



&lt;p&gt;
UnDoctored Videos Inc. is looking for volunteers to star in a
video demonstrating such complete user failure.
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-1.8&#39;&gt;
&lt;h3 id=&#39;sec-1.8&#39;&gt;1.8 Obtaining Emacspeak: &lt;/h3&gt;
&lt;div id=&#39;text-1.8&#39;&gt;



&lt;p&gt;
Emacspeak can be downloaded from Google Code Hosting –see
&lt;a href=&#39;http://code.google.com/p/emacspeak/&#39;&gt;http://code.google.com/p/emacspeak/&lt;/a&gt; You can visit
Emacspeak on the WWW at &lt;a href=&#39;http://emacspeak.sf.net&#39;&gt;http://emacspeak.sf.net&lt;/a&gt;.  You can subscribe
to the emacspeak mailing list emacspeak@cs.vassar.edu by sending
mail to the list request address emacspeak-request@cs.vassar.edu.
The StarDog release is at 
&lt;a href=&#39;http://emacspeak.googlecode.com/files/emacspeak-34.0.tar.bz2&#39;&gt;http://emacspeak.googlecode.com/files/emacspeak-34.0.tar.bz2&lt;/a&gt;.
The latest development snapshot of Emacspeak is available via
Subversion from Google Code Hosting at 
&lt;a href=&#39;http://emacspeak.googlecode.com/svn/trunk/&#39;&gt;http://emacspeak.googlecode.com/svn/trunk/&lt;/a&gt;
&lt;/p&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-1.9&#39;&gt;
&lt;h3 id=&#39;sec-1.9&#39;&gt;1.9 History: &lt;/h3&gt;
&lt;div id=&#39;text-1.9&#39;&gt;

&lt;p&gt;Emacspeak-33.0 AKA StarDog brings unparalleled cloud access to the
audio desktop.
Emacspeak 32.0 AKA LuckyDog continues to innovate via open
technologies for better access. Emacspeak 31.0 AKA TweetDog ---
adds tweeting to the Emacspeak desktop. Emacspeak 30.0 AKA
SocialDog brings the Social Web to the audio desktop—you cant
but be social if you speak! Emacspeak 29.0—AKAAbleDog—is
a testament to the resilliance and innovation embodied by Open
Source software—it would not exist without the thriving Emacs
community that continues to ensure that Emacs remains one of the
premier user environments despite perhaps also being one of the
oldest. Emacspeak 28.0—AKA PuppyDog—exemplifies the rapid
pace of development evinced by Open Source software. Emacspeak
27.0—AKA FastDog—is the latest in a sequence of upgrades
that make previous releases obsolete and downgrades
unnecessary. Emacspeak 26—AKA LeadDog—continues the
tradition of introducing innovative access solutions that are
unfettered by the constraints inherent in traditional adaptive
technologies. Emacspeak 25 —AKA ActiveDog —re-activates open,
unfettered access to online information. Emacspeak-Alive —AKA
LiveDog —enlivens open, unfettered information access with a
series of live updates that once again demonstrate the power and
agility of open source software development. Emacspeak 23.0 --
AKA Retriever—went the extra mile in fetching full
access. Emacspeak 22.0 —AKA GuideDog —helps users navigate
the Web more effectively than ever before. Emacspeak 21.0 —AKA
PlayDog —continued the Emacspeak tradition of relying on
enhanced productivity to liberate users. Emacspeak-20.0 —AKA
LeapDog —continues the long established GNU/Emacs tradition of
integrated innovation to create a pleasurable computing
environment for eyes-free interaction. emacspeak-19.0 –AKA
WorkDog– is designed to enhance user productivity at work and
leisure. Emacspeak-18.0 –code named GoodDog– continued the
Emacspeak tradition of enhancing user productivity and thereby
reducing total cost of ownership. Emacspeak-17.0 –code named
HappyDog– enhances user productivity by exploiting today&#39;s
evolving WWW standards. Emacspeak-16.0 –code named CleverDog--
the follow-up to SmartDog– continued the tradition of working
better, faster, smarter. Emacspeak-15.0 –code named
SmartDog–followed up on TopDog as the next in a continuing a
series of award-winning audio desktop releases from Emacspeak
Inc. Emacspeak-14.0 –code named TopDog–was the first release of
this millennium. Emacspeak-13.0 –codenamed YellowLab– was the
closing release of the 20th. century. Emacspeak-12.0 –code named
GoldenDog– began leveraging the evolving semantic WWW to provide
task-oriented speech access to Webformation. Emacspeak-11.0
–code named Aster– went the final step in making Linux a
zero-cost Internet access solution for blind and visually
impaired users. Emacspeak-10.0 –(AKA Emacspeak-2000) code named
WonderDog– continued the tradition of award-winning software
releases designed to make eyes-free computing a productive and
pleasurable experience. Emacspeak-9.0 –(AKA Emacspeak 99) code
named BlackLab– continued to innovate in the areas of speech
interaction and interactive accessibility. Emacspeak-8.0 –(AKA
Emacspeak-98++) code named BlackDog– was a major upgrade to the
speech output extension to Emacs.
&lt;/p&gt;
&lt;p&gt;
Emacspeak-95 (code named Illinois) was released as OpenSource on
the Internet in May 1995 as the first complete speech interface
to UNIX workstations. The subsequent release, Emacspeak-96 (code
named Egypt) made available in May 1996 provided significant
enhancements to the interface. Emacspeak-97 (Tennessee) went
further in providing a true audio desktop. Emacspeak-98
integrated Internetworking into all aspects of the audio desktop
to provide the first fully interactive speech-enabled WebTop.
&lt;/p&gt;
&lt;p&gt;
About Emacspeak:

&lt;/p&gt;
&lt;hr/&gt;

&lt;p&gt;
Originally based at Cornell (NY)
&lt;a href=&#39;http://www.cs.cornell.edu/home/raman&#39;&gt;http://www.cs.cornell.edu/home/raman&lt;/a&gt; –home to Auditory User
Interfaces (AUI) on the WWW– Emacspeak is now maintained on
GoogleCode --&lt;a href=&#39;http://code.google.com/p/emacspeak&#39;&gt;http://code.google.com/p/emacspeak&lt;/a&gt; —and
Sourceforge —&lt;a href=&#39;http://emacspeak.sf.net&#39;&gt;http://emacspeak.sf.net&lt;/a&gt;. The system is mirrored
world-wide by an international network of software archives and
bundled voluntarily with all major Linux distributions. On
Monday, April 12, 1999, Emacspeak became part of the
Smithsonian&#39;s Permanent Research Collection on Information
Technology at the Smithsonian&#39;s National Museum of American
History.
&lt;/p&gt;
&lt;p&gt;
The Emacspeak mailing list is archived at Vassar –the home of the
Emacspeak mailing list– thanks to Greg Priest-Dorman, and provides a
valuable knowledge base for new users.
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;div class=&#39;outline-2&#39; id=&#39;outline-container-2&#39;&gt;
&lt;h2 id=&#39;sec-2&#39;&gt;2 Press/Analyst Contact: Hubbell Labrador &lt;/h2&gt;
&lt;div id=&#39;text-2&#39;&gt;


&lt;p&gt;
Going forward, BubbleDog acknowledges her exclusive monopoly on
setting the direction of the Emacspeak Audio Desktop, and
promises to exercise this freedom to innovate and her resulting
power responsibly (as before) in the interest of all dogs.
&lt;/p&gt;
&lt;p&gt;
**About This Release:

&lt;/p&gt;
&lt;hr/&gt;

&lt;p&gt;
Windows-Free (WF) is a favorite battle-cry of The League Against
Forced Fenestration (LAFF).  –see
&lt;a href=&#39;http://www.usdoj.gov/atr/cases/f3800/msjudgex.htm&#39;&gt;http://www.usdoj.gov/atr/cases/f3800/msjudgex.htm&lt;/a&gt; for details on
the ill-effects of Forced Fenestration.
&lt;/p&gt;
&lt;p&gt;
CopyWrite )C( Aster and Hubbell Labrador. All Writes Reserved.
LiveDog (DM), GoldenDog (DM), BlackDog (DM) etc., are Registered
Dogmarks of Aster and Hubbell Labrador.  All other dogs belong to
their respective owners.
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#39;postamble&#39;&gt;&lt;p class=&#39;author&#39;&gt; Author: T.V Raman
&lt;a href=&#39;mailto:tv.raman.tv@gmail.com#+DATE:      2009-11-25 Wed&#39;&gt;&amp;lt;tv.raman.tv@gmail.com#+DATE:      2009-11-25 Wed&amp;gt;&lt;/a&gt;
&lt;/p&gt;

    &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
  </content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/1897244149616239418'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/1897244149616239418'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2011/05/in-praise-of-bubbles-emacspeak-340.html' title='In Praise Of Bubbles — Emacspeak 34.0 Unleashed!'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-4997150303021985803</id><published>2011-04-20T08:46:00.001-07:00</published><updated>2011-04-20T15:53:11.407-07:00</updated><title type='text'>Hubbell (Bubbles) Labrador  Biography --- My&#xa;  Bubbly Life</title><content type='html'>
    &lt;div xmlns=&#39;http://www.w3.org/1999/xhtml&#39;&gt;
&lt;h2&gt;Hubbell (Bubbles) Labrador Biography — My Bubbly Life&lt;/h2&gt;
&lt;p&gt;You can read &lt;a href=&#39;http://treatrt.blogspot.com/&#39;&gt;Bubbles
life story&lt;/a&gt;  
entitled &lt;em&gt;My Bubbly Life&lt;/em&gt;.
The story is being written from the perspective of an energetic
Labrador, full of enthusiasm for life. Linking the blog in here
in honor of Emacspeak&#39;s Press/Analyst contact for the last 11 years.&lt;/p&gt;
    &lt;/div&gt;
  </content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/4997150303021985803'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/4997150303021985803'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2011/04/bubbles-life-story-in-her-own-words.html' title='Hubbell (Bubbles) Labrador  Biography --- My&#xa;  Bubbly Life'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-2711131965029639430</id><published>2011-04-15T19:16:00.001-07:00</published><updated>2011-04-15T19:16:39.088-07:00</updated><title type='text'>Epitaph: Saying GoodBye To Our Beloved Press/Analyst Contact</title><content type='html'>
    &lt;div xmlns=&#39;http://www.w3.org/1999/xhtml&#39;&gt;
&lt;p&gt;After guiding me for 11 years and 2 months, and setting
Emacspeak&#39;s direction at every step for over 11 years, I Had to
say a final goodbye to our beloved mascot and Press/Analyst
contact &lt;a href=&#39;http://emacspeak.sf.net/raman/hubbell-labrador/epitaph.html&#39;&gt;Bubbles
went to sleep April 11, 2011&lt;/a&gt; for the final time.
&lt;/p&gt;

    &lt;/div&gt;
  </content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/2711131965029639430'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/2711131965029639430'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2011/04/epitaph-saying-goodbye-to-our-beloved.html' title='Epitaph: Saying GoodBye To Our Beloved Press/Analyst Contact'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-6332752551037993069</id><published>2011-02-07T08:20:00.001-08:00</published><updated>2011-02-07T08:20:19.686-08:00</updated><title type='text'>Emacspeak: In Praise Of The Bookshare API</title><content type='html'>
    &lt;div xmlns=&#39;http://www.w3.org/1999/xhtml&#39;&gt;  
&lt;p&gt;Bookshare recently released a light-weight API that enables  
one to implement custom Bookshare clients. Though Bookshare is  
fully accessible using either Emacs/W3 or Emacs/W3M from within  
the Emacspeak desktop, browser based  interaction often involves  
more clicks than are absolutely necessary to finish the task at  
hand.&lt;/p&gt;  
  
&lt;p&gt;Welcome module &lt;em&gt;emacspeak-bookshare&lt;/em&gt;, a fully  
integrated Bookshare client for  the Emacspeak desktop.  
Module &lt;em&gt;emacspeak-bookshare&lt;/em&gt; provides  a special  
&lt;code&gt;Bookshare Interaction&lt;/code&gt; mode  that provides single  
keystroke commands for searching, downloading and viewing  
Bookshare materials from within the comfort of the Emacspeak  
desktop.&lt;/p&gt;  
  
&lt;p&gt;Module &lt;em&gt;Emacspeak-bookshare&lt;/em&gt; is now checked into SVN,  
and will be bundled as part of the next Emacspeak release.To  
learn how to use Bookshare Interaction on the audio desktop, see  
command &lt;code&gt;emacspeak-bookshare&lt;/code&gt;; to view the help for  
Bookshare Interaction,  
invoke command &lt;code&gt;describe-mode&lt;/code&gt; within the Bookshare  
Interaction buffer.&lt;/p&gt;  
  
&lt;p&gt;Read and Enjoy!&lt;/p&gt;  
is   
    &lt;/div&gt;  
  </content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/6332752551037993069'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/6332752551037993069'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2011/02/emacspeak-in-praise-of-bookshare-api.html' title='Emacspeak: In Praise Of The Bookshare API'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-4240598391795903129</id><published>2010-12-21T09:54:00.001-08:00</published><updated>2010-12-21T09:54:23.271-08:00</updated><title type='text'>Silence Is Golden</title><content type='html'>   
 &lt;div xmlns=&#39;http://www.w3.org/1999/xhtml&#39;&gt;   
&lt;p&gt;Speech is silvern --- but silence is golden!   
In the spirit of the above, I just added command   
&lt;code&gt;emacspeak-silence&lt;/code&gt; to Emacspeak. You can bind this   
command to your favorite key for silencing all audio output on   
the complete audio desktop --- including any active media   
streams.&lt;/p&gt;   
&lt;h2&gt;What This Does&lt;/h2&gt;   
   
&lt;p&gt;Command &lt;code&gt;emacspeak-silence&lt;/code&gt; stops speech by calling   
&lt;code&gt;dtk-stop&lt;/code&gt;. It then runs commands placed on   
&lt;code&gt;emacspeak-silence-hook&lt;/code&gt;.   
Each media player defined by Emacspeak  updates hook   
&lt;code&gt;emacspeak-silence-hook&lt;/code&gt; with an appropriate action   
that pauses or resumes  that player.&lt;/p&gt;   
   
&lt;p&gt;I&#39;ve also updated the keymaps in   
&lt;code&gt;tvr/console-keymaps&lt;/code&gt; to set up the   
&lt;code&gt;windows&lt;/code&gt; key on the console to produce   
&lt;code&gt;[silence]&lt;/code&gt;, and bound command   
&lt;code&gt;emacspeak-silence&lt;/code&gt; to &lt;code&gt;[silence]&lt;/code&gt; in   
&lt;code&gt;emacspeak-keymap.el&lt;/code&gt;.&lt;/p&gt;   
   
&lt;p&gt;   
The net effect is that if you use those console maps, you can   
just hit the &lt;code&gt;windows&lt;/code&gt; key whenever you want to   
silence all audio output; pressing it again will resume any media   
streams you had active.&lt;/p&gt;   
   
&lt;p&gt;Share And Enjoy --- and here&#39;s  wishing our Press/Analyst   
contact a very Happy 13th Birthday --- mark it with a palindromic   
moment at  &lt;code&gt;010212212010&lt;/code&gt;   
i.e., &lt;code&gt;Tue Dec 21 01:02:15 PST 2010&lt;/code&gt;   
&lt;/p&gt;   
   
   
    &lt;/div&gt;   
  </content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/4240598391795903129'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/4240598391795903129'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2010/12/silence-is-golden.html' title='Silence Is Golden'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-204658359808048204</id><published>2010-11-24T10:53:00.001-08:00</published><updated>2010-11-24T10:53:26.154-08:00</updated><title type='text'>Emacspeak 33.0 (StarDog) Unleashed!</title><content type='html'> 
    &lt;div xmlns=&#39;http://www.w3.org/1999/xhtml&#39;&gt; 
&lt;div id=&#39;content&#39;&gt; 
 
&lt;h1 class=&#39;title&#39;&gt;Emacspeak 33.0  ---  StarDog  ---  Unleashed!&lt;/h1&gt; 
 
 
&lt;div class=&#39;outline-2&#39; id=&#39;outline-container-1&#39;&gt; 
&lt;h2 id=&#39;sec-1&#39;&gt;&lt;span class=&#39;section-number-2&#39;&gt;1&lt;/span&gt; Emacspeak-33.0 (StarDog) Unleashed! &lt;/h2&gt; 
&lt;div id=&#39;text-1&#39; class=&#39;outline-text-2&#39;&gt; 
 
 
 
 
&lt;/div&gt; 
 
&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-1_1&#39;&gt; 
&lt;h3 id=&#39;sec-1_1&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.1&lt;/span&gt; For Immediate Release: &lt;/h3&gt; 
&lt;div id=&#39;text-1_1&#39; class=&#39;outline-text-3&#39;&gt; 
 
 
&lt;p&gt; 
San Jose, Calif., (Nov 24, 2010) 
Emacspeak: Bringing Cloud Access From The    Stars 
 -- Zero cost of upgrades/downgrades makes priceless software affordable! 
&lt;/p&gt; 
&lt;p&gt; 
Emacspeak Inc (NASDOG: ESPK) --&lt;a href=&#39;http://emacspeak.sf.net&#39;&gt;http://emacspeak.sf.net&lt;/a&gt;-- 
announces the immediate world-wide availability of Emacspeak 
33.0 (StarDog)  -- a powerful audio desktop for leveraging today&#39;s evolving 
data, social and service-oriented  Web cloud. 
&lt;/p&gt; 
&lt;/div&gt; 
 
&lt;/div&gt; 
 
&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-1_2&#39;&gt; 
&lt;h3 id=&#39;sec-1_2&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.2&lt;/span&gt; Investors Note: &lt;/h3&gt; 
&lt;div id=&#39;text-1_2&#39; class=&#39;outline-text-3&#39;&gt; 
 
 
 
&lt;p&gt; 
With several prominent tweeters expanding coverage, NASDOG: ESPK 
has now been consistently trading over the net at levels close 
to that once attained by DogCom high-fliers  ---  and as of 
October 2009 is trading at levels close to that achieved by 
once better known stocks in the tech sector. 
&lt;/p&gt; 
&lt;/div&gt; 
 
&lt;/div&gt; 
 
&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-1_3&#39;&gt; 
&lt;h3 id=&#39;sec-1_3&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.3&lt;/span&gt; What Is It? &lt;/h3&gt; 
&lt;div id=&#39;text-1_3&#39; class=&#39;outline-text-3&#39;&gt; 
 
 
 
&lt;p&gt; 
Emacspeak is a fully functional audio desktop that provides 
complete eyes-free access to all major 32 and 64 bit operating 
environments. By seamlessly blending live access to all aspects 
of the Internet such as Web-surfing, blogging, social computing 
and electronic messaging into the audio desktop, Emacspeak 
enables speech access to local and remote information with a 
consistent and well-integrated user interface. A rich suite of 
task-oriented tools provides efficient speech-enabled access to 
the evolving service-oriented Web cloud. 
&lt;/p&gt; 
&lt;/div&gt; 
 
&lt;/div&gt; 
 
&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-1_4&#39;&gt; 
&lt;h3 id=&#39;sec-1_4&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.4&lt;/span&gt; Major Enhancements: &lt;/h3&gt; 
&lt;div id=&#39;text-1_4&#39; class=&#39;outline-text-3&#39;&gt; 
 
 
 
 
&lt;ol&gt; 
&lt;li&gt; 
Updated URL Templates for rapid Web access. ♁ 
 
&lt;/li&gt; 
&lt;li&gt; 
Support for twittering-mode  ---  including logins using OAuth.    ● 
 
&lt;/li&gt; 
&lt;li&gt; 
Updated Google docs support enables publishing from org-mode.   ○ 
&lt;/li&gt; 
&lt;li&gt; 
Enhanced BBC iPlayer support ☢ 
&lt;/li&gt; 
&lt;li&gt; 
Emacs 24 support ♺ 
 
&lt;/li&gt; 
&lt;/ol&gt; 
 
&lt;p&gt;Plus many more changes too numerous to fit in this margin   ∞ 
&lt;/p&gt; 
&lt;/div&gt; 
 
&lt;/div&gt; 
 
&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-1_5&#39;&gt; 
&lt;h3 id=&#39;sec-1_5&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.5&lt;/span&gt; Establishing Liberty, Equality And Freedom: &lt;/h3&gt; 
&lt;div id=&#39;text-1_5&#39; class=&#39;outline-text-3&#39;&gt; 
 
 
 
&lt;p&gt; 
Never a toy system, Emacspeak is voluntarily bundled with all 
major Linux distributions. Though designed to be modular, 
distributors have freely chosen to bundle the fully integrated 
system without any undue pressure  ---  a documented success for 
the integrated innovation embodied by Emacspeak. As the system 
evolves, both upgrades and downgrades continue to be available at 
the same zero-cost to all users. The integrity of the Emacspeak 
codebase is ensured by the reliable and secure Linux platform 
used to develop and distribute the software. 
&lt;/p&gt; 
&lt;p&gt; 
Extensive studies have shown that thanks to these features, users 
consider Emacspeak to be absolutely priceless. Thanks to this 
wide-spread user demand, the present version remains   priceless 
as ever  ---  it is being made available at the same zero-cost as 
previous releases. 
&lt;/p&gt; 
&lt;p&gt; 
At the same time, Emacspeak continues to innovate in the area of 
eyes-free social interaction and carries forward the 
well-established Open Source tradition of introducing user 
interface features that eventually show up in luser environments. 
&lt;/p&gt; 
&lt;p&gt; 
On this theme, when once challenged by a proponent of a 
crash-prone but well-marketed mousetrap with the assertion 
&quot;Emacs is a system from the 70&#39;s&quot;, the creator of Emacspeak 
evinced surprise at the unusual candor manifest in the assertion 
that it would take popular idiot-proven interfaces until the year 
2070 to catch up to where the Emacspeak audio desktop is 
today. Industry experts welcomed this refreshing breath of 
Courage Certainty and Clarity (CCC) at a time when users are 
reeling from the Fear Uncertainty and Doubt (FUD) unleashed by 
complex software systems backed by even more convoluted press 
releases. 
&lt;/p&gt; 
&lt;/div&gt; 
 
&lt;/div&gt; 
 
&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-1_6&#39;&gt; 
&lt;h3 id=&#39;sec-1_6&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.6&lt;/span&gt; Independent Test Results: &lt;/h3&gt; 
&lt;div id=&#39;text-1_6&#39; class=&#39;outline-text-3&#39;&gt; 
 
 
 
&lt;p&gt; 
Independent test results have proven that unlike some modern (and 
not so modern) software, Emacspeak can be safely uninstalled without 
adversely affecting the continued performance of the computer. These 
same tests also revealed that once uninstalled, the user stopped 
functioning altogether. Speaking with Aster Labrador, the creator of 
Emacspeak once pointed out that these results re-emphasize the 
user-centric design of Emacspeak; &quot;It is the user  -- and not the 
computer --  that stops functioning when Emacspeak is uninstalled!&quot;. 
&lt;/p&gt; 
 
&lt;/div&gt; 
 
&lt;div class=&#39;outline-4&#39; id=&#39;outline-container-1_6_1&#39;&gt; 
&lt;h4 id=&#39;sec-1_6_1&#39;&gt;&lt;span class=&#39;section-number-4&#39;&gt;1.6.1&lt;/span&gt; Note from Aster and Bubbles: &lt;/h4&gt; 
&lt;div id=&#39;text-1_6_1&#39; class=&#39;outline-text-4&#39;&gt; 
 
 
 
&lt;p&gt; 
UnDoctored Videos Inc. is looking for volunteers to star in a 
video demonstrating such complete user failure. 
&lt;/p&gt; 
&lt;/div&gt; 
&lt;/div&gt; 
 
&lt;/div&gt; 
 
&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-1_7&#39;&gt; 
&lt;h3 id=&#39;sec-1_7&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.7&lt;/span&gt; Obtaining Emacspeak: &lt;/h3&gt; 
&lt;div id=&#39;text-1_7&#39; class=&#39;outline-text-3&#39;&gt; 
 
 
 
&lt;p&gt; 
Emacspeak can be downloaded from Google Code Hosting  -- see 
&lt;a href=&#39;http://code.google.com/p/emacspeak/&#39;&gt;http://code.google.com/p/emacspeak/&lt;/a&gt; You can visit 
Emacspeak on the WWW at &lt;a href=&#39;http://emacspeak.sf.net&#39;&gt;http://emacspeak.sf.net&lt;/a&gt;.  You can subscribe 
to the emacspeak mailing list emacspeak@cs.vassar.edu by sending 
mail to the list request address emacspeak-request@cs.vassar.edu. 
The StarDog release is at  
&lt;a href=&#39;http://emacspeak.googlecode.com/files/emacspeak-33.0.tar.bz2&#39;&gt;http://emacspeak.googlecode.com/files/emacspeak-33.0.tar.bz2&lt;/a&gt;. 
The latest development snapshot of Emacspeak is available via 
Subversion from Google Code Hosting at  
&lt;a href=&#39;http://emacspeak.googlecode.com/svn/trunk/&#39;&gt;http://emacspeak.googlecode.com/svn/trunk/&lt;/a&gt; 
&lt;/p&gt; 
&lt;/div&gt; 
 
&lt;/div&gt; 
 
&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-1_8&#39;&gt; 
&lt;h3 id=&#39;sec-1_8&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.8&lt;/span&gt; History: &lt;/h3&gt; 
&lt;div id=&#39;text-1_8&#39; class=&#39;outline-text-3&#39;&gt; 
 
&lt;p&gt;Emacspeak-33.0 AKA StarDog brings unparalleled cloud access to the 
audio desktop. 
Emacspeak 32.0 AKA LuckyDog continues to innovate via open 
technologies for better access. Emacspeak 31.0 AKA TweetDog --- 
adds tweeting to the Emacspeak desktop. Emacspeak 30.0 AKA 
SocialDog brings the Social Web to the audio desktop  ---  you cant 
but be social if you speak! Emacspeak 29.0  ---  AKAAbleDog  ---  is 
a testament to the resilliance and innovation embodied by Open 
Source software  ---  it would not exist without the thriving Emacs 
community that continues to ensure that Emacs remains one of the 
premier user environments despite perhaps also being one of the 
oldest. Emacspeak 28.0  ---  AKA PuppyDog  ---  exemplifies the rapid 
pace of development evinced by Open Source software. Emacspeak 
27.0  ---  AKA FastDog  ---  is the latest in a sequence of upgrades 
that make previous releases obsolete and downgrades 
unnecessary. Emacspeak 26  ---  AKA LeadDog  ---  continues the 
tradition of introducing innovative access solutions that are 
unfettered by the constraints inherent in traditional adaptive 
technologies. Emacspeak 25  --  AKA ActiveDog  --  re-activates open, 
unfettered access to online information. Emacspeak-Alive  --  AKA 
LiveDog  --  enlivens open, unfettered information access with a 
series of live updates that once again demonstrate the power and 
agility of open source software development. Emacspeak 23.0 -- 
AKA Retriever  ---  went the extra mile in fetching full 
access. Emacspeak 22.0  --  AKA GuideDog  --  helps users navigate 
the Web more effectively than ever before. Emacspeak 21.0  --  AKA 
PlayDog  --  continued the Emacspeak tradition of relying on 
enhanced productivity to liberate users. Emacspeak-20.0  --  AKA 
LeapDog  --  continues the long established GNU/Emacs tradition of 
integrated innovation to create a pleasurable computing 
environment for eyes-free interaction. emacspeak-19.0  -- AKA 
WorkDog --  is designed to enhance user productivity at work and 
leisure. Emacspeak-18.0  -- code named GoodDog --  continued the 
Emacspeak tradition of enhancing user productivity and thereby 
reducing total cost of ownership. Emacspeak-17.0  -- code named 
HappyDog --  enhances user productivity by exploiting today&#39;s 
evolving WWW standards. Emacspeak-16.0  -- code named CleverDog-- 
the follow-up to SmartDog --  continued the tradition of working 
better, faster, smarter. Emacspeak-15.0  -- code named 
SmartDog -- followed up on TopDog as the next in a continuing a 
series of award-winning audio desktop releases from Emacspeak 
Inc. Emacspeak-14.0  -- code named TopDog -- was the first release of 
this millennium. Emacspeak-13.0  -- codenamed YellowLab --  was the 
closing release of the 20th. century. Emacspeak-12.0  -- code named 
GoldenDog --  began leveraging the evolving semantic WWW to provide 
task-oriented speech access to Webformation. Emacspeak-11.0 
 -- code named Aster --  went the final step in making Linux a 
zero-cost Internet access solution for blind and visually 
impaired users. Emacspeak-10.0  -- (AKA Emacspeak-2000) code named 
WonderDog --  continued the tradition of award-winning software 
releases designed to make eyes-free computing a productive and 
pleasurable experience. Emacspeak-9.0  -- (AKA Emacspeak 99) code 
named BlackLab --  continued to innovate in the areas of speech 
interaction and interactive accessibility. Emacspeak-8.0  -- (AKA 
Emacspeak-98++) code named BlackDog --  was a major upgrade to the 
speech output extension to Emacs. 
&lt;/p&gt; 
&lt;p&gt; 
Emacspeak-95 (code named Illinois) was released as OpenSource on 
the Internet in May 1995 as the first complete speech interface 
to UNIX workstations. The subsequent release, Emacspeak-96 (code 
named Egypt) made available in May 1996 provided significant 
enhancements to the interface. Emacspeak-97 (Tennessee) went 
further in providing a true audio desktop. Emacspeak-98 
integrated Internetworking into all aspects of the audio desktop 
to provide the first fully interactive speech-enabled WebTop. 
&lt;/p&gt; 
&lt;p&gt; 
About Emacspeak: 
 
&lt;/p&gt; 
&lt;hr/&gt; 
 
&lt;p&gt; 
Originally based at Cornell (NY) 
&lt;a href=&#39;http://www.cs.cornell.edu/home/raman&#39;&gt;http://www.cs.cornell.edu/home/raman&lt;/a&gt;  -- home to Auditory User 
Interfaces (AUI) on the WWW --  Emacspeak is now maintained on 
GoogleCode --&lt;a href=&#39;http://code.google.com/p/emacspeak&#39;&gt;http://code.google.com/p/emacspeak&lt;/a&gt;  --  and 
Sourceforge  --  &lt;a href=&#39;http://emacspeak.sf.net&#39;&gt;http://emacspeak.sf.net&lt;/a&gt;. The system is mirrored 
world-wide by an international network of software archives and 
bundled voluntarily with all major Linux distributions. On 
Monday, April 12, 1999, Emacspeak became part of the 
Smithsonian&#39;s Permanent Research Collection on Information 
Technology at the Smithsonian&#39;s National Museum of American 
History. 
&lt;/p&gt; 
&lt;p&gt; 
The Emacspeak mailing list is archived at Vassar  -- the home of the 
Emacspeak mailing list --  thanks to Greg Priest-Dorman, and provides a 
valuable knowledge base for new users. 
&lt;/p&gt; 
&lt;/div&gt; 
&lt;/div&gt; 
 
&lt;/div&gt; 
 
&lt;div class=&#39;outline-2&#39; id=&#39;outline-container-2&#39;&gt; 
&lt;h2 id=&#39;sec-2&#39;&gt;&lt;span class=&#39;section-number-2&#39;&gt;2&lt;/span&gt; Press/Analyst Contact: Hubbell Labrador &lt;/h2&gt; 
&lt;div id=&#39;text-2&#39; class=&#39;outline-text-2&#39;&gt; 
 
 
&lt;p&gt; 
Going forward, BubbleDog acknowledges her exclusive monopoly on 
setting the direction of the Emacspeak Audio Desktop, and 
promises to exercise this freedom to innovate and her resulting 
power responsibly (as before) in the interest of all dogs. 
&lt;/p&gt; 
&lt;p&gt; 
**About This Release: 
 
&lt;/p&gt; 
&lt;hr/&gt; 
 
&lt;p&gt; 
Windows-Free (WF) is a favorite battle-cry of The League Against 
Forced Fenestration (LAFF).   -- see 
&lt;a href=&#39;http://www.usdoj.gov/atr/cases/f3800/msjudgex.htm&#39;&gt;http://www.usdoj.gov/atr/cases/f3800/msjudgex.htm&lt;/a&gt; for details on 
the ill-effects of Forced Fenestration. 
&lt;/p&gt; 
&lt;p&gt; 
CopyWrite )C( Aster and Hubbell Labrador. All Writes Reserved. 
LiveDog (DM), GoldenDog (DM), BlackDog (DM) etc., are Registered 
Dogmarks of Aster and Hubbell Labrador.  All other dogs belong to 
their respective owners. 
&lt;/p&gt; 
&lt;/div&gt; 
&lt;/div&gt; 
&lt;div id=&#39;postamble&#39;&gt; 
&lt;p class=&#39;author&#39;&gt; Author: T.V Raman 
&lt;/p&gt; 
&lt;p class=&#39;date&#39;&gt; Date: 2010-11-24 08:43:55 PST&lt;/p&gt; 
&lt;p class=&#39;creator&#39;&gt;HTML generated by org-mode 7.01 in emacs 24&lt;/p&gt; 
&lt;/div&gt; 
&lt;/div&gt; 
    &lt;/div&gt; 
  </content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/204658359808048204'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/204658359808048204'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2010/11/emacspeak-330-stardog-unleashed.html' title='Emacspeak 33.0 (StarDog) Unleashed!'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-5033630278890460887</id><published>2010-05-12T17:38:00.001-07:00</published><updated>2010-05-14T13:34:32.048-07:00</updated><title type='text'>Emacspeak 32.0 (LuckyDog) Unleashed</title><content type='html'>
    &lt;div xmlns=&#39;http://www.w3.org/1999/xhtml&#39;&gt;
&lt;div id=&#39;article&#39;&gt;
&lt;h1 class=&#39;title&#39;&gt;Emacspeak 32.0  ---  LuckyDog  ---  Unleashed!&lt;/h1&gt;
&lt;div id=&#39;outline-container-1&#39; class=&#39;outline-2&#39;&gt;
&lt;h2 id=&#39;sec-1&#39;&gt;&lt;span class=&#39;section-number-2&#39;&gt;1&lt;/span&gt; Emacspeak-32.0 (LuckyDog) Unleashed! &lt;/h2&gt;
&lt;div class=&#39;outline-text-2&#39; id=&#39;text-1&#39;&gt;
&lt;/div&gt;
&lt;div id=&#39;outline-container-1.1&#39; class=&#39;outline-3&#39;&gt;
&lt;h3 id=&#39;sec-1.1&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.1&lt;/span&gt; For Immediate Release: &lt;/h3&gt;
&lt;div class=&#39;outline-text-3&#39; id=&#39;text-1.1&#39;&gt;
&lt;p&gt;
San Jose, Calif., (May 13, 2010)
Emacspeak: Bringing tweet Access For   social beings
 -- ;Zero cost of upgrades/downgrades makes priceless software affordable!
&lt;/p&gt;
&lt;p&gt;
Emacspeak Inc (NASDOG: ESPK) --&lt;a href=&#39;http://emacspeak.sf.net&#39;&gt;http://emacspeak.sf.net&lt;/a&gt;--
announces the immediate world-wide availability of Emacspeak
32.0 (LuckyDog)  -- ;a powerful audio desktop for leveraging today&#39;s evolving
data, social and service-oriented  Web cloud.
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#39;outline-container-1.2&#39; class=&#39;outline-3&#39;&gt;
&lt;h3 id=&#39;sec-1.2&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.2&lt;/span&gt; Investors Note: &lt;/h3&gt;
&lt;div class=&#39;outline-text-3&#39; id=&#39;text-1.2&#39;&gt;
&lt;p&gt;
With several prominent tweeters expanding coverage, NASDOG: ESPK
has now been consistently trading over the net at levels close
to that once attained by DogCom high-fliers  ---  and as of
October 2009 is trading at levels close to that achieved by
once better known stocks in the tech sector.
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#39;outline-container-1.3&#39; class=&#39;outline-3&#39;&gt;
&lt;h3 id=&#39;sec-1.3&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.3&lt;/span&gt; What Is It? &lt;/h3&gt;
&lt;div class=&#39;outline-text-3&#39; id=&#39;text-1.3&#39;&gt;
&lt;p&gt;
Emacspeak is a fully functional audio desktop that provides
complete eyes-free access to all major 32 and 64 bit operating
environments. By seamlessly blending live access to all aspects
of the Internet such as Web-surfing, blogging, social computing
and electronic messaging into the audio desktop, Emacspeak
enables speech access to local and remote information with a
consistent and well-integrated user interface. A rich suite of
task-oriented tools provides efficient speech-enabled access to
the evolving service-oriented Web cloud.
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#39;outline-container-1.4&#39; class=&#39;outline-3&#39;&gt;
&lt;h3 id=&#39;sec-1.4&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.4&lt;/span&gt; Major Enhancements: &lt;/h3&gt;
&lt;div class=&#39;outline-text-3&#39; id=&#39;text-1.4&#39;&gt;
&lt;ol&gt;
&lt;li&gt;
Updated URL Templates for rapid Web access. ♁
&lt;/li&gt;
&lt;li&gt;
BBC iPlayer support ☢
&lt;/li&gt;
&lt;li&gt;
Updated EPub support ✍
&lt;/li&gt;
&lt;li&gt;
Emacs 24 support ♺
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Plus many more changes too numerous to fit in this margin  ∞
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#39;outline-container-1.5&#39; class=&#39;outline-3&#39;&gt;
&lt;h3 id=&#39;sec-1.5&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.5&lt;/span&gt; Establishing Liberty, Equality And Freedom: &lt;/h3&gt;
&lt;div class=&#39;outline-text-3&#39; id=&#39;text-1.5&#39;&gt;
&lt;p&gt;
Never a toy system, Emacspeak is voluntarily bundled with all
major Linux distributions. Though designed to be modular,
distributors have freely chosen to bundle the fully integrated
system without any undue pressure  ---  a documented success for
the integrated innovation embodied by Emacspeak. As the system
evolves, both upgrades and downgrades continue to be available at
the same zero-cost to all users. The integrity of the Emacspeak
codebase is ensured by the reliable and secure Linux platform
used to develop and distribute the software.
&lt;/p&gt;
&lt;p&gt;
Extensive studies have shown that thanks to these features, users
consider Emacspeak to be absolutely priceless. Thanks to this
wide-spread user demand, the present version remains   priceless
as ever  ---  it is being made available at the same zero-cost as
previous releases.
&lt;/p&gt;
&lt;p&gt;
At the same time, Emacspeak continues to innovate in the area of
eyes-free social interaction and carries forward the
well-established Open Source tradition of introducing user
interface features that eventually show up in luser environments.
&lt;/p&gt;
&lt;p&gt;
On this theme, when once challenged by a proponent of a
crash-prone but well-marketed mousetrap with the assertion
&quot;Emacs is a system from the 70&#39;s&quot;, the creator of Emacspeak
evinced surprise at the unusual candor manifest in the assertion
that it would take popular idiot-proven interfaces until the year
2070 to catch up to where the Emacspeak audio desktop is
today. Industry experts welcomed this refreshing breath of
Courage Certainty and Clarity (CCC) at a time when users are
reeling from the Fear Uncertainty and Doubt (FUD) unleashed by
complex software systems backed by even more convoluted press
releases.
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#39;outline-container-1.6&#39; class=&#39;outline-3&#39;&gt;
&lt;h3 id=&#39;sec-1.6&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.6&lt;/span&gt; Independent Test Results: &lt;/h3&gt;
&lt;div class=&#39;outline-text-3&#39; id=&#39;text-1.6&#39;&gt;
&lt;p&gt;
Independent test results have proven that unlike some modern (and
not so modern) software, Emacspeak can be safely uninstalled without
adversely affecting the continued performance of the computer. These
same tests also revealed that once uninstalled, the user stopped
functioning altogether. Speaking with Aster Labrador, the creator of
Emacspeak once pointed out that these results re-emphasize the
user-centric design of Emacspeak; &quot;It is the user  -- ;and not the
computer -- ; that stops functioning when Emacspeak is uninstalled!&quot;.
&lt;/p&gt;
&lt;/div&gt;
&lt;div id=&#39;outline-container-1.6.1&#39; class=&#39;outline-4&#39;&gt;
&lt;h4 id=&#39;sec-1.6.1&#39;&gt;&lt;span class=&#39;section-number-4&#39;&gt;1.6.1&lt;/span&gt; Note from Aster and Bubbles: &lt;/h4&gt;
&lt;div class=&#39;outline-text-4&#39; id=&#39;text-1.6.1&#39;&gt;
&lt;p&gt;
UnDoctored Videos Inc. is looking for volunteers to star in a
video demonstrating such complete user failure.
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#39;outline-container-1.7&#39; class=&#39;outline-3&#39;&gt;
&lt;h3 id=&#39;sec-1.7&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.7&lt;/span&gt; Obtaining Emacspeak: &lt;/h3&gt;
&lt;div class=&#39;outline-text-3&#39; id=&#39;text-1.7&#39;&gt;
&lt;p&gt;
Emacspeak can be downloaded from Google Code Hosting  -- ;see
&lt;a href=&#39;http://code.google.com/p/emacspeak/&#39;&gt;http://code.google.com/p/emacspeak/&lt;/a&gt; You can visit
Emacspeak on the WWW at &lt;a href=&#39;http://emacspeak.sf.net&#39;&gt;http://emacspeak.sf.net&lt;/a&gt;.  You can subscribe
to the emacspeak mailing list emacspeak@cs.vassar.edu by sending
mail to the list request address emacspeak-request@cs.vassar.edu.
The LuckyDog release is at 
&lt;a href=&#39;http://emacspeak.googlecode.com/files/emacspeak-32.0.tar.bz2&#39;&gt;http://emacspeak.googlecode.com/files/emacspeak-32.0.tar.bz2&lt;/a&gt;.
The latest development snapshot of Emacspeak is available via
Subversion from Google Code Hosting at 
&lt;a href=&#39;http://emacspeak.googlecode.com/svn/trunk/&#39;&gt;http://emacspeak.googlecode.com/svn/trunk/&lt;/a&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#39;outline-container-1.8&#39; class=&#39;outline-3&#39;&gt;
&lt;h3 id=&#39;sec-1.8&#39;&gt;&lt;span class=&#39;section-number-3&#39;&gt;1.8&lt;/span&gt; History: &lt;/h3&gt;
&lt;div class=&#39;outline-text-3&#39; id=&#39;text-1.8&#39;&gt;
&lt;p&gt;
Emacspeak 32.0 AKA LuckyDog continues to innovate via open
technologies for better access. Emacspeak 31.0 AKA TweetDog ---
adds tweeting to the Emacspeak desktop. Emacspeak 30.0 AKA
SocialDog brings the Social Web to the audio desktop  ---  you cant
but be social if you speak! Emacspeak 29.0  ---  AKAAbleDog  ---  is
a testament to the resilliance and innovation embodied by Open
Source software  ---  it would not exist without the thriving Emacs
community that continues to ensure that Emacs remains one of the
premier user environments despite perhaps also being one of the
oldest. Emacspeak 28.0  ---  AKA PuppyDog  ---  exemplifies the rapid
pace of development evinced by Open Source software. Emacspeak
27.0  ---  AKA FastDog  ---  is the latest in a sequence of upgrades
that make previous releases obsolete and downgrades
unnecessary. Emacspeak 26  ---  AKA LeadDog  ---  continues the
tradition of introducing innovative access solutions that are
unfettered by the constraints inherent in traditional adaptive
technologies. Emacspeak 25  -- ; AKA ActiveDog  -- ; re-activates open,
unfettered access to online information. Emacspeak-Alive  -- ; AKA
LiveDog  -- ; enlivens open, unfettered information access with a
series of live updates that once again demonstrate the power and
agility of open source software development. Emacspeak 23.0 --
AKA Retriever  ---  went the extra mile in fetching full
access. Emacspeak 22.0  -- ; AKA GuideDog  -- ; helps users navigate
the Web more effectively than ever before. Emacspeak 21.0  -- ; AKA
PlayDog  -- ; continued the Emacspeak tradition of relying on
enhanced productivity to liberate users. Emacspeak-20.0  -- ; AKA
LeapDog  -- ; continues the long established GNU/Emacs tradition of
integrated innovation to create a pleasurable computing
environment for eyes-free interaction. emacspeak-19.0  -- ;AKA
WorkDog -- ; is designed to enhance user productivity at work and
leisure. Emacspeak-18.0  -- ;code named GoodDog -- ; continued the
Emacspeak tradition of enhancing user productivity and thereby
reducing total cost of ownership. Emacspeak-17.0  -- ;code named
HappyDog -- ; enhances user productivity by exploiting today&#39;s
evolving WWW standards. Emacspeak-16.0  -- ;code named CleverDog--
the follow-up to SmartDog -- ; continued the tradition of working
better, faster, smarter. Emacspeak-15.0  -- ;code named
SmartDog -- ;followed up on TopDog as the next in a continuing a
series of award-winning audio desktop releases from Emacspeak
Inc. Emacspeak-14.0  -- ;code named TopDog -- ;was the first release of
this millennium. Emacspeak-13.0  -- ;codenamed YellowLab -- ; was the
closing release of the 20th. century. Emacspeak-12.0  -- ;code named
GoldenDog -- ; began leveraging the evolving semantic WWW to provide
task-oriented speech access to Webformation. Emacspeak-11.0
 -- ;code named Aster -- ; went the final step in making Linux a
zero-cost Internet access solution for blind and visually
impaired users. Emacspeak-10.0  -- ;(AKA Emacspeak-2000) code named
WonderDog -- ; continued the tradition of award-winning software
releases designed to make eyes-free computing a productive and
pleasurable experience. Emacspeak-9.0  -- ;(AKA Emacspeak 99) code
named BlackLab -- ; continued to innovate in the areas of speech
interaction and interactive accessibility. Emacspeak-8.0  -- ;(AKA
Emacspeak-98++) code named BlackDog -- ; was a major upgrade to the
speech output extension to Emacs.
&lt;/p&gt;
&lt;p&gt;
Emacspeak-95 (code named Illinois) was released as OpenSource on
the Internet in May 1995 as the first complete speech interface
to UNIX workstations. The subsequent release, Emacspeak-96 (code
named Egypt) made available in May 1996 provided significant
enhancements to the interface. Emacspeak-97 (Tennessee) went
further in providing a true audio desktop. Emacspeak-98
integrated Internetworking into all aspects of the audio desktop
to provide the first fully interactive speech-enabled WebTop.
&lt;/p&gt;
&lt;p&gt;
About Emacspeak:
&lt;/p&gt;
&lt;hr/&gt;
&lt;p&gt;
Originally based at Cornell (NY)
&lt;a href=&#39;http://www.cs.cornell.edu/home/raman&#39;&gt;http://www.cs.cornell.edu/home/raman&lt;/a&gt;  -- ;home to Auditory User
Interfaces (AUI) on the WWW -- ; Emacspeak is now maintained on
GoogleCode --&lt;a href=&#39;http://code.google.com/p/emacspeak&#39;&gt;http://code.google.com/p/emacspeak&lt;/a&gt;  -- ; and
Sourceforge  -- ; &lt;a href=&#39;http://emacspeak.sf.net&#39;&gt;http://emacspeak.sf.net&lt;/a&gt;. The system is mirrored
world-wide by an international network of software archives and
bundled voluntarily with all major Linux distributions. On
Monday, April 12, 1999, Emacspeak became part of the
Smithsonian&#39;s Permanent Research Collection on Information
Technology at the Smithsonian&#39;s National Museum of American
History.
&lt;/p&gt;
&lt;p&gt;
The Emacspeak mailing list is archived at Vassar  -- ;the home of the
Emacspeak mailing list -- ; thanks to Greg Priest-Dorman, and provides a
valuable knowledge base for new users.
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#39;outline-container-2&#39; class=&#39;outline-2&#39;&gt;
&lt;h2 id=&#39;sec-2&#39;&gt;&lt;span class=&#39;section-number-2&#39;&gt;2&lt;/span&gt; Press/Analyst Contact: Hubbell Labrador &lt;/h2&gt;
&lt;div class=&#39;outline-text-2&#39; id=&#39;text-2&#39;&gt;
&lt;p&gt;
Going forward, BubbleDog acknowledges her exclusive monopoly on
setting the direction of the Emacspeak Audio Desktop, and
promises to exercise this freedom to innovate and her resulting
power responsibly (as before) in the interest of all dogs.
&lt;/p&gt;
&lt;p&gt;
**About This Release:
&lt;/p&gt;
&lt;hr/&gt;
&lt;p&gt;
Windows-Free (WF) is a favorite battle-cry of The League Against
Forced Fenestration (LAFF).   -- ;see
&lt;a href=&#39;http://www.usdoj.gov/atr/cases/f3800/msjudgex.htm&#39;&gt;http://www.usdoj.gov/atr/cases/f3800/msjudgex.htm&lt;/a&gt; for details on
the ill-effects of Forced Fenestration.
&lt;/p&gt;
&lt;p&gt;
CopyWrite )C( Aster and Hubbell Labrador. All Writes Reserved.
LiveDog (DM), GoldenDog (DM), BlackDog (DM) etc., are Registered
Dogmarks of Aster and Hubbell Labrador.  All other dogs belong to
their respective owners.
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&#39;postamble&#39;&gt;
&lt;p class=&#39;author&#39;&gt; Author: T.V Raman
&lt;/p&gt;
&lt;p class=&#39;date&#39;&gt; Date: 2010-05-10 17:37:06 PDT&lt;/p&gt;
&lt;p class=&#39;creator&#39;&gt;HTML generated by org-mode 6.35i in emacs 24&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
    &lt;/div&gt;
  </content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/5033630278890460887'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/5033630278890460887'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2010/05/emacspeak-320-luckydog-unleashed.html' title='Emacspeak 32.0 (LuckyDog) Unleashed'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-2482514192131547324</id><published>2010-01-26T08:41:00.001-08:00</published><updated>2010-01-26T09:03:52.705-08:00</updated><title type='text'>AsTeR --- Audio System For Technical Readings</title><content type='html'>
    &lt;div xmlns=&#39;http://www.w3.org/1999/xhtml&#39;&gt;
&lt;p&gt;Almost exactly 16 years to the date after presenting AsTeR
--- &lt;a href=&#39;http://www.cs.cornell.edu/home/raman/aster/aster-toplevel.html&#39;&gt;Audio System For Technical Readings&lt;/a&gt; --- 
to the CS Faculty at Cornell for my &lt;a href=&#39;http://www.cs.cornell.edu/home/raman/phd-thesis/index.html&#39;&gt;PhD&lt;/a&gt;, I released the source
code as Open Source --- thanks to Prof. David Gries at Cornell
for approving this release.&lt;/p&gt;
&lt;p&gt;The sources are checked into GoogleCode project 
&lt;a href=&#39;http://aster-math.googlecode.com&#39;&gt;aster-math&lt;/a&gt; ---
unfortunately, the name AsTeR was unavailable since there is an
unrelated project of the same name at SourceForge.&lt;/p&gt;
&lt;p&gt;So you might well ask: why 16 years later, and why now? The
honest answer is &lt;q&gt;No good reason,&lt;/q&gt; except that after
graduating from Cornell, I decided that I would work on  newer
projects, and consequently had no cycles to support the AsTeR
code base. Nothing has changed in that context, nor is it likely
to change in the coming future; however I get requests off and on
from different parts of the Web from teachers and students alike
who have seen my PhD  thesis, played with the demos, and wish to
study the sources.&lt;/p&gt;
&lt;h2&gt;What You&#39;ll Find In The Sources&lt;/h2&gt;
&lt;p&gt;The code has not been actively developed since I finished my
work at Cornell; however, over the years, I &#39;ve ensured that the
system starts up and runs on Linux using the Open Source CLisp
environment.
The only text-to-speech engine that is supported is the hardware
DECTalk  --- though it should be a small matter of programming to
support the various Emacspeak speech servers. If you do checkout
the source code, start by looking at the 
&lt;a href=&#39;http://aster-math.googlecode.com/svn/trunk/README&#39;&gt;README&lt;/a&gt;
file which contains brief instructions on getting started. Feel
free to use the Emacspeak mailing list for now if you wish to
discuss the code --- if the traffic justifies it, we can later
create a project-specific list.&lt;/p&gt;
    &lt;/div&gt;
  </content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/2482514192131547324'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/2482514192131547324'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2010/01/aster-audio-system-for-technical.html' title='AsTeR --- Audio System For Technical Readings'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-5583569647483114898</id><published>2009-11-25T17:22:00.001-08:00</published><updated>2009-11-25T17:22:04.471-08:00</updated><title type='text'>Emacspeak 31 (AKA TweetDog) Unleashed!</title><content type='html'>
    &lt;div xmlns=&#39;http://www.w3.org/1999/xhtml&#39;&gt;
&lt;h1 class=&#39;title&#39;&gt;Emacspeak 31.0  -  TweetDog  -  Unleashed!&lt;/h1&gt;


&lt;div class=&#39;outline-2&#39; id=&#39;outline-container-1&#39;&gt;
&lt;h2 id=&#39;sec-1&#39;&gt;1 Emacspeak-31.0 (TweetDog) Unleashed!&lt;/h2&gt;
&lt;div id=&#39;text-1&#39;&gt;

&lt;p&gt;
&lt;hr/&gt;
&lt;/p&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;div class=&#39;outline-2&#39; id=&#39;outline-container-2&#39;&gt;
&lt;h2 id=&#39;sec-2&#39;&gt;2 For Immediate Release:&lt;/h2&gt;
&lt;div id=&#39;text-2&#39;&gt;


&lt;p&gt;
San Jose, Calif., (Nov 26, 2009)
Emacspeak: Bringing tweet Access For   social beings
 - Zero cost of upgrades/downgrades makes priceless software affordable!
&lt;/p&gt;
&lt;p&gt;
Emacspeak Inc (NASDOG: ESPK) --&lt;a href=&#39;http://emacspeak.sf.net--&#39;&gt;http://emacspeak.sf.net--&lt;/a&gt;
announces the immediate world-wide availability of Emacspeak
31.0 (TweetDog)  - a powerful audio desktop for leveraging today&#39;s evolving
data, social and service-oriented  Web cloud.
&lt;/p&gt;
&lt;table cellpadding=&#39;5&#39; cellspacing=&#39;1&#39; rules=&#39;all&#39; border=&#39;1&#39; summary=&#39;navigation bar&#39; role=&#39;navigation&#39;&gt;
      &lt;tr style=&#39;background: yellow; text-color: navy; font-weight: bold&#39;&gt;
        &lt;td&gt;&lt;a href=&#39;http://emacspeak.googlecode.com/files/emacspeak-31.0.tar.bz2&#39;&gt;Downloads&lt;/a&gt;&lt;/td&gt;
        &lt;td&gt;&lt;a href=&#39;../info/emacspeak.html&#39;&gt; Reference&lt;/a&gt;&lt;/td&gt;
        &lt;td&gt;&lt;a href=&#39;../install-guide/&#39;&gt;Installation&lt;/a&gt;&lt;/td&gt;
        &lt;td&gt; &lt;a href=&#39;../user-guide/&#39;&gt;Usage&lt;/a&gt; &lt;/td&gt;
        &lt;td&gt;&lt;a href=&#39;../tips.html&#39;&gt;Tips&lt;/a&gt;&lt;/td&gt;
        &lt;td&gt;&lt;a href=&#39;../applications.html&#39;&gt;Tools&lt;/a&gt;&lt;/td&gt;
        &lt;td&gt; &lt;a href=&#39;http://www.cs.vassar.edu/~priestdo/emacspeak/&#39;&gt;Support&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td colspan=&#39;7&#39;&gt;
          &lt;img alt=&#39;EMACSPEAK Logo&#39; height=&#39;216&#39; width=&#39;150&#39; src=&#39;emacspeak.jpg&#39;/&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td colspan=&#39;4&#39;&gt;&lt;a href=&#39;raman/&#39;&gt;About the author&lt;/a&gt;&lt;/td&gt;
        &lt;td colspan=&#39;3&#39;&gt;
          &lt;a href=&#39;http://sourceforge.net/projects/emacspeak&#39;&gt;
            &lt;img alt=&#39;SourceForge&#39; border=&#39;0&#39; height=&#39;31&#39; width=&#39;88&#39; src=&#39;http://sourceforge.net/sflogo.php?group_id=2238&#39;/&gt;
        &lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
    &lt;/table&gt;
&lt;/div&gt;

&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-2.1&#39;&gt;
&lt;h3 id=&#39;sec-2.1&#39;&gt;2.1 Investors Note:&lt;/h3&gt;
&lt;div id=&#39;text-2.1&#39;&gt;

&lt;p&gt;
&lt;hr/&gt;
&lt;/p&gt;
&lt;p&gt;
With several prominent tweeters expanding coverage, NASDOG: ESPK
has now been consistently trading over the net at levels close
to that once attained by DogCom high-fliers  -  and as of
October 2009 is trading at levels close to that achieved by
once better known stocks in the tech sector.
&lt;/p&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-2.2&#39;&gt;
&lt;h3 id=&#39;sec-2.2&#39;&gt;2.2 What Is It?&lt;/h3&gt;
&lt;div id=&#39;text-2.2&#39;&gt;

&lt;p&gt;
&lt;hr/&gt;
&lt;/p&gt;
&lt;p&gt;
Emacspeak is a fully functional audio desktop that provides
complete eyes-free access to all major 32 and 64 bit operating
environments. By seamlessly blending live access to all aspects
of the Internet such as Web-surfing, blogging, social computing
and electronic messaging into the audio desktop, Emacspeak
enables speech access to local and remote information with a
consistent and well-integrated user interface. A rich suite of
task-oriented tools provides efficient speech-enabled access to
the evolving service-oriented Web cloud.
&lt;/p&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-2.3&#39;&gt;
&lt;h3 id=&#39;sec-2.3&#39;&gt;2.3 Major Enhancements:&lt;/h3&gt;
&lt;div id=&#39;text-2.3&#39;&gt;

&lt;p&gt;
&lt;hr/&gt;
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
Speech-enables Twitter. ✹
&lt;/li&gt;
&lt;li&gt;
Unicode support for enabling the world&#39;s various charsets.♁
&lt;/li&gt;
&lt;li&gt;
Emacs front-end to popular Google AJAX APIs. ⚤
&lt;/li&gt;
&lt;li&gt;
Updated g-client with preliminary support for Google
Docs. ✏
&lt;/li&gt;
&lt;li&gt;
Updated URL Templates for rapid Web access. ♅
&lt;/li&gt;
&lt;li&gt;
Updated WebSearch wizards for enhanced productivity.♄

&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Plus many more changes too numerous to fit in this margin  ...  ⚭
&lt;/p&gt;
&lt;/div&gt;

&lt;/div&gt;
&lt;/div&gt;&lt;/div&gt;
  </content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/5583569647483114898'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/5583569647483114898'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2009/11/emacspeak-31-aka-tweetdog-unleashed.html' title='Emacspeak 31 (AKA TweetDog) Unleashed!'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-3455142340996047146</id><published>2009-10-13T08:57:00.001-07:00</published><updated>2009-10-13T08:57:38.039-07:00</updated><title type='text'>A Google Tool-belt For The Complete Audio Desktop</title><content type='html'>
    &lt;div xmlns=&#39;http://www.w3.org/1999/xhtml&#39;&gt;
&lt;div&gt;
&lt;h2&gt;Introducing The Emacspeak Google Tool-belt&lt;/h2&gt;

&lt;p&gt;Module &lt;code&gt;emacspeak-google.el&lt;/code&gt;
implements a suite of Google tools collectively refered to
  as &lt;em&gt;The Google Tool-Belt&lt;/em&gt;. These tools let you slice and
  dice your result set using the various search operators
  provided by Google --- the functionality is similar to that --
                     --offered by the Google  results page via --
                     --user interface control &lt;em&gt;Show --
                     --Options&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;The table below summarizes the tools that are presently
  available on the Emacspeak Google Tool-belt.
For convenience, the tool-belt is bound to
  prefix-key &lt;code&gt;Control-t&lt;/code&gt; in Emacs/W3 buffers.&lt;/p&gt;
&lt;table frame=&#39;hsides&#39; rules=&#39;groups&#39; cellpadding=&#39;6&#39; cellspacing=&#39;0&#39; border=&#39;2&#39;&gt;
&lt;caption/&gt;
&lt;colgroup&gt;&lt;col align=&#39;left&#39;/&gt;&lt;col align=&#39;left&#39;/&gt;
&lt;/colgroup&gt;
&lt;thead&gt;
&lt;tr&gt;&lt;th scope=&#39;col&#39;&gt;key&lt;/th&gt;&lt;th scope=&#39;col&#39;&gt;binding&lt;/th&gt;&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;C-t C-b&lt;/td&gt;&lt;td&gt;emacspeak-google-toolbelt-change-books-viewability&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;C-t A&lt;/td&gt;&lt;td&gt;emacspeak-websearch-accessible-google&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;C-t B&lt;/td&gt;&lt;td&gt;emacspeak-google-toolbelt-change-books&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;C-t H&lt;/td&gt;&lt;td&gt;emacspeak-google-toolbelt-change-web-history-not-visited&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;C-t T&lt;/td&gt;&lt;td&gt;emacspeak-google-toolbelt-change-timeline&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;C-t a&lt;/td&gt;&lt;td&gt;emacspeak-websearch-google&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;C-t b&lt;/td&gt;&lt;td&gt;emacspeak-google-toolbelt-change-blog&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;C-t c&lt;/td&gt;&lt;td&gt;emacspeak-google-toolbelt-change-commercial&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;C-t d&lt;/td&gt;&lt;td&gt;emacspeak-google-toolbelt-change-sort-by-date&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;C-t f&lt;/td&gt;&lt;td&gt;emacspeak-google-toolbelt-change-forums&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;C-t h&lt;/td&gt;&lt;td&gt;emacspeak-google-toolbelt-change-web-history-visited&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;C-t i&lt;/td&gt;&lt;td&gt;emacspeak-google-toolbelt-change-images&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;C-t l&lt;/td&gt;&lt;td&gt;emacspeak-google-toolbelt-change-non-commercial&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;C-t n&lt;/td&gt;&lt;td&gt;emacspeak-google-toolbelt-change-news&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;C-t p&lt;/td&gt;&lt;td&gt;emacspeak-google-toolbelt-change-commercial-prices&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;C-t r&lt;/td&gt;&lt;td&gt;emacspeak-google-toolbelt-change-recent&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;C-t s&lt;/td&gt;&lt;td&gt;emacspeak-google-toolbelt-change-structured-snippets&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;C-t t&lt;/td&gt;&lt;td&gt;emacspeak-google-toolbelt-change-books-type&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;C-t v&lt;/td&gt;&lt;td&gt;emacspeak-google-toolbelt-change-video&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Share And Enjoy!&lt;/p&gt;
    &lt;/div&gt;
    &lt;/div&gt;
  </content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/3455142340996047146'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/3455142340996047146'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2009/10/google-tool-belt-for-complete-audio.html' title='A Google Tool-belt For The Complete Audio Desktop'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-1588065823364899714</id><published>2009-09-21T08:49:00.001-07:00</published><updated>2009-09-21T08:49:42.955-07:00</updated><title type='text'>Emacspeak, The World&#39;s Fonts And Braille</title><content type='html'>
    &lt;div xmlns=&#39;http://www.w3.org/1999/xhtml&#39;&gt;
&lt;p&gt;Emacspeak has supported  the  editing  of Unicode text for
over a year now --- thanks to the patches fromLukas.
With the support now mature, I have now retired option
&lt;code&gt;emacspeak-unibyte&lt;/code&gt; --- Emacspeak no longer supports
running Emacs in &lt;code&gt;unibyte&lt;/code&gt; mode. Note that this aligns
Emacspeak with Emacs 23.2 which obsoletes &lt;code&gt;unibyte&lt;/code&gt;
mode.&lt;/p&gt;

&lt;p&gt;When you edit text containing Unicode  characters,  
Emacspeak uses the name of  the character as found in the
description file from the Unicode consortium --- you will need to
download and install that data file as documented in Emacs:&lt;/p&gt;
&lt;pre&gt;
describe-char-unicodedata-file is a variable defined in `descr-text.el&#39;.
Its value is 
&quot;/usr/local/share/unicode/UnicodeData.txt&quot;

Documentation:
Location of Unicode data file.
This is the UnicodeData.txt file from the Unicode Consortium, used for
diagnostics.  If it is non-nil `describe-char&#39; will print data
looked up from it.  This facility is mostly of use to people doing
multilingual development.

This is a fairly large file, not typically present on GNU systems.
At the time of writing it is at the URL
`http://www.unicode.org/Public/UNIDATA/UnicodeData.txt&#39;.

You can customize this variable.

This variable was introduced, or its default value was changed, in
version 22.1 of Emacs.

&lt;/pre&gt;
&lt;p&gt;With the Unicode data file in place, Emacspeak can announce
names of characters  from &lt;em&gt;all&lt;/em&gt; of the world&#39;s fonts ---
this includes Braille.
As an added convenience, I have integrated package
&lt;code&gt;toy-braille.el&lt;/code&gt; found on the Emacs wiki into the
Emacs codebase and defined a new interactive command
&lt;code&gt;emacspeak-wizards-braille&lt;/code&gt; --- if you find yourself
using it often, you can bind it to a key of your choice.
Command &lt;code&gt;emacspeak-wizards-braille&lt;/code&gt; prompts for the
string to Braille and produces a Grade-1 representation of  the
specified string using the appropriate Unicode characters.  
&lt;/p&gt;
&lt;p&gt;
⠠⠃⠗⠁⠊⠇⠇⠑⠀⠠⠁⠝⠙⠀⠠⠑⠝⠚⠕⠽&lt;/p&gt;
    &lt;/div&gt;
  </content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/1588065823364899714'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/1588065823364899714'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2009/09/emacspeak-world-fonts-and-braille.html' title='Emacspeak, The World&amp;#39;s Fonts And Braille'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-5458623656889758886</id><published>2009-09-15T08:16:00.001-07:00</published><updated>2009-09-15T08:16:11.866-07:00</updated><title type='text'>Emacspeak: Google News Suggest For Faster News Search</title><content type='html'>
    &lt;div xmlns=&#39;http://www.w3.org/1999/xhtml&#39;&gt;
&lt;p&gt;Google News now provides search suggestions --- this feature --
                                --has been present in Google
                                WebSearch for a few years. 
As in the case of WebSearch, Emacspeak now leverages Google News&#39;
                                suggest feature to provide
                                minibuffer completion when
                                performing news searches on
                                Google. To try the feature,
                                try:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Press &lt;code&gt;C-e?n&lt;/code&gt; to invoke &lt;em&gt;News Search&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;Type &lt;code&gt;Oba&lt;/code&gt; and hit &lt;code&gt;TAB&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Search and Enjoy&lt;/strong&gt;&lt;/p&gt;

    &lt;/div&gt;
  </content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/5458623656889758886'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/5458623656889758886'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2009/09/emacspeak-google-news-suggest-for.html' title='Emacspeak: Google News Suggest For Faster News Search'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-731401833831161183</id><published>2009-08-27T08:28:00.001-07:00</published><updated>2009-08-27T08:28:51.236-07:00</updated><title type='text'>Emacspeak Servers --- Catching Up With Debian And Ubuntu</title><content type='html'>
    &lt;div xmlns=&#39;http://www.w3.org/1999/xhtml&#39;&gt;
&lt;p&gt;Over the last couple of years, the TCL world has moved on from
TCL8.3 to TCL8.4 --- this introduces a set of needed
changes to how Emacspeak servers such as Espeak and
ViaVoice-Outloud work.
I have finally decided to break backward compatibility with
TCL8.3 and move things forward to TCL8.4, now that all the Linux
distributions have settled on TCL8.4.&lt;/p&gt;
&lt;p&gt;Also, sometime in 2005, I transitioned all of the server
Makefiles to use libtool --- at the time, it made compilation of
the servers somewhat easier.  However, this has tended to make
things more complex over time, thanks to changes in libtool. I&#39;ve
now dropped the libtool dependency in favor of using simpler
Makefiles --- thanks William Hubbs of Gentoo!&lt;/p&gt;

&lt;h3&gt;ViaVoice Outloud Server For Emacspeak&lt;/h3&gt;
&lt;p&gt;The Voxin package from Guilles continues to be the easiest
means of obtaining high-quality text-to-speech on Linux.
Installation of that package went smoothly on Hardy; however on
Jaunty, things did not go so well, see notes below for things to
watch out for on Jaunty or later.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The libstdc++ compat libraries ended up not getting installed
on Jaunty. Consequence, ViaVoice produces a warning asking you to
install the ViaVoice RTK, even though it&#39;s already installed. I
ended up rescueing the compat libs from my Hardy build. Perhaps
we should put up a simple tar.gz file that drops those libs into
/usr/lib?&lt;/li&gt;
&lt;li&gt;Alsa is configured to use pulseaudio on Jaunty. 
An unfortunate consequence is that when ViaVoice runs, it sounds
like a stereo channel played as mono, i.e. the speech slows down
and the voice sounds wrong. The fix is to create a  .asoundrc  
file in your home directory --- you can use the sample in
 linux-outloud/ASOUNDRC  as a starting point. To see if
pulseaudio is intervening in your setup, do
:aplay -v  wav file 
--- to see the set of alsa plugins that are participating in
audio output. &lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;ESpeak And Emacspeak&lt;/h3&gt;

&lt;p&gt; The ESpeak server does not get affected by the above
problem. However, unless you install package  alsa-oss 
and invoke that server as 
:aoss tcl  espeak 
the server will fail to start if some other application is using
the audio device.&lt;/p&gt;

&lt;h3&gt;Software Dectalk And Emacspeak&lt;/h3&gt;

&lt;p&gt;This still needs testing under newer Linux distributions ---
I&#39;ve not used it in a long time and dont have the libs installed
any more.&lt;/p&gt;


    &lt;/div&gt;
  </content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/731401833831161183'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/731401833831161183'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2009/08/emacspeak-servers-catching-up-with.html' title='Emacspeak Servers --- Catching Up With Debian And Ubuntu'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-6645202840710833780</id><published>2009-06-29T10:48:00.001-07:00</published><updated>2009-06-29T10:53:19.877-07:00</updated><title type='text'>Launching Favorite Media Via Hot Keys</title><content type='html'>
    &lt;div xmlns=&#39;http://www.w3.org/1999/xhtml&#39;&gt;
&lt;h2&gt;Launching Oft-Played Media On The Complete Audio Desktop&lt;/h2&gt;
&lt;p&gt;Command &lt;code&gt;emacspeak-multimedia&lt;/code&gt; lets you launch all
forms of local and remote media. However this stil requires you
to specify the media location --- and this requires a bunch of
keystrokes that you end up repeating for selecting media that you
play often, e.g., from your private music collection. No more
extra keystrokes, you can now have Emacspeak automatically assign
suitable hotkeys for launching &lt;code&gt;emacspeak-media&lt;/code&gt; on
your favorite audio collections.&lt;/p&gt;
&lt;h2&gt;How It Works&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Customize Emacspeak option
&lt;code&gt;emacspeak-media-location-bindings&lt;/code&gt; using Emacs&#39;
Custom interface:
&lt;pre&gt;
M-x customize-variable --- 
&lt;/pre&gt;
press &lt;code&gt;C-H V&lt;/code&gt; in emacspeak.
&lt;/li&gt;
&lt;li&gt;Click &lt;code&gt;ins&lt;/code&gt; to insert a  key/location pair. &lt;/li&gt;
&lt;li&gt;Click &lt;code&gt;save&lt;/code&gt; to persist the binding.&lt;/li&gt;
&lt;li&gt;pressing the assigned hotkey will automatically launch
&lt;code&gt;emacspeak-multimedia&lt;/code&gt; on the predefined location ---
emacs will prompt you with regular filename completion for media
resources found in that directory.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In my own case, I have favorites defined on
&lt;code&gt;hyper-&amp;lt;n&amp;gt;&lt;/code&gt;  so I can define upto 10 hotkey
assignments  for media  locations.Once launched, Emacspeak
automatically switches to the media player buffer; note that this
is different from how &lt;code&gt;emacspeak-multimedia&lt;/code&gt; normally
works. The justification: this hotkey interface is 
ideally suited to remote controls, joysticks, and  any other
peripheral via which you can deliver input to Emacs. &lt;/p&gt;
    &lt;/div&gt;
  </content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/6645202840710833780'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/6645202840710833780'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2009/06/launching-favorite-media-via-hot-keys.html' title='Launching Favorite Media Via Hot Keys'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-8771579527311127674</id><published>2009-05-22T09:04:00.001-07:00</published><updated>2009-05-22T09:04:10.032-07:00</updated><title type='text'>Looking Beyond The Screen At Google I/O2009</title><content type='html'>
    &lt;div xmlns=&#39;http://www.w3.org/1999/xhtml&#39;&gt;
&lt;p&gt;
Come join me and &lt;a href=&#39;http://www.clcworld.net&#39;&gt;Charles
Chen&lt;/a&gt;
at  
&lt;a href=&#39;http://code.google.com/events/io/&#39;&gt;Google I/O2009&lt;/a&gt;
at our session on 
&lt;a href=&#39;http://www.youtube.com/watch?v=X9jVV5PGf_w&#39;&gt;Looking
Beyond The Screen (YouTube Preview&lt;/a&gt;
where we will describe some of our work on eyes-free interaction
on Android. We&#39;ll be around during most of Google I/O, so if you
are interested in eyes-free interaction ranging from Emacspeak to
Fire-Vox, or anything else eyes-free, feel free to grab us in the
hallways.
Looking forward to seeing you there!&lt;/p&gt;
&lt;h2&gt;Abstract: Looking Beyond The Screen&lt;/h2&gt;
&lt;div class=&#39;outline-2&#39; id=&#39;outline-container-1&#39;&gt;
&lt;h2 id=&#39;sec-1&#39;&gt;Looking Beyond The Screen&lt;/h2&gt;
&lt;div id=&#39;text-1&#39;&gt;


&lt;p&gt;
Project &lt;a href=&#39;http://eyes-free.googlecode.com&#39;&gt;Eyes-Free&lt;/a&gt; aims to enable fluent eyes-free use of mobile
devices running Android. Target uses range from eyes-busy
environments like in-car use to users who are unwilling to or
incapable of looking at the visual display ---  see  &lt;a href=&#39;http://www.nytimes.com/2009/01/04/business/04blind.html?pagewanted=1&amp;amp;_r=1&amp;amp;ref=business&#39;&gt;For The Blind, Technology Does What A Guide Dog Can&#39;t&lt;/a&gt;, NYTimes, January
4, 2009, for a high-level overview. As described in that article,
we are releasing components from project Eyes-Free as they become
ready for end-user deployment. This announcement marks the first
public release of the &lt;i&gt;eyes-free shell&lt;/i&gt; on the Android
Marketplace, though the underlying source code has been available
for some time from the code repository at &lt;a href=&#39;http://eyes-free.googlecode.com&#39;&gt;Google Code Hosting&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
Here is a brief overview of the end-user affordances provided in
this release:
&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
An &lt;i&gt;Eyes-Free Shell&lt;/i&gt; for conveniently launching talking applications.
&lt;/li&gt;
&lt;li&gt;
A collection of useful talking applications that turn an
Android phone into an eyes-free communication device  ---  see
subsequent sections for an overview of these
applications. Note that thes eapplications have been written
to be both useful to end-users as well as to help the
developper community to come up to speed with developing
eyes-free applications for Android.

&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;We will be uploading video tutorials demonstrating the use of
these applications to YouTube  ---   please see the project
Web site for these links as they become available.
&lt;/p&gt;

&lt;/div&gt;

&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-1.1&#39;&gt;
&lt;h3 id=&#39;sec-1.1&#39;&gt;Talking Dialer &lt;/h3&gt;
&lt;div id=&#39;text-1.1&#39;&gt;


&lt;p&gt;
A key innovation is the use of the touch screen to enable
one-handed, eyes-free dialing of phone numbers using the touch
screen  ---  see Miguel Helft&#39;s NY Times article cited above for a good
layman&#39;s description of the technique. The talking dialer comes
with a talking phone-book that enables users to quickly select a
desired contact using the touch screen. 
&lt;/p&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-1.2&#39;&gt;
&lt;h3 id=&#39;sec-1.2&#39;&gt;Knowing Your Location &lt;/h3&gt;
&lt;div id=&#39;text-1.2&#39;&gt;


&lt;p&gt;
This mini-application announces your present location based on
information acquired via GPS and the cell network. It speaks your
current heading using the built-in magnetic compass, looks up the
current location on Google Maps, and announces the location in
terms of a nearby address and street intersection.
&lt;/p&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-1.3&#39;&gt;
&lt;h3 id=&#39;sec-1.3&#39;&gt;Device State&lt;/h3&gt;
&lt;div id=&#39;text-1.3&#39;&gt;


&lt;p&gt;
This mini-application announces useful information such as
battery state, signal
strength, and availability of WiFi networks.
&lt;/p&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;div class=&#39;outline-3&#39; id=&#39;outline-container-1.4&#39;&gt;
&lt;h3 id=&#39;sec-1.4&#39;&gt;Date And Time&lt;/h3&gt;
&lt;div id=&#39;text-1.4&#39;&gt;


&lt;p&gt;
This mini-application provides single-touch access to current
date and time.
&lt;/p&gt;





&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
    &lt;/div&gt;
  </content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/8771579527311127674'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/8771579527311127674'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2009/05/looking-beyond-screen-at-google-io2009.html' title='Looking Beyond The Screen At Google I/O2009'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-8862551794456516199</id><published>2009-05-11T13:43:00.001-07:00</published><updated>2009-05-11T13:43:15.252-07:00</updated><title type='text'>Announcing emacspeak 30.0 --- SocialDog!</title><content type='html'>
    &lt;div xmlns=&#39;http://www.w3.org/1999/xhtml&#39;&gt;
&lt;h1&gt;Emacspeak-30.0 (SocialDog) Unleashed!&lt;/h1&gt;
    
    &lt;h2&gt;For Immediate Release&lt;/h2&gt;
    &lt;p&gt;
      San Jose, CA, (May 11, 2009)&lt;br/&gt;
      Emacspeak:   --- Bringing friendly Access For   social beings  &lt;br/&gt;
      --Zero cost of upgrade/downgrades makes priceless software affordable!
    &lt;/p&gt;
    
     
    
    &lt;table cellpadding=&#39;5&#39; cellspacing=&#39;1&#39; rules=&#39;all&#39; border=&#39;1&#39; summary=&#39;navigation bar&#39; role=&#39;navigation&#39;&gt;
      &lt;tr style=&#39;background: yellow; text-color: navy; font-weight: bold&#39;&gt;
        &lt;td&gt;&lt;a href=&#39;http://emacspeak.googlecode.com/files/emacspeak-30 .0.tar.bz2&#39;&gt;Downloads&lt;/a&gt;&lt;/td&gt;
        &lt;td&gt;&lt;a href=&#39;../info/emacspeak.html&#39;&gt; Reference&lt;/a&gt;&lt;/td&gt;
        &lt;td&gt;&lt;a href=&#39;../install-guide/&#39;&gt;Installation&lt;/a&gt;&lt;/td&gt;
        &lt;td&gt; &lt;a href=&#39;../user-guide/&#39;&gt;Usage&lt;/a&gt; &lt;/td&gt;
        &lt;td&gt;&lt;a href=&#39;../tips.html&#39;&gt;Tips&lt;/a&gt;&lt;/td&gt;
        &lt;td&gt;&lt;a href=&#39;../applications.html&#39;&gt;Tools&lt;/a&gt;&lt;/td&gt;
        &lt;td&gt; &lt;a href=&#39;http://www.cs.vassar.edu/~priestdo/emacspeak/&#39;&gt;Support&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td colspan=&#39;7&#39;&gt;
          &lt;img alt=&#39;EMACSPEAK Logo&#39; height=&#39;216&#39; width=&#39;150&#39; src=&#39;emacspeak.jpg&#39;/&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td colspan=&#39;4&#39;&gt;&lt;a href=&#39;raman/&#39;&gt;About the author&lt;/a&gt;&lt;/td&gt;
        &lt;td colspan=&#39;3&#39;&gt;
          &lt;a href=&#39;http://sourceforge.net/projects/emacspeak&#39;&gt;
            &lt;img alt=&#39;SourceForge&#39; border=&#39;0&#39; height=&#39;31&#39; width=&#39;88&#39; src=&#39;http://sourceforge.net/sflogo.php?group_id=2238&#39;/&gt;
        &lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
    &lt;/table&gt;
    
    
    
    &lt;p&gt;
      
      Emacspeak Inc &lt;a href=&#39;http://emacspeak.sourceforge.net&#39;&gt;(NASDOG: ESPK)&lt;/a&gt; announces  the immediate
      world-wide availability of Emacspeak-30 --a powerful audio
      desktop for leveraging today&#39;s evolving data and service-oriented social Web cloud.
    &lt;/p&gt;
    &lt;h2&gt;Investors Note&lt;/h2&gt;
    &lt;p&gt;
      With several prominent analysts  initiating coverage,
      NASDOG: ESPK continues to trade  over the net at levels close to that
      once attained  by  the DogCom high-fliers of yester-years
and as of
 October 2008 is trading at levels close to that achieved by
 better known stocks in the tech sector.
    &lt;/p&gt;
    
    
    &lt;h2&gt;What Is It?&lt;/h2&gt;
    &lt;p&gt;
      Emacspeak is a fully functional audio desktop that provides &lt;em&gt;
      complete eyes-free&lt;/em&gt; access to all major 32 and 64 bit operating
      environments. By seamlessly blending all aspects of the Internet
      such as Web-surfing and electronic messaging into the audio
      desktop, Emacspeak enables speech access to local and remote
      information with a consistent and well-integrated user
      interface.  A rich suite of task-oriented 
      tools provides efficient speech-enabled access to the
      evolving service-oriented  Web cloud.  
    &lt;/p&gt;
    &lt;h2&gt;Major Enhancements&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Speech-enables Twitter.&lt;/li&gt;
&lt;li&gt;
Unicode support for enabling the world&#39;s various charsets.
&lt;/li&gt;
&lt;li&gt;
Emacs front-end to popular Google AJAX APIs.
&lt;/li&gt;
&lt;li&gt;
Updated g-client with preliminary support for Google Docs.
&lt;/li&gt;
&lt;li&gt;
Updated URL Templates for rapid Web access.
&lt;/li&gt;
&lt;li&gt;
Updated WebSearch wizards for enhanced productivity.
&lt;/li&gt;
&lt;li&gt;
Emacs 23 support.

&lt;/li&gt;
&lt;/ol&gt;
    &lt;p&gt;See the NEWS file  for additional details. &lt;/p&gt;
    
    &lt;/div&gt;
  </content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/8862551794456516199'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/8862551794456516199'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2009/05/announcing-emacspeak-300-socialdog.html' title='Announcing emacspeak 30.0 --- SocialDog!'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-636508770988364233</id><published>2009-03-26T10:06:00.001-07:00</published><updated>2009-03-26T11:56:34.490-07:00</updated><title type='text'>Toward an Accessible Democracy --- White House Moderator AxsJAXed</title><content type='html'>
    &lt;div xmlns=&#39;http://www.w3.org/1999/xhtml&#39;&gt;
&lt;div&gt;
&lt;h2&gt;Toward  An Accessible Democracy --- White House Moderator
AxsJAXed!&lt;/h2&gt;
&lt;p&gt;This is not directly Emacspeak related --- except that it is
useful for emacspeak users. 
Project AxsJAX, combined with Fire-Vox does for Web-2.0
applications what Emacspeak does for applications written within
Emacs. 
Charles and I just announced &lt;a href=&#39;http://groups.google.com/group/accessible/t/5a0c716c9f064b62&#39;&gt;AxsJAX
For White House Moderator&lt;/a&gt;
--- an AxsJAX  extension that applies W3C  ARIA  to the &lt;em&gt;White
House Moderator&lt;/em&gt;.I&#39;ll append the article below:&lt;/p&gt;
&lt;div id=&#39;outline-container-1&#39; class=&#39;outline-2&#39;&gt;
&lt;h2 id=&#39;sec-1&#39;&gt;An ARIA  For The White House Moderator&lt;/h2&gt;
&lt;div id=&#39;text-1&#39;&gt;
&lt;p&gt;
&lt;a href=&#39;http://google-axsjax.googlecode.com&#39;&gt;Google-AxsJAX&lt;/a&gt; was launched in late 2007 as a library for
access-enabling Web-2.0 applications. 
Since then, we have released accessibility enhancements for many
Web-2.0 applications via the AxsJAX site as early experiments
that have eventually graduated into the products being extended.
Today, we are happy to announce an early AxsJAX  extension  for Google
Moderator that enables fluent eyes-free use of Google Moderator
as seen on the White House site.
&lt;/p&gt;
&lt;/div&gt;
&lt;div id=&#39;outline-container-1.1&#39; class=&#39;outline-3&#39;&gt;
&lt;h3 id=&#39;sec-1.1&#39;&gt;HowTo: Brief Overview.&lt;/h3&gt;
&lt;div id=&#39;text-1.1&#39;&gt;
&lt;p&gt;
For details on installing and using AxsJAX extensions, see the
&lt;a href=&#39;http://google-axsjax.googlecode.com/svn/trunk/docs/faq.html&#39;&gt;AxsJAX FAQ&lt;/a&gt;. Briefly, you need Firefox 3.0 and a screenreader that
supports W3C ARIA. Users who do not have a screenreader installed
can most easily experience the results by installing &lt;a href=&#39;http:///www.clcworld.net&#39;&gt;Fire Vox&lt;/a&gt;, a
freely available self-voicing extension for Firefox.
&lt;/p&gt;
&lt;p&gt;
With the AxsJAX extension in place, you can use Google Moderator
via the keyboard, with all user interaction producing spoken
feedback via W3C ARIA. Here is a brief overview of  the user
experience:
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
The user interface is divided into  logical panes ---  one
listing topic areas, and the other listing questions in a
given topic. At times, e.g., before a meeting, you may find
an additional &lt;i&gt;Featured Question&lt;/i&gt; pane that shows a randomly
selected question that you can vote on.
&lt;/li&gt;
&lt;li&gt;
Users can ask new questions under a given topic, or  give a
thumbs-up/down to questions that have already been asked.
&lt;/li&gt;
&lt;li&gt;
Use the &lt;u&gt;left&lt;/u&gt; and &lt;u&gt;right&lt;/u&gt; arrow keys to switch between the two
panes. You hear the  title of  the selected pane as
you switch.
&lt;/li&gt;
&lt;li&gt;
Use &lt;u&gt;up&lt;/u&gt; and &lt;u&gt;down&lt;/u&gt; arrows to navigate among the items in
the selected pane. As you navigate, you hear the current
item.
&lt;/li&gt;
&lt;li&gt;
Hit &lt;u&gt;enter&lt;/u&gt; to select the current item.
&lt;/li&gt;
&lt;li&gt;
The current item can be magnified by repeated presses of the
&lt;u&gt;+&lt;/u&gt; (or &lt;u&gt;=&lt;/u&gt;) key. To reduce magnification, press the &lt;u&gt;-&lt;/u&gt;
key.
&lt;/li&gt;
&lt;li&gt;
When navigating the questions in a given topic, hit &lt;u&gt;y&lt;/u&gt; or
&lt;u&gt;n&lt;/u&gt; to vote a question up or down.
&lt;/li&gt;
&lt;li&gt;
When navigating items in the topic pane, hit &lt;u&gt;a&lt;/u&gt; to ask a
question. Once you confirm your request to post the
question, it will show up in the list of questions for that
topic so that others can vote that question up or down.
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Please use &lt;a href=&#39;http://groups.google.com/group/accessible&#39;&gt;Google Group Accessible&lt;/a&gt; for providing feedback on 
this AxsJAX extension.
&lt;/p&gt;
&lt;p&gt;
Share And Enjoy--
&lt;/p&gt;
&lt;p&gt;
Raman and Charles.
&lt;/p&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
    &lt;/div&gt;
    &lt;/div&gt;
  </content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/636508770988364233'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/636508770988364233'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2009/03/toward-accessible-democracy-white-house.html' title='Toward an Accessible Democracy --- White House Moderator AxsJAXed'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-8109949379954051916</id><published>2008-11-26T16:31:00.001-08:00</published><updated>2008-11-26T16:31:50.393-08:00</updated><title type='text'>Announcing Emacspeak 29.0 (AbleDog)</title><content type='html'>
    &lt;div xmlns=&#39;http://www.w3.org/1999/xhtml&#39;&gt;
      &lt;table cellpadding=&#39;5&#39; cellspacing=&#39;1&#39; rules=&#39;all&#39; border=&#39;1&#39; summary=&#39;navigation bar&#39; role=&#39;navigation&#39;&gt;
        &lt;tr style=&#39;background: yellow; text-color: navy; font-weight: bold&#39;&gt;
          &lt;td&gt;&lt;a href=&#39;http://emacspeak.googlecode.com/files/emacspeak-29.0.tar.bz2&#39;&gt;Downloads&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a href=&#39;../info/emacspeak.html&#39;&gt; Reference&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a href=&#39;../install-guide/&#39;&gt;Installation&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt; &lt;a href=&#39;../user-guide/&#39;&gt;Usage&lt;/a&gt; &lt;/td&gt;
          &lt;td&gt;&lt;a href=&#39;../tips.html&#39;&gt;Tips&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt;&lt;a href=&#39;../applications.html&#39;&gt;Tools&lt;/a&gt;&lt;/td&gt;
          &lt;td&gt; &lt;a href=&#39;http://www.cs.vassar.edu/~priestdo/emacspeak/&#39;&gt;Support&lt;/a&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
          &lt;td colspan=&#39;7&#39;&gt;
            &lt;img alt=&#39;EMACSPEAK Logo&#39; height=&#39;216&#39; width=&#39;150&#39; src=&#39;emacspeak.jpg&#39;/&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
          &lt;td colspan=&#39;4&#39;&gt;&lt;a href=&#39;raman/&#39;&gt;About the author&lt;/a&gt;&lt;/td&gt;
          &lt;td colspan=&#39;3&#39;&gt;
            &lt;a href=&#39;http://sourceforge.net/projects/emacspeak&#39;&gt;
              &lt;img alt=&#39;SourceForge&#39; border=&#39;0&#39; height=&#39;31&#39; width=&#39;88&#39; src=&#39;http://sourceforge.net/sflogo.php?group_id=2238&#39;/&gt;
          &lt;/a&gt;&lt;/td&gt;
        &lt;/tr&gt;
      &lt;/table&gt;
      
      
      
      &lt;p&gt;
        
        Emacspeak Inc &lt;a href=&#39;http://emacspeak.sourceforge.net&#39;&gt;(NASDOG: ESPK)&lt;/a&gt; announces  the immediate
        world-wide availability of Emacspeak-29 --a powerful audio
        desktop for leveraging today&#39;s evolving data and service-oriented Web cloud.
      &lt;/p&gt;
      &lt;h2&gt;Investors Note&lt;/h2&gt;
      &lt;p&gt;
        With several prominent analysts  initiating coverage,
        NASDOG: ESPK continues to trade  over the net at levels close to that
        once attained  by  the DogCom high-fliers of yester-years
        and as of
        October 2008 is trading at levels close to that achieved by
        better known stocks in the tech sector.
      &lt;/p&gt;
      
      
      
      
      &lt;h2&gt;Major Enhancements&lt;/h2&gt;

      &lt;ol&gt;
        &lt;li&gt;
        Speech-enables proced  ---  a new task manager.&lt;/li&gt;
        &lt;li&gt;
          Emacspeak-Webspace for rapid access to content feeds.
        &lt;/li&gt;
        &lt;li&gt;
          Unicode support for enabling the world&#39;s various charsets.
        &lt;/li&gt;
        &lt;li&gt;
          Emacs front-end to popular Google AJAX APIs.
        &lt;/li&gt;
        &lt;li&gt;
          Updated g-client with preliminary support for Google Docs.
        &lt;/li&gt;
        &lt;li&gt;
          Updated URL Templates for rapid Web access.
        &lt;/li&gt;
        &lt;li&gt;
          Updated WebSearch wizards for enhanced productivity.
        &lt;/li&gt;
        &lt;li&gt;
          One-shot Google Search with suggestions for word under point.
        &lt;/li&gt;
        &lt;li&gt;
          Emacs 23 support.

        &lt;/li&gt;
      &lt;/ol&gt;


      &lt;p&gt;See the NEWS file  for additional details. &lt;/p&gt;
      
      
      
      
      
      
      
      
      
      
      
      &lt;h2&gt;Harnessing  Emacspeak&lt;/h2&gt;
      
      &lt;p&gt;
        You can visit  Emacspeak at 
        &lt;a href=&#39;http://emacspeak.sf.net&#39;&gt;SourceForge&lt;/a&gt;.
        The latest development snapshot of
        Emacspeak is available via subversion  from 
        &lt;a href=&#39;http://emacspeak.googlecode.com/svn/trunk&#39;&gt;Google Code Hosting&lt;/a&gt;.
        You can subscribe to the emacspeak mailing list &lt;em&gt;
        emacspeak@cs.vassar.edu&lt;/em&gt; by sending mail to the list
        request address &lt;a href=&#39;mailto:emacspeak-request@cs.vassar.edu&#39;&gt;emacspeak-request@cs.vassar.edu&lt;/a&gt;.  &lt;/p&gt;
        
        &lt;p&gt;
          &lt;strong&gt;Press/Analyst Contact: &lt;a href=&#39;hubbell.jpg&#39;&gt;Hubbell Labrador&lt;/a&gt;&lt;br/&gt; 
          
          Going forward, BubbleDog acknowledges her exclusive monopoly on setting the
          direction the the Emacspeak Audio desktop, and promises to exercise
          this freedom to innovate and her resulting power responsibly (as
          before) in the interest of all dogs.&lt;/strong&gt;
        &lt;/p&gt;
        
        
        
        
        
        
        
        &lt;a href=&#39;release-28.0.html&#39;&gt;Emacspeak-28.0&lt;/a&gt; &lt;hr/&gt;
        
        
        
    &lt;/div&gt;
  </content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/8109949379954051916'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/8109949379954051916'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2008/11/announcing-emacspeak-290-abledog.html' title='Announcing Emacspeak 29.0 (AbleDog)'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-6635709760768346180</id><published>2008-09-09T17:40:00.001-07:00</published><updated>2008-09-09T17:40:54.189-07:00</updated><title type='text'>Emacspeak Webspace Goodies</title><content type='html'>
    &lt;div xmlns=&#39;http://www.w3.org/1999/xhtml&#39;&gt;
&lt;p&gt;Module &lt;code&gt;emacspeak-webspace&lt;/code&gt; has a few new goodies
on offer.
If you activate &lt;em&gt;WebSpace Headlines &lt;/em&gt; to obtain a
continuously updating ticker of headlines, you may also at times  
 want to  find one of the headlines you heard go by and
read the relevant article. 
Command  &lt;code&gt;emacspeak-webspace-headlines-view&lt;/code&gt; bound by
default to &lt;code&gt;C-RET&lt;/code&gt; pops up a special
&lt;em&gt;Headlines&lt;/em&gt; buffer that lists all the currently available
headlines. This is a regular Emacs buffer that uses a special 
major mode called  &lt;em&gt;emacspeak-webspace-mode&lt;/em&gt;. This mode
provides special commands to open a feed  at point, follow
hyperlinks etc.; use Emacs&#39; online help facilities to learn how
this buffer works.&lt;/p&gt;
&lt;p&gt;Mode &lt;em&gt;emacspeak-webspace-mode&lt;/em&gt; is also used to
advantage in browsing information retrieved via the Google AJAX
APIs described  in the previous set of articles on this blog.
Google Reader subscribers can now view the subscription list in a
&lt;em&gt;Webspace&lt;/em&gt; buffer via command
&lt;code&gt;emacspeak-webspace-reader&lt;/code&gt;.
Additionally, command &lt;em&gt;emacspeak-webspace-google&lt;/em&gt; provides
a more convenient interface to command
&lt;code&gt;gweb-google-at-point&lt;/code&gt; --- in addition to speaking the
snippet from the first search hit, this command places the first
four results in a special &lt;em&gt;Search Results&lt;/em&gt; buffer 
that is put in &lt;em&gt;Webspace&lt;/em&gt; mode.&lt;/p&gt;
&lt;strong&gt;Search And Enjoy!&lt;/strong&gt;


    &lt;/div&gt;
  </content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/6635709760768346180'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/6635709760768346180'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2008/09/emacspeak-webspace-goodies.html' title='Emacspeak Webspace Goodies'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-8490053477945022162</id><published>2008-08-20T07:12:00.001-07:00</published><updated>2008-08-20T07:12:33.788-07:00</updated><title type='text'>Emacspeak-WebSpace Just Got A Lot Faster</title><content type='html'>
    &lt;div xmlns=&#39;http://www.w3.org/1999/xhtml&#39;&gt;
&lt;div&gt;
&lt;h3&gt;In Praise Of Google AJAX APIS&lt;/h3&gt;
&lt;p&gt;New module &lt;code&gt;gfeeds.el&lt;/code&gt; (part of Library &lt;code&gt;g-client&lt;/code&gt;) now implements  a Lisp interface
to the Google AJAX FeedSearch API.
An immediate consequence of this is that module
&lt;code&gt;Emacspeak-WebSpace&lt;/code&gt; just got orders of magnitude
faster --- not that it was slow to start with:-)&lt;/p&gt;
&lt;p&gt;Feed And Enjoy!&lt;/p&gt;

    &lt;/div&gt;
    &lt;/div&gt;
  </content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/8490053477945022162'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/8490053477945022162'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2008/08/emacspeak-webspace-just-got-lot-faster.html' title='Emacspeak-WebSpace Just Got A Lot Faster'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-8030748561890638945</id><published>2008-08-14T16:51:00.001-07:00</published><updated>2008-08-14T16:51:44.359-07:00</updated><title type='text'>In Praise Of The Google Search AJAX API</title><content type='html'>
    &lt;div xmlns=&#39;http://www.w3.org/1999/xhtml&#39;&gt;
&lt;div&gt;

&lt;h2&gt;In Praise Of The Google AJAX Search API&lt;/h2&gt;
&lt;p&gt;Emacspeak has always provided Google Search with a single
keystroke from anywhere on the audio desktop.
But with the 
coming of the &lt;a href=&#39;http://code.google.com/apis/ajaxsearch/&#39;&gt;Google AJAX Search API &lt;/a&gt;
it becomes possible to integrate Google Search at a far deeper
level into your fingertips!
The AJAX  API demonstrates the true speed of Google Search, since
you dont need to wait for an HTML page to download and render ---
results are served as a light-weight 
&lt;a href=&#39;http://json.org/&#39;&gt;JSON&lt;/a&gt; data structure.&lt;/p&gt;

&lt;h2&gt;What You Can Now Do&lt;/h2&gt;

&lt;p&gt;
Module &lt;code&gt;gsearch&lt;/code&gt; (part of the &lt;code&gt;g-client&lt;/code&gt;
package)
provides an interactive command
&lt;code&gt;gsearch-google-at-point&lt;/code&gt; --- I have this bound to key
&lt;code&gt;hyper-/&lt;/code&gt; in Emacs.
Executing this command from anywhere inside Emacs does the
following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Grabs word under point, and prompts in the minibuffer for a
search-term --- with the word we just grabbed as the
default.&lt;/li&gt;
&lt;li&gt;Fetches other relevant search terms in the background via
Google Suggest, and makes these available via Emacs&#39; minibuffer
history mechanism. Use keys &lt;code&gt;M-n&lt;/code&gt; and &lt;code&gt;M-p&lt;/code&gt;
to cycle through these if needed.&lt;/li&gt;
&lt;li&gt;Hitting &lt;code&gt;ENTER&lt;/code&gt; performs a Google Search using the
AJAX API, and displays the  title and content snippet for the
first search result.&lt;/li&gt;
&lt;li&gt;Executing command &lt;code&gt;gsearch-google-at-point&lt;/code&gt;
subsequently at the same location opens the first search
result.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Search And Enjoy!&lt;/p&gt;
    &lt;/div&gt;
    &lt;/div&gt;
  </content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/8030748561890638945'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/8030748561890638945'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2008/08/in-praise-of-google-search-ajax-api.html' title='In Praise Of The Google Search AJAX API'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-5847282220001233762</id><published>2008-08-01T08:07:00.001-07:00</published><updated>2008-08-04T09:19:31.483-07:00</updated><title type='text'>Tutorial: Enhancing Web 2.0 Usability Using AxsJAX</title><content type='html'>
    &lt;div xmlns=&#39;http://www.w3.org/1999/xhtml&#39;&gt;
&lt;p&gt;You can &lt;a href=&#39;http://www.youtube.com/watch?v=nF3yhZrtLRw&#39;&gt;watch a
video&lt;/a&gt; of the tutorial Charles and I gave as part of the
Google Open Source series on July 14.
Emacspeak users can play the video by pressing &lt;code&gt;e e&lt;/code&gt;
on the above link and specifying
&lt;code&gt;emacspeak-m-player-youtube-player&lt;/code&gt; when prompted.&lt;/p&gt;
&lt;h3&gt;Abstract&lt;/h3&gt;
&lt;p&gt;
Google is the Web&#39;s premier creator of user-friendly Web 2.0
applications, and I have long viewed it as part of our mission to
do for users in the long tail (AKA users with special needs) what
we&#39;ve achieved for the mainstream user.
 &lt;a href=&#39;http://www.abilitynet.org.uk/accessibility2/&#39;&gt;Accessibility 2.0&lt;/a&gt; is now a hot topic on the Web
--- and we would like to move from  a world where AJAX
applications were a straight No-No with respect to blind users to
a world where these same technologies are used to enhance their
usability for everyone.
&lt;/p&gt;
&lt;p&gt;
&lt;a href=&#39;http://code.google.com/p/axsjax&#39;&gt;Google-AxsJAX&lt;/a&gt; is an Open Source framework for injecting
accessibility for users with special needs --- and more
generally, usability enhancements --- into Web 2.0 applications.
In this TechTalk, Charles Chen and I  
give a hands-on tutorial on using AxsJAX to enhance the usability
of Web 2.0  applications. The tutorial  covers the following:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
A brief introduction to the additional &lt;i&gt;opcodes&lt;/i&gt; introduced
by W3C ARIA  to the assembly language of the Web (AKA HTML+JavaScript).
&lt;/li&gt;
&lt;li&gt;
AxsJAX library abstractions built on the above that  help Web
developers generate relevant feedback via the user&#39;s adaptive
technology of choice.
&lt;/li&gt;
&lt;li&gt;
Steps in creating fluent eyes-free interaction to Web
applications, including enabling rapid access to parts of a
complex Web page.
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This tutorial focuses on solutions we&#39;ve already built and
deployed both within shipping products and as early end-user
experiments. Google products that we will cover include:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Google WebSearch
&lt;/li&gt;
&lt;li&gt;
Google Reader
&lt;/li&gt;
&lt;li&gt;
Google Books
&lt;/li&gt;
&lt;li&gt;
GMail and Google Talk
&lt;/li&gt;
&lt;li&gt;
Google Scholar
&lt;/li&gt;
&lt;li&gt;
Google Sky
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;And time permitting, we might even demonstrate how I now make up
for all the time I save thanks to   an efficient
eyes-free auditory user interface by playing JawBreaker and
reading XKCD via their AxsJAXed versions. 
&lt;/p&gt;
&lt;p&gt;
Note that writing AxsJAX enhancements to Web applications can
help you win &lt;a href=&#39;/home/build/google3/javascript/axsjax/THANKS.html&#39;&gt;bragging rights and cool swag&lt;/a&gt;! The goal of this
hands-on tutorial is to help you get there faster!
&lt;/p&gt;
    &lt;/div&gt;
  </content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/5847282220001233762'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/5847282220001233762'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2008/08/tutorial-enhancing-web-20-usability.html' title='Tutorial: Enhancing Web 2.0 Usability Using AxsJAX'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-8158867466246239607</id><published>2008-07-14T08:17:00.001-07:00</published><updated>2008-07-14T08:17:45.219-07:00</updated><title type='text'>Talk Announcement: Developing Accessible Web-2.0 Applications</title><content type='html'>
    &lt;div xmlns=&#39;http://www.w3.org/1999/xhtml&#39;&gt;
&lt;p&gt;For those of you in  Silicon Valley, Charles Chen and I will
be giving a talk on developing &lt;a href=&#39;http://feeds.feedburner.com/~r/GoogleOpenSourceBlog/~3/329965796/open-source-developers-google-speaker.html&#39;&gt;accessible Web 2.0 applications&lt;/a&gt; as
part of the Google Open Source Series --- see details below.
This will be a hands-on tutorial on ARIA-enhancing Web 2.0
applications using &lt;a href=&#39;http://google-axsjax.google.googlecode.com/&#39;&gt;Google
AxsJAX&lt;/a&gt;, and is a follow-up to the talk given at 
&lt;a href=&#39;http://www.youtube.com/watch?v=K4xuitAzIEk&#39;&gt;Google I/O
&lt;/a&gt;.
A video of this talk will be posted later on the Web.
&lt;/p&gt;
&lt;h3&gt;&lt;a id=&#39;id2245361&#39;&gt;Open Source Developers @ Google Speaker Series: Charles Chen &amp;amp; T.V. Raman&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;

Want to learn more about creating accessible Web 2.0 applications from the creators of 
&lt;a href=&#39;http://firevox.clcworld.net/about.html&#39;&gt;Fire Vox
&lt;/a&gt; and 
&lt;a href=&#39;http://emacspeak.sourceforge.net/&#39;&gt;Emacspeak
&lt;/a&gt;? If you are nearby 
&lt;a href=&#39;http://code.google.com/events/visitors/&#39;&gt;Google&#39;s Mountain View, California, USA Headquarters
&lt;/a&gt; on Monday, July 14th, please join us for Charles Chen and T.V. Raman&#39;s presentation Enhancing Web 2.0 Accessibility via AxsJAX. They will take you through a hands on tutorial on 
&lt;a href=&#39;http://code.google.com/p/axsjax&#39;&gt;Google-AxsJax
&lt;/a&gt;, an Open Source framework for injecting usability enhancements into Web 2.0 applications. Among other topics, Charles and T.V. will cover an overview of AxsJAX&#39;s developer tools, enabling eyes-free interaction for web applications and iterative design processes for accessibility improvements. They will also let you know the secret to getting a cool t-shirt with the Google logo printed in Braille.
&lt;br/&gt;
&lt;br/&gt;Like all sessions of the Open Source Developers @ Google Speaker Series, this session will be open to the public. Doors open at 6:30 PM and light refreshments will be served. All are welcome and encouraged to attend; guests should plan to sign in at Building 43 reception upon arrival. For those of you who cannot join us in person, the presentation will be taped and published along with all public Google Tech Talks.
&lt;br/&gt;















&lt;/p&gt;


    
&lt;/div&gt;
  </content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/8158867466246239607'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/8158867466246239607'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2008/07/talk-announcement-developing-accessible.html' title='Talk Announcement: Developing Accessible Web-2.0 Applications'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-5405233355746155695</id><published>2008-07-03T07:36:00.001-07:00</published><updated>2008-07-03T07:36:03.541-07:00</updated><title type='text'>ProcEd: A Speech-Enabled Task Manager For Emacs</title><content type='html'>
    &lt;div xmlns=&#39;http://www.w3.org/1999/xhtml&#39;&gt;
&lt;p&gt;For the last 10 years or so, &lt;em&gt;view-process-mode&lt;/em&gt;
has been my task manager of choice for monitoring and controlling
the state of processes on the Emacspeak audio desktop.
As of Emacs 23, AKA Emacs from CVS, that module does not work
anymore --- in fact it has not been updated for several years.
On the positive side, Emacs now bundles   &lt;em&gt;module ProcEd&lt;/em&gt;
--- a task manager that  does for processes what module
&lt;em&gt;DirEd&lt;/em&gt; does for files and directories.
As of this morning, &lt;em&gt;proced.el&lt;/em&gt; is fully speech-enabled by
Emacspeak.
You can install module &lt;em&gt;ProcEd&lt;/em&gt; for Emacs 22 by obtaining
the file from the Web ---
you can easily find it 
&lt;a href=&#39;http://www.google.com/search?q=proced%2Eel+emacs&#39;&gt;via
Google&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;Share And Enjoy ... And have a great July 4th Holiday!&lt;/p&gt;
    &lt;/div&gt;
  </content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/5405233355746155695'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/5405233355746155695'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2008/07/proced-speech-enabled-task-manager-for.html' title='ProcEd: A Speech-Enabled Task Manager For Emacs'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-8883792143826726043</id><published>2008-06-12T15:30:00.001-07:00</published><updated>2008-06-12T15:30:13.072-07:00</updated><title type='text'>Leveraging Web 2.0 Design Patterns For Enhanced Accessibility</title><content type='html'>
    &lt;div xmlns=&#39;http://www.w3.org/1999/xhtml&#39;&gt;
&lt;p&gt;As promised, here is a link to the Youtube video of 
the talk on &lt;a href=&#39;http://www.youtube.com/watch?v=K4xuitAzIEk&#39;&gt;Leveraging Web
2.0 Patterns For Accessibility&lt;/a&gt;
given during Google I/O on May 28, 2008 in San Francisco.
Emacspeak users can play the video by hitting &lt;code&gt;e e&lt;/code&gt;
on the link, and specifying
&lt;code&gt;emacspeak-m-player-youtube-player&lt;/code&gt; when prompted.
You can find the downloadable slides used 
during the talk along with other session material on the 
&lt;a href=&#39;http://sites.google.com/site/io/leveraging-web-20-design-patterns-for-enhanced-accessibility&#39;&gt;Google
I/O&lt;/a&gt; page for this session.&lt;/p&gt;

&lt;h2&gt;Talk Details&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Leveraging Web 2.0 Design Patterns For Enhanced Accessibility&lt;/strong&gt;
&lt;em&gt;T. V. Raman (Google)&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
HTML DOM+ JavaScript constitutes the assembly language of Web Applications. Access To Rich Internet Applications --- ARIA --- adds in a couple of additional op-codes for helping Web applications better communicate with adaptive technologies such as screenreaders. How do we now push the envelope with respect
to Web applications and adaptive technologies such as screenreaders and self-voicing browsers in a manner similar to what we as Web developers have collectively achieved for the mainstream user?

This session will demonstrate programming techniques that help Web developers experiment with and build in the latest accessibility techniques into their Web applications. We will base this session on project Google-AxsJAX.

Developers should know JavaScript, but session doesn&#39;t require deep AJAX hackery.&lt;/p&gt;

    &lt;/div&gt;
  </content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/8883792143826726043'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/8883792143826726043'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2008/06/leveraging-web-20-design-patterns-for.html' title='Leveraging Web 2.0 Design Patterns For Enhanced Accessibility'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-7852157026205372816</id><published>2008-05-28T07:23:00.001-07:00</published><updated>2008-05-28T07:23:28.205-07:00</updated><title type='text'>AxsJAX And Auditory User Interfaces At Google IO</title><content type='html'>
    &lt;div xmlns=&#39;http://www.w3.org/1999/xhtml&#39;&gt;
&lt;p&gt;For those of you interested in Auditory User Interfaces and
  attending 
&lt;a href=&#39;http://code.google.com/events/io/speakers.html&#39;&gt;Google
  IO 2008&lt;/a&gt;
in San Francisco today,
I&#39;ll be giving a talk on AxsJAX  and Auditory User Interfaces,
  and be around the rest of the two days to talk about Google&#39;s
  work on access-enabling Web-2.0 applications.
Look forward to seeing you there!
&lt;/p&gt;
    &lt;/div&gt;
  </content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/7852157026205372816'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/7852157026205372816'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2008/05/axsjax-and-auditory-user-interfaces-at.html' title='AxsJAX And Auditory User Interfaces At Google IO'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-7677718718523091025</id><published>2008-05-16T13:40:00.001-07:00</published><updated>2008-05-16T13:40:37.647-07:00</updated><title type='text'>Emacspeak On Thinkpad X-61 Running Gutsy (Ubuntu 7.0)</title><content type='html'>
    &lt;div xmlns=&#39;http://www.w3.org/1999/xhtml&#39;&gt;
&lt;p&gt;I recently upgraded to a Thinkpad X-61 running Gutsy --- 
here  are some brief notes on the move. In summary, all is well,
and I like Gutsy running on the X-61.&lt;/p&gt;
&lt;p&gt;Here are things to be aware of both from a hardware and
software perspective. All of this is with X and GNOME  turned
off; note that some of the tips e.g. turning off the display  as
described here, will cause havoc with X.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The X-61 display can be turned off using &lt;code&gt;vbetool&lt;/code&gt; &lt;br/&gt;
&lt;pre&gt;vbetool dpms off&lt;/pre&gt;&lt;br/&gt;
for turning off the display, and &lt;br/&gt;
&lt;pre&gt;vbetool dpms on&lt;/pre&gt;&lt;br/&gt;
for turning it back on again.&lt;/li&gt;
&lt;li&gt;If you suspend to memory etc., make sure to add the
appropriate &lt;code&gt;vbetool&lt;/code&gt; command to the relevant script
in &lt;code&gt;/etc/acpi/resume.d&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Gutsy is running ALSA 1.0.15, and to date, I&#39;ve not had any
trouble with the ViaVoice Outloud TTS  engine in this
environment.
Make sure to play with &lt;code&gt;amixer&lt;/code&gt; --specifically run
command &lt;br/&gt;
&lt;pre&gt;amixer controls&lt;/pre&gt;&lt;br/&gt;
to understand all the various switches and controls exposed by
the audio hardware on the X61. 
Here are some of the things that were noticeably different that
are worth mentioning:
&lt;ol&gt;
&lt;li&gt;The PC  speaker can now be manipulated via ALSA.&lt;/li&gt;
&lt;li&gt;The X-61 has two input sources. If you plug in an external
mike, make sure to set &lt;em&gt;both&lt;/em&gt; input sources   to the
microphone --- as opposed to leaving one or both of them to be
either &lt;code&gt;internal mic&lt;/code&gt; or
&lt;code&gt;mix&lt;/code&gt;. Specifically, plugging in an external mike
&lt;em&gt;does not&lt;/em&gt; disable the internal microphone.&lt;/li&gt;
&lt;li&gt;For some bizarre reason, it&#39;s possible to turn off the
headphone output--- but you cannot control its gain.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;Kernels later than 2.6.21 do much better with respect to
power management, and this really shows on the X-61. With the LCD
off, my X61 claims it&#39;ll run for 7.5 hours; if you turn off the
wireless and USB1.1 as well, it claims it can go for over 8.5
hours.&lt;/li&gt;
&lt;li&gt;Emacs versions: I&#39;m running out of CVS  AKA Emacs 23--- but
the &lt;code&gt;emacs-snapshot&lt;/code&gt; or &lt;code&gt;emacs22&lt;/code&gt; Ubuntu
packages appear to mostly work as well.
One irritation with some of the prepackaged  bundles of Emacs
under Ubuntu is that they dont install the Emacs Lisp sources,
and this will bite if you try compiling packages like
Emacs/W3.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All in all, the upgrade to Gutsy was mostly painless --- other
than having to figure out the usual nits about the new hardware.
The &lt;code&gt;/proc/acpi/ibm&lt;/code&gt; support is further along but not
yet complete--- as an example &lt;code&gt;/proc/acpi/ibm/video &lt;/code&gt;
does not yet control the state of the LCD --- and you cannot
query the state of the display reliably through that interface.&lt;/p&gt;

    &lt;/div&gt;
  </content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/7677718718523091025'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/7677718718523091025'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2008/05/emacspeak-on-thinkpad-x-61-running.html' title='Emacspeak On Thinkpad X-61 Running Gutsy (Ubuntu 7.0)'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-7862948740598998838</id><published>2008-05-15T19:04:00.001-07:00</published><updated>2008-05-15T19:04:36.710-07:00</updated><title type='text'>Emacspeak-28.0 (PuppyDog) Unleashed!</title><content type='html'>
    &lt;div xmlns=&#39;http://www.w3.org/1999/xhtml&#39;&gt;
&lt;h1&gt;Emacspeak-28.0 (PuppyDog) Unleashed!&lt;/h1&gt;
    
    &lt;h2&gt;For Immediate Release&lt;/h2&gt;
    &lt;p&gt;
      San Jose, CA, (May. 16,  2007)&lt;br/&gt;
      Emacspeak:   --- Bringing   Cutting-Edge Access For  Keen Users&lt;br/&gt;
      --Zero cost of upgrade/downgrades makes priceless software affordable!
    &lt;/p&gt;
    
    
    
    &lt;p&gt;
      
      Emacspeak Inc &lt;a href=&#39;http://emacspeak.sourceforge.net&#39;&gt;(NASDOG: ESPK)&lt;/a&gt; announces  the immediate
      world-wide availability of Emacspeak-27 --a powerful audio
      desktop for leveraging today&#39;s evolving data and service-oriented semantic Web.
    &lt;/p&gt;
    
&lt;p&gt;

Emacspeak can be downloaded from Google Code Hosting --see
&lt;a href=&#39;http://code.google.com/p/emacspeak&#39;&gt;GoogleCode&lt;/a&gt;
 You can visit
Emacspeak on the WWW at http://emacspeak.sf.net.  You can subscribe
to the emacspeak mailing list emacspeak@cs.vassar.edu by sending
mail to the list request address emacspeak-request@cs.vassar.edu.
The PuppyDog release is 
&lt;a href=&#39;http://emacspeak.googlecode.com/files/emacspeak-28.0.tar.bz2&#39;&gt;here&lt;/a&gt;.
The latest development snapshot of Emacspeak is available via
Subversion from Google Code Hosting at 
http://emacspeak.googlecode.com/svn/trunk/
&lt;/p&gt;
    &lt;/div&gt;
  </content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/7862948740598998838'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/7862948740598998838'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2008/05/emacspeak-280-puppydog-unleashed.html' title='Emacspeak-28.0 (PuppyDog) Unleashed!'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-1241847437667751477</id><published>2008-04-12T13:07:00.001-07:00</published><updated>2008-04-12T13:07:46.431-07:00</updated><title type='text'>W4A Keynote: Cloud Computing And Equal Access For All</title><content type='html'>
    &lt;div xmlns=&#39;http://www.w3.org/1999/xhtml&#39;&gt;
&lt;p&gt;I&#39;ll be giving the opening keynote at the upcoming 
&lt;a href=&#39;http://www.w4a.info/2008/keynotes.shtml&#39;&gt;W4A 2008&lt;/a&gt;
conference in Beijing on April 21. You can find an online version
of the paper along with the slides
here: &lt;a href=&#39;http://emacspeak.sourceforge.net/raman/publications/w4a-2008/&#39;&gt;Cloud
  Computing And Equal Access For All&lt;/a&gt;.
Coincidentally, another excellent Web 2.0 accessibility event is
happening on the same day in London ---
see &lt;a href=&#39;http://www.abilitynet.org.uk/accessibility2/&#39;&gt;Accessibility
  2.0&lt;/a&gt; --- it&#39;s unfortunate 
one cannot be in  multiple  places at opposite corners of the
globe at the same time!&lt;/p&gt;
    &lt;/div&gt;
  </content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/1241847437667751477'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/1241847437667751477'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2008/04/w4a-keynote-cloud-computing-and-equal.html' title='W4A Keynote: Cloud Computing And Equal Access For All'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-4828301403037560320</id><published>2008-04-01T07:04:00.001-07:00</published><updated>2008-04-01T10:47:33.192-07:00</updated><title type='text'>Emacspeak Goes Social</title><content type='html'>
    &lt;div xmlns=&#39;http://www.w3.org/1999/xhtml&#39;&gt;
&lt;h2&gt;Leveraging The Benefits Of Free Speech!&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;For Immediate Release:&lt;/strong&gt;&lt;br/&gt;
April 1, 2008&lt;/p&gt;
&lt;h2&gt;Live From San Jose ... Emacspeak Goes Social!&lt;/h2&gt;
&lt;p&gt;Investors and users alike welcomed today&#39;s announcement that
Emacspeak (NASDOG:ESPK)
would be going social ---  &lt;em&gt;Going Social is
better than Going Postal&lt;/em&gt;!&lt;/p&gt;
&lt;p&gt;
As a pioneer in the space of eyes-free information access,
and a firm believer in free speech and free software,
Emacspeak will now help users go social speech-free 
--- all users need do is to use the system. When in use, the
free-social features of Emacspeak will talk to others on your
behalf, answer inane questions, and contribute to the community
by in its turn asking even more inane questions of everyone
else. In a repeat of the &lt;em&gt;network effect&lt;/em&gt; that has led to
the resounding success of systems like the World Wide Web and The
Blogosphere,
these viral features in Emacspeak are expected to win ones
running instance many social connections.
The longer one uses these features, the &lt;em&gt;deeper&lt;/em&gt;
one&#39;s &lt;em&gt;social graph&lt;/em&gt;
--- going forward,  the information encapsulated in these social
graphs will be converted to ever-increasing stacks of small
pieces of green paper.&lt;/p&gt;
&lt;h2&gt;Coming Soon!&lt;/h2&gt; &lt;p&gt;As these features are launched over the
next few weeks, expect Emacspeak generated conversation streams
to show up everywhere ranging from &lt;a href=&#39;http://www.twitter.com&#39;&gt;Twitter&lt;/a&gt; streams to random email
messages that you can usefully use to forward to spammers. This
innovative approach to communication finally adds value to spam
--- and is being hailed as the next biggest business model to hit
the ether. By making such content available on the Internet, the
system will foster the long term human goal of organizing and
searching all the world&#39;s ignorance to make it universally
accessible --- thereby bringing ignorance on par with
knowledge!&lt;/p&gt; &lt;/div&gt;
  </content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/4828301403037560320'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/4828301403037560320'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2008/04/emacspeak-goes-social.html' title='Emacspeak Goes Social'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-9084042252149744337</id><published>2008-03-28T20:45:00.001-07:00</published><updated>2008-03-28T20:45:30.570-07:00</updated><title type='text'>My Web-2.0 Application Is Feeling Accessible</title><content type='html'>
    &lt;div xmlns=&#39;http://www.w3.org/1999/xhtml&#39;&gt;
&lt;p&gt;If you feel up to Web  hackery and want to win a cool T-shirt
in the bargain, see 
&lt;a href=&#39;http://google-opensource.blogspot.com/2008/03/axsjax-my-web-20-application-is-feeling.html&#39;&gt;My
Web-2.0 Application Is Feeling Accessible!&lt;/a&gt;.
You can see examples of what you can achieve with this framework
in the AxsJAX showcase. &lt;/p&gt;
    &lt;/div&gt;
  </content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/9084042252149744337'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/9084042252149744337'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2008/03/my-web-20-application-is-feeling.html' title='My Web-2.0 Application Is Feeling Accessible'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-618980891425495491</id><published>2008-03-06T07:25:00.001-08:00</published><updated>2008-03-06T07:25:58.735-08:00</updated><title type='text'>Emacspeak WebSpace --- Interaction-Free Information Access</title><content type='html'>
    &lt;div xmlns=&#39;http://www.w3.org/1999/xhtml&#39;&gt;
&lt;p&gt;A few months ago, I started an Emacspeak module called
&lt;code&gt;emacspeak-webspace&lt;/code&gt; that is now ready for wider use.
The goal of this module is to unobtrusively fetch useful
information from the Web and communicate it at  those times that
one is context-switching among tasks.
I gave a talk on user interaction at the last 
&lt;a href=&#39;http://www.think.org&#39;&gt;Hackers Conference&lt;/a&gt; in
November; in the same session, there was another talk  whose gist
was a plea for &lt;em&gt;less&lt;/em&gt; human-computer interaction ---
motivation: User Interfaces are nice, but wouldn&#39;t it be nice if
one didn&#39;t have to &lt;em&gt;explicitly&lt;/em&gt; interact with the machine
to get  information?
The speaker coined the term &lt;em&gt;Zen interfaces&lt;/em&gt; in that
context, something that stuck in memory long after the talk.
&lt;/p&gt;

&lt;p&gt;I built that thought into module
&lt;code&gt;emacspeak-webspace&lt;/code&gt;.
Conceptually, it consists of &lt;em&gt;smart fetchers&lt;/em&gt; that fetch
information  asynchronously from the Web, and &lt;em&gt;smart
displayers&lt;/em&gt;
that communicate this information at &lt;em&gt;appropriate&lt;/em&gt; times.
These are detailed below.
&lt;/p&gt;
&lt;h3&gt;Fetchers&lt;/h3&gt;
&lt;p&gt;There are two  fetchers  at present:&lt;/p&gt;
&lt;dl&gt;
&lt;dt&gt;Weather&lt;/dt&gt;
&lt;dd&gt;Fetches current weather conditions for your location.&lt;/dd&gt;
&lt;dt&gt;News&lt;/dt&gt;
&lt;dd&gt;Fetches headlines from a customizable collection of ATOM and
RSS feeds.&lt;/dd&gt;
&lt;/dl&gt;

&lt;p&gt;Note that this module is not intended to be an RSS or ATOM 
feed-reader; for that, use module &lt;code&gt;greader&lt;/code&gt; --- an
API-based Google Reader client that is bundled with
Emacspeak.&lt;/p&gt;

&lt;h3&gt;Communicating Useful Information Usefully&lt;/h3&gt;
&lt;p&gt;With the information in hand, the next question is 
how does one communicate this information &lt;em&gt;usefully&lt;/em&gt;, 
and what does &lt;em&gt;at the appropriate time&lt;/em&gt; mean? Things to
avoid:
&lt;/p&gt;
&lt;dl&gt;
&lt;dt&gt;Interaction-Free&lt;/dt&gt;
&lt;dd&gt;Do not require explicit user action to hear the
information.&lt;/dd&gt;
&lt;dt&gt;Avoid Chatter&lt;/dt&gt;
&lt;dd&gt;Avoid creating an auditory user interface that chatters at
the user all the time.&lt;/dd&gt;
&lt;/dl&gt;

&lt;p&gt;These are conflicting constraints. Notice that in a visual
interface, one can meet the &lt;em&gt;interaction-free&lt;/em&gt;
requirement by displaying the information in a  toolbar or
sidebar and allow the user to ignore or absorb the information at
will.&lt;/p&gt;
&lt;p&gt;Emacspeak uses Emacs&#39; &lt;em&gt;header-line&lt;/em&gt; to display the
continuously updating information.
This meets the &lt;em&gt;interaction-free&lt;/em&gt; requirement.
The header line updates every time Emacs updates its display, and
automatically speaking it would produce too much feedback.
But Emacspeak doesn&#39;t automatically speak the header-line; it
only speaks it when there is a &lt;em&gt;context-switch&lt;/em&gt;.&lt;/p&gt;

&lt;h3&gt;How To Use&lt;/h3&gt;

&lt;p&gt;Here is how I am using &lt;code&gt;emacspeak-webspace&lt;/code&gt; at
present:&lt;/p&gt;

&lt;dl&gt;
&lt;dt&gt;Weather&lt;/dt&gt;
&lt;dd&gt;Activate weather display in the &lt;code&gt;calendar&lt;/code&gt; and
&lt;code&gt;scratch&lt;/code&gt; buffers.&lt;/dd&gt;
&lt;dt&gt;News&lt;/dt&gt;
&lt;dd&gt;Activate feed headlines in selected &lt;code&gt;shell&lt;/code&gt;
buffers.&lt;/dd&gt;
&lt;/dl&gt;
&lt;p&gt;You hear the updated information when switching to buffers
where the webspace display is active.
&lt;/p&gt;
&lt;h3&gt;Activating WebSpace Displays&lt;/h3&gt;
&lt;p&gt;Webspace displays are activated via the following commands;
all Webspace displays will be  placed by default on prefix key
&lt;code&gt;hyper-space&lt;/code&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;emacspeak-webspace-headlines&lt;/code&gt;: &lt;code&gt;hyper-space
h&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;emacspeak-webspace-weather&lt;/code&gt; &lt;code&gt;hyper-space
w&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Share And Enjoy, And May The Source Be With You!&lt;/p&gt;
    &lt;/div&gt;
  </content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/618980891425495491'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/618980891425495491'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2008/03/emacspeak-webspace-interaction-free.html' title='Emacspeak WebSpace --- Interaction-Free Information Access'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-2735672350700042581</id><published>2008-01-03T10:45:00.001-08:00</published><updated>2008-01-03T10:45:01.476-08:00</updated><title type='text'>Announcing: The Coming Of Piglets To The Emacspeak Desktop</title><content type='html'>
 &lt;div xmlns=&#39;http://www.w3.org/1999/xhtml&#39;&gt;
&lt;p&gt;This is to announce a new emacspeak module called
&lt;em&gt;Piglets&lt;/em&gt; that brings together Emacs and Firefox to create
a powerful framework for authoring Web interaction wizards.&lt;/p&gt;
&lt;h2&gt;Why  Piglets?&lt;/h2&gt;

&lt;p&gt;You might well ask &lt;q&gt;Why Piglets?&lt;/q&gt;,
and might conjecture that &lt;em&gt;PIGLETS&lt;/em&gt; might stand for
&lt;strong&gt;Powerful Internet Gadgets for a  Light-Weight  Talking
System&lt;/strong&gt;.
You might conjecture that the Emacspeak mascot likes pig-ears; or
you might even  think of attributing it to the fact that my
friend and colleague &lt;a href=&#39;http://firevox.clcworld.net&#39;&gt;Charles Chen&lt;/a&gt; and creator
of &lt;em&gt; Fire Vox&lt;/em&gt; was born in the year of the pig.
But you&#39;d be mostly wrong in all of the above.&lt;/p&gt;
&lt;p&gt;Piglets on the Emacspeak desktop are the result of having two
large (and powerful) software pigs connect over a socket. A few
months ago, I blogged here about &lt;em&gt;MozREPL&lt;/em&gt; and how it
allows me to  &lt;a href=&#39;http://emacspeak.blogspot.com/2007/06/firebox-put-fox-in-box.html&#39;&gt;Put
The Fox In A Box&lt;/a&gt;. Piglets mark the completion of the
Emacs/Firefox integration that started with Firebox. Once you
install &lt;a href=&#39;http://firevox.clcworld.net&#39;&gt;Fire Vox&lt;/a&gt;, the
free self-voicing extension for Firefox, piglets become a
versatile means to leverage the self-voicing  Fire-Vox/Firefox DOM from the comfort of
the emacspeak environment.&lt;/p&gt;

&lt;h2&gt;What You Need&lt;/h2&gt;

&lt;p&gt;Caveat: &lt;strong&gt;ALL&lt;/strong&gt; of this is early experimental
software --- and you&#39;ll need to tweak things for your environment
to get things working.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A version of Emacspeak from the  subversion repository.&lt;/li&gt;
&lt;li&gt;Check the installation of the &lt;code&gt;servers/python&lt;/code&gt;
files in your Emacspeak installation.&lt;/li&gt;
&lt;li&gt;Confirm that the &lt;code&gt;HTTP&lt;/code&gt; wrapper for the TTS
servers works. You can most easily do this by running:
&lt;pre&gt;
# Start the HTTPspeech server 
# from emacspeak/servers/python
python HTTPSpeaker.py  outloud 2222 &amp;amp;
# you can replace outloud with dtk-exp
# but the bindings to other TTS  servers is not defined for now
# Run wget to test the speech server:
wget --post-data=&#39;speak:hello world&#39; localhost:2222
&lt;/pre&gt;
If all is well, you should here the TTS engine say &lt;q&gt;Hello
World&lt;/q&gt;
&lt;p&gt;&lt;strong&gt;Do not proceed if the above does not
work.&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;Install Fire-Vox and configure it to use the Emacspeak TTS
server.
You can do this with ORCA  providing the feedback.
Alternatively, once you have installed Fire-Vox,  shutdown
Firefox and then edit your
&lt;code&gt;~/.mozilla/firefox/default/prefs.js&lt;/code&gt;
&lt;pre&gt;
user_pref(&quot;firevox.LastWorkingTTS&quot;, 4);
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;The above sets up Fire-Vox to use the running HTTP speech
server you started earlier.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Loading And Running Piglets&lt;/h2&gt;

&lt;p&gt;The Piglets framework is implemented in module
&lt;code&gt;emacspeak-piglets.el&lt;/code&gt;. There is a Fire-Vox binding in
module &lt;code&gt;emacspeak-firevox.el&lt;/code&gt; and a binding to the &lt;a href=&#39;http://code.google.com/p/google-axsjax&#39;&gt;JawBreaker&lt;/a&gt;
game in &lt;code&gt;emacspeak-jawbreaker.el&lt;/code&gt;.
&lt;/p&gt;

&lt;h2&gt;How Does It Work?&lt;/h2&gt;

&lt;p&gt;When you get the various pieces configured and working, here
is how things work:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Piglets place you in a special interaction buffer in
Emacs.&lt;/li&gt;
&lt;li&gt;Typing keys  in this buffer go to Firefox.&lt;/li&gt;
&lt;li&gt;Control keys send commands to Firefox using MozREPL.&lt;/li&gt;
&lt;li&gt;The latter is most useful in conjunction with Web 2.0
applications that have been &lt;a href=&#39;http://code.google.com/p/google-axsjax/&#39;&gt;AxsJAX&lt;/a&gt;ed.&lt;/li&gt;
&lt;li&gt;Additional commands give access to FireFox features such as
the URL bar. As an example, hit &lt;code&gt;C-w&lt;/code&gt;
and type the phrase you&#39;d like to go into the address bar ---
either a URL  or a search term. As an example, try typing
&lt;em&gt;XKCDComic&lt;/em&gt;.
This will automatically do a &lt;em&gt;Google Lucky Search&lt;/em&gt; (thanks
to FireFox magic)
and open the XKCD site.&lt;/li&gt;
&lt;li&gt;But wait, there&#39;s more! Because XKCD has been 
&lt;a href=&#39;http://googleblog.blogspot.com/2007/12/accessibility-mashups-axsjax-fun-with.html&#39;&gt;AxsJAXed&lt;/a&gt;, you
will hear Fire-Vox automatically speak the comic strip and its
associated transcript. Hit &lt;code&gt;?&lt;/code&gt; in the FireFox
interaction buffer to hear the available keystrokes for this
AxsJAXed application; in general, &lt;code&gt;?&lt;/code&gt; brings up
keyboard help for AxsJAXed applications.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;ToDos:&lt;/h2&gt;

&lt;p&gt;These are some todos that I plan to get to eventually --- if
you have coding cycles to contribute, feel free to work on
these.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Create an HTTP  binding to the TTS servers using TCL and the
TCL HTTP libraries. This will eliminate the dependency on the
Python wrapper I originally wrote for ORCA  in fall 2005.&lt;/li&gt;
&lt;li&gt;Write more  Piglets.&lt;/li&gt;
&lt;li&gt;Make installation and configuration simpler.&lt;/li&gt;
&lt;li&gt;Test installation and configuration of the various
pieces.&lt;/li&gt;
&lt;/ul&gt;
    &lt;/div&gt;
  </content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/2735672350700042581'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/2735672350700042581'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2008/01/announcing-coming-of-piglets-to.html' title='Announcing: The Coming Of Piglets To The Emacspeak Desktop'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-4212410965066662568</id><published>2007-12-20T14:49:00.001-08:00</published><updated>2007-12-20T14:49:42.280-08:00</updated><title type='text'>Web Accessibility And Usability: Coming Back To The Basics</title><content type='html'>
    &lt;div xmlns=&#39;http://www.w3.org/1999/xhtml&#39;&gt;
&lt;p&gt;
The Nielsen Norman Group has made available a detailed report on
accessibility, which includes the results of several usability
tests
--- see &lt;a href=&#39;http://www.nngroup.com/reports/accessibility/&#39;&gt;Going Beyond
 Alt Text&lt;/a&gt;.
It&#39;s a very good read,  and though its conclusions might be
depressing to people coming to this area from the outside ---
they should be no surprize to users who have been trying to use
the Web via spoken output over the last 10 years.
From the perspective of the Emacspeak user who lives in a
specialized browsing environment that is optimized for performing
oft-repeated tasks, there are several interesting take-aways from
this report:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Though so-called &lt;em&gt;Web Accessibility Standards&lt;/em&gt; have
attempted to focus on the behavior observed when using
screenreaders with mainstream browsers, that thread of work
appears to be achieving little with respect to the real metric of
&lt;strong&gt;task completion&lt;/strong&gt;.
As technologists, we would all do well to remember that users
come to the Web, and Web Access solutions not to &lt;em&gt;use the
browser&lt;/em&gt; but rather to complete one or other task.&lt;/li&gt;
&lt;li&gt;As described in &lt;a href=&#39;http://emacspeak.sourceforge.net/raman/publications/specialized-browsers/specialized-browsers.html&#39;&gt;Specialized
Browsers&lt;/a&gt;
and &lt;a href=&#39;http://www.resourceshelf.com/2007/12/02/webcast-the-web-the-way-you-want-it/&#39;&gt;The
Web The Way You Want It&lt;/a&gt;,
task-oriented access and specialized user-optimized web tools
have been around since the inception of the Web.&lt;/li&gt;
&lt;li&gt;Though the Nielsen study asked users to carry out each of the
given tasks by going to a given Web site, it would be interesting
to see how such tasks work out in the Emacspeak environment.
It&#39;s a given that an emacspeak  user trying to buy a music CD at   an
online store   would run into a brick wall fairly quickly (see,
even online stores are made of brick and mortar;-)).
However, as an Emacspeak user I&#39;d &lt;em&gt;never do that&lt;/em&gt; I&#39;d
either go to  Amazon&#39;s highly efficient 
&lt;a href=&#39;http://www.amazon.com/access&#39;&gt;Amazon Accessible
Store&lt;/a&gt;
or faster yet, type an appropriate query at Google and click on the
relevant Ad that sports a &lt;em&gt;Google Checkout&lt;/em&gt; badge.&lt;/li&gt;
&lt;li&gt;And more interestingly, it would be interesting to carry out
a follow-up user study to compare the rate of task completion as
well as observed efficiencies/inefficiencies 
between users of Emacspeak and generic browser/screenreader
combinations for  tasks such as:

&lt;ol&gt;
&lt;li&gt;Play NPR news from the last hour.&lt;/li&gt;
&lt;li&gt;Play your local NPR station.&lt;/li&gt;
&lt;li&gt;Play BBC  News from the last hour.&lt;/li&gt;
&lt;li&gt;Skim the top stories from CNN.&lt;/li&gt;
&lt;li&gt;Look up  today&#39;s stock market numbers for the major
indices.&lt;/li&gt;
&lt;li&gt;And items too numerous to enumerate in this margin.&lt;/li&gt;
&lt;/ol&gt;&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
  </content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/4212410965066662568'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/4212410965066662568'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2007/12/web-accessibility-and-usability-coming.html' title='Web Accessibility And Usability: Coming Back To The Basics'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-8603034841498082552</id><published>2007-11-28T07:45:00.001-08:00</published><updated>2007-11-28T07:45:56.840-08:00</updated><title type='text'>Directions Using Public Transport From Google Maps</title><content type='html'>
    &lt;div xmlns=&#39;http://www.w3.org/1999/xhtml&#39;&gt;
&lt;div&gt;
&lt;p&gt;In the spirit of adding a &lt;em&gt;smart URL template&lt;/em&gt; to
enhance the Emacspeak &lt;em&gt;Web Command Line&lt;/em&gt;
for useful tools I discover ...&lt;/p&gt;

&lt;p&gt;I just checked in a &lt;code&gt;Public Transit Via Google
Maps&lt;/code&gt; 
tool into the Emacspeak SVN repository.
You specify trip details in the form &lt;em&gt;start  to
destination&lt;/em&gt;
e.g., &lt;a href=&#39;http://www.google.com/maps?output=html&amp;amp;ie=UTF8&amp;amp;f=d&amp;amp;dirflg=r&amp;amp;q=2715+la+terrace+circle+San+Jose%2C+CA+to+San+Jose+Airport&amp;amp;ttype=dep&amp;amp;date=11%2F28%2F07&amp;amp;time=now&#39;&gt;2715
La Terrace Circle 95123 to San Jose Airport&lt;/a&gt;
and get back a filtered view that shows the information you
want. Note that clicking on the link in this blog will give you
the entire page,
which is fairly easy to navigate. 
But having a smart filter in Emacspeak makes it that much more
efficient to use.
&lt;/p&gt;

&lt;p&gt;Share And Enjoy,&lt;/p&gt;
    &lt;/div&gt;

    &lt;/div&gt;
  </content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/8603034841498082552'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/8603034841498082552'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2007/11/directions-using-public-transport-from.html' title='Directions Using Public Transport From Google Maps'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-688356508735542148</id><published>2007-11-23T18:17:00.001-08:00</published><updated>2007-11-23T18:17:31.028-08:00</updated><title type='text'>Announcing Emacspeak 27.0 AKA FastDog</title><content type='html'>
    &lt;div xmlns=&#39;http://www.w3.org/1999/xhtml&#39;&gt;
&lt;h2&gt;For Immediate Release&lt;/h2&gt;
    &lt;p&gt;
      San Jose, CA, (Nov. 24,  2007)&lt;br/&gt;
      Emacspeak:   --- Bringing   Cutteng-Edge Access For  Sharp Users&lt;br/&gt;
      --Zero cost of upgrade/downgrades makes priceless software affordable!
    &lt;/p&gt;
    
    
 
    
    &lt;table cellpadding=&#39;5&#39; cellspacing=&#39;1&#39; rules=&#39;all&#39; border=&#39;1&#39; summary=&#39;navigation bar&#39;&gt;
      &lt;tr style=&#39;background: yellow; text-color: navy; font-weight: bold&#39;&gt;
        &lt;td&gt;&lt;a href=&#39;http://emacspeak.googlecode.com/files/emacspeak-27.0.tar.bz2&#39;&gt;Downloads&lt;/a&gt;&lt;/td&gt;
        &lt;td&gt;&lt;a href=&#39;http://emacspeak.sf.net/info/emacspeak.html&#39;&gt; Reference&lt;/a&gt;&lt;/td&gt;
        &lt;td&gt;&lt;a href=&#39;http://emacspeak.sf.net/install-guide/&#39;&gt;Installation&lt;/a&gt;&lt;/td&gt;
        &lt;td&gt; &lt;a href=&#39;http://emacspeak.sf.net/user-guide/&#39;&gt;Usage&lt;/a&gt; &lt;/td&gt;
        &lt;td&gt;&lt;a href=&#39;http://emacspeak.sf.net/tips.html&#39;&gt;Tips&lt;/a&gt;&lt;/td&gt;
        &lt;td&gt;&lt;a href=&#39;http://emacspeak.sf.net/applications.html&#39;&gt;Tools&lt;/a&gt;&lt;/td&gt;
        &lt;td&gt; &lt;a href=&#39;http://www.cs.vassar.edu/~priestdo/emacspeak/&#39;&gt;Support&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td colspan=&#39;7&#39;&gt;
          &lt;img alt=&#39;EMACSPEAK Logo&#39; height=&#39;216&#39; width=&#39;150&#39; src=&#39;emacspeak.jpg&#39;/&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td colspan=&#39;4&#39;&gt;&lt;a href=&#39;http://emacspeak.sf.net/raman/&#39;&gt;About the author&lt;/a&gt;&lt;/td&gt;
        &lt;td colspan=&#39;3&#39;&gt;
          &lt;a href=&#39;http://sourceforge.net/projects/emacspeak&#39;&gt;
            &lt;img alt=&#39;SourceForge&#39; border=&#39;0&#39; height=&#39;31&#39; width=&#39;88&#39; src=&#39;http://sourceforge.net/sflogo.php?group_id=2238&#39;/&gt;
        &lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
    &lt;/table&gt;
    
    
&lt;p&gt;
      
      Emacspeak Inc &lt;a href=&#39;http://emacspeak.sourceforge.net&#39;&gt;(NASDOG: ESPK)&lt;/a&gt; announces  the immediate
      world-wide availability of Emacspeak-27 --a powerful audio
      desktop for leveraging today&#39;s evolving data and service-oriented semantic Web.
    &lt;/p&gt;
&lt;h2&gt;Major Enhancements&lt;/h2&gt;
    
    

 


    
    &lt;ol&gt;
&lt;li&gt;
 emacspeak-web: Updated Web interaction.
&lt;/li&gt;
&lt;li&gt;
 emacspeak-ess: Speech-enables Emacs Statistics Interface
&lt;/li&gt;
&lt;li&gt;
 Header Line Support:
&lt;/li&gt;
&lt;li&gt;
Windows Key Now Stops Speech
&lt;/li&gt;
&lt;li&gt;
Smarter mode-line output:
&lt;/li&gt;
&lt;li&gt;
 Google Suggest provides completion for search queries.
&lt;/li&gt;
&lt;li&gt;
 Integrated Support For Google Services
&lt;/li&gt;
&lt;li&gt;
emacspeak-moz:  Firefox integration.
&lt;/li&gt;
&lt;li&gt;
Emacspeak-webmarks: Online bookmarks.
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;And others too numerous for this margin ...&lt;/p&gt;
    &lt;/div&gt;
  </content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/688356508735542148'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/688356508735542148'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2007/11/announcing-emacspeak-270-aka-fastdog.html' title='Announcing Emacspeak 27.0 AKA FastDog'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-3385720525876370388</id><published>2007-11-16T14:53:00.001-08:00</published><updated>2007-11-16T14:53:33.317-08:00</updated><title type='text'>AxsJAX, Speech-Enabled Games And Auditory User Interfaces</title><content type='html'>
    &lt;div xmlns=&#39;http://www.w3.org/1999/xhtml&#39;&gt;
&lt;p&gt;This is not part of Emacspeak, but is relevant to emacspeak
users given that:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Speech-enabled games have  proven to be a successful means of
discovering AUI techniques that work, beginning with the
speech-enabled version of Tetris.&lt;/li&gt;
&lt;li&gt;The emerging Emacs to Firefox connection using module
&lt;code&gt;emacspeak-moz.el&lt;/code&gt; and &lt;code&gt;mozrepl&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;The ability to run Fire Vox with the Emacspeak speech servers
--- look for a blog post on that soon.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Charles Chen and I recently released a JavaScript powered
framework for access-enabling AJAX applications 
--- see &lt;a href=&#39;http://code.google.com/p/google-axsjax&#39;&gt;AxsJAX&lt;/a&gt;.
Along with access-enabling useful applications such as Google
WebSearch and Google Reader, we also access-enabled JawBreaker, a
popular game much in the spirit of Tetris --- but without a
ticking clock.
See  &lt;a href=&#39;http://code.google.com/p/google-axsjax/wiki/Showcase&#39;&gt;AxsJAX
showcase&lt;/a&gt; for pointer to this and other Web-2.0 applications
that have been AxsJaxed.&lt;/p&gt;

    &lt;/div&gt;
  </content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/3385720525876370388'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/3385720525876370388'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2007/11/axsjax-speech-enabled-games-and.html' title='AxsJAX, Speech-Enabled Games And Auditory User Interfaces'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-1768197643635443743</id><published>2007-10-08T16:33:00.001-07:00</published><updated>2007-10-08T16:33:08.619-07:00</updated><title type='text'>The Web The Way You Want</title><content type='html'>
    &lt;div xmlns=&#39;http://www.w3.org/1999/xhtml&#39;&gt;
&lt;p&gt;
I gave a talk last week at University of Washington entitled 
&lt;a href=&#39;http://norfolk.cs.washington.edu/htbin-post/unrestricted/colloq/details.cgi?id=636&#39;&gt;The
Web The Way You Want&lt;/a&gt;;
it should be of general interest to users interested in flexible
access to the Web.&lt;/p&gt;

    &lt;/div&gt;
  </content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/1768197643635443743'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/1768197643635443743'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2007/10/web-way-you-want.html' title='The Web The Way You Want'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-7814395050509851558</id><published>2007-09-24T16:01:00.001-07:00</published><updated>2007-09-24T16:01:45.684-07:00</updated><title type='text'>Podcast Covering Web Accessibility</title><content type='html'>
    &lt;div xmlns=&#39;http://www.w3.org/1999/xhtml&#39;&gt;
&lt;p&gt;I recorded this 
&lt;a href=&#39;http://google-code-updates.blogspot.com/2007/09/google-developer-podcast-episode-nine.html&#39;&gt;Accessibility
Podcast&lt;/a&gt;
a few weeks ago for the Google Developer Blog.
It focuses on the overall topic of Web Accessibility and covers
some of what I have been building with respect to custom clients
for Google Services, alongside a broad range of issues around
developing usable applications.&lt;/p&gt;
    &lt;/div&gt;
  </content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/7814395050509851558'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/7814395050509851558'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2007/09/podcast-covering-web-accessibility.html' title='Podcast Covering Web Accessibility'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-1202544555524691864</id><published>2007-09-04T07:23:00.001-07:00</published><updated>2007-09-06T07:46:40.382-07:00</updated><title type='text'>Emacspeak Video Demo: Looking Up The Weather</title><content type='html'>
    &lt;div xmlns=&#39;http://www.w3.org/1999/xhtml&#39;&gt;
&lt;p&gt;In the first of a sequence of posts demonstrating live
emacspeak user interaction,
I&#39;ll give an overview of what it feels like to use Emacspeak&#39;s
powerful Web Command Line provided by its rich collection of web
gadgets made up of &lt;em&gt;search wizards&lt;/em&gt; and &lt;em&gt;smart url
templates&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Here are a few things to note about this and all the
subsequent video demos in this series:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;All demos were recorded using &lt;em&gt;recordmydesktop&lt;/em&gt; on an
Ubuntu laptop running Linux (Ubuntu Dapper).&lt;/li&gt;
&lt;li&gt;The text-to-speech is  produced by the IBM  ViaVoice engine,
this can now be purchased from a couple of sources in the US and
Europe.&lt;/li&gt;
&lt;li&gt;All demos are recorded with the speech rate at which I use
Emacspeak.
These demos are primarily intended to show the efficiency of the
environment, and slowing down the speech would detract
significantly from that goal.&lt;/li&gt;
&lt;li&gt;Frequent users of text-to-speech will still find the output
comprehensible. For the rest, you can match it up with what you
see on the screen ;-)&lt;/li&gt;
&lt;li&gt;Careful listeners will notice some jitter/clipping in the
audio --- this appears to be an artifact of using
&lt;em&gt;recordmydesktop&lt;/em&gt; that I was unable to eliminate.&lt;/li&gt;
&lt;li&gt;In each of these articles, I&#39;ll enumerate the actions I take,
and their effect. I&#39;ll enumearate actual keystrokes, but I
suggest readers focus more on the atomic commands being executed,
rather than individual keypresses.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Looking Up The Weather&lt;/h3&gt;
&lt;p&gt;Looking up current weather is a sufficiently common action
where &lt;em&gt;browsing&lt;/em&gt; to a weather site, typing in ones
zip-code and reviewing the resulting page is three steps too
many.
This is also why most modern desktop environments provide
&lt;em&gt;gadgets&lt;/em&gt; that display such live information with minimal
user intervention.
This first video shows Emacspeak &lt;em&gt;smart url&lt;/em&gt; &lt;code&gt;RSS
Weather From Wunderground&lt;/code&gt;in action.
&lt;/p&gt;
&lt;p&gt;Here is the  &lt;a href=&#39;http://emacspeak.sourceforge.net/videos/rss-weather.ogg&#39;&gt;RSS
Weather Demo&lt;/a&gt;.
This is an OGG/Theora video and should play with tools like
&lt;code&gt;mplayer&lt;/code&gt;.
The table below shows  a brief description of each user action
and its effect.&lt;/p&gt;
&lt;table border=&#39;2&#39; cellspacing=&#39;0&#39; cellpadding=&#39;6&#39; rules=&#39;groups&#39; frame=&#39;hsides&#39;&gt;
&lt;COL align=&#39;left&#39;/&gt;&lt;COL align=&#39;left&#39;/&gt;&lt;COL align=&#39;left&#39;/&gt;
&lt;thead&gt;
&lt;tr&gt;&lt;th&gt;Action&lt;/th&gt;&lt;th&gt;Key&lt;/th&gt;&lt;th&gt;Effect&lt;/th&gt;&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;&lt;a href=&#39;#gadget-prompt&#39;&gt;Access Gadgets&lt;/a&gt;&lt;/td&gt;&lt;td&gt;C-e u&lt;/td&gt;&lt;td&gt;Prompts for gadget&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;a href=&#39;#pick-gadget&#39;&gt;Pick Weather Gadget&lt;/a&gt;&lt;/td&gt;&lt;td&gt;rss tab&lt;/td&gt;&lt;td&gt;partial input completes to RSS Weather From Wunderground&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;a href=&#39;#location&#39;&gt;Pick Default Location&lt;/a&gt;&lt;/td&gt;&lt;td&gt;return&lt;/td&gt;&lt;td&gt;CA/San&lt;sub&gt;Jose&lt;/sub&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td/&gt;&lt;td/&gt;&lt;td&gt;&lt;a href=&#39;#forecast&#39;&gt;Speaks weather forecast&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;a href=&#39;#quit&#39;&gt;Quit&lt;/a&gt;&lt;/td&gt;&lt;td&gt;q&lt;/td&gt;&lt;td&gt;Stops speech, dismisses weather forecast, and speaks current context. In this case the shell becomes current and you hear the relevant information.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;A Transcript Of What You Hear&lt;/h3&gt;

&lt;p&gt;Users who could see the video half of this demo but were not
frequent text-to-speech users reported that it would be useful to
see a transcript of what is being spoken.
I&#39;m revising this entry to have an annotated transcript.
Note that the transcript may not be accurate to the last word,
since I&#39;m typing it in by hand; however it should give one a
sense of what information emacspeak chooses to speak.&lt;/p&gt;
&lt;dl&gt;
&lt;dt id=&#39;gadget-prompt&#39;&gt;Access Gadgets&lt;/dt&gt;
&lt;dd&gt;The spoken prompt is &lt;em&gt;Resource:&lt;/em&gt;.&lt;/dd&gt;
&lt;dt id=&#39;pick-gadget&#39;&gt;Pick Gadget&lt;/dt&gt;
&lt;dd&gt;You hear me type &lt;em&gt;RS&lt;/em&gt; and then you hear Emacspeak
completing my input to &lt;em&gt;RSSWeather&lt;/em&gt;.
Half way through that utterance, I know it&#39;s found the right
gadget, so I hit enter, and that stops the utterance
&lt;em&gt;RSSWeather&lt;/em&gt; half-way through and speaks the next prompt.
Notice that you also hear auditory icons to indicate that a
prompt input area just opened.&lt;/dd&gt;
&lt;dt id=&#39;location&#39;&gt;Location&lt;/dt&gt;
&lt;dd&gt;With the gadget now selected, you hear the
&lt;em&gt;City/State&lt;/em&gt; prompt generated by the weather gadget.
It also produces a default location of &lt;em&gt;CA/San_Jose&lt;/em&gt;.
In the demo, you hear the &lt;em&gt;State/City&lt;/em&gt; prompt, along with
the default value. I hit enter  midway through that utterance,
again the speech flushes immediately.
The gadget  now has enough information to do its work; it pulls
the RSS feed from Wunderground, converts it to XHTML (using XSLT)
and displays the page using Emacs/W3. Once displayed, it starts
speak the forecast you see on the screen.&lt;/dd&gt;
&lt;dt id=&#39;forecast&#39;&gt;Forecast&lt;/dt&gt;
&lt;dd&gt;Here is a rough transcript of what you hear  as the weather
forecast is spoken. The forecast starts with the words:
&lt;em&gt;Conditions 73 degrees F Partly cloudy 4:50pm PDT  August 18   ...&lt;/em&gt;
This is  in a lower-pitched (deeper) voice since it  was
generated from the title of the corresponding RSS item. Emacspeak
uses Aural CSS to produce such audio formatted information.
The contents of the item are spoken in the default voice starting
with the utterance &lt;em&gt;Temperature 73 degrees F 23 degrees C ... Conditions partly cloudy ...&lt;/em&gt;
When I&#39;ve  heard enough, I hit &lt;code&gt;q&lt;/code&gt; to quit.&lt;/dd&gt;
&lt;dt id=&#39;quit&#39;&gt;Quit&lt;/dt&gt;
&lt;dd&gt;When I quit the weather gadget, a number of things happen.
&lt;ul&gt;
&lt;li&gt;You hear auditory icon &lt;em&gt;close-object&lt;/em&gt; to indicate the
weather forecast being dismissed.&lt;/li&gt;
&lt;li&gt;You hear context information indicating that the Emacs
&lt;em&gt;shell buffer&lt;/em&gt; has now become current.&lt;/li&gt;
&lt;li&gt;For this context information, you hear it speak the working
directory of the shell buffer and the word &lt;em&gt;shell&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/dd&gt;
&lt;/dl&gt;
    &lt;/div&gt;
  </content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/1202544555524691864'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/1202544555524691864'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2007/09/emacspeak-video-demo-looking-up-weather.html' title='Emacspeak Video Demo: Looking Up The Weather'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-8800123492922037657</id><published>2007-08-31T17:47:00.001-07:00</published><updated>2007-08-31T17:47:35.278-07:00</updated><title type='text'>Emacspeak And GMail</title><content type='html'>
    &lt;div xmlns=&#39;http://www.w3.org/1999/xhtml&#39;&gt;
&lt;p&gt;
See this 
&lt;a href=&#39;http://groups.google.com/group/accessible/msg/51153b28f91064bd&#39;&gt;article&lt;/a&gt;
by my Google colleague Srinivas Annam that outlines the
availability of GMail Filters from the basic HTML interface.
This was the final piece that remained to convince me to use my
GMail account for email --- now, keeping the GMail Inbox clean
and free of clutter 
has become a snap.&lt;/p&gt;
&lt;p&gt;To go with this, I&#39;ve added a few smart URL templates to
Emacspeak&#39;s &lt;em&gt;Web Command Line&lt;/em&gt;.
Once you&#39;ve signed in, you can use 
template &lt;code&gt;GMail Search&lt;/code&gt;
to type a search term, and find matching mesages.
Note that GMail uses CSS class &lt;code&gt;msg&lt;/code&gt;
to tag the actual contents of a message. You can use this to
advantage by hitting &lt;code&gt;e c&lt;/code&gt;
on a message link, and specifying &lt;code&gt;msg&lt;/code&gt; as the class
value to filter the message.&lt;/p&gt;
&lt;p&gt;At some point I&#39;ll add a couple of Emacspeak wizards for
creating filters; the present HTML interface is still a bit too
click intensive for my liking.
But cudos to Srinivas for doing the hard work that lets me
discover the pain points in the HTML interface; until now these
were completely invisible to me since I couldn&#39;t  
use GMail from 
the Emacspeak environment.&lt;/p&gt;
&lt;p&gt;Emacs/W3 note: Note that signing in to GMail from the main
GMail screen defeats W3.
An easy work-around, and something that is more efficient anyway
is to use 
the &lt;code&gt;glogin.xml&lt;/code&gt; form found in Emacspeak --- use

&lt;code&gt;C-e ?/&lt;/code&gt; in Emacspeak to pick  that form.
Once you&#39;re signed in to Google, you can:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Open your &lt;a href=&#39;http://mail.google.com/mail/h/&#39;&gt;inbox
&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Perform searches to find the message you want&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;
  </content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/8800123492922037657'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/8800123492922037657'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2007/08/emacspeak-and-gmail.html' title='Emacspeak And GMail'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-6242165765529911042</id><published>2007-08-17T17:24:00.001-07:00</published><updated>2007-08-17T17:24:25.613-07:00</updated><title type='text'>AMixer And Emacspeak: Controlling The Sound Card</title><content type='html'>
   &lt;div xmlns=&#39;http://www.w3.org/1999/xhtml&#39;&gt;
&lt;p&gt;In the days of OSS, Emacspeak had a nice Emacs-interface to
&lt;code&gt;aumix&lt;/code&gt;
and it is a piece of functionality that I have missed even more
under ALSA,
given that one can do many more sophisticated tweaks to one&#39;s
sound-card.
Tool &lt;code&gt;alsamixer&lt;/code&gt; --- a full-screen  terminal
application is bewilderingly confusing (at least to me),
and &lt;code&gt;amixer&lt;/code&gt; though usable required me to go find out
how it worked  each time I needed  to do something new.
The final straw came last weekend when I tried to record some
Emacspeak demos using &lt;code&gt;recordmydesktop&lt;/code&gt;
and needed to configure ALSA so that it would capture sound
directly from the PCM output, rather than the microphone.&lt;/p&gt;
&lt;p&gt;To cut a short story even shorter,
I ended up writing  an Emacs wrapper around &lt;code&gt;amixer&lt;/code&gt;
called  --- well, you guessed it, &lt;code&gt;amixer&lt;/code&gt;.
The code is checked in as 
&lt;a href=&#39;http://emacspeak.googlecode.com/svn/trunk/lisp/amixer.el&#39;&gt;amixer.el&lt;/a&gt;.
The Emacspeak keybinding &lt;code&gt;C-e (&lt;/code&gt; formerly used to
manipulate &lt;code&gt;aumix&lt;/code&gt; is now ALSA-aware 
and will intelligently default to using the new
&lt;code&gt;amixer&lt;/code&gt; tool if  
&lt;code&gt;/usr/bin/amixer&lt;/code&gt; is available.
&lt;/p&gt;
    &lt;/div&gt;
  </content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/6242165765529911042'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/6242165765529911042'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2007/08/amixer-and-emacspeak-controlling-sound.html' title='AMixer And Emacspeak: Controlling The Sound Card'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-3966633935155467643</id><published>2007-08-07T07:37:00.001-07:00</published><updated>2007-08-07T07:37:55.545-07:00</updated><title type='text'>The Web The Way You Want</title><content type='html'>
    &lt;div xmlns=&#39;http://www.w3.org/1999/xhtml&#39;&gt;
&lt;p&gt;While working on miscellaneous Web related things
including:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Working on the &lt;a href=&#39;http://www.w3.org/2001/tag/&#39;&gt;W3C TAG&lt;/a&gt;  in trying to understand how  HTML
TagSoup and 
well-formed markup  might co-exist on the Web --- without the bad
perennially  driving out the good,&lt;/li&gt;
&lt;li&gt;Thinking about the Web Command Line, and placing various 
Web gadget/widget technologies in perspective,&lt;/li&gt;
&lt;li&gt;Building &lt;a href=&#39;http://emacspeak.googlecode.com/svn/trunk/lisp/g-client&#39;&gt;Emacs-G-Client&lt;/a&gt; --- an Emacs client for
&lt;a href=&#39;http://groups.google.com/group/emacs-g-client/&#39;&gt;Google services&lt;/a&gt;,&lt;/li&gt;
&lt;li&gt;Connecting Emacs and Firefox
via &lt;a href=&#39;http://dev.hyperstruct.net/mozlab/wiki/MozRepl&#39;&gt;MozREPL&lt;/a&gt;
to get the best of both
worlds ,&lt;/li&gt;
&lt;li&gt;Refactoring some of the Web-related code in Emacspeak to
better reflect the underlying ideas,&lt;/li&gt;
&lt;li&gt;Adding additional Web goodies to Emacspeak including 
&lt;a href=&#39;http://emacspeak.blogspot.com/2007/08/google-suggest-minibuffer-completion.html&#39;&gt;Google
Suggest&lt;/a&gt; in the Emacs minibuffer,&lt;/li&gt;
&lt;li&gt;And items too numerous to fit in this margin ...&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I also wrote a 
&lt;a href=&#39;http://emacspeak.sourceforge.net/raman/publications/specialized-browsers/&#39;&gt;draft chapter&lt;/a&gt; on specialized Web browsing.
Given the set of things I have been working on, the end result is
to point out that given the architecture and underlying design
principles of the Web as embodied by HTTP, URIs and HTML,
specialized Web browsing is in fact not so specialized after all.
&lt;/p&gt;

    &lt;/div&gt;
  </content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/3966633935155467643'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/3966633935155467643'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2007/08/web-way-you-want.html' title='The Web The Way You Want'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-9102554332128282848</id><published>2007-08-02T07:27:00.001-07:00</published><updated>2007-08-02T07:27:07.084-07:00</updated><title type='text'>Google Suggest: Minibuffer Completion When Googling</title><content type='html'>
    &lt;div xmlns=&#39;http://www.w3.org/1999/xhtml&#39;&gt;
&lt;p&gt;Google Suggest has been available until now as a Firefox
extension --- it  
displays a dynamically generated list of completions as one does
Google searches in Firefox.
The prefered way of Googling on the Emacspeak audio desktop 
--- using Emacspeak&#39;s Websearch facility available via &lt;code&gt;C-e ?&lt;/code&gt;
is now &lt;em&gt;Google-Suggest&lt;/em&gt; enabled. This means that when
doing Google searches via 
&lt;code&gt;C-e ?g&lt;/code&gt;, you can type a partial query, and hit &lt;code&gt;TAB&lt;/code&gt;
to get a list of possible completions for the query.
&lt;/p&gt;
    &lt;/div&gt;
  </content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/9102554332128282848'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/9102554332128282848'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2007/08/google-suggest-minibuffer-completion.html' title='Google Suggest: Minibuffer Completion When Googling'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-4669909173874561800</id><published>2007-07-24T07:42:00.001-07:00</published><updated>2007-07-24T07:42:15.194-07:00</updated><title type='text'>Emacspeak WebMarks: Online Bookmarks Using Google</title><content type='html'>
    &lt;div xmlns=&#39;http://www.w3.org/1999/xhtml&#39;&gt;
&lt;p&gt;Emacspeak module &lt;code&gt;emacspeak-webmarks&lt;/code&gt;
adds support for adding, viewing and finding Google Bookmarks.
Google Bookmarks allows you to store your bookmarks at Google;
this module adds support similar to that provided by Firefox
Bookmarklets for Google Bookmarks implemented in  JavaScript.
Note that this module though relatively small was one of the
motivators for the code refactoring described in 
&lt;a href=&#39;http://emacspeak.blogspot.com/2007/07/web-interaction-in-emacspeak.html&#39;&gt;Web
Interaction in Emacspeak&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;Usage Tips&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;To use &lt;em&gt;Webmarks&lt;/em&gt;, you need to be signed into Google.&lt;/li&gt;
&lt;li&gt;Signing in to Google is easily done using the Webform
provided as 
&lt;code&gt;xml-forms/glogin.html&lt;/code&gt; in the Emacspeak distribution
--- invoke it via key &lt;code&gt;C-e?/&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;In addition, the very first time you use Google Bookmarks,
add your first bookmark using form
&lt;code&gt;xml-forms/bookmark-add.html&lt;/code&gt;.
Fill out that form, hit submit, and extract the value the
&lt;code&gt;zx&lt;/code&gt; parameter returned by the server.&lt;/li&gt;
&lt;li&gt;Use emacs Custom to save the value of the &lt;code&gt;zx&lt;/code&gt;
parameter as  Emacs option
&lt;code&gt;emacspeak-webmarks-key&lt;/code&gt;.&lt;/li&gt;

&lt;/ul&gt;
    &lt;/div&gt;
  </content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/4669909173874561800'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/4669909173874561800'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2007/07/emacspeak-webmarks-online-bookmarks.html' title='Emacspeak WebMarks: Online Bookmarks Using Google'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-680447884170689543</id><published>2007-07-24T07:32:00.001-07:00</published><updated>2007-07-24T07:32:16.956-07:00</updated><title type='text'>Web Interaction In Emacspeak</title><content type='html'>
    &lt;div xmlns=&#39;http://www.w3.org/1999/xhtml&#39;&gt;
&lt;p&gt;Users running out of SVN will have noticed that the emacspeak
codebase has  seen a significant number of updates over the last
couple of weeks.
During this time, I&#39;ve refactored the Web interaction code in
Emacspeak  to meet the following goals:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;All Emacspeak Web smarts have now been re-factored to be
independent of any given Web browser. In practice, this avoids
code duplication between W3 and W3M support.&lt;/li&gt;
&lt;li&gt;The interface to XSLT has been significantly improved.&lt;/li&gt;
&lt;li&gt;When using W3, Emacspeak automatically builds a cache of CSS
&lt;code&gt;classnames&lt;/code&gt; and &lt;code&gt;ids&lt;/code&gt; occuring on the
page.
These are then used to provide interactive completion when
invoking commands 
&lt;code&gt;emacspeak-extract-by-id&lt;/code&gt; (bound to &lt;code&gt;e i&lt;/code&gt;
in Web pages)
and &lt;code&gt;emacspeak-we-extract-by-class&lt;/code&gt; (bound to &lt;code&gt;e
c&lt;/code&gt; in Web pages).&lt;/li&gt;
&lt;li&gt;Module &lt;code&gt;emacspeak-we&lt;/code&gt; holds all code related to
&lt;em&gt;editing&lt;/em&gt;
Web pages before they are displayed.&lt;/li&gt;
&lt;li&gt;Module &lt;code&gt;emacspeak-webutils&lt;/code&gt; holds all Web utility
code.&lt;/li&gt;
&lt;li&gt;Atom and RSS feeds are now pulled using Emacs-22 built-in
library &lt;code&gt;url&lt;/code&gt;
rather than via libxslt. This has the advantage that the feeds
are pulled with any cookies the browser may have set during the
session.&lt;/li&gt;
&lt;li&gt;All &lt;code&gt;url templates&lt;/code&gt;, &lt;code&gt;search wizards&lt;/code&gt;
and related Web utilities should now be capable of working
similarly under W3 and W3M.&lt;/li&gt;
&lt;li&gt;Module &lt;code&gt;emacspeak-moz&lt;/code&gt; provides a basic level of
integration with Firefox --- see my related blog post on 
&lt;a href=&#39;http://emacspeak.blogspot.com/2007/06/firebox-put-fox-in-box.html&#39;&gt;FireBox&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Module &lt;code&gt;emacspeak-w3m&lt;/code&gt; still needs work to take
advantage of all of these changes; I myself do not use W3M much,
so those updates will happen as and when W3M users contribute the
necessary time and patches.&lt;/li&gt;
&lt;/ul&gt;
    &lt;/div&gt;
  </content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/680447884170689543'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/680447884170689543'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2007/07/web-interaction-in-emacspeak.html' title='Web Interaction In Emacspeak'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-4720434896090389967</id><published>2007-07-24T07:20:00.001-07:00</published><updated>2007-07-24T07:20:51.938-07:00</updated><title type='text'>Emacs-G-Client: Leveraging New Picasa API Features</title><content type='html'>
    &lt;div xmlns=&#39;http://www.w3.org/1999/xhtml&#39;&gt;
&lt;p&gt;
The Google Picasa team announced a set of 
&lt;a href=&#39;http://www.blogger.com/feeds/20280042/posts/default&#39;&gt;useful
additions&lt;/a&gt;
to the Picasa Web API yesterday. I&#39;ve added support for most of
these new features in module &lt;a href=&#39;http://emacspeak.googlecode.com/svn/trunk/lisp/g-client/gphoto.el&#39;&gt;gphoto&lt;/a&gt;
that is part of my Emacs &lt;code&gt;G-Client&lt;/code&gt; package.&lt;/p&gt;
&lt;p&gt;You can get the latest version of package
&lt;em&gt;Emacs-G-Client&lt;/em&gt;
via &lt;a href=&#39;http://emacspeak.googlecode.com/svn/trunk/lisp/g-client&#39;&gt;SVN&lt;/a&gt;.
Note that  this  development version 
of package &lt;em&gt;Emacs-G-Client&lt;/em&gt; also includes a light-weight
client for finding and playing YouTube videos.&lt;/p&gt;
    &lt;/div&gt;
  </content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/4720434896090389967'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/4720434896090389967'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2007/07/emacs-g-client-leveraging-new-picasa.html' title='Emacs-G-Client: Leveraging New Picasa API Features'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-3172131081751645903</id><published>2007-07-19T09:52:00.001-07:00</published><updated>2007-07-19T09:52:52.881-07:00</updated><title type='text'>Emacspeak And Beautiful Code</title><content type='html'>
    &lt;div xmlns=&#39;http://www.w3.org/1999/xhtml&#39;&gt;
    
&lt;p&gt;
In the fall of 2006, I was invited by O&#39;Reilly Media to
participate in an innovative book project called &lt;em&gt;Beautiful
Code&lt;/em&gt;.
The project put together a set of chapters that focused on
capturing the collected insight  from creating real
software. A particularly attractive aspect of this book was that
it focused on &lt;em&gt;code&lt;/em&gt;
--- unlike many  book projects in the field of software
engineering, here the goal was to &lt;em&gt;explicitly&lt;/em&gt;
focus on real code and how it could be made beautiful.
&lt;/p&gt;
&lt;p&gt;The &lt;a href=&#39;http://www.oreilly.com/catalog/9780596510046/&#39;&gt;final
book&lt;/a&gt; is now available in print.
The chapter on Emacspeak is being published on this Web site
under a &lt;strong class=&#39;license&#39;&gt;Creative Common Licence&lt;/strong&gt;
--- this &lt;a href=&#39;http://emacspeak.sourceforge.net/raman/publications/bc-emacspeak/publish-emacspeak-bc.html&#39;&gt;HTML version&lt;/a&gt;
includes  &lt;em&gt;Chapter 31: Emacspeak  --- The Complete Audio
Desktop&lt;/em&gt;
and the &lt;em&gt;Afterword&lt;/em&gt; section from the book.&lt;/p&gt;
  
    &lt;/div&gt;
  </content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/3172131081751645903'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/3172131081751645903'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2007/07/emacspeak-and-beautiful-code.html' title='Emacspeak And Beautiful Code'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-2630586147007342952</id><published>2007-07-06T17:53:00.001-07:00</published><updated>2007-07-06T17:53:34.992-07:00</updated><title type='text'>Searching The Emacspeak Knowledge Base</title><content type='html'>
    &lt;div xmlns=&#39;http://www.w3.org/1999/xhtml&#39;&gt;
&lt;p&gt;Information about Emacspeak and its use is available from a
collection of Web sites,
and being able to restrict the search to these authoritative
sources 
is a good way of quickly finding the right document, without
being distracted by the numerous hits one finds  when doing a
search across the whole Web.
You can now search the &lt;em&gt;Emacspeak Knowledge Base&lt;/em&gt;
by using search form &lt;code&gt;emacspeak-search.html&lt;/code&gt;;
access it via Emacspeak command  &lt;code&gt;emacspeak-websearch&lt;/code&gt;
and specify &lt;code&gt;/&lt;/code&gt;to bring up the list of available
forms.
This form is also the default search form on the Emacspeak Web
site.&lt;/p&gt;
&lt;H2&gt;HowTo: Implement Emacspeak Knowledge Base Search&lt;/H2&gt;
&lt;p&gt;
Implementing the above using CSE is trivial ---
all I needed to do was:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Checked in an HTML file into the Emacspeak  repository at
&lt;a href=&#39;http://emacspeak.googlecode.com/svn/trunk/html/kb.html&#39;&gt;Knowledge
Base&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Create a CSE that uses the above document.&lt;/li&gt;
&lt;/ol&gt;


    &lt;/div&gt;
  </content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/2630586147007342952'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/2630586147007342952'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2007/07/searching-emacspeak-knowledge-base.html' title='Searching The Emacspeak Knowledge Base'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-7313367975327047017</id><published>2007-07-06T17:45:00.001-07:00</published><updated>2007-07-06T17:45:39.582-07:00</updated><title type='text'>Emacs G-Client, Reader, And CSE: Searching Past Articles From Google&#xa;Reader</title><content type='html'>
    &lt;div xmlns=&#39;http://www.w3.org/1999/xhtml&#39;&gt;
&lt;p&gt;So I use module &lt;code&gt;greader&lt;/code&gt; (part of package &lt;a href=&#39;http://emacspeak.googlecode.com/svn/trunk/lisp/g-client&#39;&gt;G-Client&lt;/a&gt;
to read a large number of ATOM and RSS feeds. I have long missed
the ability to search for articles I remember having read a few
weeks or months ago;
though I typically find it with an appropriately phrased Google
Search, 
I&#39;ve always wanted to have the ability to restrict the search to
the feeds I subscribe to --- this makes formulating   the query
much easier.&lt;/p&gt;
&lt;p&gt;The advent of CSEs --- see my earlier blog post 
entitled &lt;a href=&#39;http://emacspeak.blogspot.com/2007/06/making-search-fly-on-fly-custom-search.html&#39;&gt;On
The Fly Custom Search&lt;/a&gt;
combined with Google Reader&#39;s ability to export ones subscription
list as an OPML file gives me exactly what  I needed.&lt;/p&gt;

&lt;h2&gt;HowTo: Enable Searching Of  Past Articles From Google
Reader&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Since you need to be signed in to access the subscription
list, the &lt;em&gt;CSE magic&lt;/em&gt; cannot directly retrieve 
your subscription list at present.
as a consequence, you need to retrieve and save your list of
feeds   to a location that is publicly accessible.
Feature Request: Would be nice if Reader did this automatically
by talking to CSE on behalf of the signed-in user --- that would
obviate the next manual step.&lt;/li&gt;
&lt;li&gt;Export your subscription list using command
&lt;code&gt;greader-opml&lt;/code&gt;.
You&#39;ll need to do  an &lt;code&gt;svn update&lt;/code&gt;
to get the above command; alternatively, sign in to Google and
retrieve your 
&lt;a href=&#39;http://www.google.com/reader/subscriptions/export&#39;&gt;
subscription list&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Finally,   customize emacspeak option 
&lt;code&gt;emacspeak-url-template-reading-list-opml&lt;/code&gt; to the
location of the saved OPML file.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now, you can use Emacspeak &lt;code&gt;url template&lt;/code&gt;
&lt;em&gt;reader subscription search&lt;/em&gt; from the Emacspeak Web
Command Line to search articles you remember having seen in your
Google Reader. This is also an excellent means of finding
articles of interest that one might have missed in the past.
As an example, I recently became interested in Selenium --- an
extremely powerful Web application testing framework.
Finding articles from the past that I &lt;em&gt;ought to have read&lt;/em&gt;
but hadn&#39;t was a snap using the feature describe here.&lt;/p&gt;
    &lt;/div&gt;
  </content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/7313367975327047017'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/7313367975327047017'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2007/07/emacs-g-client-reader-and-cse-searching.html' title='Emacs G-Client, Reader, And CSE: Searching Past Articles From Google&#xa;Reader'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-6365820278984298699</id><published>2007-07-03T16:28:00.001-07:00</published><updated>2007-07-03T16:28:35.806-07:00</updated><title type='text'>Google Books In Emacspeak</title><content type='html'>
    &lt;div xmlns=&#39;http://www.w3.org/1999/xhtml&#39;&gt;
&lt;p&gt;To coincide with today&#39;s announcement of 
&lt;a href=&#39;http://googleblog.blogspot.com/2007/07/ever-more-books-to-read.html&#39;&gt;gull-text
access to public domain works&lt;/a&gt;
from Google Books, I&#39;ve updated the corresponding emacspeak Web Command-Line
wizard. Use &lt;code&gt;C-e u&lt;/code&gt; to invoke &lt;em&gt;URL templates&lt;/em&gt;
and type  &lt;code&gt; google books&lt;/code&gt; to access it.&lt;/p&gt;
    &lt;/div&gt;
  </content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/6365820278984298699'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/6365820278984298699'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2007/07/google-books-in-emacspeak.html' title='Google Books In Emacspeak'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-4597026201724531986</id><published>2007-06-28T16:58:00.001-07:00</published><updated>2007-06-29T13:52:38.358-07:00</updated><title type='text'>Making Search Fly: On-The-Fly Custom Search Engines</title><content type='html'>
    &lt;div xmlns=&#39;http://www.w3.org/1999/xhtml&#39;&gt;
&lt;p&gt;
The Custom Search  Engine team at Google recently released 
&lt;a href=&#39;http://googlecustomsearch.blogspot.com/2007/06/custom-search-on-fly.html&#39;&gt;CSE
On The Fly&lt;/a&gt;
a truly amazing feature. Incidentally Google Custom Search is the
same piece of magic that brought us 
&lt;a href=&#39;http://labs.google.com/accessible/&#39;&gt;Accessible
Search&lt;/a&gt; last year.&lt;/p&gt;
&lt;p&gt;So in the spirit of continuing to enhance the Web Command Line
in Emacspeak for every smart Web tool that becomes available,
I&#39;ve checked in two new &lt;code&gt;url templates&lt;/code&gt;
that demonstrate how one can  leverage this to be smart  and
selective about what one reads.&lt;/p&gt;
&lt;dl&gt;
&lt;dt&gt;Searching Favorite Feeds&lt;/dt&gt;
&lt;dd&gt;So I read a lot of Blogs, my current Blog Reader is Google
Reader via --- you guessed it -- Emacs module 
&lt;a href=&#39;http://emacspeak.googlecode.com/svn/trunk/lisp/g-client/greader.el&#39;&gt;GReader&lt;/a&gt;
(part of the Emacs G-Client package).
But I often  feel the need to search my favorite feeds.
URL-template &lt;code&gt;Reader Subscriptions&lt;/code&gt;
lets you do this; what&#39;s more it&#39;s not specific to Google
Reader. All you need do is to publish an OPML file listing  your
favorite feeds  and customize Emacs variable
&lt;code&gt;emacspeak-url-template-reading-list-opml&lt;/code&gt;
to point to that location.&lt;/dd&gt;
&lt;dt&gt;Official GoogleBlog Search&lt;/dt&gt;
&lt;dd&gt;Google has a large number of Google-specific Blogs --- I
usually read them through this &lt;em&gt;aggregated&lt;/em&gt; feed:
&lt;a href=&#39;http://www.google.com/reader/public/subscriptions/user/10949413115399023739/label/officialgoogleblogs-all&#39;&gt;All
  GoogleBlog Stream&lt;/a&gt;
Emacspeak wizard &lt;code&gt;Official GoogleBlog Search&lt;/code&gt; builds a
CSE from this feed to let you search articles from all of
Google&#39;s  blogs.&lt;/dd&gt;
&lt;/dl&gt;
&lt;p&gt;Eventually, I&#39;ll also add a &lt;em&gt;meta&lt;/em&gt; search wizard that
lets  one construct any CSE on the fly --- with Lisp such
meta-programming is a snap!&lt;/p&gt;
&lt;p&gt;Later yesterday evening, I checked in a third
&lt;code&gt;url-template&lt;/code&gt;
called &lt;em&gt;On The Fly CSE&lt;/em&gt; that prompts for a search term and
the URL for the  feed of feeds  that specifies the content to search.&lt;/p&gt;
    &lt;/div&gt;
  </content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/4597026201724531986'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/4597026201724531986'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2007/06/making-search-fly-on-fly-custom-search.html' title='Making Search Fly: On-The-Fly Custom Search Engines'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-4040590380117175204</id><published>2007-06-26T07:32:00.001-07:00</published><updated>2007-06-26T07:32:25.229-07:00</updated><title type='text'>Emacs-G-Client: Uploading Photos To PicasaWeb</title><content type='html'>
    &lt;div xmlns=&#39;http://www.w3.org/1999/xhtml&#39;&gt;
&lt;p&gt;The SVN version of package Emacs-G-Client 
at &lt;a href=&#39;http://emacspeak.googlecode.com/svn/trunk/lisp/g-client&#39;&gt;
g-client&lt;/a&gt; now includes a new module &lt;code&gt;gphoto.el&lt;/code&gt;
that can create albums and upload photos to Google&#39;s PicasaWeb
site --- as an example, see &lt;a href=&#39;http://picasaweb.google.com/tv.raman.tv&#39;&gt;my photo
gallery&lt;/a&gt;.
Emacspeak users are likely to find the RSS and ATOM feeds for
photo albums   more useful in general; package
&lt;code&gt;gphoto&lt;/code&gt;
provides easy access to previewing these feeds
as well as viewing/editting  the metadata that goes along with
the pictures.
As an example of such a feed, here is 
&lt;a href=&#39;http://picasaweb.google.com/data/feed/api/user/tv.raman.tv/albumid/5067595712573880865&#39;&gt;Hubbell
Labrador&#39;s Graduation&lt;/a&gt; album.&lt;/p&gt;

    &lt;/div&gt;
  </content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/4040590380117175204'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/4040590380117175204'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2007/06/emacs-g-client-uploading-photos-to.html' title='Emacs-G-Client: Uploading Photos To PicasaWeb'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-511307680430077326</id><published>2007-06-26T07:11:00.001-07:00</published><updated>2007-06-26T07:11:01.779-07:00</updated><title type='text'>Multilingual Dictionary Lookup Via Google</title><content type='html'>
    &lt;div xmlns=&#39;http://www.w3.org/1999/xhtml&#39;&gt;
&lt;p&gt;From the &lt;q&gt;every useful Google tool deserves a Web Command
-line equivalent ...&lt;/q&gt;&lt;/p&gt;

&lt;p&gt;
I just checked in  an Emacspeak &lt;code&gt;url-template&lt;/code&gt;
for accessing 
&lt;a href=&#39;http://googleblog.blogspot.com/2007/06/new-dictionary-translations.html&#39;&gt;multilingual dictionary lookup&lt;/a&gt; via Google.
Invoke it like any other &lt;code&gt;url-template&lt;/code&gt; using
&lt;code&gt;C-e u&lt;/code&gt; and type &lt;code&gt;mult tab&lt;/code&gt;.
Specify the word to look up, and the source-target language pair
using two letter codes --- this is analogous to how the Emacspeak
&lt;code&gt;Translation Via Google&lt;/code&gt;
tool  works.
And remember, if there is something you find yourself doing often
on the Web, there is most likely an Emacspeak 
&lt;a href=&#39;http://emacspeak.blogspot.com/2005/12/emacspeak-web-tricks-web-command-line.html&#39;&gt;Web
Command Line&lt;/a&gt;
gadget for it --- well, at least that is true for the things I
find myself  doing often;-)&lt;/p&gt;

    &lt;/div&gt;
  </content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/511307680430077326'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/511307680430077326'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2007/06/multilingual-dictionary-lookup-via.html' title='Multilingual Dictionary Lookup Via Google'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-4232278061050475592</id><published>2007-06-22T17:28:00.001-07:00</published><updated>2007-06-22T17:28:20.541-07:00</updated><title type='text'>FireBox: Put The Fox In The Box</title><content type='html'>
    &lt;div xmlns=&#39;http://www.w3.org/1999/xhtml&#39;&gt;
&lt;p&gt;
  I&#39;ve finally found the right development environment for myself
  for writing and debugging Web Applications that use JavaScript to
  implement client-side interaction.
It turns out that it wasn&#39;t just me who found the thought of
programming inside the Web browser a painful experience ---
pleasant though the final end-user interaction that those results
deliver might be for the final user.
I discovered 
&lt;a href=&#39;http://dev.hyperstruct.net/mozlab/wiki/MozRepl&#39;&gt;MozRepl&lt;/a&gt;
--- a &lt;em&gt;read-eval-print&lt;/em&gt;
loop for Firefox. MozRepl is a Firefox extension that allows you
to open a connection to a running Firefox session and gain access
to  a JavaScript interpreter context that  can access all aspects
of the Firefox runtime.&lt;/p&gt;
&lt;p&gt;This is quite neat, I can now use the power of Emacs to write
and debug end-user JavaScript applications.
But wait, there is more. So in general, as someone who doesn&#39;t
need  to suffer from the hit on cycles and memory that running an X
environment involves, 
I usually dont start &lt;code&gt;GDM&lt;/code&gt; --- the graphical desktop
--- on my Linux box. Believe me, running just at the console,
especially with the LCD turned off makes my laptop run a lot
longer.
So challenge: How do you take the fox&#39;s head off Firefox?
How do you run a headless Firefox?&lt;/p&gt;
&lt;p&gt;Turns out that the original X Windows developers didn&#39;t always
have access to all the displays that they were developing X
applications for --- so they created &lt;code&gt;XVFB&lt;/code&gt; --- the X
Virtual Frame Buffer server.
Like all good things in the Open Source world, XVFB continues to
survive --- even though today, X developers hardly if ever resort
to XVFB.
But in the fine UNIX tradition of 
&lt;quote&gt;Get out of my way or I&#39;ll turn you into a shell
script&lt;/quote&gt;
XVFB also turns out to be just what I needed in order to run
FireFox as a headless application.&lt;/p&gt;
&lt;p&gt;So in summary: I&#39;m typing this blog on the shuttle bus riding
home, with the monitor turned off,
and Firefox running headless as I debug some of the code I&#39;ve
been writing.
If you want to put the fox&#39;s head in a box yourself, here is a
pointer to 
&lt;a href=&#39;http://emacspeak.googlecode.com/svn/trunk/etc/firebox&#39;&gt;FireBox&lt;/a&gt;
-- share and enjoy!
&lt;/p&gt;
    &lt;/div&gt;
  </content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/4232278061050475592'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/4232278061050475592'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2007/06/firebox-put-fox-in-box.html' title='FireBox: Put The Fox In The Box'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-8028686159404314470</id><published>2007-06-14T11:50:00.001-07:00</published><updated>2007-06-14T11:50:38.731-07:00</updated><title type='text'>Emacspeak And Beautiful Code</title><content type='html'>
    &lt;div xmlns=&#39;http://www.w3.org/1999/xhtml&#39;&gt;
&lt;p&gt;
&lt;a href=&#39;http://www.oreilly.com/catalog/9780596510046/&#39;&gt;Beautiful
Code&lt;/a&gt;
 is a collection of essays on software design, with all proceeds
 going to Amnesty International.
It includes a chapter on the use of Lisp advice 
to speech-enable Emacs --- AKA Emacspeak.
I&#39;ll eventually publish an HTML version of my article on the
emacspeak Web site. In the meantime,  I highly recommend the complete book ---
which if you need an accessible version can probably be obtained
from organizations like BookShare.&lt;/p&gt;
    &lt;/div&gt;
  </content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/8028686159404314470'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/8028686159404314470'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2007/06/emacspeak-and-beautiful-code.html' title='Emacspeak And Beautiful Code'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-2239678377295379080</id><published>2007-05-23T16:24:00.001-07:00</published><updated>2007-05-23T16:24:20.793-07:00</updated><title type='text'>Google Group For Package G-Client</title><content type='html'>
    &lt;div xmlns=&#39;http://www.w3.org/1999/xhtml&#39;&gt;
&lt;p&gt;I&#39;ve created a Google Group for package G-Client here:
&lt;a href=&#39;http://groups.google.com/group/emacs-g-client/feed/rss_v2_0_msgs.xml&#39;&gt;Emacs-G-Client&lt;/a&gt;.
If you are using package &lt;code&gt;G-Client&lt;/code&gt; you can use this
group to discuss your experiences with other users.
Note that the codebase for this package is evolving actively
under SVN at 
&lt;a href=&#39;http://emacspeak.googlecode.com/svn/trunk/lisp/g-client&#39;&gt;lisp/g-client&lt;/a&gt;
.
&lt;/p&gt;
    &lt;/div&gt;
  </content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/2239678377295379080'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/2239678377295379080'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2007/05/google-group-for-package-g-client.html' title='Google Group For Package G-Client'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-9167321870051729186</id><published>2007-05-19T11:29:00.001-07:00</published><updated>2007-05-19T11:29:48.278-07:00</updated><title type='text'>An Essay On Eyes-Free Computing</title><content type='html'>
    &lt;div xmlns=&#39;http://www.w3.org/1999/xhtml&#39;&gt;
&lt;div&gt;
&lt;p&gt; I just posted an essay on 
&lt;a href=&#39;http://mathzome.blogspot.com/2007/05/thinking-of-mathematics.html&#39;&gt;eyes-free computing&lt;/a&gt;
to my
&lt;a href=&#39;http://mathzome.blogspot.com/feeds/posts/default&#39;&gt;MathZome&lt;/a&gt;blog.
This essay highlights the relevance of 
&lt;a href=&#39;http://www.georgehart.com/virtual-polyhedra/zometool.html&#39;&gt;ZomeTool&lt;/a&gt;
in teaching
mathematical concepts to students who are visually impaired. More
generally, it describes my experiences as a mathematician who
cannot see.  I&#39;m posting the abstract here; the
&lt;a href=&#39;http://emacspeak.sourceforge.net/raman/publications/thinking-of-math/&#39;&gt;
 complete essay&lt;/a&gt; can be found on my Web site.&lt;/p&gt;
&lt;p&gt;The experiences described in this essay have influenced the
  software I  have built and use on a daily basis; it should be
  of interest to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#39;http://emacspeak.sf.net&#39;&gt;Emacspeak&lt;/a&gt; users wishing
to understand why things  look like the way they do in
Emacspeak.&lt;/li&gt;
&lt;li&gt;Students with visual impairments who are entering the field
of mathematics.&lt;/li&gt;
&lt;li&gt;Teachers working with visually impaired students.&lt;/li&gt;
&lt;li&gt;And the generally curious mathematician who wishes to view
the world from a different perspective.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Abstract&lt;/h3&gt;
&lt;p&gt;
  This essay outlines some of my experiences as a mathematician
  who cannot see. Note that I transitioned to being a Computer
  Scientist during Graduate School. However I strongly believe in
  the edict &lt;q&gt;Once a mathematician, always a mathematician!&lt;/q&gt;
  — my training in mathematics continues to influence the
  way I think.
&lt;/p&gt;
&lt;p&gt;
  I&#39;ve been unable to see since the age of 14, which means that
  I&#39;ve studied and practiced mathematics predominantly in an
  eyes-free environment. This essay is my first conscious attempt
 at asking the question &lt;q&gt;What is involved in doing mathematics
  when you cannot see?&lt;/q&gt; I hope that some of the
  experiences outlined here will prove insightful to
  mathematicians at large. At its heart, mathematics is about
  understanding the underlying structure inherent in a given area
  of interest — and where no such structure exists — to
  define the minimal structure that is needed to make forward
  progress.
&lt;/p&gt;
&lt;p&gt;
  The general perception that mathematics might be hard to do in
  an eyes-free environment probably traces itself to the common
  view of mathematics as a field where one performs copious
  calculations on paper. I&#39;ll illustrate some of the habits and
  abilities one evolves over time to compensate for the lack of
  ready access to &lt;em&gt;scratch memory&lt;/em&gt; provided by pencil and
  paper when working in an eyes-free environment. In this essay,
  I hope to demonstrate that mathematics in its essence is
  something far bigger. By being bigger than &lt;q&gt;calculations on
  paper&lt;/q&gt;, not being able to see rarely if ever proves an
  obstacle when it comes to doing mathematics; the challenges one
  needs to overcome are primarily centered around gaining access
  to mathematical material, and communicating ones insights with
  fellow mathematicians. Thus, a large portion of this essay
  focuses on solutions to the challenges inherent in mathematical
  communication.
&lt;/p&gt;

    &lt;/div&gt;
    &lt;/div&gt;
  </content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/9167321870051729186'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/9167321870051729186'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2007/05/essay-on-eyes-free-computing.html' title='An Essay On Eyes-Free Computing'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-4558730293999009024</id><published>2007-05-16T07:41:00.001-07:00</published><updated>2007-05-16T07:41:46.242-07:00</updated><title type='text'>Updates To G-Client</title><content type='html'>
    &lt;div xmlns=&#39;http://www.w3.org/1999/xhtml&#39;&gt;
&lt;p&gt;If you use &lt;code&gt;g-client&lt;/code&gt; within Emacspeak to access
Google Services, you might want to read 
&lt;a href=&#39;http://emacsgeek.blogspot.com/2007/05/updates-to-g-client.html&#39;&gt;G-Client Updates&lt;/a&gt;.&lt;/p&gt;
    &lt;/div&gt;
  </content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/4558730293999009024'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/4558730293999009024'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2007/05/updates-to-g-client.html' title='Updates To G-Client'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-9051371237271911295</id><published>2007-05-09T13:12:00.001-07:00</published><updated>2007-05-09T13:12:24.777-07:00</updated><title type='text'>Web 2.0 And The Emacspeak Audio Webtop</title><content type='html'>
    &lt;div xmlns=&#39;http://www.w3.org/1999/xhtml&#39;&gt;
&lt;p&gt;Blogging while at WWW 2007.
I attended the W3C AC meeting the first two days of the week. The
highlight for me from the AC (Advisory Committee meeting was a
panel consisting  of TimBL and Tim OReilly at the end of the day
yesterday. It was fun to hear Tim OReilly  define Web-2.0 --- he
is credited with originally coining the term, but in the last
year, Web 2.0 has often been lightly equated to  
dynamic Web applications that use JavaScript to the extent that
many assume that anything that doesn&#39;t  use JavaScript is not
Web-2.0!&lt;/p&gt;
&lt;p&gt;The gist of Tim O&#39;s definition of Web-2.0 was 
to point out that once  the Web had gained sufficient coverage
and scale, it became possible to build application services on
this Web that drew their value from aggregating the data on the
Web; his examples ranged from Google to Amazon.
His comments were insightful --- my own view now is that Web-2.0
should have been called Web^2 i.e. this current revolution is
about applying the power of the Web to itself.
&lt;/p&gt;
&lt;p&gt;The other amusing piece while running around at the conference
and observing what everyone is working on is to realize that now
that &lt;em&gt;Web Gadgets&lt;/em&gt; and the like are popular, it&#39;s now
considered a fine idea to write light-weight site-specific
tools. Notice that Emacspeak has had this since the late 90&#39;s in
the form of first the &lt;em&gt;websearch&lt;/em&gt; module, to be later
joined by &lt;em&gt;url-templates&lt;/em&gt;. I believe these innovations
arrived earlier on the Emacspeak Webtop as compared to the rest
of the Web for the following reasons:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Emacspeak relied on Emacs/W3 for Web functionality,and when
that browser stopped being maintained, there was a strong need to
develop Web tools in the context of Emacspeak.&lt;/li&gt;
&lt;li&gt;The visual Web was getting too complex  for use via speech
output,
and given the flexibility of the Emacs environment, and the
arrival of XSLT in 1999, things were well set up to build a
powerful set of Web access wizards.&lt;/li&gt;
&lt;li&gt;Task-oriented Web tools in Emacspeak led to the conceptual
&lt;strong&gt;Web Command Line&lt;/strong&gt; in Emacspeak at a time when
&lt;em&gt;command-line interfaces&lt;/em&gt; were considered passe&#39;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Incidentally when I showed others working in the field of
accessibility these Emacspeak tools during their early days, they
were promptly dismissed as site-specific hacks that wouldn&#39;t
scale in the face of generic screenreaders that would &lt;em&gt;handle
every web page&lt;/em&gt;.
With the visual Web getting too busy for &lt;em&gt;everyone&lt;/em&gt;
mainstream users now have access to productivity solutions such
as Apple&#39;s Dashboard Widgets, IGoogle modules that can be placed
on a Web page or the desktop, and other comparable tools. It will
be interesting to see how much longer blind users saddled with
commercial screenreaders will have to wait before seeing similar
tools emerge in their world --- just remember, when that does
arrive, Emacspeak had them in 2000!&lt;/p&gt;
    &lt;/div&gt;
    
  </content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/9051371237271911295'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/9051371237271911295'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2007/05/web-20-and-emacspeak-audio-webtop.html' title='Web 2.0 And The Emacspeak Audio Webtop'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-6628772274443432663</id><published>2007-05-03T18:51:00.001-07:00</published><updated>2007-05-03T18:51:41.088-07:00</updated><title type='text'>Emacspeak 26.0 --- LeadDog Unleashed!</title><content type='html'>
    &lt;div xmlns=&#39;http://www.w3.org/1999/xhtml&#39;&gt;
&lt;p&gt;
      
      Emacspeak Inc &lt;a href=&#39;http://emacspeak.sourceforge.net&#39;&gt;(NASDOG: ESPK)&lt;/a&gt;
      announces the immediate world-wide availability of &lt;a href=&#39;http://emacspeak.googlecode.com/files/emacspeak-26.tar.bz2&#39;&gt;Emacspeak-26&lt;/a&gt;
      --a powerful audio desktop for leveraging today&#39;s evolving
      data and service-oriented semantic Web.
    &lt;/p&gt;
&lt;h3&gt;Major Enhancements&lt;/h3&gt;
    
    &lt;ol&gt;
      &lt;li&gt; Added support for ESpeak -- a freely available TTS engine.&lt;/li&gt;
      &lt;li&gt; Added support for Ocropus -- a freely available OCR engine.&lt;/li&gt;
      &lt;li&gt; Updated Websearch tools.&lt;/li&gt;
      &lt;li&gt; Updated URL templates to enhance the Web Command Line.&lt;/li&gt;
      &lt;li&gt; Support for Google Services like Blogger via package G-Client.&lt;/li&gt;
      &lt;li&gt; Updated productivity tools in the wizards package.&lt;/li&gt;
      &lt;li&gt; Fully tested against the upcoming Emacs22.&lt;/li&gt;
      &lt;li&gt;Better integration between W3 and W3M.&lt;/li&gt;
    &lt;/ol&gt;
    &lt;p&gt;
      This release contains many user contributed patches including:
    &lt;/p&gt;
    &lt;ul&gt;
      &lt;li&gt; ESpeak patches from the Oralux project.&lt;/li&gt;
      &lt;li&gt; W3M patches from RDC.&lt;/li&gt;
    &lt;/ul&gt;

    &lt;p&gt;
      You can visit  Emacspeak at 
      &lt;a href=&#39;http://emacspeak.sf.net&#39;&gt;SourceForge&lt;/a&gt;.
      The latest development snapshot of
      Emacspeak is available via subversion  from 
&lt;a href=&#39;http://emacspeak.googlecode.com/svn/trunk&#39;&gt;Google Code Hosting&lt;/a&gt;.
     You can subscribe to the emacspeak mailing list &lt;em&gt;
    emacspeak@cs.vassar.edu&lt;/em&gt; by sending mail to the list
    request address &lt;a href=&#39;mailto:emacspeak-request@cs.vassar.edu&#39;&gt;emacspeak-request@cs.vassar.edu&lt;/a&gt;.  &lt;/p&gt;
    &lt;/div&gt;
  </content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/6628772274443432663'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/6628772274443432663'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2007/05/emacspeak-260-leaddog-unleashed.html' title='Emacspeak 26.0 --- LeadDog Unleashed!'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-4665207422065544454</id><published>2007-03-20T06:57:00.001-07:00</published><updated>2007-03-20T06:57:03.338-07:00</updated><title type='text'>See You At CSUN 2007</title><content type='html'>
    &lt;div xmlns=&#39;http://www.w3.org/1999/xhtml&#39;&gt;
&lt;p&gt;After a gap of 7 years, I will  once again attend 
&lt;a href=&#39;http://www.csun.edu/cod/conf/&#39;&gt;CSUN&lt;/a&gt;  in LA
this year.
This will also be Bubbles&#39; first CSUN --- I attended CSUN 6 years
in a row with Aster between 1994 and 1999.
Anyway, if you&#39;re an Emacspeak user and are coming to CSUN this
year, look for me at the Google booth.
This is also Google&#39;s first year at CSUN;  I will be there with
other Googlers working on accessibility.
I arrive Wed morning and leave early Friday morning --- look
forward to seeing you there.
&lt;/p&gt;

    &lt;/div&gt;
  </content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/4665207422065544454'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/4665207422065544454'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2007/03/see-you-at-csun-2007.html' title='See You At CSUN 2007'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-1780622495797519684</id><published>2007-03-02T10:59:00.001-08:00</published><updated>2007-03-02T10:59:41.076-08:00</updated><title type='text'>An Emacs Client For Google Services</title><content type='html'>
    &lt;div xmlns=&#39;http://www.w3.org/1999/xhtml&#39;&gt;
&lt;h2&gt;1 An Emacs Interface To Google Services&lt;/h2&gt;


&lt;p&gt;
Google offers a number of services using a Google account. Many
of these services also expose a Web API. this package provides a
set of Emacs modules for accessing these services from inside
Emacs. These modules are designed with an Emacs-centric, rather
than a Web-browser centered view of the world. Where necessary
Emacs package &lt;code&gt;browse-url&lt;/code&gt; is used to invoke the Web browser of
choice. 
&lt;/p&gt;
&lt;p&gt;
The current distribution can be downloaded from &lt;a href=&#39;http://emacspeak.googlecode.com/files/g-client.tar.bz2&#39;&gt;Google Code Hosting&lt;/a&gt; and the source code is available via &lt;a href=&#39;http://emacspeak.googlecode.com/svn/trunk/lisp/g-client/&#39;&gt;Subversion&lt;/a&gt;. Note
that this is still work in progress. I&#39;m releasing it as part of
the Emacspeak project since I believe the package already has
sufficiently useful functionality for users who spend a large
amount of their time inside Emacs. There is no dependency on
Emacspeak, and all clients provided here can be used without
Emacspeak loaded.
&lt;/p&gt;

&lt;h3&gt;1.1 Installation&lt;/h3&gt;


&lt;p&gt;
These are needed only if installing package &lt;code&gt;g-client&lt;/code&gt;
stand-alone, i.e. outside of Emacspeak.
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Unpack the tar archive and place the resulting &lt;code&gt;g-client&lt;/code&gt;
directory on your emacs &lt;code&gt;load-path&lt;/code&gt;.
&lt;/li&gt;
&lt;li&gt;
Type &lt;code&gt;make&lt;/code&gt; to compile the code.
&lt;/li&gt;
&lt;li&gt;
In your .emacs, add &lt;code&gt;(load-library &quot;g&quot;)&lt;/code&gt; to set it up.

&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;1.2 How It Works&lt;/h3&gt;


&lt;p&gt;
Clients are implemented using Google APIs based on Atom
Publishing Protocol &lt;a href=&#39;http://bitworking.org/projects/atom/draft-ietf-atompub-protocol-09.html&#39;&gt;APP&lt;/a&gt; and Google Data APIs (&lt;a href=&#39;http://code.google.com/apis/gdata/index.html&#39;&gt;GData&lt;/a&gt;). We use &lt;code&gt;curl&lt;/code&gt;
to retrieve content via &lt;i&gt;HTTPS&lt;/i&gt; and &lt;code&gt;xsltproc&lt;/code&gt; to transform the
retrieved content to browsable HTML.
&lt;/p&gt;
&lt;p&gt;
Clients sign you in the first time you invoke commands that require
authentication. Once signed in, the session cookie is cached for future
use. Session cookies presently expire in 30 minutes, and clients check for
expired cookies when authentication is needed. If the cookie has expired,
clients retrieve a fresh cookie using the authentication credentials provided
earlier. Note that authorization tokens etc are specific to a
given service.
&lt;/p&gt;

&lt;h3&gt;1.3 Top-level Customizations&lt;/h3&gt;


&lt;p&gt;
All clients in this package use Emacs&#39; &lt;code&gt;customize&lt;/code&gt; interface to
set user preferences.
The most commonly used  ones are enumerated below.
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;g-user-email&lt;/code&gt; Default email-id to use. Individual clients
typically override this via user option
&lt;code&gt;&amp;lt;clientname&amp;gt;-user-email&lt;/code&gt;.
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;g-html-handler&lt;/code&gt; Name of function that handles HTML content.

&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;1.4 Google Blogger &lt;i&gt;gblogger&lt;/i&gt;&lt;/h3&gt;


&lt;p&gt;
This client implements posting, editting and deleting of blog
entries using the new Blogger API --- it replaces the now
obsolete &lt;a href=&#39;http://emacsgeek.blogspot.com/2006/01/announcing-atom-blogger.html&#39;&gt;atom-blogger&lt;/a&gt; that implemented similar functionality
using the old Blogger API. It uses value of customization option
&lt;code&gt;g-user-email&lt;/code&gt; by default; this can be overridden via option
&lt;code&gt;gblogger-user-email&lt;/code&gt;. See &lt;a href=&#39;http://code.google.com/apis/blogger/overview.html&#39;&gt;Blogger GData API&lt;/a&gt; for the underlying
APIs used. For editing posts, I recommend installing &lt;a href=&#39;http://www.thaiopensource.com/nxml-mode/&#39;&gt;nxml-mode&lt;/a&gt;.
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;i&gt;Browse&lt;/i&gt; Command &lt;code&gt;gblogger-blog&lt;/code&gt; brings up the list of blogs
owned by the currently authenticated user.
&lt;/li&gt;
&lt;li&gt;
&lt;i&gt;Posting&lt;/i&gt; Command &lt;code&gt;gblogger-new-entry&lt;/code&gt; takes a &lt;b&gt;post URL&lt;/b&gt; and sets
up a special buffer where you can compose your
article. the &lt;b&gt;post url&lt;/b&gt; is obtained from the feed of blogs
above, use the &lt;b&gt;post&lt;/b&gt; link for the blog to which you wish to
post.
&lt;/li&gt;
&lt;li&gt;
&lt;i&gt;Browsing&lt;/i&gt;      Command &lt;code&gt;gblogger-atom-display&lt;/code&gt; displays the
atom feed for a specified blog as a browsable HTML page. In
addition to reading your blog, this helps you find the &lt;b&gt;edit     url&lt;/b&gt; for individual posts.
&lt;/li&gt;
&lt;li&gt;
&lt;i&gt;Editting&lt;/i&gt; Command &lt;code&gt;gblogger-edit-entry&lt;/code&gt; takes the &lt;b&gt;edit url&lt;/b&gt;
of a previously posted entry. It retrieves the entry, and
sets up a special composition buffer where you can edit the entry.
&lt;/li&gt;
&lt;li&gt;
&lt;i&gt;Submitting&lt;/i&gt; The special composition buffer created by
commands &lt;code&gt;gblogger-new-entry&lt;/code&gt; and &lt;code&gt;gblogger-edit-entry&lt;/code&gt;
provide a special command &lt;code&gt;gblogger-publish&lt;/code&gt; (bound to &lt;code&gt;C-c     C-c&lt;/code&gt;) that submits the entry to blogger.
&lt;/li&gt;
&lt;li&gt;
&lt;i&gt;Deleting&lt;/i&gt; Command &lt;code&gt;gblogger-delete-entry&lt;/code&gt; deletes an entry
specified by its &lt;b&gt;edit url&lt;/b&gt;.

&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;1.5 Google Calendar &lt;i&gt;gcal&lt;/i&gt;&lt;/h3&gt;


&lt;p&gt;
This client can be used to view, add or delete events from the
Google Calendar for the authenticated user. It uses value of
customization option &lt;code&gt;g-user-email&lt;/code&gt; by default; this can be
overridden via option &lt;code&gt;gcal-user-email&lt;/code&gt;. Commands that display
calendar items optionally accept the feed url of the calendar to
view; this can be used to view calendars to which the
authenticated user has read access. See &lt;a href=&#39;http://code.google.com/apis/calendar/overview.html&#39;&gt;GData Calendar API&lt;/a&gt; for
the underlying APIs used.
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;i&gt;View&lt;/i&gt; Command &lt;code&gt;gcal-calendar-agenda&lt;/code&gt; displays the default
calendar for the authenticated user. A prefix arg prompts for
the calendar to display. This command is best used from
inside the Emacs calendar; in this case, it uses the date
under point when showing the agenda.
&lt;/li&gt;
&lt;li&gt;
&lt;i&gt;Add&lt;/i&gt; Command &lt;code&gt;gcal-add-event&lt;/code&gt; prompts for event details and
adds it to the calendar.
&lt;/li&gt;
&lt;li&gt;
&lt;i&gt;Accept&lt;/i&gt; Command &lt;code&gt;gcal-accept-event&lt;/code&gt; accepts an event. Event
is specified using the &lt;b&gt;edit url&lt;/b&gt; of the event.
&lt;/li&gt;
&lt;li&gt;
&lt;i&gt;Delete&lt;/i&gt; Command &lt;code&gt;gcal-delete-event&lt;/code&gt; deletes an event. Event
is specified using the &lt;b&gt;edit url&lt;/b&gt; of the event.

&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;1.6 Google Reader &lt;i&gt;greader&lt;/i&gt;&lt;/h3&gt;


&lt;p&gt;
This client allows the authenticated user to read, browse and
subscribe/unsubscribe to feeds.
It uses value of customization option &lt;code&gt;g-user-email&lt;/code&gt; by
default; this can be overridden via option &lt;code&gt;g-user-email&lt;/code&gt;.
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;i&gt;Reading&lt;/i&gt; Command &lt;code&gt;greader-reading-list&lt;/code&gt; displays the
reading list (river of news).
&lt;/li&gt;
&lt;li&gt;
&lt;i&gt;Browsing&lt;/i&gt; Command &lt;code&gt;greader-feed-list&lt;/code&gt; displays a
browsable Web page with pointers to  subscribed feeds.
&lt;/li&gt;
&lt;li&gt;
&lt;i&gt;Finding&lt;/i&gt; Command &lt;code&gt;greader-find-feeds&lt;/code&gt; searches for matching
feeds to subscribe.
&lt;/li&gt;
&lt;li&gt;
&lt;i&gt;Subscribing&lt;/i&gt; Commands &lt;code&gt;greader-subscribe-feed&lt;/code&gt; and
&lt;code&gt;greader-unsubscribe-feed&lt;/code&gt; are used to subscribe and
unsubscribe.
&lt;/li&gt;
&lt;li&gt;
&lt;i&gt;Labeling&lt;/i&gt; Command &lt;code&gt;greader-star&lt;/code&gt; and &lt;code&gt;greader-add-label&lt;/code&gt; are
used to label articles.
&lt;/li&gt;
&lt;li&gt;
&lt;i&gt;Reading&lt;/i&gt; Starred  articles can be read by
providing a prefix argument to command
&lt;code&gt;greader-reading-list&lt;/code&gt;. Thus, C-u M-x greader-reading-list
will prompt for the specific set of articles to retrieve.

&lt;/li&gt;
&lt;/ul&gt;
&lt;p class=&#39;author&#39;&gt; Author: T.V Raman
&lt;a href=&#39;mailto:raman@cs.cornell.edu&amp;gt;&#39;&gt;&amp;lt;raman@cs.cornell.edu&amp;gt;&amp;gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p class=&#39;date&#39;&gt; Date: 2007/03/02 10:36:07&lt;/p&gt;
    &lt;/div&gt;
  </content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/1780622495797519684'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/1780622495797519684'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2007/03/emacs-client-for-google-services.html' title='An Emacs Client For Google Services'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-2634050357130206777</id><published>2007-02-12T16:45:00.001-08:00</published><updated>2007-01-29T09:51:41.314-08:00</updated><title type='text'>Emacspeak Downloads On GoogleCode</title><content type='html'>
    &lt;div xmlns=&#39;http://www.w3.org/1999/xhtml&#39;&gt;
&lt;p&gt;
I&#39;ve now made all Emacspeak releases available from the download
area on Googlecode.
Going forward, all Emacspeak releases will be made at the
GoogleCode site   --- not SourceForge. This is because uploading
code to GoogleCode is &lt;em&gt;significantly&lt;/em&gt; easier than making
releases on SourceForge.&lt;/p&gt;

&lt;p&gt;But even more importantly, once uploaded, grabbing a release
from GoogleCode is significantly easier than on SourceForge&#39;s
release mechanisms.
You can always find a link to the latest releases from Emacspeak
on GoogleCode 
by starting from the 
&lt;a href=&#39;http://code.google.com/p/emacspeak/&#39;&gt;Emacspeak
GoogleCode&lt;/a&gt; page.
Follow the link labeled &lt;em&gt;Featured Downloads&lt;/em&gt; to download
the newest release. I&#39;ve also made all past releases from the
download area --- follow the link labeled &lt;em&gt;downloads&lt;/em&gt; on
the Emacspeak GoogleCode page.&lt;/p&gt;

&lt;p&gt;Here is a brief summary of why I  chose to start making
releases on GoogleCode, it can be viewed as a short summary of
the positives in making the switch.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt; GoogleCode makes it possible to create download URLs  that
can be bookmarked.
No more clicking through multiple pages before getting to the
file you want, you can simply point &lt;code&gt;wget&lt;/code&gt;,
&lt;code&gt;curl&lt;/code&gt; or your favorite download tool at a meaningful
URL.
For instance,  
here is a pointer to 
 
&lt;a href=&#39;http://emacspeak.googlecode.com/files/emacspeak-25.tar.bz2&#39;&gt;Emacspeak
25&lt;/a&gt; release.&lt;/li&gt;
&lt;li&gt;The above is more than a convenience --- it&#39;s in line with
good Web architecture. I&#39;ve  been looking for an alternative to
SourceForge ever since that site decided to turn meaningful
download URLs from the past into obfuscated pointers into their
content management system; this left me with a feeling of having
created Open Source Software only to have it locked away in
someone else&#39;s vault with no easy mechanism for end-users to
retrieve what had been released as free software.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Share And Enjoy --- and let&#39;s hope we never have download
sites that say &lt;em&gt;Glad to be of service &lt;/em&gt;
as they close behind you with a sigh of a job well done.&lt;/p&gt;
    &lt;/div&gt;
  </content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/2634050357130206777'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/2634050357130206777'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2007/02/emacspeak-downloads-on-googlecode.html' title='Emacspeak Downloads On GoogleCode'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-116680570263571503</id><published>2006-12-22T08:41:00.000-08:00</published><updated>2006-12-22T08:41:42.690-08:00</updated><title type='text'>IBM Software TTS On Ubuntu 6 </title><content type='html'>&lt;div xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;p&gt;
I had earlier reported the IBM TTS engine segfaulting on my home
Ubuntu 6 machine; I&#39;m still to fix that problem. 
Surprizingly though, I tried it on a different Ubuntu 6 machine,
and there, installing 
&lt;pre&gt;
sudo apt-get install libstdc++2.10-glibc2.2
&lt;/pre&gt;
on top of the regular Ubuntu install was enough to get the TTS
working.
The segfault on my home machine occurs inside libc, and as best I
can tell the two machines have identical libc installs. 
So on the positive front, it&#39;s only my home machine that appears
broken; on the negative side, the fact that the breakage is hard
to explain and hence fix doesn&#39;t inspire confidence  in
upgrading.
Others have reported not having any problems on Edgy -- so the
problem is hopefully transitory.
&lt;/p&gt;
    &lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/116680570263571503'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/116680570263571503'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2006/12/ibm-software-tts-on-ubuntu-6.html' title='IBM Software TTS On Ubuntu 6 '/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-116610975299685723</id><published>2006-12-14T07:22:00.000-08:00</published><updated>2006-12-14T07:22:33.060-08:00</updated><title type='text'>Web Command Line Tool For Google Patent Search </title><content type='html'>&lt;div xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;p&gt;From the &lt;em&gt;every new Google search tool gets a corresponding
Emacspeak wizard dept&lt;/em&gt;:&lt;/p&gt;
&lt;p&gt;Google just introduced &lt;a href=&quot;http://www.google.com/patents&quot;&gt;Patent Search&lt;/a&gt;
an easy to use search interface for US patents.
In the spirit of the 
&lt;a href=&quot;http://emacspeak.blogspot.com/2005/12/emacspeak-web-tricks-web-command-line.html&quot;&gt;Web Command Line&lt;/a&gt;,
Emacspeak now sports a &lt;em&gt;Patent Search From Google&lt;/em&gt;
&lt;a href=&quot;http://emacspeak.blogspot.com/2006/10/emacspeak-smart-url-for-google-code.html&quot;&gt;
smart URL&lt;/a&gt;
like other smart URLs on the Emacspeak Audio Desktop, this places 
executing patent searches just a few keystrokes away.
To use this new wizard, do the following:
&lt;/p&gt;


&lt;ul&gt;
&lt;li&gt;Update your working copy of Emacspeak from 
&lt;a href=&quot;http://emacspeak.googlecode.com/svn/trunk&quot;&gt;SVN&lt;/a&gt;. The
patent search wizard will be part of the next official Emacspeak
release slated for May 2007.&lt;/li&gt;
&lt;li&gt;Invoke the Smart URL tool by pressing &lt;code&gt;C-e u&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Type the first few characters of the phrase &lt;code&gt;patent
search  from Google&lt;/code&gt; and hit &lt;code&gt;tab&lt;/code&gt; to complete
the name of the smart URL.&lt;/li&gt;
&lt;li&gt;Hit enter, specify what you&#39;re searching for and hit enter
again.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;happy inventing --- &lt;/p&gt;
    &lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/116610975299685723'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/116610975299685723'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2006/12/web-command-line-tool-for-google.html' title='Web Command Line Tool For Google Patent Search '/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-116439077642569619</id><published>2006-11-24T09:52:00.000-08:00</published><updated>2006-11-24T09:52:56.480-08:00</updated><title type='text'>Emacspeak 25.0 (ActiveDog) Unleashed </title><content type='html'>&lt;div xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;div xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;p&gt;I released Emacspeak 25.0 (ActiveDog) yesterday.
Here are the &lt;a href=&quot;http://emacspeak.sf.net/releases/release-25.0.html&quot;&gt;release
notes&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;While trying to release it on Sourceforge I ran into a couple
of show-stoppers --- first off the SourceForge download mechanism
has changed &lt;em&gt;yet again&lt;/em&gt; and it&#39;s now gotten sufficiently
convoluted that  software released via SourceForge&#39;s file release
system is becoming well-nigh impossible to download except for
the most motivated user. Worse, as I released the file, upload
services on SourceForge hung, with a consequence that it created
a 0 sized &lt;code&gt;emacspeak-25.tar.bz2&lt;/code&gt; file --- the
SourceForge mechanism  made it well-nigh impossible to clean up
the 0-sized file.&lt;/p&gt;
&lt;p&gt;Given this mess, I decided to keep things simple by placing
the &lt;a href=&quot;http://emacspeak.sf.net/emacspeak-25.tar.bz2&quot;&gt;release on
the Emacspeak site &lt;/a&gt; directly -- this suffers from the
disadvantage of the release not getting mirrored on the various
Sourceforge download archives; it has the advantage of allowing
users to grab the release with one click.&lt;/p&gt;

&lt;p&gt;The other thing to note about this release is that there are
no RPMs built  --- a first in 7 years. I&#39;ve now switched to
Ubuntu on my home machine and dont have the ability to build RPMs
so I&#39;ll leave this  to individual distributions. I&#39;ve also not
built Debian packages this time around, mostly because I&#39;ve not
gotten around to understanding Debian&#39;s packaging system
sufficiently well to do this. Moreover I prefer minimalistic
packaging solutions --- and in general  though Debian&#39;s packaging
is nice, it still feels a little too heavy-weight for something
like the Emacspeak source tarball which needs a simple
&lt;code&gt;make; sudo make install&lt;/code&gt; to get set up.
So for now, I&#39;ll rely on folks like Jim Van Zandt to build
downstream Debian 
packages  for incorporating with the various distributions like
Debian and Ubuntu --- this way, packages can be built to match
particular distributions.&lt;/p&gt;
    &lt;/div&gt;
    &lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/116439077642569619'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/116439077642569619'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2006/11/emacspeak-250-activedog-unleashed.html' title='Emacspeak 25.0 (ActiveDog) Unleashed '/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-116008484563022809</id><published>2006-10-05T14:47:00.000-07:00</published><updated>2006-10-05T14:47:25.710-07:00</updated><title type='text'>Emacspeak  Smart URL For Google Code Search </title><content type='html'>&lt;div xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;p&gt;Every useful Web tool deserves a Web short-cut.
Google just announced a new service called &lt;a href=&quot;http://www.google.com/codesearch&quot;&gt;Code Search&lt;/a&gt;
that lets you  search  the codebases of Open Source
projects. It&#39;s a great way of finding source code relevant to
ones programming projects.&lt;/p&gt;

&lt;p&gt;I just checked in a corresponding &lt;code&gt;URL Template&lt;/code&gt;
--- as a reminder, &lt;code&gt;url templates&lt;/code&gt; in Emacspeak are
&lt;em&gt;smart URLs&lt;/em&gt; that provide web short-cuts to create a
 conceptual &lt;em&gt;Smart Web Command Line&lt;/em&gt;.
To use:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Invoke the &lt;code&gt;url template&lt;/code&gt;tool via the default
key-binding &lt;code&gt;C-e u&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Select the &lt;code&gt;Code Search Via Google&lt;/code&gt; tool by typing
&lt;code&gt;cod&lt;/code&gt; and pressing the &lt;code&gt;tab&lt;/code&gt; key.&lt;/li&gt;
&lt;li&gt;Specify the  search query --- see the Google Code Search help
instructions for the types of queries that are allowed.&lt;/li&gt;
&lt;/ul&gt;


    &lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/116008484563022809'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/116008484563022809'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2006/10/emacspeak-smart-url-for-google-code.html' title='Emacspeak  Smart URL For Google Code Search '/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-115945396346366925</id><published>2006-09-28T07:32:00.000-07:00</published><updated>2006-09-28T07:32:43.513-07:00</updated><title type='text'>Using Helix Player From Emacspeak </title><content type='html'>&lt;div xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;p&gt;In the spirit of &lt;q&gt;You can never have  sufficiently many
media players&lt;/q&gt;, I now have Helix Player working under
Emacspeak  &lt;em&gt;i.e.,&lt;/em&gt; 
I can now run Helix Player without having to start up X. This is
useful because there are still media streams on the Web that
sometimes fail with &lt;code&gt;mplayer&lt;/code&gt;, and from the minimal
testing I&#39;ve done so far, Helix Player is successful in those
cases.&lt;/p&gt;

&lt;h3&gt;What Is It?&lt;/h3&gt;
&lt;p&gt;HelixPlayer --- installable on  modern Linux 
distributions as &lt;code&gt;hxplay&lt;/code&gt; from package
&lt;code&gt;HelixPlayer&lt;/code&gt; is the community-supported version of
RealPlayer 10. The well-distributed and documented client,
&lt;code&gt;hxplay&lt;/code&gt;
is capable of playing a wide variety of audio and video formats
over HTTP and RTSP/RTP, and specifically, can handle RealPlayer10
formats which includes support for &lt;em&gt;5.1&lt;/em&gt; audio.&lt;/p&gt;

&lt;p&gt;A lesser known set of tools available from Helix ---&lt;a href=&quot;http://forms.helixcommunity.org/helix/builds/?category=helixdnaclient&quot;&gt;
Helix DNA Client&lt;/a&gt; is a bare-bones UI-less player which can be
used effectively  at the shell. You can download pre-built
binaries for your flavor of Linux (GCC3.2 or later vs GCC 2.95
based systems) 
note that these are 
nightly builds. You can also download a source zip archive. Note
that all of these requires you to accept a 
 End Users License Agreement (&lt;code&gt;EULA&lt;/code&gt;)
before being taken to the download link.&lt;/p&gt;
&lt;p&gt;The links on the page above can be confusing; Here are
pointers to the specific packages you need to grab  if you want a
player that has all of the functionality described above.&lt;/p&gt;
&lt;dl&gt;
&lt;dt&gt;Binary&lt;/dt&gt;
&lt;dd&gt;&lt;a href=&quot;http://forms.helixcommunity.org/helix/builds/index.html?filename=20060926/all_clients-helix-20060926-linux-2.2-libc6-gcc32-i586.tar.gz&quot;&gt;
Sep 26, 2006 build for Linux GCC 3.2&lt;/a&gt;&lt;/dd&gt;
&lt;dt&gt;Sources&lt;/dt&gt;
&lt;dd&gt;&lt;a href=&quot;http://forms.helixcommunity.org/helix/builds/index.html?filename=20060927/all_clients-helix-20060927-source.zip&quot;&gt;Source
archive from September 27, 2006&lt;/a&gt;&lt;/dd&gt;
&lt;/dl&gt;

&lt;h3&gt;Using The Binary Distribution&lt;/h3&gt;

&lt;p&gt;Here is what I did you set up the binary distribution on my
Ubuntu 6.0.6 (Dapper) machine&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Unpacked  &lt;a href=&quot;http://forms.helixcommunity.org/helix/builds/index.html?filename=20060926/all_clients-helix-20060926-linux-2.2-libc6-gcc32-i586.tar.gz&quot;&gt;binary
package&lt;/a&gt;
under &lt;code&gt;/usr/lib&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Created a symlink  &lt;code&gt;/usr/lib/splay&lt;/code&gt; to point to
the directory created  by unpacking the binary package.&lt;/li&gt;
&lt;li&gt;Created the following shell script
&lt;code&gt;/usr/bin/hsplay&lt;/code&gt;
to launch the player:
&lt;pre&gt;
#!/bin/sh
#Use Simple Helix Player:
#
SPLAY_LIB=/usr/lib/splay
export HELIX_LIBS=$SPLAY_LIB
exec /usr/bin/aoss $SPLAY_LIB/splay -iss -s &quot;$@&quot;
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt; The above script assumes you have the &lt;code&gt;alsa-oss&lt;/code&gt;
package nstalled; you will need this to have Helix Player use
ALSA --- something that is essential if you want to be able to
use your sound card with other applications while playing media
streams.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;With this setup, you can launch one or more media streams
(both local, as well as remote HTTP/RTSP/RTP streams)
from a shell.
This player successfully plays the &lt;code&gt;BBC Radio4 LW&lt;/code&gt;
stream, something &lt;code&gt;mplayer&lt;/code&gt;
fails to play on my Ubuntu box.&lt;/p&gt;

    &lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/115945396346366925'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/115945396346366925'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2006/09/using-helix-player-from-emacspeak.html' title='Using Helix Player From Emacspeak '/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-115811802876722544</id><published>2006-09-12T20:27:00.000-07:00</published><updated>2006-09-12T20:27:08.833-07:00</updated><title type='text'>Emacspeak, Ubuntu And Software Dectalk </title><content type='html'>&lt;div xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;p&gt;On the positive side with respect to software synthesis, the
Software Dectalk &lt;em&gt;does&lt;/em&gt;
work out of the box on Ubuntu  --- &lt;em&gt;out of the box&lt;/em&gt; that
is if you first install &lt;code&gt;alsa-oss&lt;/code&gt; the ALSA-&amp;gt;OSS
compatibility layer.
I&#39;ve updated the Emacspeak speech server for Software Dectalk to
use &lt;code&gt;alsa-oss&lt;/code&gt; where available; performance is not as
responsive as the Emacspeak Viavoice server using the native ALSA
APIs, but it&#39;s a good backup option.&lt;/p&gt;
    &lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/115811802876722544'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/115811802876722544'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2006/09/emacspeak-ubuntu-and-software-dectalk.html' title='Emacspeak, Ubuntu And Software Dectalk '/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-115798552474387360</id><published>2006-09-11T07:38:00.000-07:00</published><updated>2006-09-11T07:38:44.816-07:00</updated><title type='text'>Emacspeak 24 On Ubuntu 6 </title><content type='html'>&lt;div xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;p&gt;I upgraded my home FC3 machine to Ubuntu 6.0.6 (Dapper) over
the weekend. Here is a short summary for things to watch out for
as an emacspeak user.&lt;/p&gt;
&lt;h2&gt;The Good, The Bad, And The Painful&lt;/h2&gt;

&lt;dl&gt;
&lt;dt&gt;Good&lt;/dt&gt;
&lt;dd&gt;One of my friends helped with the install and it is
remarkably quick when everything works (in my case the Ubuntu LTS
6.0.6 installer had trouble with the NVidea display card and
came up correctly at the third attempt).&lt;/dd&gt;
&lt;dt&gt;Bad&lt;/dt&gt;
&lt;dd&gt;A one CD install is nice -- but after it you have remarkably
little installed from the perspective of an emacspeak user. You
end up with a very nice GUI but very little else --- the
reasoning being that the average user wont need much more, and
the savvy user can always run &lt;code&gt;apt-get&lt;/code&gt;.&lt;/dd&gt;
&lt;dt&gt;Bad&lt;/dt&gt;
&lt;dd&gt;Worse, Ubuntu does not install &lt;code&gt;openssh-server&lt;/code&gt;
--- it limits itself to installing
&lt;code&gt;openssh-client&lt;/code&gt;. This means that you cannot bootstrap
yourself by logging in from another machine until you install
&lt;code&gt;openssh-server&lt;/code&gt; off the network. If there was one
thing I would ask the Ubuntu maintainers, it would be to rectify
this situation.&lt;/dd&gt;
&lt;dt&gt;Painful&lt;/dt&gt;
&lt;dd&gt;In my case, the &lt;code&gt;apt&lt;/code&gt; suite of tools appeared to
have a problem --- they died saying
&lt;code&gt;/var/lib/dpkg/available: no such file or
directory&lt;/code&gt;. Googling showed this to be a known problem with
&lt;code&gt;apt&lt;/code&gt; and the fix is to run &lt;code&gt;dselect
update&lt;/code&gt; -- but if you&#39;re new to Debian/ubuntu,  this is
less than obvious.&lt;/dd&gt;
&lt;dt&gt;Good&lt;/dt&gt;
&lt;dd&gt;Once you overcome the above, &lt;code&gt;apt-get&lt;/code&gt; got me
emacspeak-17.0 which was sufficient to let me bootstrap the rest
of the process on my own using my trusted Dectalk Express to
produce speech.&lt;/dd&gt;
&lt;dt&gt;Painful&lt;/dt&gt;
&lt;dd&gt;Note that you should install &lt;code&gt;tcl8.3&lt;/code&gt; and
&lt;code&gt;tclx8.3&lt;/code&gt; --- rather than the newest (8.4) versions of
these packages.
This is because as of 8.4, the maintainers of those packages no
longer build a stand-alone &lt;code&gt;tcl&lt;/code&gt; (extended TCL)
shell. This is something that will have to be handled by
Emacspeak in the future.&lt;/dd&gt;
&lt;dt&gt;Good&lt;/dt&gt;
&lt;dd&gt;I was able to get everything I needed (and more) installed
using a combination of &lt;code&gt;apt-get&lt;/code&gt; and
&lt;code&gt;aptitude&lt;/code&gt;.&lt;/dd&gt;
&lt;dt&gt;Bad&lt;/dt&gt;
&lt;dd&gt;The IBM TTS engine no longer works --- under FC3 and friends,
you needed to install package &lt;code&gt;libstdc++-compat&lt;/code&gt; to
get it to work. Well, there is no corresponding package for
Ubuntu/Debian from what I could find out, and pulling in the RPM
for &lt;code&gt;libstdc++-compat&lt;/code&gt;,
converting it via &lt;code&gt;alien&lt;/code&gt; and installing the result
produces a segfault when you run the TTS engine.&lt;/dd&gt;
&lt;dt&gt;Bad&lt;/dt&gt;
&lt;dd&gt;For the same reason, the old command-line
&lt;code&gt;trplayer&lt;/code&gt; will also not work on Ubuntu 6.0.
This is not as painful --- since mplayer works --- though I had
to build &lt;code&gt;mplayer&lt;/code&gt; from source.
It would be nice to create a command-line player on top of the
HelixPlayer code base.
At present, the missing &lt;code&gt;trplayer&lt;/code&gt; means that the
&lt;code&gt;etc/rivo.pl&lt;/code&gt; provided by emacspeak no longer works.
You can use &lt;code&gt;mplayer&lt;/code&gt; to  convert
&lt;code&gt;realaudio&lt;/code&gt; to mp3; however &lt;code&gt;mplayer&lt;/code&gt;does
not have a command-line option to specify the duration of
playback,
something that  script &lt;code&gt;etc/rivo.pl&lt;/code&gt; needs.&lt;/dd&gt;

&lt;/dl&gt;
    &lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/115798552474387360'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/115798552474387360'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2006/09/emacspeak-24-on-ubuntu-6.html' title='Emacspeak 24 On Ubuntu 6 '/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-115765095083923408</id><published>2006-09-07T10:42:00.000-07:00</published><updated>2006-09-07T10:42:30.936-07:00</updated><title type='text'>Google Archive News Search </title><content type='html'>&lt;div xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;p&gt;To mark the arrival of Google News Archive search, I checked
in a &lt;em&gt;Archive News Search&lt;/em&gt; 
&lt;code&gt;url-template&lt;/code&gt; yesterday morning. To use it, hit
&lt;code&gt;C-e u&lt;/code&gt; followed by &lt;code&gt;arc tab&lt;/code&gt; and specify
your search term.
&lt;/p&gt;
&lt;p&gt;The above is checked into the SVN repository at &lt;a href=&quot;http://emacspeak.googlecode.com/svn&quot;&gt;Emacspeak
GoogleCode&lt;/a&gt;.
&lt;/p&gt;

    &lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/115765095083923408'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/115765095083923408'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2006/09/google-archive-news-search.html' title='Google Archive News Search '/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-115655243678974508</id><published>2006-08-25T17:33:00.000-07:00</published><updated>2006-08-25T17:33:56.843-07:00</updated><title type='text'>Update: Emacspeak On Google Code Hosting </title><content type='html'>&lt;div xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;p&gt;The initial experiment of moving emacspeak development to
Subversion at Google Code Hosting has been largely
successful. After a few bumps along the road, mostly a
consequence of my being new to SVN, things are looking good, and
I have  stopped updating the CVS repository on SourceForge.&lt;/p&gt;
&lt;p&gt;
Some additional goodies as a consequence of the move to SVN:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://emacspeak.googlecode.com/svn/tags&quot;&gt;SVN
Tags&lt;/a&gt; contains snapshots of prior releases.&lt;/li&gt;
&lt;li&gt;Future releases will come with an SVN Revision number that
allows one to reliably recreate a released version.&lt;/li&gt;
&lt;/ul&gt;
    &lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/115655243678974508'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/115655243678974508'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2006/08/update-emacspeak-on-google-code.html' title='Update: Emacspeak On Google Code Hosting '/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-115551499254984501</id><published>2006-08-13T17:23:00.000-07:00</published><updated>2006-08-13T17:23:12.613-07:00</updated><title type='text'>Emacspeak Codebase Via Subversion From GoogleCode </title><content type='html'>&lt;div xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;p&gt;
I&#39;ve checked in the Emacspeak codebase into the Subversion
repository provided by &lt;a href=&quot;http://code.google.com/hosting&quot;&gt;Google Project Hosting
&lt;/a&gt;.
The project page is &lt;a href=&quot;http://code.google.com/p/emacspeak&quot;&gt;Emacspeak at GoogleCode&lt;/a&gt;.
You can find Emacspeak --- complete  with its code history going
back to the point where I started using CVS at
&lt;a href=&quot;http://emacspeak.googlecode.com/svn/&quot;&gt;Emacspeak SVN
Repository&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;For now, the Emacspeak Web site will continue to live at
Sourceforge; The Emacspeak mailing list will continue to live at
Vassar as before.
To checkout the code from SVN, follow the instructions on 
&lt;a href=&quot;http://code.google.com/p/emacspeak/source&quot;&gt;
Emacspeak SVN&lt;/a&gt;.
If you run into any hitches  in checking out the code, please
report it on the Emacspeak mailing list. Note that you can
anonymous checkout the code from the above location entirely from
the shell command-line without ever having to point a browser at
anything.&lt;/p&gt;
&lt;p&gt;Emacspeak users presently running out of SourceForge CVS might
want to do an SVN checkout in a separate directory and make sure
things work, in preparation for a permanent switch-over to
svn. Here are the minimal steps you need to perform: 
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;svn checkout http://emacspeak.googlecode.com/svn/trunk/
emacspeak &lt;/code&gt;&lt;/li&gt;
&lt;li&gt;The above will create a directory called
&lt;code&gt;emacspeak&lt;/code&gt; with the code under it; obviously, you
should do this somewhere different from where you have  your
current copy of emacspeak.&lt;/li&gt;
&lt;li&gt;For now, I recommend renaming the directory created in the
above step to &lt;code&gt;svn-emacspeak&lt;/code&gt; so that you can easily
tell  which snapshot you&#39;re looking at. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Note that
reading these is not a replacement for learning about SVN ---
there is an excellent on-line book available at 
&lt;a href=&quot;http://svnbook.red-bean.com/&quot;&gt;SVN Manual&lt;/a&gt;.&lt;/p&gt;
    &lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/115551499254984501'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/115551499254984501'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2006/08/emacspeak-codebase-via-subversion-from.html' title='Emacspeak Codebase Via Subversion From GoogleCode '/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-115521910331821233</id><published>2006-08-10T07:11:00.000-07:00</published><updated>2006-08-10T07:11:43.366-07:00</updated><title type='text'>Zipping Through Web Pages </title><content type='html'>&lt;div xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;h2&gt;Zipping Through Web Pages With Emacspeak/W3&lt;/h2&gt;

&lt;p&gt;
I just added an experimental &lt;em&gt;zip through Web pages&lt;/em&gt;
shortcut to &lt;code&gt;emacspeak-w3&lt;/code&gt;.
The command is called &lt;code&gt;emacspeak-w3-speak-next-block&lt;/code&gt;
and is bound to &lt;code&gt;z&lt;/code&gt; in all W3 buffers.
It is useful for quickly moving through Web pages that have
logically separate content units in &lt;em&gt;separate blocks&lt;/em&gt;
where a &lt;em&gt;block&lt;/em&gt; is one of:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;HTML &lt;code&gt;div&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;HTML tables.&lt;/li&gt;
&lt;li&gt;HTML &lt;code&gt;p&lt;/code&gt; elements.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In general this provides an effective means of skimming many
large Web pages.&lt;/p&gt;

    &lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/115521910331821233'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/115521910331821233'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2006/08/zipping-through-web-pages.html' title='Zipping Through Web Pages '/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-115370169395797389</id><published>2006-07-23T17:41:00.000-07:00</published><updated>2006-08-10T09:36:15.143-07:00</updated><title type='text'>Summary Of Emacspeak Features Compared To Other Alternatives </title><content type='html'>&lt;div xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;div&gt;
&lt;h2&gt;Introduction&lt;/h2&gt;
&lt;p&gt;I&#39;ve received a number of queries asking about the differences
between Emacspeak and Speechdel ---especially given some of the
somewhat confusing assertions made in recent Speechdel release
announcements. I&#39;m posting this article in the hope of clearing
up some of this confusion.
&lt;/p&gt;
&lt;h2&gt;
&lt;a name=&quot;sec-1&quot;&gt;1 Emacspeak And Speechdel  -*- mode:org -*-&lt;/a&gt;
&lt;/h2&gt;
&lt;h3&gt;
&lt;a name=&quot;sec-2&quot;&gt;1.1 Background&lt;/a&gt;
&lt;/h3&gt;
&lt;p&gt;
&lt;a href=&quot;http://emacspeak.sf.net&quot;&gt;Emacspeak&lt;/a&gt; speech-enables Emacs by advising core emacs
functionality.  Speech services are provided by a simple
Emacspeak speech-server.  Additionally, Emacspeak implements
speech-extensions for popular emacs modules --- see the 
&lt;a href=&quot;http://emacspeak.sf.net/applications.html&quot;&gt;speech-enabled applications list&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
Emacspeak was first released in 1995, and then (as now), there
was limited speech access to the Linux GUI.  Therefore, to be
useful as a complete access solution, Emacspeak has always needed
to enable the user to &lt;b&gt;do everything&lt;/b&gt; from within Emacs, not just
regular editing operations. As a case in point, emacspeak users
are probably one of the last remaining communities that use Emacs
for browsing the Web.
&lt;/p&gt;
&lt;h3&gt;
&lt;a name=&quot;sec-3&quot;&gt;1.2 Speech Dispatcher (SpeechD)&lt;/a&gt;
&lt;/h3&gt;
&lt;p&gt;
The idea of SpeechD --- peech Dispatcher as an intermediate layer
between speech clients and TTS engines was first floated sometime
in the late 90&#39;s.  Such a common layer is a laudible goal but is
something that takes time and effort to get right. Additionally,
you have the challenge of geting existing software e.g.,
emacspeak, to abandon their own speech abstraction and
re-implement against a supposedly more generic, but completely
untested and untried intermediate layer.
&lt;/p&gt;
&lt;p&gt;
The developers of SpeechD initially incorporated some of the
Emacspeak code into an Emacs wrapper (speechdel) that called
SpeechD, but later decided to go their own way -- and present
&lt;a href=&quot;http://www.freebsoft.org/speechd-el&quot;&gt;speechdel&lt;/a&gt; is the result.
&lt;/p&gt;
&lt;p&gt;
Like Emacspeak, speechdel uses Emacs Lisp&#39;s advice facility to
add spoken feedback to core editing commands; speech output is
produced by calling out to speech-dispatcher.
&lt;/p&gt;
&lt;p&gt;
The summary of feature differences between Emacspeak and speechdel in the
next section is from examining the speechdel code-base; I have
not run speechdel since its dependency chain resulting from
speechd was difficult to resolve on my FC3 64bit machine.
&lt;/p&gt;
&lt;h3&gt;
&lt;a name=&quot;sec-4&quot;&gt;1.3 Emacspeak Features Not Found In SpeechDel&lt;/a&gt;
&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;
Emacspeak implements Aural CSS &lt;a href=&quot;http://www.w3.org/Press/1998/CSS2-REC&quot;&gt;ACSS&lt;/a&gt;, and uses it to  provides
the aural analog of &lt;code&gt;font-lock&lt;/code&gt;.
&lt;/li&gt;
&lt;li&gt;
Emacspeak provides pronunciation
dictionaries. Pronunciations can be defined on a per-mode,
per-buffer or per-directory basis. Directory and mode
specific pronunciations are persisted across sessions. This
allows Emacspeak to leverage Emacs&#39; intelligence about the
semantics of a given application; thus, you can have
it say &quot;p arrow x&quot; for &quot;p-&amp;gt;x&quot; when editing C
code. Per-directory pronunciations are useful for reading
electronic books. Per-buffer pronunciations are useful for
succinctly speaking long lines of shell output e.g. when
compiling complex software.
&lt;/li&gt;
&lt;li&gt;
By advising core Emacs functionality, Emacs modes work out
of the box with Emacspeak. But in most cases, Emacspeak goes
one step further by providing light-weight speech-modules
that specialize spoken output for a given mode. As an
example, advising next-line to speak the current line is
sufficient to use &lt;code&gt;dired-mode&lt;/code&gt; --- but having to listen to
the entire line of dired output is not a pleasant
experience. The dired-specific module in Emacspeak advises
all interactive dired commands to speak the &quot;right&quot;
information. As an another example, GUD interaction
automatically speaks the line of source-code without leaving
the &lt;b&gt;Gud&lt;/b&gt; buffer.
&lt;/li&gt;
&lt;li&gt;
Emacspeak comes with many &quot;Emacs Applets&quot; for performing
tasks that most users would perform outside of
Emacs. Examples include playing CDs, playing multimedia
streams etc. Fortunately, I have not had to write too many
of these since there are always Emacs users other than
myself who also create such Emacs applications --- so where
Emacs applications already exist, I merely speech-enable
them with a small set of advice definitions, and in some
cases add a few additional interactive commands.
&lt;/li&gt;
&lt;li&gt;
Emacs applications are plentiful for most tasks; one
exception is the Web. Since emacs/w3 development was
abandoned sometime around 1998, I have added significant Web
interaction functionality to Emacspeak using Emacs/W3 as the
basis. Today, a lot of this has also been ported to
Emacs/W3M thanks to other enthusiasts on the Emacspeak
mailing list.  Examples include:
&lt;ol&gt;
&lt;li&gt;
WebSearch module --- prompts for query and processes
response to focus on the results.
&lt;/li&gt;
&lt;li&gt;
XSLT pre-processing: Allows pre-processing of complex
pages before rendering via W3. Used to enable &lt;b&gt;smart&lt;/b&gt;
screen-scrapers using XPath.
&lt;/li&gt;
&lt;li&gt;
URL-Tempaltes: Originally motivated by &lt;code&gt;webjump.el&lt;/code&gt;, this
provides url templates that enable easy access to a
variety of Web tasks rangig from looking up flight times
to listening to your favorite NPR or BBc show. Think early
cut at a &quot;Web Command Line in the minibuffer&quot;.
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
Customization via Custom, including additional
keymaps. Comes with additional keymap files for the Linux
console to enable &lt;code&gt;hyper&lt;/code&gt;, &lt;code&gt;super&lt;/code&gt;, and &lt;code&gt;alt&lt;/code&gt; prefix
keymaps.
&lt;/li&gt;
&lt;li&gt;
Module emacspeak-wizards iplements a large collection of
Emacs wizards that enable common tasks that you would
otherwise perform at the shell e.g., checking display status
on a laptop. The additional prefix keymaps come in handy!
&lt;/li&gt;
&lt;/ol&gt;
8)Finally, note that &lt;b&gt;all&lt;/b&gt; modules (except the core) are loaded
on demand.All code is compiled with &lt;code&gt;byte-compile-dynamic&lt;/code&gt; set to
=T=  and individual application-specific modules  are kept
completely independent of one another. Given the size of the
Emacspeak codebase, this is a  pre-requisite for both efficiency
and developer sanity.
&lt;p class=&quot;author&quot;&gt; Author: TV Raman
&lt;a href=&quot;mailto:raman@users.sf.net&quot;&gt;&amp;lt;raman@users.sf.net&amp;gt;&lt;/a&gt;
&lt;/p&gt;
    &lt;/div&gt;
&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/115370169395797389'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/115370169395797389'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2006/07/summary-of-emacspeak-features-compared.html' title='Summary Of Emacspeak Features Compared To Other Alternatives '/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-115341852989897851</id><published>2006-07-20T11:02:00.000-07:00</published><updated>2006-07-20T11:02:09.920-07:00</updated><title type='text'>Emacspeak And Accessible Search Via Google </title><content type='html'>&lt;div xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;p&gt;Google  has released an early experiment that favours easy to
read Web content --- 
&lt;a href=&quot;http://googleblog.blogspot.com/2006/07/finding-easy-to-read-web-content_20.html&quot;&gt;checkout
the relevant Blog post here&lt;/a&gt;.
Emacspeak has always had a set of Google Websearch tools --- and
this set has now been enhanced with a shortcut to &lt;a href=&quot;http://labs.google.com/accessible&quot;&gt;Accessible Search&lt;/a&gt;.
Below, I&#39;ll summarize the set of Google Websearch tools in
Emacspeak.&lt;/p&gt;

&lt;p&gt;All Emacspeak Websearch tools are reached via the key-sequence
&lt;code&gt;C-e?&lt;/code&gt;. Specific search tools are selected by
single-letter keystrokes following &lt;code&gt;C-e?&lt;/code&gt; --- I&#39;ll
enumerate some of these below.&lt;/p&gt;

&lt;dl&gt;
&lt;dt&gt;i&lt;/dt&gt;
&lt;dd&gt;Accessible Search --- Google Web Search that favors
accessible content.&lt;/dd&gt;
&lt;dt&gt;g&lt;/dt&gt;
&lt;dd&gt;Vanila Google Search.&lt;/dd&gt;
&lt;dt&gt;space&lt;/dt&gt;
&lt;dd&gt;Google &lt;em&gt;I&#39;m Feeling Lucky&lt;/em&gt; --- takes you directly to
the first search hit.&lt;/dd&gt;
&lt;dt&gt;n&lt;/dt&gt;
&lt;dd&gt;Google News Search.&lt;/dd&gt;
&lt;dt&gt;e&lt;/dt&gt;
&lt;dd&gt;EmapSpeak Via Google Maps.&lt;/dd&gt;
&lt;dt&gt;u&lt;/dt&gt;
&lt;dd&gt;Google Usenet Search.&lt;/dd&gt;
&lt;/dl&gt;

&lt;p&gt;Note that in addition, module
&lt;code&gt;emacspeak-url-template&lt;/code&gt; provides a number of Google
tools as &lt;em&gt;smart URLs.&lt;/em&gt;&lt;/p&gt;

    &lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/115341852989897851'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/115341852989897851'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2006/07/emacspeak-and-accessible-search-via.html' title='Emacspeak And Accessible Search Via Google '/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-115112691863662574</id><published>2006-06-23T22:28:00.000-07:00</published><updated>2006-06-23T22:28:38.686-07:00</updated><title type='text'>ALSA And Emacspeak: Closing The Legacy Loop With ALSA-OSS </title><content type='html'>&lt;div xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;p&gt;And now, with ALSA working well with software TTS and
cooperating with ALSA_aware streaming applications 
such as &lt;code&gt;mplayer&lt;/code&gt; it&#39;s time to close the legacy loop
for those few applications that still have the old
&lt;code&gt;OSS&lt;/code&gt; API hard-wired.&lt;/p&gt;
&lt;p&gt;One such useful application is &lt;code&gt;trplayer&lt;/code&gt; --- the
command-line &lt;em&gt;real player&lt;/em&gt; that has not been updated in
over 4 years.
For the most part, the functionality provided by
&lt;code&gt;trplayer&lt;/code&gt; is subsumed by the newer --- and actively
maintained --- &lt;code&gt;mplayer&lt;/code&gt; but it&#39;s still useful to have
&lt;code&gt;trplayer&lt;/code&gt; for times when &lt;code&gt;mplayer&lt;/code&gt; hits
gliches with slow-responding RTSP streams.&lt;/p&gt;
&lt;p&gt;The ALSA way of handling such legacy applications is through
the &lt;em&gt;ALSA OSS&lt;/em&gt; emulation layer; Emacspeak now contains a
script &lt;code&gt;etc/atrplayer&lt;/code&gt; that invokes
&lt;code&gt;trplayer&lt;/code&gt; via &lt;code&gt;aoss&lt;/code&gt;.  Incidentally for
the more observant Emacspeak user running out of CVS, script
&lt;code&gt;atrplayer&lt;/code&gt; is not new; it has been around for about a
year, but until now it used command &lt;code&gt;vsound&lt;/code&gt; to stream
the converted audio to command &lt;code&gt;aplay&lt;/code&gt;. I needed to do
this until ALSA 1.0.11 since &lt;code&gt;trplayer&lt;/code&gt; used to fail
sporadically if run through the &lt;code&gt;AOSS&lt;/code&gt; emulation
layer.  But those problems now seem to be in the past with the
upgrade to ALSA 1.0.11.  As usual with cutting edge technology
like ALSA, your mileage with &lt;strong&gt;all of this&lt;/strong&gt; will vary; so
let me end with the usual disclaimer --- if it breaks, you get to
keep both pieces.&lt;/p&gt;
    &lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/115112691863662574'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/115112691863662574'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2006/06/alsa-and-emacspeak-closing-legacy-loop.html' title='ALSA And Emacspeak: Closing The Legacy Loop With ALSA-OSS '/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-115072588866693831</id><published>2006-06-19T07:04:00.000-07:00</published><updated>2006-06-19T07:04:48.726-07:00</updated><title type='text'>SpeakFreely, Software TTS And ALSA </title><content type='html'>&lt;div xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;p&gt;
In &lt;a href=&quot;http://emacspeak.blogspot.com/2006/06/emacspeak-tts-alsa-and-asym.html&quot;&gt;ALSA
and ASYM&lt;/a&gt;
I mentioned that &lt;code&gt;speakfreely&lt;/code&gt; appeared to have
stopped working.
As it turns out, this had nothing to do with the switch to
ASYM. I believe that in the past I had run speakfreely by first
killing software TTS --- since by default
&lt;code&gt;speakfreely&lt;/code&gt; uses OSS.&lt;/p&gt;
&lt;p&gt;Getting &lt;code&gt;speakfreely&lt;/code&gt; working with ALSA without
losing software TTS required the following steps;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Retrieve the latest  tarball 
&lt;code&gt;speak_freely-7.6a.tar.gz&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Uncomment the &lt;code&gt;ALSA&lt;/code&gt; specific line in its
&lt;code&gt;Makefile&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;In file &lt;code&gt;audio_alsa.c&lt;/code&gt;, change the default audio
device from &lt;code&gt;plughw:0,0&lt;/code&gt; to &lt;code&gt;default&lt;/code&gt;.
Without this change, speakfreely will try to  access the sound
card directly; setting it to &lt;code&gt;default&lt;/code&gt;
on line 41:
&lt;pre&gt;
char *devAudioOutput = &quot;default&quot;;
&lt;/pre&gt;
matches things up with the &lt;code&gt;pcm.default&lt;/code&gt; that was
configured in the &lt;code&gt;.asoundrc&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;With this, you can now talk using &lt;code&gt;speakfreely&lt;/code&gt; and
continue to use software TTS.
&lt;/p&gt;


    &lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/115072588866693831'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/115072588866693831'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2006/06/speakfreely-software-tts-and-alsa.html' title='SpeakFreely, Software TTS And ALSA '/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-114963944798906198</id><published>2006-06-06T17:17:00.000-07:00</published><updated>2006-06-06T17:17:28.043-07:00</updated><title type='text'>Emacspeak, TTS, Alsa And ASYM </title><content type='html'>&lt;div xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;p&gt;
This is a continuation of the earlier thread about using ALSA for
software TTS using DMix ---
see &lt;a href=&quot;http://emacspeak.blogspot.com/2006/05/asoundrc-parameters-for-reliably-using.html&quot;&gt;ASoundrc
And Emacspeak&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I&#39;ve now updated the CVS version of &lt;code&gt;ASoundRC&lt;/code&gt; to
use the &lt;code&gt;ASYM&lt;/code&gt;
plugin for the default ALSA device. 
The &lt;code&gt;ASYM&lt;/code&gt; plugin allows you to configure both the
playback and capture device, which removes the annoyance of
having to specify an ALSA device when calling
&lt;code&gt;arecord&lt;/code&gt; --- as used to be the case when using
&lt;code&gt;DMIX&lt;/code&gt; in the &lt;code&gt;pcm.default&lt;/code&gt; device.&lt;/p&gt;

&lt;p&gt;Possible Caveats:
I am having trouble getting &lt;code&gt;speakfreely&lt;/code&gt; to work
reliably --- I&#39;ve used  it with ALSA in the past --- though I&#39;m
not sure if the &lt;code&gt;ASYM&lt;/code&gt; plugin is the culprit.&lt;/p&gt;


    &lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/114963944798906198'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/114963944798906198'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2006/06/emacspeak-tts-alsa-and-asym.html' title='Emacspeak, TTS, Alsa And ASYM '/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-114834483483433408</id><published>2006-05-22T17:40:00.000-07:00</published><updated>2006-05-22T17:40:34.880-07:00</updated><title type='text'>ASoundrc Parameters For Reliably Using ALSA Powered Software TTS </title><content type='html'>&lt;div xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;p&gt; 
Advanced Linux Sound Architecture 
&lt;a href=&quot;http://www.alsa-project.org/&quot;&gt;
ALSA&lt;/a&gt; is a boon for software TTS users --- you can now use
your soundcard to produce spoken output while not losing 
audio output from other applications such as music players and
streaming radio stations.&lt;/p&gt;
&lt;p&gt;Emacspeak implements an ALSA-enabled TTS server for the IBM
ViaVoice engine --- 
using this server effectively requires appropriately tuning the
parameters in the user&#39;s &lt;code&gt;asoundrc&lt;/code&gt; file to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Enable the &lt;code&gt;DMix&lt;/code&gt; plugin to enable software mixing
of multiple channels of audio.&lt;/li&gt;
&lt;li&gt;To configure the various parameters ALSA itself uses.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Depending on how well your sound-card is supported by ALSA,
the above can be either trivially simple or a  tedious process of
trial and error. I&#39;m writing this up to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Collect a  list of sound cards on which the
&lt;code&gt;asoundrc&lt;/code&gt; provided with Emacspeak works as
expected.&lt;/li&gt;
&lt;li&gt;In the hope that the wider ALSA community discovers and helps
flesh out this material;
my hope is that 
the ALSA community has more insight into how these settings
work.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For the above, &lt;em&gt;works effectively&lt;/em&gt; means the
following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The TTS engine speaks without perceptible stuttering or other
audio artifacts.&lt;/li&gt;
&lt;li&gt;The engine is responsive with respect to starting and
stopping speech; especially when typing fast at high speech
rates.&lt;/li&gt;
&lt;li&gt;The TTS engine does not interfere with other alsa-enabled
applications, e.g. &lt;code&gt;mplayer&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;At the end of this entry, you can find the relevant section
from the    &lt;code&gt;asoundrc&lt;/code&gt; file from the Emacspeak
distribution, with comments indicating which sound cards perform
well.
An example of a card that &lt;em&gt;does not&lt;/em&gt; work well with these
settings is the Audigy-LS from Creative; the TTS engine works on
that card, but performs degrades:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;mplayer cannot use the audio device; (aplay and mpg321 are
able to share the card with the TTS engine.)&lt;/li&gt;
&lt;li&gt;Speech does not stop immediately as on the soundcards
enumerated in the &lt;code&gt;asoundrc&lt;/code&gt; file.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;
  Id: asoundrc,v 1.3 2006/05/23 00:22:16 raman Exp $
#these numbers work on the following:
# aplay -l | head 1
# I82801DBICH4 [Intel 82801DB-ICH4] (IBM Thinkpads)
# ICH6 [Intel ICH6],

#  default device is a mixer

pcm.!default {
    type plug
    slave.pcm &quot;dmixer&quot;
}

pcm.dmixer  {
    type dmix
    ipc_key 1024
    slave {
        pcm &quot;hw:0,0&quot;
        format s16_LE
        period_time 0
        period_size 1024
        buffer_size 4096
        rate 44100
    }
    bindings {
        0 0
        1 1
    }
}
&lt;/pre&gt;
    &lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/114834483483433408'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/114834483483433408'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2006/05/asoundrc-parameters-for-reliably-using.html' title='ASoundrc Parameters For Reliably Using ALSA Powered Software TTS '/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-114666709268320351</id><published>2006-05-03T07:38:00.000-07:00</published><updated>2006-05-03T07:38:17.460-07:00</updated><title type='text'>Listening To The Web Through A Mobile Lens </title><content type='html'>&lt;div xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;p&gt;
The similarities between Web access issues faced 
by mobile users and those confronting eyes-free Web browsing are
striking, and these similarities have often been used to advocate
the creation of well-structured, accessible  Web content. As an
example of mobile-friendly content 
being a blessing for eyes-free spoken access to WebFormation,
Emacspeak provides a 
&lt;em&gt;mobile lens&lt;/em&gt; via the
&lt;a href=&quot;http://www.google.com/gwt/n&quot;&gt;
Google Mobile&lt;/a&gt; transcoder.&lt;/p&gt;
&lt;p&gt;
Here are a few convenient means of using the above within the
Emacspeak Audio Desktop:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;While browsing the Web using &lt;code&gt;w3&lt;/code&gt;,
press &lt;code&gt;t&lt;/code&gt; on a link (command:
&lt;code&gt;emacspeak-w3-transcode-via-google&lt;/code&gt;)
to view that link through the mobile transcoder.&lt;/li&gt;
&lt;li&gt;Note that all links in the resulting mobile view
automatically go through the transcoder.&lt;/li&gt;
&lt;li&gt;To  undo the effect of automatically viewing links in the
mobile view through the transcoder, use &lt;code&gt;t&lt;/code&gt; with a
&lt;em&gt;interactive prefix argument&lt;/em&gt;
i.e., press &lt;code&gt;C-u t&lt;/code&gt; to follow a link to view it in its
original form.&lt;/li&gt;
&lt;li&gt;Additionally, I bind command
&lt;code&gt;emacspeak-wizards-google-transcode&lt;/code&gt;
to a convenient key so that I can launch Web sites using the
mobile view.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I use this tool on a regular basis while commuting to work  to
browse mainstream news sites, it provides speech-friendly content
that has the added benefit of downloading fast over a wireless
link --- after all, &lt;strong&gt;this is &lt;em&gt;Mobile&lt;/em&gt;
content&lt;/strong&gt;.
&lt;/p&gt;
    &lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/114666709268320351'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/114666709268320351'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2006/05/listening-to-web-through-mobile-lens.html' title='Listening To The Web Through A Mobile Lens '/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-114662907863308710</id><published>2006-05-02T21:04:00.000-07:00</published><updated>2006-05-02T21:04:38.680-07:00</updated><title type='text'>Announcing Emacspeak 24.0 (LiveDog) </title><content type='html'>&lt;div xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;strong&gt;For Immediate Release&lt;/strong&gt;
    &lt;p&gt;
      San Jose, CA, (May 3,  2006)&lt;br/&gt;
      Emacspeak-Alive:   --- Bringing Live  Access For  Enlightened Users&lt;br/&gt;
      --Zero cost of ownership makes priceless software
    affordable!&lt;/p&gt;

&lt;h3&gt;Major Enhancements&lt;/h3&gt;
    &lt;ol&gt;
&lt;li&gt;  emacspeak-muse: Speech-enabled Muse Mode&lt;/li&gt;
&lt;li&gt;  emacspeak-ruby: Speech-enabled Ruby Mode&lt;/li&gt;
&lt;li&gt;  emacspeak-m-player: Updated for new MPlayer&lt;/li&gt;
&lt;li&gt;  emacspeak-sudoku.el: Speech-enabled SuDoKu&lt;/li&gt;
&lt;li&gt;  New Option: tts-strip-octals&lt;/li&gt;
&lt;li&gt;  emacspeak-keymap.el Updated keybindings&lt;/li&gt;
&lt;li&gt;  lisp/atom-blogger.el Light-weight blogging tool&lt;/li&gt;
&lt;li&gt;  emacspeak-atom-blogger: Speech-enables above&lt;/li&gt;
&lt;li&gt;  voice-setup.el Custom support&lt;/li&gt;
&lt;li&gt; Multispeech related patches&lt;/li&gt;
&lt;li&gt; User contributed patches&lt;/li&gt;
&lt;/ol&gt;
    &lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/114662907863308710'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/114662907863308710'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2006/05/announcing-emacspeak-240-livedog.html' title='Announcing Emacspeak 24.0 (LiveDog) '/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-114204420283018511</id><published>2006-03-10T18:30:00.000-08:00</published><updated>2006-03-10T18:30:02.880-08:00</updated><title type='text'>W3: Minor Patch To Handle  Content-Type application/xhtml+xml </title><content type='html'>&lt;div xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;p&gt;
Here is a minor patch to w3.el to allow it to handle content-type
&lt;code&gt;application/xhtml+xml&lt;/code&gt;.
For all practical  purposes (at least as far as W3 is concerned),
this can be handled by the html parser/renderer; however since that
content-type did not exist at the time W3 was written, it offers
to download/save  documents of that type.
The attached patch fixes this, and also adds a fix to a minor
irritant with decoding of multimedia attachments.&lt;/p&gt;
&lt;pre&gt;
Index: w3.el
===================================================================
RCS file: /cvsroot/w3/w3/lisp/w3.el,v
retrieving revision 1.32
diff -b -c -r1.32 w3.el
*** w3.el	12 Jan 2003 22:10:25 -0000	1.32
--- w3.el	11 Mar 2006 02:24:52 -0000
***************
*** 34,39 ****
--- 34,40 ----
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  
  (require &#39;w3-sysdp)
+ (eval-when-compile (require &#39;mm-decode))
  (require &#39;w3-cfg)
  
  (or (featurep &#39;efs)
***************
*** 325,331 ****
  				  (mm-handle-media-type handle)))))
        ;; Fixme: can handle be null?
        (cond
!        ((equal (mm-handle-media-type handle) &quot;text/html&quot;)
  	;; Special case text/html if it comes through w3-fetch
  	(set-buffer (generate-new-buffer &quot; *w3-html*&quot;))
  	(mm-disable-multibyte)
--- 326,333 ----
  				  (mm-handle-media-type handle)))))
        ;; Fixme: can handle be null?
        (cond
!        ((or (equal (mm-handle-media-type handle) &quot;application/xhtml+xml&quot;)
!          (equal (mm-handle-media-type handle) &quot;text/html&quot;))
  	;; Special case text/html if it comes through w3-fetch
  	(set-buffer (generate-new-buffer &quot; *w3-html*&quot;))
  	(mm-disable-multibyte)
&lt;/pre&gt;
    &lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/114204420283018511'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/114204420283018511'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2006/03/w3-minor-patch-to-handle-content-type.html' title='W3: Minor Patch To Handle  Content-Type application/xhtml+xml '/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-114187119760134089</id><published>2006-03-08T18:26:00.000-08:00</published><updated>2006-03-08T18:26:37.636-08:00</updated><title type='text'>Blogging From Emacs: Additional Atom-Blogger Documentation </title><content type='html'>&lt;div xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;p&gt;Thanks to Jason  Dunsmore 
for writing up some additional 
&lt;a href=&quot;http://phototechnic.blogspot.com/2006/03/using-atom-blogger-with-emacs-to-post.html&quot;&gt;
step-by-step documentation&lt;/a&gt;
on using &lt;code&gt;atom-blogger&lt;/code&gt;.
&lt;/p&gt;
    &lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/114187119760134089'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/114187119760134089'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2006/03/blogging-from-emacs-additional-atom.html' title='Blogging From Emacs: Additional Atom-Blogger Documentation '/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-114074992344461641</id><published>2006-02-23T18:58:00.000-08:00</published><updated>2006-02-23T18:58:43.536-08:00</updated><title type='text'>Emacspeak: Connecting Lynx And W3 </title><content type='html'>&lt;div xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;p&gt;Emacs/W3 is still the best Web page rendering option inside
Emacspeak given the ability to apply XSL transforms, as well as
obtaining aural styling via ACSS.
However W3&#39;s url handling layer often breaks when faced with
multiple redirects, especially when some of these happen through
the &lt;code&gt;Host:&lt;/code&gt; HTTP header. Additionally,
&lt;code&gt;HTTPS&lt;/code&gt; authentication sometimes fails mysteriously in
the presence of redirects.&lt;/p&gt;

&lt;p&gt;In many of these cases, &lt;code&gt;lynx&lt;/code&gt; happily fetches the
pages correctly; however you&#39;re then stuck using  a  fairly weak
auditory interface in that Emacspeak degrades to being
aterminal level screenreader.&lt;/p&gt;

&lt;p&gt;An effective solution to this problem is to use
&lt;code&gt;lynx&lt;/code&gt; within an Emacs terminal, and after finding the
content that is worth reading, handing off that content to
Emacs/W3. The next few paragraphs show how.&lt;/p&gt;

&lt;H4&gt;The &lt;code&gt;lynx-site.cfg&lt;/code&gt; File&lt;/H4&gt;

&lt;p&gt;This is where you add site-specific configurations.
Here are the lines I have in my &lt;code&gt;lynx-site.cfg &lt;/code&gt; to
integrate &lt;code&gt;lynx&lt;/code&gt; and Emacs.
Before you use any of this, make sure you have executed &lt;code&gt;M-x
server-start&lt;/code&gt; in your running Emacs, and make sure that all
is well by experimenting with &lt;code&gt;emacsclient&lt;/code&gt; to ensure
that external programs can hand-off editting tasks to the
currently running Emacs.&lt;/p&gt;


&lt;pre&gt;
#site defaults
#for bookshare:
DOWNLOADER:BKS Unpack:bks.pl  %s %s:TRUE 
PRINTER:Edit:emacsclient %s:TRUE
KEYMAP:???:EDITTEXTAREA	# use external editor to edit a form textarea
PRETTYSRC:TRUE
SOURCE_CACHE:MEMORY
SAVE_SPACE:~/.wget/
BOLD_HEADERS:TRUE
PRINTER:W3:emacsclient -e &#39;(w3-open-local &quot;%s&quot;)&#39;:TRUE
&lt;/pre&gt;
&lt;p&gt;Below, I&#39;ll describe what each of the above lines do:&lt;/p&gt;

&lt;ul&gt;

&lt;li&gt; &lt;code&gt;DOWNLOADER:BKS Unpack:bks.pl  %s %s:TRUE &lt;/code&gt;&lt;br/&gt;
The above line creates an additional item in the &lt;em&gt;download
menu&lt;/em&gt; that invokes the BookShare unpacker.
Script &lt;code&gt;bks-unpack.pl&lt;/code&gt; invokes the BookShare unpack
tool with the appropriate options.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;PRINTER:Edit:emacsclient %s:TRUE&lt;/code&gt;&lt;br/&gt;
This creates an &lt;em&gt;Edit&lt;/em&gt; item in the &lt;em&gt;print menu&lt;/em&gt;.
Invoking this menu item causes the current page to be handed off
to Emacs for editting.
If you want to edit the source, first switch to &lt;em&gt;source
view&lt;/em&gt; by hitting &lt;code&gt;\&lt;/code&gt; before invoking print.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;KEYMAP:???:EDITTEXTAREA	# use external editor to
edit a form textarea&lt;/code&gt;&lt;br/&gt;
This sets lynx up so that when editting a multiline textarea, you
can hand off the editting job to Emacs. This is particularly
useful for editting Wiki pages. Replace the &lt;code&gt;??&lt;/code&gt; with
the desired key sequence.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;PRETTYSRC:TRUE&lt;br/&gt;
SOURCE_CACHE:MEMORY&lt;/code&gt;&lt;br/&gt;
The above two settings make the edit source functionality more
pleasant to use.&lt;/li&gt;
&lt;li&gt; &lt;code&gt;PRINTER:W3:emacsclient -e &#39;(w3-open-local
&quot;%s&quot;)&#39;:TRUE&lt;/code&gt;&lt;br/&gt;
The above creates a &lt;em&gt;W3&lt;/em&gt; menu item in the &lt;em&gt;print
menu&lt;/em&gt;. Invoking this  causes Emacs/W3 to display the current
page --- again switch to &lt;code&gt;source view&lt;/code&gt; before invoking
this so that Emacs/W3 gets handed the HTML markup.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;Script &lt;code&gt;bks-unpack.pl&lt;/code&gt;&lt;/h4&gt;
&lt;pre&gt;
#!/usr/bin/perl -w
#$Id: bks.pl,v 1.1 2003/07/04 15:41:55 tvraman Exp tvraman $
#Description: Bookshare downloader for Lynx
use strict;
my $location=&quot;$ENV{HOME}/books/book-share&quot;;
my $password = &#39;xxxxxxx&#39;;
my $grabbed = shift;
my $target = shift;
my $dir =qx(basename $target .bks);
chomp $dir;
my $where = &quot;$location/$dir&quot;;
qx(mkdir -p $where);
qx(mv $grabbed  $where/$target);
chdir $where;
qx(echo $password | bks-unpack -q $target 1&amp;gt;&amp;amp;- 2&amp;gt;&amp;amp;- &amp;amp;);
&lt;/pre&gt;
    &lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/114074992344461641'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/114074992344461641'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2006/02/emacspeak-connecting-lynx-and-w3.html' title='Emacspeak: Connecting Lynx And W3 '/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-114057538920932076</id><published>2006-02-21T18:29:00.000-08:00</published><updated>2006-02-21T18:29:49.256-08:00</updated><title type='text'>Emacspeak, SuDoKu And History </title><content type='html'>&lt;div xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;p&gt;Here is a small enhancement to &lt;a href=&quot;http://emacspeak.blogspot.com/2006/02/playing-sudoku-using-auditory-feedback.html&quot;&gt;playing
SuDoKu&lt;/a&gt; in Emacspeak.
The feature is probably generally useful  i.e., it&#39;s not specific
to eyes-free interaction,
but its presence encourages one to try different solution
strategies.&lt;/p&gt;
&lt;p&gt;Commands &lt;code&gt;emacspeak-sudoku-history-push&lt;/code&gt; bound to
&lt;code&gt;m&lt;/code&gt; and  &lt;code&gt;emacspeak-sudoku-history-pop&lt;/code&gt;
bound to &lt;code&gt;M&lt;/code&gt; allow one to &lt;em&gt;mark&lt;/em&gt; interesting
states in the game and return to these prior states with a single
keystroke. This means that when one is confronted with  one of
two choices, with no apparent additional information on which 
route to take, it becomes possible to push that state on to the
history stack, try one of the alternatives and backtrack if necessary.&lt;/p&gt;
    &lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/114057538920932076'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/114057538920932076'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2006/02/emacspeak-sudoku-and-history.html' title='Emacspeak, SuDoKu And History '/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-114048639986049011</id><published>2006-02-20T17:46:00.000-08:00</published><updated>2006-02-20T17:46:39.903-08:00</updated><title type='text'>Emacspeak And Voice Locking Using Aural CSS </title><content type='html'>&lt;div xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;

&lt;p&gt;This is slightly reformatted from what was posted to the
Emacspeak mailing list as separate message.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Emacspeak defines a number of voice overlays such as
&lt;code&gt;voice-bolden&lt;/code&gt;, and &lt;code&gt;voice-lighten&lt;/code&gt; that can be applied to a
given voice to change what it sounds like.&lt;/li&gt;

&lt;li&gt;Voice overlays are defined in terms of Aural CSS (&lt;a href=&quot;http://www.w3.org/tr/css2/aural.html&quot;&gt;ACSS&lt;/a&gt;) to
keep them independent of a specific TTS engine.&lt;/li&gt;

&lt;li&gt;For each such overlay there is a corresponding
&lt;code&gt;&amp;lt;overlay-name&amp;gt;-settings&lt;/code&gt; variable that can be customized via
custom.&lt;/li&gt;

&lt;li&gt;The numbers in &lt;code&gt;voice-bolden-settings as an example&lt;/code&gt;:&lt;/li&gt;
&lt;/ol&gt;

&lt;table border=&quot;2&quot; cellpadding=&quot;5&quot;&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;Setting&lt;/th&gt;
      &lt;th&gt;Value&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;family&lt;/td&gt;
      &lt;td&gt;nil&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;average-pitch&lt;/td&gt;
      &lt;td&gt;1&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;pitch-range&lt;/td&gt;
      &lt;td&gt;6&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;stress&lt;/td&gt;
      &lt;td&gt;6&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;richness&lt;/td&gt;
      &lt;td&gt;nil&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;punctuation&lt;/td&gt;
      &lt;td&gt;nil&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
Unset values (&lt;code&gt;nil&lt;/code&gt;) show up as &quot;unspecified&quot; in the customize
interface.

&lt;ol&gt;
&lt;li&gt;Do not directly customize &lt;code&gt;voice-bolden&lt;/code&gt; and friends, instead
customize the corresponding &lt;code&gt;voice-bolden-settings&lt;/code&gt;, since that
ensures that all voices that are defined in terms of
&lt;code&gt;voice-bolden&lt;/code&gt; get correctly updated.&lt;/li&gt;

&lt;li&gt;Discovering what to customize:&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Command &lt;code&gt;emacspeak-show-personality-at-point&lt;/code&gt; (bound by default
to C-e M-v) will show you the value of properties personality and
face at point. A recent update I implemented last weekend makes
this more useful, so make sure you do a CVS update; earlier this
command used to display the ACSS setting --- now it displays the
abstract name. Describe-variable on these names should tell you
what to customize; so as an example:&lt;/p&gt;

&lt;p&gt;Put point on a comment line, and hit &lt;code&gt;C-e M-v&lt;/code&gt;:
you will hear&lt;/p&gt;

&lt;pre class=&quot;example&quot;&gt;
Personality emacspeak-voice-lock-comment-personality
Face font-lock-comment-delimiter-face
&lt;/pre&gt;

&lt;p&gt;Describe-variable of &lt;code&gt;emacspeak-voice-lock-comment-personality&lt;/code&gt; gives:&lt;/p&gt;

&lt;pre class=&quot;example&quot;&gt;
emacspeak-voice-lock-comment-personality&#39;s value is acss-p0-s0-all

Documentation:
Personality used for font-lock-comment-face
This personality uses  voice-monotone whose  effect can be changed globally by customizing voice-monotone-settings.

&lt;/pre&gt;


&lt;h3&gt;How It All Works&lt;/h3&gt;

&lt;p class=&quot;first&quot;&gt;Here is a brief explanation of the connection between
&lt;code&gt;voice-bolden&lt;/code&gt; and its associated &lt;code&gt;voice-bolden-settings&lt;/code&gt;.&lt;/p&gt;


&lt;ol&gt;
&lt;li&gt;Voice  settings are initially in &lt;code&gt;voice-bolden-settings&lt;/code&gt; which is a list
of numbers.&lt;/li&gt;

&lt;li&gt;That list of numbers needs to be translated to appropriate
device-specific codes to send to the TTS engine.&lt;/li&gt;

&lt;li&gt;You do not want to do this translation &lt;em&gt;each&lt;/em&gt; time you
speak something.&lt;/li&gt;

&lt;li&gt;So when &lt;code&gt;voice-bolden&lt;/code&gt; is defined, the definition happens in
two steps:&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;The list of settings is stored away in
&lt;code&gt;voice-bolden-settings&lt;/code&gt;,&lt;/li&gt;
&lt;li&gt;A corresponding voice-name is generated ---
&lt;code&gt;acss-a&amp;lt;n&amp;gt;-p&amp;lt;n&amp;gt;-r&amp;lt;n&amp;gt;-s&amp;lt;n&amp;gt;&lt;/code&gt; and the corresponding control codes to
send to the device are stored away in a hash-table keyed by the above symbol.&lt;/li&gt;

&lt;li&gt;Finally, &lt;code&gt;voice-bolden&lt;/code&gt; is assigned the above symbol.&lt;/li&gt;
&lt;/ul&gt;


&lt;h3&gt;What this gives is:&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;The ability to customize the voice via custom by editting
the list of numbers in &lt;code&gt;voice-bolden-settings&lt;/code&gt;&lt;/li&gt;

&lt;li&gt;When that list is editted, &lt;code&gt;voice-bolden&lt;/code&gt; is arranged to be
updated automatically.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Other Useful Commands&lt;/h3&gt;
&lt;p&gt;In addition, commands
&lt;code&gt;emacspeak-wizards-generate-voice-sampler&lt;/code&gt; can be
useful in generating a buffer that shows what the various ACSS
settings sound like.
Command &lt;code&gt;emacspeak-wizards-voice-sampler&lt;/code&gt; can be used
to apply a specific voice to a region of text while experimenting
with the various settings.&lt;/p&gt;

    &lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/114048639986049011'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/114048639986049011'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2006/02/emacspeak-and-voice-locking-using.html' title='Emacspeak And Voice Locking Using Aural CSS '/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-113970989256663836</id><published>2006-02-11T18:04:00.000-08:00</published><updated>2006-02-11T18:04:52.580-08:00</updated><title type='text'>Playing SuDoKu Using Auditory Feedback </title><content type='html'>&lt;div xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;p&gt;Emacspeak speech-enables &lt;em&gt;SuDoKu&lt;/em&gt; implemented  by &lt;a href=&quot;http://www.columbia.edu/~jr2075/elisp/index.html&quot;&gt;sudoku.el&lt;/a&gt;.
Speech-enabling games is an effective means of discovering what
additions one needs to make to an auditory interface for
working effectively in an eyes-free environment --- this was
aptly demonstrated a few years ago by identifying interesting
&lt;em&gt;conversational gestures&lt;/em&gt; by speech-enabling the game of
&lt;code&gt;Tetris&lt;/code&gt; --- see  &lt;a href=&quot;http://emacspeak.sourceforge.net/raman/publications/assets-98/paper.pdf&quot;&gt;Conversational
Gestures For The Audio Desktop&lt;/a&gt; from Assets 1998.&lt;/p&gt;


&lt;h4&gt;Advicing Interactive Commands&lt;/h4&gt;
&lt;p&gt;As with speech-enabling any Emacs module,
&lt;code&gt;emacspeak-sudoku&lt;/code&gt; &lt;em&gt;advices&lt;/em&gt; all interactive
commands to produce spoken feedback.
In addition to speaking the cell moved to, all navigation
commands produce an auditory icon that is a function of whether
the cell value is mutable ---  original values cannot be changed
and this is indicated with a distinctive icon.&lt;/p&gt;

&lt;h4&gt;Additional Interactive Commands&lt;/h4&gt;

&lt;p&gt;Playing SuDoKu effectively requires one to build a good mental
image of the state of the board as well as the ability to
effectively query the game for currently active constraints. The
eye&#39;s ability to  quickly move around the board and perceive row,
column and sub-square constraints needs to be compensated for in
an eyes-free environment. As an example, it is too difficult to
build the necessary mental model by just listening to the board
spoken aloud, or by listening to idnividual cells by navigating
to them.&lt;/p&gt;

&lt;p&gt;Here are the set of additional interactive commands that
needed to be added in order to be able to play the game
effectively.&lt;/p&gt;

&lt;dl&gt;
&lt;dt&gt;&lt;code&gt;r&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;Speak current row.&lt;/dd&gt;
&lt;dt&gt;&lt;code&gt;c&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;Speak current column&lt;/dd&gt;
&lt;dt&gt;&lt;code&gt;s&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;Speak current sub-square.&lt;/dd&gt;
&lt;dt&gt;&lt;code&gt;R&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;Speak number of remaining cells in current row.&lt;/dd&gt;
&lt;dt&gt;&lt;code&gt;C&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;Speak number of remaining cells in current column.&lt;/dd&gt;
&lt;dt&gt;&lt;code&gt;S&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;Speak number of remaining cells in current sub-square.&lt;/dd&gt;
&lt;dt&gt;&lt;code&gt;d&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;Move to the sub-square below the current sub-square.&lt;/dd&gt;
&lt;dt&gt;&lt;code&gt;u&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;Move to the sub-square above the current sub-square.&lt;/dd&gt;
&lt;dt&gt;&lt;code&gt;n&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;Move to the next sub-square.&lt;/dd&gt;
&lt;dt&gt;&lt;code&gt;p&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;Move to the previous sub-square.&lt;/dd&gt;
&lt;dt&gt;&lt;code&gt;a&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;Move to the beginning of current row.&lt;/dd&gt;
&lt;dt&gt;&lt;code&gt;e&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;Move to the end of the current row.&lt;/dd&gt;
&lt;dt&gt;&lt;code&gt;t&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;Move to the top of the current column.&lt;/dd&gt;
&lt;dt&gt;&lt;code&gt;b&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;Move to the bottom of the current column.&lt;/dd&gt;
&lt;dt&gt;&lt;code&gt;,&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;Speaks information about the overall &lt;em&gt;distribution&lt;/em&gt; of
numbers on the board.
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;d&lt;/code&gt; --- Conveys how many instances of each digit
have been filled in.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;s&lt;/code&gt; --- Conveys number of remaining cells in each
sub-square.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;r&lt;/code&gt; --- Conveys number of remaining cells in each
row.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;c&lt;/code&gt; --- Conveys number of remaining cells in each
column.&lt;/li&gt;
&lt;/ul&gt;
&lt;/dd&gt;
&lt;dt&gt;&lt;code&gt;/&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;Speaks number of remaining cells in the current board.&lt;/dd&gt;
&lt;dt&gt;&lt;code&gt;.&lt;/code&gt;&lt;/dt&gt;
&lt;dd&gt;Speaks value in current cell.&lt;/dd&gt;
&lt;/dl&gt;

&lt;p&gt;Notes on how invormation is spoken:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Numbers are spoken in groups of 3 to achieve effective
intonation.&lt;/li&gt;
&lt;li&gt;When navigating by sub-squares, point &lt;em&gt;always&lt;/em&gt; moves
to the top left corner of the sub-square.&lt;/li&gt;
&lt;li&gt;Additional commands bound to &lt;code&gt;M-r&lt;/code&gt;,
&lt;code&gt;M-c&lt;/code&gt; and &lt;code&gt;M-s&lt;/code&gt; erase the current row,
column or sub-square respectively. These commands would probably
be convenient to have independent of whether one is using visual
output.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;Effectiveness Of The Resulting Interface&lt;/h4&gt;

&lt;p&gt;With the above interface in place, the simpler levels of the
game are a breeze, levels &lt;em&gt;difficult&lt;/em&gt; and &lt;em&gt;evil&lt;/em&gt;
are sufficiently challenging to be fun.&lt;/p&gt;
    &lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/113970989256663836'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/113970989256663836'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2006/02/playing-sudoku-using-auditory-feedback.html' title='Playing SuDoKu Using Auditory Feedback '/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-113842396545550696</id><published>2006-01-27T20:52:00.000-08:00</published><updated>2006-01-27T20:52:45.470-08:00</updated><title type='text'>Browsing Sourceforge Download Servers </title><content type='html'>&lt;div xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;p&gt;Sourceforge is a nice service, but it can also be painful to
use because of the heavy-weight Web page design, and the need to
repeatedly click before you get the download you want.&lt;/p&gt;
&lt;p&gt;The most irksome of these is the download mechanism provided
by Sourceforge --- where you first need to browse a list of
download servers, pick a mirror, and then download what you
want. 
Emacspeak implements a &lt;em&gt;Smart URL&lt;/em&gt; that enables one to
download from Sourceforge in a single step.&lt;/p&gt;
&lt;p&gt;By default, this uses a North American mirror; the behavior
can be customized if outside the US.
Use &lt;em&gt;smart URL&lt;/em&gt; &lt;code&gt;Sourceforge Browse Mirror&lt;/code&gt; and
specify the name of a SF hosted project when prompted.
This brings up the index page for the project&#39;s download area,
sorted by date. Move to the bottom of the page and   hit
&lt;code&gt;b&lt;/code&gt; to move to the latest available download.&lt;/p&gt;
&lt;p&gt;The &lt;em&gt;smart URL&lt;/em&gt; sets up the W3 buffer with a
context-sensitive download function; when on a download link, hit
&lt;code&gt;C-d&lt;/code&gt;
to start downloading. This command will prompt for the URL;
rather than hitting &lt;code&gt;return&lt;/code&gt; (which would bring you to
the &lt;em&gt;browse mirrors&lt;/em&gt; page, hit &lt;code&gt;M-p&lt;/code&gt; to get the
download URL for your  SF mirror.
Note that this wizard uses &lt;code&gt;GNU wget&lt;/code&gt; to perform the
download
via Emacs module &lt;code&gt;w3-wget&lt;/code&gt;.&lt;/p&gt;
    &lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/113842396545550696'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/113842396545550696'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2006/01/browsing-sourceforge-download-servers.html' title='Browsing Sourceforge Download Servers '/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-113842342844647994</id><published>2006-01-27T20:43:00.000-08:00</published><updated>2006-01-27T20:43:48.903-08:00</updated><title type='text'>BBC Channels On Emacspeak </title><content type='html'>&lt;div xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;p&gt;Since the BBC&#39;s various channels are what I listen to the
most, launching BBC channels has always been a couple of
keystrokes in Emacspeak. As a first step, directory
&lt;code&gt;realaudio/radio&lt;/code&gt; contains shortcut files for
launching  live streams from the various BBC channels.&lt;/p&gt;
&lt;p&gt;
In addition, module &lt;code&gt;emacspeak-url-template&lt;/code&gt; defines a
number of &lt;em&gt;Smart URLs&lt;/em&gt; for single-click access to BBC
programs. The ones I use the most are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Smart URL&lt;/em&gt; &lt;code&gt;BBC Channels On Demand&lt;/code&gt;, and &lt;/li&gt;
&lt;li&gt;&lt;em&gt;Smart URL&lt;/em&gt; &lt;code&gt;BBC Genres On Demand&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
These &lt;em&gt;smart URLs&lt;/em&gt; prompt for the channel or genre
respectively and bring up a Web page that lists the various shows
that are available --- note that the BBC archives shows for a
whole week.
The resulting Web page is easy to browse in W3; the most
effective way to skim the buffer is to repeatedly hit
&lt;code&gt;i&lt;/code&gt; which moves through the various items on the page.
Hitting &lt;code&gt;e e&lt;/code&gt; (that&#39;s the letter &lt;code&gt;e&lt;/code&gt;
&lt;em&gt;twice&lt;/em&gt;) while on a hyperlink will launch the
corresponding media stream by calling   a &lt;em&gt;context-aware&lt;/em&gt;
command that knows about transforming the URL to one that
accesses the program stream; --- note that simply following the
hyperlink will get you first to a page about the program, rather
than to the program stream itself.&lt;/p&gt;
&lt;p&gt;To find out what channels and genres are available, browse the
BBC Web site --- channel and genre names are not hard-wired into
Emacspeak since these can change over time with channels and
genres being added or renamed.&lt;/p&gt;
    &lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/113842342844647994'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/113842342844647994'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2006/01/bbc-channels-on-emacspeak.html' title='BBC Channels On Emacspeak '/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-113832891320852876</id><published>2006-01-26T18:28:00.000-08:00</published><updated>2006-01-26T18:28:33.273-08:00</updated><title type='text'>Emacspeak World Clock For Timezone Travel </title><content type='html'>&lt;div xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;p&gt;Command &lt;code&gt;emacspeak-speak-time&lt;/code&gt; bound to &lt;code&gt;C-e
t&lt;/code&gt; speaks the current time. 
An additional convenience offered by this keystroke is to get the
time at a specified time zone using Emacs&#39; completion
facility. &lt;/p&gt;
&lt;p&gt;To use this feature, simply precede  the keystroke with an
&lt;code&gt;interactive prefix arg&lt;/code&gt; i.e., use &lt;code&gt;C-u C-e
t&lt;/code&gt;.
This will prompt for the timezone in the minibuffer. Using two
&lt;code&gt;C-u C-u&lt;/code&gt; will set the  default timezone after
speaking the time --- a useful way of avoiding jet-lag as you travel.&lt;/p&gt;

    &lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/113832891320852876'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/113832891320852876'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2006/01/emacspeak-world-clock-for-timezone.html' title='Emacspeak World Clock For Timezone Travel '/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-113795676485627531</id><published>2006-01-22T11:06:00.000-08:00</published><updated>2006-01-22T11:06:05.263-08:00</updated><title type='text'>Emacspeak Web Wizards: Obtaining Context From The Calendar </title><content type='html'>&lt;div xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;p&gt;Emacspeak implements a number of &lt;code&gt;smart URLs&lt;/code&gt; in
module &lt;code&gt;emacspeak-url-template.el&lt;/code&gt; --- see earlier
post on &lt;a href=&quot;http://emacspeak.blogspot.com/2005/12/emacspeak-web-tricks-web-command-line.html&quot;&gt;Web
Command Line&lt;/a&gt;. Many of these &lt;code&gt;smart URLs&lt;/code&gt; prompt
the user for the date, e.g. you can use &lt;code&gt;smart URL&lt;/code&gt;
&lt;em&gt;NPR On Demand&lt;/em&gt; to play  archived NPR shows.
&lt;/p&gt;
&lt;p&gt;The most intuitive means of specifying a date is of course
using a &lt;code&gt;calendar&lt;/code&gt; that functions as a
&lt;em&gt;date-picker&lt;/em&gt;, and Emacs has a very powerful built-in
calendar. Emacspeak ties these two together by arranging for
commands that prompt for a date to use the &lt;em&gt;current date&lt;/em&gt;
in the  Emacs Calendar as the default. So the easiest way to play
&lt;em&gt;NPR Morning Edition&lt;/em&gt; for  &lt;em&gt;Monday, January 2, 2006&lt;/em&gt;
is to do the following:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Switch to the Emacs Calendar and move to the desired date
&lt;em&gt;Monday January 2, 2006&lt;/em&gt; by pressing &lt;code&gt;gd&lt;/code&gt;.
&lt;/li&gt;
&lt;li&gt;Invoke the &lt;em&gt;NPR On Demand&lt;/em&gt; &lt;code&gt;smart URL&lt;/code&gt; by
pressing &lt;code&gt;C-e u RET NPR  RET&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Specify the program code for &lt;em&gt;Morning Edition&lt;/em&gt; by
pressing &lt;code&gt;me RET &lt;/code&gt;&lt;/li&gt;
&lt;li&gt; Hit enter to pick the default date that is offered in the
minibuffer.&lt;/li&gt;
&lt;li&gt;Sit back and listen ...&lt;/li&gt;
&lt;/ul&gt;

    &lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/113795676485627531'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/113795676485627531'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2006/01/emacspeak-web-wizards-obtaining.html' title='Emacspeak Web Wizards: Obtaining Context From The Calendar '/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-113755198213159076</id><published>2006-01-17T18:39:00.000-08:00</published><updated>2006-01-17T18:39:42.490-08:00</updated><title type='text'>Viewing Atom Feeds Within Emacspeak </title><content type='html'>&lt;div xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;p&gt;The most effective way of viewing Atom Feeds in Emacspeak is
to use command &lt;code&gt;emacspeak-atom-display&lt;/code&gt; and specifying
the URL of the feed when prompted. Thus, &lt;code&gt;M-x
emacspeak-atom-display RET
http://emacspeak.blogspot.com/atom.xml&lt;/code&gt; displays a Web page
generated from the Emacspeak Blog.&lt;/p&gt;
&lt;p&gt;Notice the following in the generated Web page:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;It starts with a navigable table of contents.&lt;/li&gt;
&lt;li&gt;Each Blog entry has a  link labeled &lt;code&gt;edit&lt;/code&gt; next to
it.&lt;/li&gt;
&lt;li&gt;Each Blog entry ends with a link labeled
&lt;code&gt;Bookmark&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;There is a link labeled &lt;code&gt;Post&lt;/code&gt; at the top of the
page.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The above links help you easily create and edit posts to the
Blog if you have write access using commands provided by module
&lt;code&gt;atom-blogger&lt;/code&gt;.
Eventually, I may add commands to these hyperlinks to
automatically invoke the appropriate command from
&lt;code&gt;atom-blogger&lt;/code&gt;; for now, I find it  sufficiently
convenient to copy the URL under point to the
&lt;code&gt;kill-ring&lt;/code&gt; and later yank it back into the minibuffer
when prompted by &lt;code&gt;atom-blogger&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Finally, note that this and subsequent posts to this Blog will
show  up automatically on the &lt;a href=&quot;http://www.cs.vassar.edu/~priestdo/emacspeak/&quot;&gt;Emacspeak
Mailing List&lt;/a&gt; at Vassar.&lt;/p&gt;
    &lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/113755198213159076'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/113755198213159076'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2006/01/viewing-atom-feeds-within-emacspeak.html' title='Viewing Atom Feeds Within Emacspeak '/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-113752981092887635</id><published>2006-01-17T12:30:00.000-08:00</published><updated>2006-01-17T12:39:36.013-08:00</updated><title type='text'>Viewing Formatted Source Code In Emacs/W3 </title><content type='html'>&lt;div xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;div&gt;
&lt;p&gt;While reading online texts on programming in Python and Ruby,
I noticed that Emacspeak was not announcing indented lines in
preformatted source-code examples, even with &lt;code&gt;audio
indentation&lt;/code&gt; turned on.
The reason is that many of these texts use an HTML non-breaking
space for indentation, and though W3 was rendering these
correctly, the default syntax table in W3 had not defined the
resulting &lt;code&gt;octal 240&lt;/code&gt; to be of class
white-space. Consequently, Emacspeak&#39;s audio indentation code was
not treating the non-breaking space as white space.&lt;/p&gt;
&lt;p&gt;I&#39;ve checked in a patch to &lt;code&gt;emacspeak-w3.el&lt;/code&gt; that
modifies the syntax table in &lt;code&gt;w3-mode&lt;/code&gt;
by adding the appropriate lines to &lt;code&gt;w3-mode-hook&lt;/code&gt;.
&lt;/p&gt;
    &lt;/div&gt;
&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/113752981092887635'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/113752981092887635'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2006/01/viewing-formatted-source-code-in.html' title='Viewing Formatted Source Code In Emacs/W3 '/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-113726801747885464</id><published>2006-01-14T11:46:00.000-08:00</published><updated>2006-01-14T11:46:57.486-08:00</updated><title type='text'>Speech-Enabled ATOM-Blogger </title><content type='html'>&lt;div xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;p&gt;
Module &lt;code&gt;atom-blogger&lt;/code&gt; is a light-weight Emacs client
for creating or editting &lt;em&gt;blogger&lt;/em&gt; posts using ATOM.
Emacspeak bundles &lt;code&gt;atom-blogger&lt;/code&gt; and speech-enables it
via module &lt;code&gt;emacspeak-atom-blogger&lt;/code&gt;.
&lt;/p&gt;
&lt;p&gt;Module &lt;code&gt;emacspeak-setup.el&lt;/code&gt; has been updated to set
up the Emacs&#39; &lt;code&gt;load-path&lt;/code&gt; to locate package
&lt;code&gt;atom-blogger&lt;/code&gt;, so if correctly installed, Emacspeak
users should be able to launch and use &lt;code&gt;atom-blogger&lt;/code&gt;
with no further configuration.&lt;/p&gt;
    &lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/113726801747885464'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/113726801747885464'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2006/01/speech-enabled-atom-blogger_14.html' title='Speech-Enabled ATOM-Blogger '/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-113707573746854118</id><published>2006-01-12T06:22:00.000-08:00</published><updated>2006-01-12T06:22:17.530-08:00</updated><title type='text'>Emacspeak And Ruby </title><content type='html'>&lt;div xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;p&gt;Emacspeak now speech-enables ruby-mode to support developing
Web applications using &lt;code&gt;Ruby On Rails&lt;/code&gt;.
I presently use &lt;code&gt;nxml-mode&lt;/code&gt; for editing the
&lt;code&gt;.rhtml&lt;/code&gt; files, but am looking for an alternative to
using multi-mode or its variants when editing the embedded Ruby
code.
Sadly, one has to turn off &lt;code&gt;nxml-mode&lt;/code&gt;&#39;s validity
checking while editing &lt;code&gt;.rhtml&lt;/code&gt; files --- otherwise it
complains about the &lt;code&gt;&amp;lt;%&lt;/code&gt; directives.
&lt;/p&gt;
    &lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/113707573746854118'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/113707573746854118'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2006/01/emacspeak-and-ruby.html' title='Emacspeak And Ruby '/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20280042.post-113622417010298115</id><published>2006-01-02T09:49:00.000-08:00</published><updated>2006-01-02T09:49:33.126-08:00</updated><title type='text'>Emacspeak Wizard: Recording Audio Streams For Later Playback</title><content type='html'>&lt;div xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
      &lt;p&gt;
        Emacspeak includes  a large collection of wizards implemented in
        module &lt;code&gt;emacspeak-wizards.el&lt;/code&gt;
        One of these ---&lt;code&gt;emacspeak-wizrds-rivo&lt;/code&gt;  works
        hand-in-hand with script &lt;code&gt;etc/rivo.pl&lt;/code&gt;
        to provide a simple &lt;strong&gt;record for later playback&lt;/strong&gt;
        facility that can be used to record live realaudio streams for
        future playback. This is useful for  listening to live broadcasts
      at a more convenient time.&lt;/p&gt;
      &lt;p&gt;Wizard &lt;code&gt;emacspeak-wizrds-rivo&lt;/code&gt; prompts for the time
      at which to record, the length of the recording, the stream to
      record, and the location in which the recording is to be stored.
      It then uses command &lt;code&gt;trplayer&lt;/code&gt; (text-mode RealPlayer)
      with command  &lt;code&gt;vsound&lt;/code&gt;
      to capture the audio stream, and  converts the result to MP3
      using command &lt;code&gt;lame&lt;/code&gt;.
      ToDo: With &lt;code&gt;mplayer&lt;/code&gt; now able to play RealAudio
      streams, the &lt;code&gt;etc/rivo.pl&lt;/code&gt; script should be updated to
      use &lt;code&gt;mplayer&lt;/code&gt; since this will :&lt;/p&gt;
      &lt;ul&gt;
        &lt;li&gt;Remove the &lt;code&gt;vsound&lt;/code&gt; dependency.&lt;/li&gt;
        &lt;li&gt;Enable us to record more than just RealAudio streams.&lt;/li&gt;
      &lt;/ul&gt;
    &lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/113622417010298115'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/20280042/posts/default/113622417010298115'/><link rel='alternate' type='text/html' href='https://emacspeak.blogspot.com/2006/01/emacspeak-wizard-recording-audio.html' title='Emacspeak Wizard: Recording Audio Streams For Later Playback'/><author><name>T. V. Raman</name><uri>http://www.blogger.com/profile/03589687652590194428</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry></feed>