<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>sacha chua :: living an awesome life &#187; emacs</title>
	<atom:link href="http://sachachua.com/blog/category/emacs/feed/" rel="self" type="application/rss+xml" />
	<link>http://sachachua.com/blog</link>
	<description>I help organizations and people learn how to connect and collaborate more effectively using Web 2.0 tools.</description>
	<lastBuildDate>Fri, 03 Feb 2012 13:00:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Emacs: Telling external processes about terminal capabilities, and watching over other people&#8217;s shoulders</title>
		<link>http://sachachua.com/blog/2012/01/emacs-telling-external-processes-about-terminal-capabilities-and-watching-over-other-peoples-shoulders/</link>
		<comments>http://sachachua.com/blog/2012/01/emacs-telling-external-processes-about-terminal-capabilities-and-watching-over-other-peoples-shoulders/#comments</comments>
		<pubDate>Thu, 19 Jan 2012 03:06:03 +0000</pubDate>
		<dc:creator>Sacha Chua</dc:creator>
				<category><![CDATA[emacs]]></category>

		<guid isPermaLink="false">http://sachachua.com/blog/?p=23114</guid>
		<description><![CDATA[Justin Giancola (@elucid) wanted to use full-ack.el to search through his project files using the Ack tool, but Ack refused to run because it didn’t think his terminal had enough capabilities. A simple fix was to set the TERM variable with (setenv &#34;TERM&#34; &#34;xterm&#34;) which told Ack that Emacs was fine with its output. (Speaking [...]<p>Read the original or check out the comments on: <a href="http://sachachua.com/blog/2012/01/emacs-telling-external-processes-about-terminal-capabilities-and-watching-over-other-peoples-shoulders/">Emacs: Telling external processes about terminal capabilities, and watching over other people&rsquo;s shoulders</a> (Sacha Chua's blog)</p>
]]></description>
			<content:encoded><![CDATA[<p>Justin Giancola (<a href="https://twitter.com/#!/elucid/status/159767393428705280">@elucid</a>) wanted to use <a href="https://github.com/nschum/full-ack/blob/master/full-ack.el">full-ack.el</a> to search through his project files using the Ack tool, but Ack refused to run because it didn’t think his terminal had enough capabilities. A simple fix was to set the TERM variable with </p>
<pre>(setenv &quot;TERM&quot; &quot;xterm&quot;)</pre>
<p>which told Ack that Emacs was fine with its output. </p>
<p>(Speaking of Ack integration &#8211; This being the Emacs world, there’s more than one way to do things. You might also want to check out <a href="http://technosorcery.net/blog/2011/04/02/a-better-emacs-front-end-to-ack/">ack-and-a-half.el</a>, which is midway between ack.el and full-ack.el.)</p>
<p>It was interesting hanging out with someone else who used Emacs, and being able to share tips. I don’t run into many other Emacs geeks, but I sporadically hang out in the #emacs channel or browse Planet Emacsen to be inspired. It’s funny how many of the meetups I go to end up involving Emacs conversations. It’s like I have a big M-x banner hovering over my head. =) It’s awesome, actually!</p>
<p>Read the original or check out the comments on: <a href="http://sachachua.com/blog/2012/01/emacs-telling-external-processes-about-terminal-capabilities-and-watching-over-other-peoples-shoulders/">Emacs: Telling external processes about terminal capabilities, and watching over other people&rsquo;s shoulders</a> (Sacha Chua's blog)</p>
]]></content:encoded>
			<wfw:commentRss>http://sachachua.com/blog/2012/01/emacs-telling-external-processes-about-terminal-capabilities-and-watching-over-other-peoples-shoulders/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Emacs, artbollocks-mode.el, and writing more clearly</title>
		<link>http://sachachua.com/blog/2011/12/emacs-artbollocks-mode-el-and-writing-more-clearly/</link>
		<comments>http://sachachua.com/blog/2011/12/emacs-artbollocks-mode-el-and-writing-more-clearly/#comments</comments>
		<pubDate>Fri, 16 Dec 2011 13:00:00 +0000</pubDate>
		<dc:creator>Sacha Chua</dc:creator>
				<category><![CDATA[blogging]]></category>
		<category><![CDATA[emacs]]></category>
		<category><![CDATA[writing]]></category>

		<guid isPermaLink="false">http://sachachua.com/blog/?p=23072</guid>
		<description><![CDATA[Analyzing the text of my blog showed me that I use some phrases way too much. Fortunately, Emacs can shame me into writing better, thanks to artbollocks-mode.el. Art Bollocks Mode monitors your writing and highlights words or patterns you may want to reconsider. It can detect repeated words which sometimes slip past proof-reading. It has [...]<p>Read the original or check out the comments on: <a href="http://sachachua.com/blog/2011/12/emacs-artbollocks-mode-el-and-writing-more-clearly/">Emacs, artbollocks-mode.el, and writing more clearly</a> (Sacha Chua's blog)</p>
]]></description>
			<content:encoded><![CDATA[<p>Analyzing the text of my blog showed me that I use some phrases way too much. Fortunately, Emacs can shame me into writing better, thanks to <a href="https://gitorious.org/robmyers/scripts/blobs/master/artbollocks-mode.el">artbollocks-mode.el</a>.</p>
<p>Art Bollocks Mode monitors your writing and highlights words or patterns you may want to reconsider. It can detect repeated words which sometimes slip past proof-reading. It has a list of common passive verbs, making it easier for you to rewrite the sentences to use the active voice. It detects weasel words like &quot;many&quot; and &quot;surprisingly&quot;. It even comes with jargon catchers for art critics (&quot;postmodern&quot;, &quot;ironic&quot;, and so forth) &#8211; hence artbollocks-mode.el.</p>
<p>Whenever you use a phrase that matches its patterns, Emacs highlights it, turning it an ugly orange-on-white and underlining it for emphasis. You can still go ahead and write it, but at least the words jump out. Like this: it&#8217;s really pretty obvious…</p>
<p><a href="http://sachachua.com/blog/wp-content/uploads/2011/12/image3.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://sachachua.com/blog/wp-content/uploads/2011/12/image_thumb3.png" width="455" height="29" /></a></p>
<p>I want to use it to write clearer notes and blog posts, so here&#8217;s how I&#8217;ve tweaked my configuration. Many of the items below are words and phrases I want to use less. Others are part of work jargon that I&#8217;m trying my best to keep out of my regular use. </p>
<pre class="example">(require 'artbollocks-mode)
;; Avoid these phrases
(setq weasel-words-regex
      (concat &quot;\\b&quot; (regexp-opt
                     '(&quot;one of the&quot;
                       &quot;should&quot;
                       &quot;just&quot;
                       &quot;sort of&quot;
                       &quot;a lot&quot;
                       &quot;probably&quot;
                       &quot;maybe&quot;
                       &quot;perhaps&quot;
                       &quot;I think&quot;
                       &quot;really&quot;
                       &quot;pretty&quot;
                       &quot;maybe&quot;
                       &quot;nice&quot;
                       &quot;action&quot;
                       &quot;utilize&quot;
                       &quot;leverage&quot;) t) &quot;\\b&quot;))
;; Fix a bug in the regular expression to catch repeated words
(setq lexical-illusions-regex &quot;\\b\\(\\w+\\)\\W+\\(\\1\\)\\b&quot;)
;; Don't show the art critic words, or at least until I figure
;; out my own jargon
(setq artbollocks nil)
;; Make sure keywords are case-insensitive
(defadvice search-for-keyword (around sacha activate)
  &quot;Match in a case-insensitive way.&quot;
  (let ((case-fold-search t))
    ad-do-it))</pre>
<p>(Isn&#8217;t <code>regexp-opt</code> so cool?)</p>
<p>artbollocks-mode.el also includes some basic readability statistics like the <a href="http://en.wikipedia.org/wiki/Flesch&ndash;Kincaid_readability_test#Flesch_Reading_Ease">Flesch reading ease</a> and <a href="http://en.wikipedia.org/wiki/Flesch&ndash;Kincaid_readability_test#Flesch.E2.80.93Kincaid_Grade_Level">Flesch-Kincaid grade level</a>. When I analyzed my blog contents without source code blocks (all the Emacs Lisp code snippets were throwing off my numbers!), it turned out that my blog hovers around 65 in terms of Flesch reading ease, or around the same as Reader&#8217;s Digest (as reported by Wikipedia). The Flesch-Kincaid grade level for my posts in 2011 was around 8.4.</p>
<p>I&#8217;d use artbollocks-mode.el&#8217;s tools for calculating word count and readability, except that Emacs ends up including source code blocks because Art Bollocks doesn&#8217;t know about Org Mode. I might be able to work around that by defining more advice or creating my own functions that extract the relevant text into a temporary buffer before determining the text statistics. I can leave that for another day, though.</p>
<p>I&#8217;ll experiment with making it part of org-capture-mode for now. If I find that getting editing feedback distracts me too much from writing, I&#8217;ll remove it from the hook and toggle it when I&#8217;m ready. Here&#8217;s the code to turn it on automatically for <code>org-capture</code>:</p>
<pre class="example">(add-hook 'org-capture-mode-hook 'artbollocks-mode)</pre>
<p>Thanks to <a href="https://twitter.com/#!/dotemax/status/147465007989403648">dotemax</a> for tweeting about writegood and artbollocks-mode.el. Onward and upward!</p>
<ul>
<li><a href="https://gitorious.org/robmyers/scripts/blobs/master/artbollocks-mode.el">Art Bollocks Mode</a> </li>
<li><a href="http://asap.foocorp.net/cgi-bin/movabletype/mt-search.cgi?blog_id=13&amp;tag=emacs&amp;limit=20">Rob Myers&#8217; Emacs-related blog posts</a> </li>
</ul>
<p>Read the original or check out the comments on: <a href="http://sachachua.com/blog/2011/12/emacs-artbollocks-mode-el-and-writing-more-clearly/">Emacs, artbollocks-mode.el, and writing more clearly</a> (Sacha Chua's blog)</p>
]]></content:encoded>
			<wfw:commentRss>http://sachachua.com/blog/2011/12/emacs-artbollocks-mode-el-and-writing-more-clearly/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Planning an Emacs-based personal wiki &#8211; Org? Muse? Hmm&#8230;</title>
		<link>http://sachachua.com/blog/2011/11/planning-an-emacs-based-personal-wiki-org-muse-hmm/</link>
		<comments>http://sachachua.com/blog/2011/11/planning-an-emacs-based-personal-wiki-org-muse-hmm/#comments</comments>
		<pubDate>Wed, 02 Nov 2011 12:00:00 +0000</pubDate>
		<dc:creator>Sacha Chua</dc:creator>
				<category><![CDATA[emacs]]></category>

		<guid isPermaLink="false">http://sachachua.com/blog/?p=22593</guid>
		<description><![CDATA[I miss my Planner wiki! I think it&#8217;s time to organize things into a personal wiki again. Blogs are great for chronological updates, but I need to be able to group ideas into more than just categories, and WordPress pages aren&#8217;t as convenient as a proper wiki. Org-mode outlines are also good, but they can [...]<p>Read the original or check out the comments on: <a href="http://sachachua.com/blog/2011/11/planning-an-emacs-based-personal-wiki-org-muse-hmm/">Planning an Emacs-based personal wiki &#8211; Org? Muse? Hmm&#8230;</a> (Sacha Chua's blog)</p>
]]></description>
			<content:encoded><![CDATA[<p>I miss my Planner wiki! I think it&#8217;s time to organize things into a personal wiki again. Blogs are great for chronological updates, but I need to be able to group ideas into more than just categories, and WordPress pages aren&#8217;t as convenient as a proper wiki. Org-mode outlines are also good, but they can get unwieldy when large. I have an 1.7MB outline right now, all plain text, and I can&#8217;t fit it into my head. </p>
<p> What kind of tool should I use? I thought about whether I wanted a web-based wiki editing environment. I realized that editing and publishing the wiki from Emacs is probably the way to go for me, because that gives me offline access, synchronization, and all sorts of other goodies.  </p>
<p> Here&#8217;s what I want to do: </p>
<ol>
<li>Provide a knowledge map that links to blog posts and other resources </li>
<li>Flesh out that knowledge map with summaries </li>
<li>Build a coherent personal wiki </li>
</ol>
<p> Here are other capabilities I care about: </p>
<ol>
<li>Link easily between concepts </li>
<li>Keep tables and other forms of data </li>
<li>Keep private and public notes, but publish only the public ones </li>
<li>Publish parts of the tree </li>
<li>Publish as separate files, for ease of browsing </li>
<li>Use the same markup I use in Org Mode (or something that can be easily transformed), so that I don&#8217;t have to do anything fancy when copying entries over </li>
</ol>
<p> I thought about using <a href="http://www.emacswiki.org/emacs/EmacsMuse">Muse</a> because of its project-publishing support, and because of the good experience I had with Planner and Emacswiki (the predecessor to Muse). Muse supports Org-format tables, but it uses a different way to signify code blocks, examples, and other parts. For ease of implementation, then, I&#8217;ll probably see if I can get <a href="http://orgmode.org">Org Mode</a> to deal well with the case of either multiple small files, or narrowed portions of one large file. Anyway, the first step is to organize my resources, and that will be useful no matter which wiki system I end up using. </p>
<p> Do you have an Emacs-based personal wiki? What do you use, and what do you think about it? </p>
<p>Read the original or check out the comments on: <a href="http://sachachua.com/blog/2011/11/planning-an-emacs-based-personal-wiki-org-muse-hmm/">Planning an Emacs-based personal wiki &#8211; Org? Muse? Hmm&#8230;</a> (Sacha Chua's blog)</p>
]]></content:encoded>
			<wfw:commentRss>http://sachachua.com/blog/2011/11/planning-an-emacs-based-personal-wiki-org-muse-hmm/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Tweaking my Windows 7 setup more: Emacs on all virtual desktops!</title>
		<link>http://sachachua.com/blog/2011/10/tweaking-my-windows-7-setup-more-emacs-on-all-virtual-desktops/</link>
		<comments>http://sachachua.com/blog/2011/10/tweaking-my-windows-7-setup-more-emacs-on-all-virtual-desktops/#comments</comments>
		<pubDate>Sat, 08 Oct 2011 12:00:00 +0000</pubDate>
		<dc:creator>Sacha Chua</dc:creator>
				<category><![CDATA[emacs]]></category>
		<category><![CDATA[geek]]></category>

		<guid isPermaLink="false">http://sachachua.com/blog/?p=22529</guid>
		<description><![CDATA[I&#8217;ve been using VirtuaWin to set up four virtual desktops on my computer. This makes it easy to group applications: one desktop for client T, one desktop for client I, one desktop for client O, and one desktop for other stuff, such as drawing. The most memory use I&#8217;ve seen on this system so far [...]<p>Read the original or check out the comments on: <a href="http://sachachua.com/blog/2011/10/tweaking-my-windows-7-setup-more-emacs-on-all-virtual-desktops/">Tweaking my Windows 7 setup more: Emacs on all virtual desktops!</a> (Sacha Chua's blog)</p>
]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been using <a href="http://virtuawin.sourceforge.net/">VirtuaWin</a> to set up four virtual desktops on my computer. This makes it easy to group applications: one desktop for client T, one desktop for client I, one desktop for client O, and one desktop for other stuff, such as drawing. The most memory use I&#8217;ve seen on this system so far is less than 6 GB (out of 8 GB), so running virtual desktops doesn&#8217;t make the performance of my other apps worse.  </p>
<p> Using virtual desktops helps me keep things organized, but I also want to be able to quickly switch to Emacs and take notes without caring about which desktop I&#8217;m on. Fortunately, VirtuaWin makes it easy to set up an application to run on all desktops. Left-clicking on the VirtuaWin icon in my status bar lets me set my Emacs window as &#8220;Always Show&#8221;. To make it even easier to consistently get to Emacs, I pinned the program to the task bar (right-click on the task bar icon and pin the program), moved the pinned program to the first slot on the task bar, and got into the habit of using Windows+1 to switch to the application. Yay! </p>
<p> <a href="http://virtuawin.sourceforge.net/">VirtuaWin</a> is a free open source program for Microsoft Windows. </p>
<p>Read the original or check out the comments on: <a href="http://sachachua.com/blog/2011/10/tweaking-my-windows-7-setup-more-emacs-on-all-virtual-desktops/">Tweaking my Windows 7 setup more: Emacs on all virtual desktops!</a> (Sacha Chua's blog)</p>
]]></content:encoded>
			<wfw:commentRss>http://sachachua.com/blog/2011/10/tweaking-my-windows-7-setup-more-emacs-on-all-virtual-desktops/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Deliberate practice, typing faster, and Emacs</title>
		<link>http://sachachua.com/blog/2011/09/deliberate-practice-typing-faster-and-emacs/</link>
		<comments>http://sachachua.com/blog/2011/09/deliberate-practice-typing-faster-and-emacs/#comments</comments>
		<pubDate>Tue, 13 Sep 2011 12:00:00 +0000</pubDate>
		<dc:creator>Sacha Chua</dc:creator>
				<category><![CDATA[emacs]]></category>
		<category><![CDATA[geek]]></category>

		<guid isPermaLink="false">http://sachachua.com/blog/?p=22486</guid>
		<description><![CDATA[I type at about 90-95 wpm. I wonder: Would it be worth getting even faster? How would I go about doing it without increasing my risks of RSI? I&#8217;m thinking about this because of something I read in Moonwalking with Einstein: The Art and Science of Remembering Everything. On page 172, Joshua Foer writes this [...]<p>Read the original or check out the comments on: <a href="http://sachachua.com/blog/2011/09/deliberate-practice-typing-faster-and-emacs/">Deliberate practice, typing faster, and Emacs</a> (Sacha Chua's blog)</p>
]]></description>
			<content:encoded><![CDATA[<p>I type at about 90-95 wpm. I wonder: Would it be worth getting even faster? How would I go about doing it without increasing my risks of RSI? I&#8217;m thinking about this because of something I read in <a href="http://books.google.ca/books?id=-Ac81W-ZQDEC&amp;dq=moonwalking+with+einstein&amp;hl=en&amp;ei=OK1qTuLyCuPo0QHXvJCHBQ&amp;sa=X&amp;oi=book_result&amp;ct=result&amp;resnum=1&amp;ved=0CC4Q6AEwAA">Moonwalking with Einstein: The Art and Science of Remembering Everything</a>. On page 172, Joshua Foer writes this about deliberate practice: </p>
<blockquote>
<p>The secret to improving at a skill is to retain some degree of<br />
conscious control over it while practicing&ndash;to force oneself to stay<br />
out of autopilot. With typing, it&#8217;s relatively easy to get past the OK<br />
plateau. Psychologists have discovered that the most efficient method<br />
is to force yourself to type faster than feels comfortable, and to<br />
allow yourself to make mistakes. In one noted experiment, typists were<br />
repeatedly flashed words 10 to 15 percent faster than their fingers<br />
were able to translate them onto the keyboard. At first they were&#8217;nt<br />
able to keep up, but over a period of days they figured out the<br />
obstacles that were slowing them down, and overcame them, and then<br />
continued to type at the faster speed. By bringing typing out of the<br />
autonomous stage and back under their conscious control, they had<br />
conquered the OK plateau.
</p>
</blockquote>
<p> If I were to invest time into typing better, it would be for these reasons: </p>
<ul>
<li>to lower the risk of RSI by making correct movements, like the way   shifting to Dvorak helped me tweak my brain to type more effectively   (I type at about the same rate on QWERTY and Dvorak, but Dvorak   feels better) </li>
<li>to reduce the friction between thought and writing even more </li>
<li>to transcribe things more efficiently </li>
<li>to explore just how fast I can go </li>
</ul>
<p> My brain&#8217;s more of a bottleneck than my fingers are, so typing isn&#8217;t getting in the way of much. It&#8217;s still something to be curious about, though! </p>
<p> <a href="http://stenoknight.com/plover/">The open-source Plover stenography program</a> looks really interesting. I&#8217;m going to be on a Windows-host-Linux-VM system for a while, so I&#8217;ll need to wait for the Windows port (or shift back to Linux as my host OS). </p>
<p> Most typing tutors / speed measurements I&#8217;ve come across aren&#8217;t quite what I&#8217;m looking for because they display lots of text and scroll through it, which is good for buffering things in your head and not so good for training past the point of failure. Typing games tend to kill you once you miss too many words. </p>
<p> Enter Emacs. Among many many things, Emacs has at least one typing game. It&#8217;s not built in, but you can get it from the Emacs Wiki: <a href="http://www.emacswiki.org/emacs/TypingOfEmacs">The Typing of Emacs</a>. A few quick modifications later (which I&#8217;ll post next week if I get permission), and I&#8217;ve: </p>
<ul>
<li>added a &#8220;zombie mode&#8221; that will keep the game going even after you   hit your threshold of failure </li>
<li>added the question-and-answer mode that the code hinted at </li>
</ul>
<p> Zombie-mode Typing of Emacs lets me stay in the &#8220;this is going way too fast for me&#8221; zone, sometimes repeating a single word until I&#8217;ve gotten the hang of it or I&#8217;ve given up. For example, I haven&#8217;t figured out how to type CreativeCommons in 2 seconds. The closest I got in 10 tries was the one time I typed &#8220;CreativeComomns&#8221;, which was sooo close. Usually, the timeout kicked in on the last few characters. </p>
<p> Maybe it&#8217;s because I also have to hit Enter to submit what I&#8217;ve typed. Hmm, I wonder if I can redefine some keys&hellip; </p>
<p> Successfully typing CreativeCommons in 2 seconds still gets me around 95wpm, though, and reading + typing + pressing Enter makes it difficult to get down to 1-second time limits (darn those reaction times!). Maybe I&#8217;ll use my new Q&amp;A support to play around with typing sentences. </p>
<p> If I spend more time typing in autocorrecting environments or shifting to editing after typing (it&#8217;s good to review anyway), then I might be able to loosen up enough to type faster. =) </p>
<p> There are plenty of sites and apps to help people get from 30wpm to 60wpm or whatever, but not really YouTube videos have mostly people banging away on keyboards. Are you the fastest typist among your friends? Have you worked on getting even faster? Do share! </p>
<p>  <span class="timestamp-wrapper"> <span class="timestamp">2011-09-09 Fri 20:08</span></span> </p>
<p>Read the original or check out the comments on: <a href="http://sachachua.com/blog/2011/09/deliberate-practice-typing-faster-and-emacs/">Deliberate practice, typing faster, and Emacs</a> (Sacha Chua's blog)</p>
]]></content:encoded>
			<wfw:commentRss>http://sachachua.com/blog/2011/09/deliberate-practice-typing-faster-and-emacs/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Mailing non-Emacs users your Org notes</title>
		<link>http://sachachua.com/blog/2011/08/mailing-non-emacs-users-your-org-notes/</link>
		<comments>http://sachachua.com/blog/2011/08/mailing-non-emacs-users-your-org-notes/#comments</comments>
		<pubDate>Fri, 26 Aug 2011 12:00:00 +0000</pubDate>
		<dc:creator>Sacha Chua</dc:creator>
				<category><![CDATA[emacs]]></category>
		<category><![CDATA[org]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://sachachua.com/blog/?p=22421</guid>
		<description><![CDATA[Andras uses Emacs Org-mode to take notes during meetings, and wanted to know how to share those notes (including tables) with colleagues afterwards. Here are some tips for sharing Org notes with non-Org people. You can copy the information as plain text. If you don&#8217;t have too much Org markup, you can copy and paste [...]<p>Read the original or check out the comments on: <a href="http://sachachua.com/blog/2011/08/mailing-non-emacs-users-your-org-notes/">Mailing non-Emacs users your Org notes</a> (Sacha Chua's blog)</p>
]]></description>
			<content:encoded><![CDATA[<p>Andras uses Emacs Org-mode to take notes during meetings, and wanted to know how to share those notes (including tables) with colleagues afterwards. Here are some tips for sharing Org notes with non-Org people. </p>
<p> <b>You can copy the information as plain text.</b> If you don&#8217;t have too much Org markup, you can copy and paste the text into your mail message. To get tables and other segments to line up nicely, make sure you format the text with a monospace font such as Courier New or Lucida Console. </p>
<p> <b>You can export the information to HTML and then copy it into your message.</b> Export the entire file with <code>M-x org-export</code> or export a region with <code>M-x org-export-region-as-html</code>. Save it to a file, open that file in your browser, then copy and paste the information. If you find yourself working with the same files often, consider using Org&#8217;s publishing support to simplify the creation of related HTML files. </p>
<p> <b>You can also publish your notes on an internal or external blog.</b> I post many of my notes on my blog (including this one!) using <a href="https://github.com/punchagan/org2blog">org2blog.el</a>. If you publish your posts on a blog, you can send people a link, update your post with new information, and share your post with others. </p>
<p> Hope that helps! </p>
<p>Read the original or check out the comments on: <a href="http://sachachua.com/blog/2011/08/mailing-non-emacs-users-your-org-notes/">Mailing non-Emacs users your Org notes</a> (Sacha Chua's blog)</p>
]]></content:encoded>
			<wfw:commentRss>http://sachachua.com/blog/2011/08/mailing-non-emacs-users-your-org-notes/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Writing macrons in Linux for Latin pronunciation</title>
		<link>http://sachachua.com/blog/2011/04/writing-macrons-linux-latin-pronunciation/</link>
		<comments>http://sachachua.com/blog/2011/04/writing-macrons-linux-latin-pronunciation/#comments</comments>
		<pubDate>Mon, 25 Apr 2011 12:00:00 +0000</pubDate>
		<dc:creator>Sacha Chua</dc:creator>
				<category><![CDATA[emacs]]></category>
		<category><![CDATA[geek]]></category>
		<category><![CDATA[latin]]></category>
		<category><![CDATA[learning]]></category>
		<category><![CDATA[relationship]]></category>

		<guid isPermaLink="false">http://sachachua.com/blog/?p=22212</guid>
		<description><![CDATA[Frustrated with the inability to search the scanned images of the 1822 Latin textbook we&#8217;re using (Albert Harkness&#8217; An Easy Method for Beginners in Latin &#8211; get the PDF, the full-text version is badly OCRed), W- has taken it upon himself to recreate the public-domain textbook as a fully searchable TiddlyWiki (sans illustrations). This meant [...]<p>Read the original or check out the comments on: <a href="http://sachachua.com/blog/2011/04/writing-macrons-linux-latin-pronunciation/">Writing macrons in Linux for Latin pronunciation</a> (Sacha Chua's blog)</p>
]]></description>
			<content:encoded><![CDATA[<p>Frustrated with the inability to search the scanned images of the 1822 Latin textbook we&#8217;re using (Albert Harkness&#8217; <a href="http://www.archive.org/details/aneasymethodfor00harkgoog">An Easy Method for Beginners in Latin</a> &#8211; get the PDF, the full-text version is badly OCRed), W- has taken it upon himself to recreate the public-domain textbook as a fully searchable TiddlyWiki (sans illustrations). This meant that he needed to type in a great number of macrons in the words, and <i>that</i> meant finding a better way than copying and pasting from KDE&#8217;s character map. </p>
<p> <a href="http://en.wikipedia.org/wiki/Macron">Macrons</a> turn up in many languages. In Japanese, you use them to indicate that vowels are doubled. 大阪（おおさか）can be romanized as Oosaka or Ōsaka. In Latin, beginner textbooks often use macrons (macra) to indicate pronunciation. (Why do we care about pronunciation for a dead language used mostly in church hymns? W- and I actually want to be able to use this conversationally, at least with each other. After all, if you don&#8217;t use it, you lose it.) </p>
<p> I suggested Emacs. In Emacs, it&#8217;s just a matter of using <code>M-x set-input-method</code> to choose <code>latin-alt-postfix</code>. With that input method, you can add macrons to letters by typing &#8211; after them. For example, typing &#8220;a -&#8221; will result in ā. Not only that, dynamic abbreviations (<code>M-/</code>) make it easier to retype words you&#8217;ve already written before. </p>
<p> W- wouldn&#8217;t hear of using Emacs, being almost as firmly wedded to <code>vi</code> as he is to me. ;) </p>
<p> Instead, we spent some time figuring out how to set up KDE and gvim to make it easier for him to type in macrons. HTML character sequences were out of the question, of course. W- used KDE&#8217;s settings to map his unused Windows key and menu key to compose keys. That made it easier to produce ē, ī, ō, and ū using the key sequence &#8220;Compose + hyphen + vowel&#8221;. However, &#8220;Compose + hyphen + a&#8221; produced ã, not ā. This was probably a bug based on some issue reports we found on the Net, but the suggested fix didn&#8217;t work (<kbd>im-switch -c</kbd> to change to <kbd>default-xim</kbd>). I found a page describing an <code>.XCompose</code> fix, customizing the key sequences. He copied the relevant key sequences from en-US&#8217;s locale settings for Compose in <code>/usr/share/X11</code>, restarted X, and it worked. </p>
<p> Now he&#8217;s off and typing! </p>
<p>  <span class="timestamp-wrapper"> <span class="timestamp">2011-04-24 Sun 23:21</span></span> </p>
<p>Read the original or check out the comments on: <a href="http://sachachua.com/blog/2011/04/writing-macrons-linux-latin-pronunciation/">Writing macrons in Linux for Latin pronunciation</a> (Sacha Chua's blog)</p>
]]></content:encoded>
			<wfw:commentRss>http://sachachua.com/blog/2011/04/writing-macrons-linux-latin-pronunciation/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Quick notes from Emacs Org-mode talk at GTALUG</title>
		<link>http://sachachua.com/blog/2011/03/quick-notes-from-emacs-org-mode-talk-at-gtalug/</link>
		<comments>http://sachachua.com/blog/2011/03/quick-notes-from-emacs-org-mode-talk-at-gtalug/#comments</comments>
		<pubDate>Wed, 09 Mar 2011 04:40:00 +0000</pubDate>
		<dc:creator>Sacha Chua</dc:creator>
				<category><![CDATA[emacs]]></category>
		<category><![CDATA[presentation]]></category>
		<category><![CDATA[speaking]]></category>

		<guid isPermaLink="false">http://sachachua.com/blog/2011/03/quick-notes-from-emacs-org-mode-talk-at-gtalug/</guid>
		<description><![CDATA[My Emacs Org-mode talk at GTALUG was a lot of fun. I had made a quick outline of things I wanted to cover, and the discussion took us to all sorts of places &#8211; really more like a romp through the world of Emacs. I kept my talk plan small and tightly-focused &#8211; not even [...]<p>Read the original or check out the comments on: <a href="http://sachachua.com/blog/2011/03/quick-notes-from-emacs-org-mode-talk-at-gtalug/">Quick notes from Emacs Org-mode talk at GTALUG</a> (Sacha Chua's blog)</p>
]]></description>
			<content:encoded><![CDATA[<p>My Emacs Org-mode talk at GTALUG was a lot of fun. I had made a quick outline of things I wanted to cover, and the discussion took us to all sorts of places &#8211; really more like a romp through the world of Emacs. I kept my talk plan small and tightly-focused &#8211; not even Org-mode, just note-taking in Org-mode &#8211; but I ended up talking about all sorts of things because they were cool and that&#8217;s where the discussion took us. This means that my outline isn&#8217;t much use for reconstructing the talk, but maybe whoever recorded it can share the audio and the video. =) </p>
<p> Unexpected wow moments of the day, completely not in my outline: </p>
<ul>
<li>Someone&#8217;s question about my tablet PC led to showing off <code>M-x   artist-mode</code>, drawing using my tablet, and the line and spraycan   tools. (I&#8217;d never tried it before. It works!)  </li>
<li>A conversation on the way to the talk led to my showing <code>M-x snake.</code>  </li>
<li>Someone&#8217;s joking query about whether you can run vi in Emacs   (following up on someone who mentioned the vi emulation mode,   perhaps) led to my demonstrating <code>vim</code> in <code>M-x term</code>, which   naturally led to running console Emacs within my Emacs.  </li>
<li>Someone mentioned mail, so I showed Gnus, and another person   mentioned adaptive scoring, and we talked about news-inspired   techniques for dealing with e-mail.  </li>
<li>People asked me how big my config file had gotten. The word count   tool says 226k characters &#8211; ah, the process of accretion. You can   learn Emacs and customize it a little bit at a time, though! </li>
</ul>
<p> I&#8217;ve given two Emacs talks so far, and both of them had delightful audience interaction &#8211; among the best of any of the talks I&#8217;ve given. I think it&#8217;s because with Emacs, even people&#8217;s jokes give me a starting point to mention something I&#8217;ve learned about or come across or built. The energy of the session is really something different. It&#8217;s almost like an infomercial-ish &#8220;But wait, there&#8217;s more!&#8221;, but everyone&#8217;s in on the joke, they&#8217;re part of what&#8217;s happening. It&#8217;s an adventure. </p>
<p> I don&#8217;t want to give the impression that Emacs is just about fun. ;) Of all the software I&#8217;ve ever used, I think Emacs has contributed the most to my productivity and my learning. Not only do I find the direct benefits useful, I also really appreciate the inspiration I get from all these other people who use and improve Emacs. </p>
<p> So the key question I want to address with more thought is: <b>where does one find the time to learn these things?</b> I think you answer this the same way you make the time for things that matter &#8211; strategic optimization. Like in code, premature optimization doesn&#8217;t work. You need to figure out what actions are important and where improvements would have the most effect &#8211; where your moments of truth are. For example, it really pays to improve my abilities in programming, writing, and note-taking, because I do that a lot and it creates a lot of value at work and in life. On the other hand, I don&#8217;t stress out about typing even faster, because that&#8217;s not my bottleneck. And I also make sure to invest time into all sorts of other aspects of life, because those are important to me too. </p>
<p> Back to Emacs and the presentation. My goal for the talk wasn&#8217;t to convert anyone or show people specifically how to set up their environment. I wanted to give people an idea of what my workflow looks like, expose them to some of the things Emacs can do, and perhaps inspire people to learn more about their tools. (I made sure to mention lots of cool things about vi, too!) We started at 7:30 and had a great discussion for two hours (two hours!) that flew by until the organizers suggested it was time to wrap up. Quite a few people came up to me afterwards and told me that they were inspired to learn more about Emacs. Whee! </p>
<p> That was tons of fun. I&#8217;d do it again. It has to be an interactive group, somewhat casual (so that people feel free to interject questions) and technical (helps to have a few other Emacs users in the audience, and a general interest in tools). Voice is probably a huge component of it &#8211; both being able to communicate enthusiasm and for the conversational aspect of the discussion. Screen-sharing or projection is vital; this kind of talk wouldn&#8217;t have worked with slides. So it&#8217;s probably a talk I&#8217;d need to give in person, considering webconference interaction patterns and screen-sharing delays. Hmm&hellip; </p>
<p> (Maureen: there is a <a href="http://www.emacswiki.org/emacs/ScreenPlay">screenplay mode for Emacs</a>. Isn&#8217;t that amazing? Might be worth learning Emacs. More <a href="http://www.emacswiki.org/emacs/CategoryWriting">writing resources</a> on the EmacsWiki. If you&#8217;re intrigued by it, check out the <a href="http://www.emacswiki.org/emacs/EmacsNewbie">Emacs Newbie</a> resources.) </p>
<p>  <span class="timestamp-wrapper"> <span class="timestamp">2011-03-08 Tue 23:40</span></span> </p>
<p>Read the original or check out the comments on: <a href="http://sachachua.com/blog/2011/03/quick-notes-from-emacs-org-mode-talk-at-gtalug/">Quick notes from Emacs Org-mode talk at GTALUG</a> (Sacha Chua's blog)</p>
]]></content:encoded>
			<wfw:commentRss>http://sachachua.com/blog/2011/03/quick-notes-from-emacs-org-mode-talk-at-gtalug/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Emacs 24 and the package manager</title>
		<link>http://sachachua.com/blog/2011/01/emacs-24-package-manager/</link>
		<comments>http://sachachua.com/blog/2011/01/emacs-24-package-manager/#comments</comments>
		<pubDate>Sat, 15 Jan 2011 16:00:00 +0000</pubDate>
		<dc:creator>Sacha Chua</dc:creator>
				<category><![CDATA[emacs]]></category>

		<guid isPermaLink="false">http://sachachua.com/blog/?p=22045</guid>
		<description><![CDATA[By default, the Emacs 24 package manager (M-x package-list-packages) points to a small repository of Emacs packages. Want more? Phil Hagelberg added support for multiple repositories to package.el. There&#8217;s the original ELPA at http://tromey.com/elpa, and there&#8217;s a community package source called Marmalade that anyone can upload packages to. Add this to your ~/.emacs and evaluate [...]<p>Read the original or check out the comments on: <a href="http://sachachua.com/blog/2011/01/emacs-24-package-manager/">Emacs 24 and the package manager</a> (Sacha Chua's blog)</p>
]]></description>
			<content:encoded><![CDATA[<p>By default, the Emacs 24 package manager (<code>M-x package-list-packages</code>) points to a small repository of Emacs packages. Want more? <a href="http://technomancy.us/144">Phil Hagelberg</a> added support for multiple repositories to package.el. There&#8217;s the original ELPA at <a href="http://tromey.com/elpa">http://tromey.com/elpa</a>, and there&#8217;s a community package source called Marmalade that anyone can upload packages to. Add this to your <code>~/.emacs</code> and evaluate it: </p>
<pre class="src src-emacs-lisp">;; Add the original Emacs Lisp Package Archive
(add-to-list 'package-archives
             '("elpa" . "http://tromey.com/elpa/"))
;; Add the user-contributed repository
(add-to-list 'package-archives
             '("marmalade" . "http://marmalade-repo.org/packages/"))
</pre>
<p> You should then be able to call <code>M-x package-list-packages</code> to browse and install Emacs packages. </p>
<p> If you don&#8217;t have <a href="http://sachachua.com/blog/2010/12/whats-new-in-emacs-24/">Emacs 24</a> yet (and you might want to wait for the official release if you use things like BBDB), Phil suggests downloading <a href="http://bit.ly/pkg-el">package.el</a> from the Emacs development tree. This version includes support for multiple repositories. </p>
<p> For even more Emacs goodness outside the package system, check out <a href="https://github.com/emacsmirror">the Emacs mirror</a>, which lists more than 2,900 packages available through Git.  </p>
<p> Thanks to: </p>
<ul>
<li> <a href="http://technomancy.us/144">Phil Hagelberg for the post about ELPA</a> </li>
<li> <a href="http://blog.emacsmirror.org/announcing-the-emacsmirror">Jonas Bernoulli for the post about emacsmirror</a> </li>
</ul>
<p> <span class="timestamp-wrapper"> <span class="timestamp">2011-01-15 Sat 10:31 </p>
<p>Read the original or check out the comments on: <a href="http://sachachua.com/blog/2011/01/emacs-24-package-manager/">Emacs 24 and the package manager</a> (Sacha Chua's blog)</p>
]]></content:encoded>
			<wfw:commentRss>http://sachachua.com/blog/2011/01/emacs-24-package-manager/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Emacs, BBDB, and getting your contacts on the Android or iPhone</title>
		<link>http://sachachua.com/blog/2011/01/emacs-bbdb-and-getting-your-contacts-on-the-android-or-iphone/</link>
		<comments>http://sachachua.com/blog/2011/01/emacs-bbdb-and-getting-your-contacts-on-the-android-or-iphone/#comments</comments>
		<pubDate>Fri, 07 Jan 2011 13:00:00 +0000</pubDate>
		<dc:creator>Sacha Chua</dc:creator>
				<category><![CDATA[android]]></category>
		<category><![CDATA[bbdb]]></category>
		<category><![CDATA[emacs]]></category>

		<guid isPermaLink="false">http://sachachua.com/blog/?p=22034</guid>
		<description><![CDATA[Want your Emacs BBDB contacts on your Android or iPhone? The easiest way I&#8217;ve found is to export your contacts to CSV, then import them into something like Google Contacts. You can export your BBDB contacts using bbdb-to-outlook.el, which is available in the BBDB package in the bits/ directory. Download bbdb-to-outlook.el from Sourceforge if you [...]<p>Read the original or check out the comments on: <a href="http://sachachua.com/blog/2011/01/emacs-bbdb-and-getting-your-contacts-on-the-android-or-iphone/">Emacs, BBDB, and getting your contacts on the Android or iPhone</a> (Sacha Chua's blog)</p>
]]></description>
			<content:encoded><![CDATA[<p>Want your Emacs BBDB contacts on your Android or iPhone? </p>
<p> The easiest way I&#8217;ve found is to export your contacts to CSV, then import them into something like Google Contacts. You can export your BBDB contacts using <code>bbdb-to-outlook.el</code>, which is available in the BBDB package in the <code>bits/</code> directory. <a href="http://bbdb.cvs.sourceforge.net/viewvc/bbdb/bbdb/bits/bbdb-to-outlook.el">Download bbdb-to-outlook.el from Sourceforge</a>  if you can&#8217;t find it in your BBDB directory. To use: </p>
<ol>
<li> Load bbdb-to-outlook.el and use <code>M-x eval-buffer</code> to load the code. </li>
<li> Use <code>M-x bbdb</code> to open your BBDB records, and search for <code>.</code> to show all the records. Alternatively, search for a subset of your records. </li>
<li> Type <code>O</code> to run <code>bbdb-to-outlook</code> and choose the file. </li>
</ol>
<p> Tada! Step one done. Review the file and delete anything you don&#8217;t want to include. </p>
<p> To import the contacts into Google Contacts, go to Google Mail and click on Contacts. Click on <code>Import</code> and choose your file. After some time and some fiddling, you can get that synchronized onto your Android or iPhone. </p>
<p> I haven&#8217;t thought about syncing, but I&#8217;m trying to keep my BBDB as The Master File for Contacts anyway, as it&#8217;s so much more flexible than any other contact database I&#8217;ve tried. (Although gist.com is pretty cool and I do like the Android&#8217;s merging of photos, contact info, and updates&hellip;) </p>
<p> There was some work on <a href="http://www.emacswiki.org/emacs/BbdbExportImportSync">synchronizing BBDB with the Palm</a>, so that might be a possibility. </p>
<p> Enjoy! </p>
<p>Read the original or check out the comments on: <a href="http://sachachua.com/blog/2011/01/emacs-bbdb-and-getting-your-contacts-on-the-android-or-iphone/">Emacs, BBDB, and getting your contacts on the Android or iPhone</a> (Sacha Chua's blog)</p>
]]></content:encoded>
			<wfw:commentRss>http://sachachua.com/blog/2011/01/emacs-bbdb-and-getting-your-contacts-on-the-android-or-iphone/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Moving my book notes online</title>
		<link>http://sachachua.com/blog/2011/01/moving-my-book-notes-online/</link>
		<comments>http://sachachua.com/blog/2011/01/moving-my-book-notes-online/#comments</comments>
		<pubDate>Thu, 06 Jan 2011 23:49:52 +0000</pubDate>
		<dc:creator>Sacha Chua</dc:creator>
				<category><![CDATA[emacs]]></category>
		<category><![CDATA[reading]]></category>

		<guid isPermaLink="false">http://sachachua.com/blog/2011/01/moving-my-book-notes-online/</guid>
		<description><![CDATA[I moved more of my book notes online, reasoning that a braindump is better than occasional whining about the lack of a good system. ;) Fellow Emacs geeks who use Org will probably get the most out of this, as they can open it in Emacs and work with the hierarchy, but someday I may [...]<p>Read the original or check out the comments on: <a href="http://sachachua.com/blog/2011/01/moving-my-book-notes-online/">Moving my book notes online</a> (Sacha Chua's blog)</p>
]]></description>
			<content:encoded><![CDATA[<p><a href="http://dl.dropbox.com/u/3968124/books.org.txt">I moved more of my book notes online</a>, reasoning that a braindump is better than occasional whining about the lack of a good system. ;) Fellow Emacs geeks who use Org will probably get the most out of this, as they can open it in Emacs and work with the hierarchy, but someday I may figure out a neat little hyperlinked solution that will make it easy for everyone else. Or I&#8217;ll pull more and more of these posts into my blog, where they&#8217;ll be individually linkable and commentable. </p>
<p> Compare: <a href="http://sachachua.com/blog/category/book/">http://sachachua.com/blog/category/book/</a> , which wins points for being graphical and highlighted and comment-friendly, but loses topical organization, overview, search, and offline access. </p>
<p> It&#8217;s a start. Here&#8217;s what&#8217;s working well: </p>
<p> <b>CAPTURE:</b> Using Org + Remember to capture book notes uses the same process as my other notes. Diagrams can be scanned in and attached to files. I used to scan and OCR dogeared pages, but typing or dictating them in is okay, and it helps me review. The capture part of my process is fantastic. </p>
<p> <b>ORGANIZATION:</b> org-refile or copying and pasting are easy, so this part of the process is fine. </p>
<p> <b>REVIEW:</b> I might schedule times to refresh my memory of certain books. I can do that with Org agenda fairly easily. </p>
<p> <b>SHARING:</b> Here&#8217;s where the process breaks down a little. org2blog-post-subtree is great, and I&#8217;ve used that a number of times to post the relevant subtree of book notes. That adds the notes as entries in my blog, storing the post ID in my Org file so that I can get back to the post afterwards. org2blog also makes it easy to edit entries, hooray. </p>
<p> Once it&#8217;s in my blog, people can use the categories to find other entries. However, my current blog layout doesn&#8217;t highlight the categories, and it&#8217;s not easy to browse the different book-related categories. Maybe it&#8217;s worth tweaking a &#8220;reading&#8221; or &#8220;book&#8221; category layout page. </p>
<p> Aha! How&#8217;s <a href="http://sachachua.com/blog/book-notes/">http://sachachua.com/blog/book-notes/</a> ? It&#8217;s a manually-edited list at the top (thanks, Org!), followed by an automatically-generated index. I&#8217;ll gradually move my other notes into this system &#8211; text notes in my Org file and blog entries for linkability/commentability. Progress&hellip; </p>
<p>Read the original or check out the comments on: <a href="http://sachachua.com/blog/2011/01/moving-my-book-notes-online/">Moving my book notes online</a> (Sacha Chua's blog)</p>
]]></content:encoded>
			<wfw:commentRss>http://sachachua.com/blog/2011/01/moving-my-book-notes-online/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>What’s coming up in Emacs 24</title>
		<link>http://sachachua.com/blog/2010/12/whats-new-in-emacs-24/</link>
		<comments>http://sachachua.com/blog/2010/12/whats-new-in-emacs-24/#comments</comments>
		<pubDate>Tue, 21 Dec 2010 18:00:00 +0000</pubDate>
		<dc:creator>Sacha Chua</dc:creator>
				<category><![CDATA[emacs]]></category>
		<category><![CDATA[highlight]]></category>

		<guid isPermaLink="false">http://sachachua.com/blog/2010/12/whats-new-in-emacs-24/</guid>
		<description><![CDATA[UPDATE: Emacs 24 has not yet been released. Developers can get it from the version control system (git/master, for example). Alpha/nightly builds are available for Windows and Mac OSX. This is still a bleeding-edge version. Expect much breakage, even from popular packages like BBDB. See C-h n (view-emacs-news) for all the details. Some highlights: Emacs [...]<p>Read the original or check out the comments on: <a href="http://sachachua.com/blog/2010/12/whats-new-in-emacs-24/">What’s coming up in Emacs 24</a> (Sacha Chua's blog)</p>
]]></description>
			<content:encoded><![CDATA[<p><strong>UPDATE: Emacs 24 has not yet been released. Developers can get it from the <a href="http://savannah.gnu.org/projects/emacs/#">version control system</a> (git/master, for example). Alpha/nightly builds are available for <a href="http://alpha.gnu.org/gnu/emacs/windows/">Windows</a> and <a href="http://emacsformacosx.com/builds">Mac OSX</a>. This is still a bleeding-edge version. Expect much breakage, even from popular packages like BBDB.</strong></p>
<p> See <code>C-h n</code> (<code>view-emacs-news</code>) for all the details. Some highlights: </p>
<div id="outline-container-1" class="outline-3">
<h3 id="sec-1">Emacs packages </h3>
<div class="outline-text-3" id="text-1">
<p> <code>M-x list-packages</code> to browse and install packages, which are enabled by default. If you&#8217;ve installed a number of packages but you don&#8217;t want them to all load at startup, customize <code>package-load-list</code>. Not that many packages yet, but I&#8217;m sure people will add more. </p>
</p></div>
</p></div>
<div id="outline-container-2" class="outline-3">
<h3 id="sec-2">Emacs themes and user-interface changes </h3>
<div class="outline-text-3" id="text-2">
<p> <code>M-x customize-themes</code> lets you choose color themes or create your own. There have also been a number of user-interface cleanups (scrollbars on the right, smoother antialiasing, that sort of stuff), but nothing radical. </p>
</p></div>
</p></div>
<div id="outline-container-3" class="outline-3">
<h3 id="sec-3">Bidirectional support </h3>
<div class="outline-text-3" id="text-3">
<p> Big one for international support. </p>
</p></div>
</p></div>
<div id="outline-container-4" class="outline-3">
<h3 id="sec-4">Clipboards </h3>
<div class="outline-text-3" id="text-4">
<p> <code>x-select-enabled-clipboard</code> is now true by default, which means Emacs newbies in Linux won&#8217;t get confused by an inability to copy and paste between applications. </p>
</p></div>
</p></div>
<div id="outline-container-5" class="outline-3">
<h3 id="sec-5">Version control </h3>
<div class="outline-text-3" id="text-5">
<p> With the increasing popularity of distributed version control systems such as bzr, we now have a way to pull updates using <code>M-x vc-update</code> (also known as <code>M-x vc-pull</code>). There&#8217;s also a <code>M-x vc-merge</code> command. Looking forward to git support for both of these. </p>
</p></div>
</p></div>
<div id="outline-container-6" class="outline-3">
<h3 id="sec-6">Miscellaneous </h3>
<div class="outline-text-3" id="text-6">
<p> There is a <code>create-animated-image</code> function. Interesting. </p>
</p></div>
</p></div>
<p>Read the original or check out the comments on: <a href="http://sachachua.com/blog/2010/12/whats-new-in-emacs-24/">What’s coming up in Emacs 24</a> (Sacha Chua's blog)</p>
]]></content:encoded>
			<wfw:commentRss>http://sachachua.com/blog/2010/12/whats-new-in-emacs-24/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>More MobileOrg hacking on the Android</title>
		<link>http://sachachua.com/blog/2010/12/more-mobileorg-hacking-on-the-android/</link>
		<comments>http://sachachua.com/blog/2010/12/more-mobileorg-hacking-on-the-android/#comments</comments>
		<pubDate>Thu, 16 Dec 2010 13:00:00 +0000</pubDate>
		<dc:creator>Sacha Chua</dc:creator>
				<category><![CDATA[android]]></category>
		<category><![CDATA[emacs]]></category>
		<category><![CDATA[org]]></category>
		<category><![CDATA[screenshot]]></category>

		<guid isPermaLink="false">http://sachachua.com/blog/2010/12/more-mobileorg-hacking-on-the-android/</guid>
		<description><![CDATA[I’ve gotten IBM’s permission to contribute my changes back to the MobileOrg project, yay! (Disclaimer: I’m doing this as myself and not as an employee of IBM, and all the usual disclaimers apply.) Code and issue-tracking at https://github.com/sachac/mobileorg-android. Before and after: There are still bugs to work out, but whee! Read the original or check [...]<p>Read the original or check out the comments on: <a href="http://sachachua.com/blog/2010/12/more-mobileorg-hacking-on-the-android/">More MobileOrg hacking on the Android</a> (Sacha Chua's blog)</p>
]]></description>
			<content:encoded><![CDATA[<p>I’ve gotten IBM’s permission to contribute my changes back to the MobileOrg project, yay! (Disclaimer: I’m doing this as myself and not as an employee of IBM, and all the usual disclaimers apply.) Code and issue-tracking at <a href="https://github.com/sachac/mobileorg-android">https://github.com/sachac/mobileorg-android</a>.</p>
<p>Before and after:</p>
<p><a href="http://sachachua.com/blog/wp-content/uploads/2010/12/editbefore1.png"><img style="border-bottom: 0px; border-left: 0px; margin: 0px 5px 5px 0px; display: inline; border-top: 0px; border-right: 0px" title="editbefore[1]" border="0" alt="editbefore[1]" src="http://sachachua.com/blog/wp-content/uploads/2010/12/editbefore1_thumb.png" width="188" height="313" /></a> <a href="http://sachachua.com/blog/wp-content/uploads/2010/12/image5.png"><img style="border-bottom: 0px; border-left: 0px; margin: 0px 0px 5px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://sachachua.com/blog/wp-content/uploads/2010/12/image_thumb5.png" width="188" height="313" /></a> </p>
<p>There are still <a href="https://github.com/sachac/mobileorg-android/issues">bugs to work out</a>, but whee!</p>
<p>Read the original or check out the comments on: <a href="http://sachachua.com/blog/2010/12/more-mobileorg-hacking-on-the-android/">More MobileOrg hacking on the Android</a> (Sacha Chua's blog)</p>
]]></content:encoded>
			<wfw:commentRss>http://sachachua.com/blog/2010/12/more-mobileorg-hacking-on-the-android/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Android life so far</title>
		<link>http://sachachua.com/blog/2010/12/android-life-so-far/</link>
		<comments>http://sachachua.com/blog/2010/12/android-life-so-far/#comments</comments>
		<pubDate>Tue, 14 Dec 2010 13:00:00 +0000</pubDate>
		<dc:creator>Sacha Chua</dc:creator>
				<category><![CDATA[android]]></category>
		<category><![CDATA[emacs]]></category>

		<guid isPermaLink="false">http://sachachua.com/blog/2010/12/android-life-so-far/</guid>
		<description><![CDATA[It’s been three weeks since I bought my Android phone, and I’m having lots of fun hacking it. Here’s what I’m doing with it now: Tracking the time I spend on various activities so that I can (a) get better at estimating time for travel and other things, (b) log my work hours, and (c) [...]<p>Read the original or check out the comments on: <a href="http://sachachua.com/blog/2010/12/android-life-so-far/">Android life so far</a> (Sacha Chua's blog)</p>
]]></description>
			<content:encoded><![CDATA[<p>It’s been three weeks since I bought my Android phone, and I’m having lots of fun hacking it. <strong>Here’s what I’m doing with it now:</strong></p>
<ul>
<li>Tracking the time I spend on various activities so that I can (a) get better at estimating time for travel and other things, (b) log my work hours, and (c) find out where my time really went.     <br />Experimenting with grocery tracking systems so that I can organize my shopping list and track prices. <a href="http://www.appbrain.com/app/grocery-tracker/easicorp.gtracker">GTracker</a> seems okay, although there are a bunch of features I still want, so I might build my own someday.</li>
<li>Synchronizing my files with <a href="http://www.appbrain.com/app/dropbox/com.dropbox.android">Dropbox</a>, reviewing spreadsheets, and using the files in various applications.</li>
<li>Mindmapping with <a href="http://www.appbrain.com/app/thinking-space/net.thinkingspace">ThinkingSpace</a>, which understands Freemind files I’ve downloaded with Dropbox.</li>
<li>Taking pictures and sharing them on Facebook and <a href="http://picasaweb.google.com/sachac/Phone#">Picasa</a>.</li>
<li>Capturing notes, mostly with <a href="http://www.appbrain.com/app/mobileorg/com.matburt.mobileorg">MobileOrg</a>. Still tweaking this.</li>
</ul>
<p><strong>What am I working on being able to do with my Android?</strong></p>
<ul>
<li><strong>Retrieve contact data from BBDB:</strong> I’m most of the way to being able to show records from the Emacs Big Brother Database in my Android contacts. Mwahaha! I’ve figured out how to parse the records with StringTokenizer, interpret the alists, add information to records, and add records to visible groups. I just want to set up a new account manager for BBDB, and then group the items using mail aliases. It took me a while to piece things together from bits of documentation and tutorials. I’m looking forward to applying for permission to share my BBDB stuff as open source, too.</li>
<li><strong>Improve Org interface:</strong> I’m also most of the way towards making the MobileOrg capture interface close to the MobileOrg iOS capture interface, which I had been quite happy with. You</li>
<li><strong>Check my Toodledo tasks: </strong>None of the Toodledo clients I’ve tried are as slick as Toodledo for iOS. Who knows, this might just push me back into using Emacs Org to manage everything, with my org-toodledo for syncing to the Web.</li>
<li><strong>Get better at using a timer:</strong> Not quite Pomodoro technique, more like a timer just to remind myself to stop doing something. =) The open source <a href="http://www.appbrain.com/app/tea-timer/goo.TeaTimer">Tea Timer</a> is a decent fit, and I’ve kludged it on my phone to make it easier to add multiples of five minutes.</li>
<li><strong>Track my time in more detail:</strong> Maybe with task-level tracking, or finer categories for the things I care about?</li>
</ul>
<p><strong>What am I learning?</strong></p>
<p>Looking at my preliminary stats from a little over two weeks of tracking, I’m pleasantly surprised by how much time I spent on social interaction – more than I thought I did, looking back. I also get a decent amount of walking and other exercise into my schedule. It takes me about 13 minutes to walk to the subway station, and the subway ride to work takes an average of 19 minutes – a little over my estimate of 30 minutes travel time. I’ve been putting that time to good use, listening to podcasts while walking, and writing Christmas cards if I can get a seat.</p>
<p>I might shift our preparation routines around so that I can move more non-computer things into weekday evenings. I want to do more blogging and Android development in my personal time. Even though I take frequent typing breaks to avoid those pangs of incipient RSI, a long day of working on the computer is probably still a bad idea. ;) Most of our weekend preparations involve laundry or cooking. Both are more efficiently batched on the weekends &#8211; cheaper electricity, too. Tidying up and folding laundry can be done as a break that separates work from evenings. Drawing might exercise different muscles (and different parts of my brain). Investing time into training speech recognition might pay off, too, although I get self-conscious about dictating when other people are around. &lt;laugh&gt;</p>
<p>Definitely like my Android.</p>
<p>Read the original or check out the comments on: <a href="http://sachachua.com/blog/2010/12/android-life-so-far/">Android life so far</a> (Sacha Chua's blog)</p>
]]></content:encoded>
			<wfw:commentRss>http://sachachua.com/blog/2010/12/android-life-so-far/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Learning Android development by hacking MobileOrg</title>
		<link>http://sachachua.com/blog/2010/11/learning-android-development-by-hacking-mobileorg/</link>
		<comments>http://sachachua.com/blog/2010/11/learning-android-development-by-hacking-mobileorg/#comments</comments>
		<pubDate>Mon, 29 Nov 2010 13:00:00 +0000</pubDate>
		<dc:creator>Sacha Chua</dc:creator>
				<category><![CDATA[android]]></category>
		<category><![CDATA[emacs]]></category>
		<category><![CDATA[geek]]></category>

		<guid isPermaLink="false">http://sachachua.com/blog/2010/11/learning-android-development-by-hacking-mobileorg/</guid>
		<description><![CDATA[I spent most of Saturday plunging into Android development, starting from the Hello World and Notepad tutorials. It was lots of fun. I wanted to use MobileOrg on Android, but it lacked a lot of things that were in MobileOrg for iPhone, so I taught myself Android development by fixing little things that a newbie [...]<p>Read the original or check out the comments on: <a href="http://sachachua.com/blog/2010/11/learning-android-development-by-hacking-mobileorg/">Learning Android development by hacking MobileOrg</a> (Sacha Chua's blog)</p>
]]></description>
			<content:encoded><![CDATA[<p>I spent most of Saturday plunging into Android development, starting from the <a href="http://developer.android.com/guide/tutorials/hello-world.html">Hello World</a> and <a href="http://developer.android.com/guide/tutorials/notepad/index.html">Notepad</a> tutorials. It was lots of fun. I wanted to use MobileOrg on Android, but it lacked a lot of things that were in MobileOrg for iPhone, so I taught myself Android development by fixing little things that a newbie like me could do.</p>
<p>First: I wanted the capture form to resize itself when the soft keyboard was displayed, instead of letting the virtual keyboard hide the Save button. Fortunately, I’d come across a solution while reading <a href="http://developer.android.com/resources/articles/index.html">the technical articles</a> on developer.android.com: resize the <a href="http://developer.android.com/resources/articles/on-screen-inputs.html">activity based on the onscreen input method</a>. I tested it on my system, then reported the issue and the fix through <a href="https://github.com/matburt/mobileorg-android">MobileOrg’s github</a>. Within a few hours, the fix was included in the project. Yay! (It took me a while to figure out I could use the back button to hide the keyboard, but it was a productive while.) </p>
<p>Second: The editing interface was functional but not convenient , so I dug into views and layouts and all sorts of niftiness. Before and after:</p>
<p><a href="http://sachachua.com/blog/wp-content/uploads/2010/11/editbefore.png"><img style="border-right-width: 0px; margin: 0px 0px 5px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="edit-before" border="0" alt="edit-before" src="http://sachachua.com/blog/wp-content/uploads/2010/11/editbefore_thumb.png" width="190" height="315" /></a>&#160;&#160; <a href="http://sachachua.com/blog/wp-content/uploads/2010/11/after.png"><img style="border-right-width: 0px; margin: 0px 0px 5px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="after" border="0" alt="after" src="http://sachachua.com/blog/wp-content/uploads/2010/11/after_thumb.png" width="190" height="315" /></a> </p>
<p>(… and it’s all wired up and working, at least for me!)</p>
<p>Mwahaha! Along the way, I ended up learning about org-mobile.el and how to set up a somewhat finicky configuration so that I could synchronize my files over Dropbox onto my SD card and into MobileOrg, and then back over Dropbox and into my computer. It’s not fully automatic, but the pieces are mostly connected now. The relevant parts of my experimental config:</p>
<pre>(setq org-mobile-directory &quot;~/dropbox/mobile&quot;)
(setq org-mobile-inbox-for-pull &quot;~/personal/mobileorg.org&quot;)
(setq default-buffer-file-coding-system 'utf-8)
(setq org-mobile-files '(&quot;~/personal/organizer.org&quot; &quot;~/personal/outline.org&quot; &quot;~/personal/test.org&quot;))
(setq org-mobile-agendas '(&quot;a&quot;))</pre>
<p>Then I used M-x org-mobile-push to sync&#160; things up. There was a bit of a kerfluffle I had to sort out. I moved files around, so I needed to delete the /sdcard/mobileorg database on my Android, and I also needed to download the checksums and other files using Dropbox before loading them in MobileOrg. But things work reasonably well now, I think, and I can browse my Org files and capture some updates. Whee!</p>
<p>&#160;<a href="http://sachachua.com/blog/wp-content/uploads/2010/11/main.png"><img style="border-right-width: 0px; margin: 0px 0px 5px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="main" border="0" alt="main" src="http://sachachua.com/blog/wp-content/uploads/2010/11/main_thumb.png" width="190" height="315" /></a> <a href="http://sachachua.com/blog/wp-content/uploads/2010/11/organizer.png"><img style="border-right-width: 0px; margin: 0px 0px 5px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="organizer" border="0" alt="organizer" src="http://sachachua.com/blog/wp-content/uploads/2010/11/organizer_thumb.png" width="190" height="315" /></a> <a href="http://sachachua.com/blog/wp-content/uploads/2010/11/outline2.png"><img style="border-right-width: 0px; margin: 0px 0px 5px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="outline2" border="0" alt="outline2" src="http://sachachua.com/blog/wp-content/uploads/2010/11/outline2_thumb.png" width="190" height="315" /></a> </p>
</p>
</p>
<p>… and so on.</p>
<p>Next step: Talk to my manager about open source approvals so that I can share my patches with the community. There’s still plenty more to build on top of MobileOrg, but at least I’ve taken care of the two big things that were getting in my way. </p>
<p>I’ll have to decide whether I’m going to build my other app ideas as separate lightweight apps, or be evil and store as much data as I can into <a href="http://orgmode.org">Org</a>… &gt;:) Hmm. Org as grocery list, price tracker, inventory management, and&#160; recipe database? Org as sewing organizer for patterns, notions, fabric, measurements, and projects? Org as a hammer for an unbelievable variety of nails?</p>
<p>Mwahahaha!</p>
<p>(Okay, maybe I’ll build things for SQLite first, but there’ll probably be some kind of .org or CSV eventually…)</p>
<p>Read the original or check out the comments on: <a href="http://sachachua.com/blog/2010/11/learning-android-development-by-hacking-mobileorg/">Learning Android development by hacking MobileOrg</a> (Sacha Chua's blog)</p>
]]></content:encoded>
			<wfw:commentRss>http://sachachua.com/blog/2010/11/learning-android-development-by-hacking-mobileorg/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Emacs: Recording ledger entries with org-capture-templates</title>
		<link>http://sachachua.com/blog/2010/11/emacs-recording-ledger-entries-with-org-capture-templates/</link>
		<comments>http://sachachua.com/blog/2010/11/emacs-recording-ledger-entries-with-org-capture-templates/#comments</comments>
		<pubDate>Tue, 23 Nov 2010 13:00:00 +0000</pubDate>
		<dc:creator>Sacha Chua</dc:creator>
				<category><![CDATA[emacs]]></category>
		<category><![CDATA[ledger]]></category>

		<guid isPermaLink="false">http://sachachua.com/blog/2010/11/emacs-recording-ledger-entries-with-org-capture-templates/</guid>
		<description><![CDATA[I use John Wiegley&#8217;s ledger program to keep track of my personal finances. It&#8217;s quick, it&#8217;s light, and it lets me slice-and-dice my data however I want. I enjoy opening my ledger file and adding transactions to it. (Particularly if it involves income!) Yes, I&#8217;m that kind of weird. I wanted to make it even [...]<p>Read the original or check out the comments on: <a href="http://sachachua.com/blog/2010/11/emacs-recording-ledger-entries-with-org-capture-templates/">Emacs: Recording ledger entries with org-capture-templates</a> (Sacha Chua's blog)</p>
]]></description>
			<content:encoded><![CDATA[<p>I use <a href="https://github.com/jwiegley/ledger/wiki">John Wiegley&#8217;s ledger program</a> to keep track of my personal finances. It&#8217;s quick, it&#8217;s light, and it lets me slice-and-dice my data however I want. I enjoy opening my ledger file and adding transactions to it. (Particularly if it involves income!) Yes, I&#8217;m that kind of weird. </p>
<p> I wanted to make it even easier to add entries. Instead of using C-x C-f to find the file, using ESC &gt; to go to the end of the buffer, and typing in the transactions, I decided to add some of my common transactions to <code>org-capture-templates</code>. Here&#8217;s the relevant snippet: </p>
<pre class="src src-nil">
(setq org-capture-templates
      (append '(("l" "Ledger entries")
                ("lm" "MBNA" plain
                 (file "~/personal/ledger")
                 "%(org-read-date) %^{Payee}
  Liabilities:MBNA
  Expenses:%^{Account}  %^{Amount}
")
                ("lc" "Cash" plain
                (file "~/personal/ledger")
	        "%(org-read-date) * %^{Payee}
  Expenses:Cash
  Expenses:%^{Account}  %^{Amount}
"))
       org-capture-templates))
</pre>
<p> I&#8217;ve bound <code>org-capture</code> to <code>C-c r</code> using <code>(global-set-key (kbd "C-c r") 'org-capture)</code>, so now I can use <code>C-c r l m</code> to create an entry for my MBNA Mastercard. This keyboard shortcut might not seem short to you, but if you think about it as C-c remember ledger Mastercard, it makes perfect sense. =) (Besides, org-capture prompts me just in case I forget.) </p>
<p> Hooray for <code>org-capture!</code> </p>
<p>Read the original or check out the comments on: <a href="http://sachachua.com/blog/2010/11/emacs-recording-ledger-entries-with-org-capture-templates/">Emacs: Recording ledger entries with org-capture-templates</a> (Sacha Chua's blog)</p>
]]></content:encoded>
			<wfw:commentRss>http://sachachua.com/blog/2010/11/emacs-recording-ledger-entries-with-org-capture-templates/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Emacs, keypresses, and why keyboard combinations aren&#8217;t that scary</title>
		<link>http://sachachua.com/blog/2010/10/emacs-keypresses-and-why-keyboard-combinations-arent-that-scary/</link>
		<comments>http://sachachua.com/blog/2010/10/emacs-keypresses-and-why-keyboard-combinations-arent-that-scary/#comments</comments>
		<pubDate>Sat, 30 Oct 2010 12:00:00 +0000</pubDate>
		<dc:creator>Sacha Chua</dc:creator>
				<category><![CDATA[emacs]]></category>
		<category><![CDATA[highlight]]></category>

		<guid isPermaLink="false">http://sachachua.com/blog/2010/10/emacs-keypresses-and-why-keyboard-combinations-arent-that-scary/</guid>
		<description><![CDATA[I came across this comment on Chris Lowis&#8217; blog post about small-screen development in Emacs: Alex: I can&#8217;t be geek enough to use Emacs&#8230; it&#8217;s not that I think the editor is bad: it&#8217;s the excessive number of keys to press to accomplish anything. It made me stop and think, because one of the things [...]<p>Read the original or check out the comments on: <a href="http://sachachua.com/blog/2010/10/emacs-keypresses-and-why-keyboard-combinations-arent-that-scary/">Emacs, keypresses, and why keyboard combinations aren&#8217;t that scary</a> (Sacha Chua's blog)</p>
]]></description>
			<content:encoded><![CDATA[<p> I came across <a href="http://blog.chrislowis.co.uk/2010/10/26/laptop-driven-development-with-emacs.html">this comment</a> on Chris Lowis&#8217; blog post about small-screen development in Emacs: </p>
<blockquote>
<p>Alex: I can&#8217;t be geek enough to use Emacs&hellip; it&#8217;s not that I think the<br />
editor is bad: it&#8217;s the excessive number of keys to press to<br />
accomplish anything.
</p>
</blockquote>
<p> It made me stop and think, because one of the things I <span style="text-decoration:underline;">love</span> about Emacs is that I can press lots of keys to accomplish anything. </p>
<p> What&#8217;s the alternative? Mouse clicks? Eeew. </p>
<p> My most-common keyboard shortcuts are one or two keys long. Yes, there are many of them, and I use a small subset depending on what I&#8217;m working on. If I forget the keyboard shortcut for something, or I want to run a command that doesn&#8217;t have a keyboard shortcut, I use M-x (which is really Alt-x on my keyboard) to call the function by name (ex: M-x shell-command-on-region, which turns out to have M-| as a shortcut). </p>
<p> I hardly ever type entire function names. <code>icomplete-mode</code> offers autocompletion for M-x. I also shows me the keyboard shortcuts for a command in order to help me work more efficiently. </p>
<p> If I like something a lot, I can easily define a keyboard shortcut for it using global-set-key. I can set mode-specific keyboard shortcuts so that some shortcuts are active when I&#8217;m programming and inactive when I&#8217;m not. I can load sets of shortcuts depending on what I want to do. It&#8217;s incredibly flexible. Yes, it requires some learning, but it&#8217;s been well worth the investment for me. </p>
<p> Because you only have so many keys on a keyboard, it&#8217;s useful to be able to define multiple-key shortcuts. I&#8217;d rather type Ctrl-c r t than Ctrl-Alt-Shift-R or something like that. (Or worse: spend time looking for <span style="text-decoration:underline;">just</span> the right toolbar button, and try to click on it with the mouse.) I think of it like super-fast selection through a menu that makes sense to me. In my case, Ctrl-c turned out to be easier to get to than F9 (which I&#8217;d previously been using for personal shortcuts), r means remember, and t means task. </p>
<p> You might think that a keyboard-driven editor is slow, but it&#8217;s fast enough to keep up with me, and I can probably code circles around you. ;) </p>
<p>Read the original or check out the comments on: <a href="http://sachachua.com/blog/2010/10/emacs-keypresses-and-why-keyboard-combinations-arent-that-scary/">Emacs, keypresses, and why keyboard combinations aren&#8217;t that scary</a> (Sacha Chua's blog)</p>
]]></content:encoded>
			<wfw:commentRss>http://sachachua.com/blog/2010/10/emacs-keypresses-and-why-keyboard-combinations-arent-that-scary/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>New note-taking workflow with Emacs Org-mode</title>
		<link>http://sachachua.com/blog/2010/09/new-note-taking-workflow-with-emacs-org-mode/</link>
		<comments>http://sachachua.com/blog/2010/09/new-note-taking-workflow-with-emacs-org-mode/#comments</comments>
		<pubDate>Fri, 24 Sep 2010 12:00:00 +0000</pubDate>
		<dc:creator>Sacha Chua</dc:creator>
				<category><![CDATA[emacs]]></category>
		<category><![CDATA[highlight]]></category>
		<category><![CDATA[kaizen]]></category>
		<category><![CDATA[notetaking]]></category>
		<category><![CDATA[org]]></category>
		<category><![CDATA[pkm]]></category>
		<category><![CDATA[productivity]]></category>
		<category><![CDATA[workflow]]></category>

		<guid isPermaLink="false">http://sachachua.com/blog/2010/09/new-note-taking-workflow-with-emacs-org-mode-emacsorgnotetakingworkflowkaizenproductivitypkmknowledge-management/</guid>
		<description><![CDATA[The new workflow looks like it works better for me. Or rather, it&#8217;s an old workflow with new tools. Now, instead of using Windows Live Writer or ScribeFire to post my notes directly to my blog, I&#8217;m back to using M-x remember and Emacs, keeping a superset of my notes in text files and publishing [...]<p>Read the original or check out the comments on: <a href="http://sachachua.com/blog/2010/09/new-note-taking-workflow-with-emacs-org-mode/">New note-taking workflow with Emacs Org-mode</a> (Sacha Chua's blog)</p>
]]></description>
			<content:encoded><![CDATA[<p> The new workflow looks like it works better for me. Or rather, it&#8217;s an old workflow with new tools. Now, instead of using Windows Live Writer or ScribeFire to post my notes directly to my blog, I&#8217;m back to using M-x remember and Emacs, keeping a superset of my notes in text files and publishing selected parts of it. </p>
<ul>
<li id="sec-1">The new workflow <br /> 
<ul>
<li> M-x remember saves quick notes into a large text file (~/personal/organizer.org), possibly with tags, with diagrams inserted later. </li>
<li> I regularly review and file items into the appropriate sections of ~/personal/outline.org. </li>
<li> I post selected items to my blog using C-u M-x org2blog-post-subtree, scheduling them by adding a timestamp or using the C-c C-s (org-schedule) command.  </li>
</ul>
<p>I sometimes use Microsoft OneNote on my new tablet to take notes during meetings, but it&#8217;s easy enough to convert my handwriting to text and paste it into my Org-mode file. I still have to think of a better way to refer to images while keeping my file manageable, but a filename is probably okay. </p>
</li>
<li id="sec-2">A worked example <br /> 
<p> This is being composed in a M-x remember window. (Well, remember is bound to C-c r on my system, so it&#8217;s easy to invoke). </p>
<p> After I finish braindumping, I&#8217;ll use C-c C-c to save it somewhere.  </p>
<p> I may schedule the post immediately (C-c s (org-schedule) and then C-u M-x org2blog-post-subtree), or tag it for later review. (:toblog: &#8211; ready to go, but not scheduled? :rough: &#8211; needs more thinking?) </p>
<p> When I review the items, I&#8217;ll copy this into the Geek &#8211; Emacs section of my outline.org.  </p>
<p> It feels nice having my notes in plain text, and being able to organize it in more than just chronological order&hellip; </p>
</li>
<li id="sec-3">The history <br /> 
<p> From 2001 to about 2006, I kept an Emacs Planner wiki with all of my notes in it. Emacs Remember let me write notes that were automatically hyperlinked to whatever I was looking at, and I added code to Planner that made it easy for me to file the notes both chronologically and topically. Planner rocked. I loved being able to easily hyperlink between topics, and the wiki structure kept pages a mostly manageable size. (My <a href="http://sachachua.com/notebook/wiki/PlannerMode.php">public Planner files</a> are still on the Net, but I need to regenerate the index or enable directory lists so that they&#8217;re usable.) </p>
<p> When I moved to WordPress as a blogging platform in order to make it easier for people to leave comments, I hacked around with RSS to import my posts from Planner into WordPress (ex: <a href="http://sachachua.com/blog/2002/">http://sachachua.com/blog/2002/</a>). Moving to WordPress meant a change in my workflow. I now had two places to store my notes: Planner and my blog. </p>
<p> I tried Emacs Org because I liked the way it organized information. In Planner, we&#8217;d been struggling with elegant ways to manage tasks and notes that needed to be accessed in multiple contexts. The approach we had taken in Planner was to make copies of the information, but Org had a cleaner way to do it using different views. It was intriguing. </p>
<p> When I started working at IBM, however, my information workflow diverged. I shifted to using a web-based to-do list and Lotus Notes, posting on an internal blog and an external one, and managing multiple sources and repositories of information. </p>
<p> I wanted to go back to keeping my notes in plain text, encrypted if necessary, and to have a place where I could keep notes that might not be publishable. I still had to manage multiple computers, but synchronizing systems like Dropbox or SpiderOak got rid of some of the hassles I&#8217;d encountered with git. When I found out about org2blog thanks to a test link from punchagan, I <a href="http://sachachua.com/blog/2010/07/using-org2blog-to-publish-org-mode-subtrees/">modified the code to work with subtrees instead of new buffers</a>, and that solved the blog publishing part of it. </p>
</li>
</ul>
<p>Read the original or check out the comments on: <a href="http://sachachua.com/blog/2010/09/new-note-taking-workflow-with-emacs-org-mode/">New note-taking workflow with Emacs Org-mode</a> (Sacha Chua's blog)</p>
]]></content:encoded>
			<wfw:commentRss>http://sachachua.com/blog/2010/09/new-note-taking-workflow-with-emacs-org-mode/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>Emacs Org mode and publishing a weekly review</title>
		<link>http://sachachua.com/blog/2010/09/emacs-org-mode-and-publishing-a-weekly-review/</link>
		<comments>http://sachachua.com/blog/2010/09/emacs-org-mode-and-publishing-a-weekly-review/#comments</comments>
		<pubDate>Sat, 11 Sep 2010 12:00:00 +0000</pubDate>
		<dc:creator>Sacha Chua</dc:creator>
				<category><![CDATA[emacs]]></category>
		<category><![CDATA[gtd]]></category>
		<category><![CDATA[highlight]]></category>
		<category><![CDATA[kaizen]]></category>
		<category><![CDATA[org]]></category>
		<category><![CDATA[process]]></category>

		<guid isPermaLink="false">http://sachachua.com/blog/2010/09/emacs-org-mode-and-publishing-a-weekly-review/</guid>
		<description><![CDATA[2010-09-11 Sat 08:00 I like using Emacs Org-mode to organize my notes. One of the things it makes it easy to do is to keep a weekly review. I used to switch between using Windows Live Writer and using Emacs Org to draft the post, but with org2blog, I&#8217;ve been using Org more and more. [...]<p>Read the original or check out the comments on: <a href="http://sachachua.com/blog/2010/09/emacs-org-mode-and-publishing-a-weekly-review/">Emacs Org mode and publishing a weekly review</a> (Sacha Chua's blog)</p>
]]></description>
			<content:encoded><![CDATA[<p><span class="timestamp-wrapper"> <span class="timestamp">2010-09-11 Sat 08:00</span></span> </p>
<p> I like using Emacs <a href="http://www.orgmode.org">Org-mode</a> to organize my notes. One of the things it makes it easy to do is to keep a weekly review. I used to switch between using Windows Live Writer and using Emacs Org to draft the post, but with org2blog, I&#8217;ve been using Org more and more. Here&#8217;s how I use it. </p>
<p> At the beginning of my ~/personal/organizer.org, I have a headline for * Weekly review. Underneath it is a template that makes it easy for me to review my current projects and make sure that I&#8217;ve got next actions for each of them. Below that is a reverse-chronological list of weekly reviews, with the most recent weekly review first. This allows me to easily review my weekly priorities and copy that into a new entry. Here&#8217;s what the first part of my Org file looks like (minus the spaces at the beginning of the line) </p>
<pre class="example">* Weekly review
** Template
*** Plans for next week
**** Work
- [ ] *Support Classroom to Client:*
- [ ] *Build Connections Toolkit:*
- [ ] *Organize Idea Labs:*
- [ ] *Build career:*
**** Relationships
- [ ] *Plan Wedding:*
**** Life
- [ ] *Sew dress:*
- [ ] *Improve productivity:*
** Week ending September 12, 2010
*** From last week's plans
**** Work
- [X] *Classroom to Client:* Create community and structure online resoruces
- [X] *Connections Toolkit:* Build Activities reporter
- [X] *Classroom to Client:* Format Idea Lab reference presentation
- [X] *Idea Labs:* Assist with planning, process RSVPs
- [X] *Career:* Set up Ruby on Rails
- Helped Darrel Rader with blog feed
- Helped Sunaina with Notes e-mail conversion
- Finalized Idea Lab reference
- Had great conversation with Boz, Rooney, Kieran, etc. about culture and sharing
- Followed up on expertise location, sent draft report
- Collected interesting Lotus Connections practices into a presentation
- Put together match-up slide for IBM acquisitions
**** Relationships
- [X] *Wedding:* Plan NYC trip
**** Life
- [ ] *Sew dress:* Transfer dots and mark stitching lines
- [X] *Chair:* Paint and assemble chair
- [X] *Productivity:* Tweak GTD process - use Org for my weekly review/project template
- [X] *Productivity:* Organize files
- Added weekly lifestream archive
**** Plans for next week
***** Work
- [ ] *Support Classroom to Client:* Collect lessons learned and create new material
- [ ] *Build Connections Toolkit:* Make GUI
- [ ] *Organize Idea Labs:* Update invitation template
- [ ] *Build career:* Go through Ruby on Rails tutorials
- [ ] *Build career:* Prototype Drupal site and learn about new practices along the way
- [ ] *Build career:* Mentor people
***** Relationships
- [ ] *Plan wedding:* Plan BBQ reception
- [ ] *Plan wedding:* Make checklist and timeline for cleaning up, etc.
***** Life
- [ ] *Sew dress:* Machine-baste pieces together
- [ ] *Improve productivity:* File inbox items from my Org file
</pre>
<p> Most of the time, I leave the template section collapsed, and the &#8220;Plans from last week&#8221; expanded. Throughout the week, I cross items off and add quick notes about other accomplishments. When I reach the next week, I create a new entry, move the &#8220;Plans for next week&#8221; subtree and rename it &#8220;From last week&#8217;s plans&#8221;. When I do my weekly review (or throughout the week, as I notice new items), I create a &#8220;Plans for next week&#8221; section and fill it in. The editing can easily be automated, but I&#8217;ll tinker with it a bit first before writing code. </p>
<p> This approach means duplicate information in my task list. It would be interesting to use TODO items instead of list items for tracking my weekly priorities, with possible integration with my web-based task list through org-toodledo. However, I&#8217;d need to write code to make the TODO items publish as neatly as this list gets published using org2blog, and I don&#8217;t feel like going into that yet. </p>
<p> Anyway, that&#8217;s how I&#8217;m currently doing it. =) </p>
<p>Read the original or check out the comments on: <a href="http://sachachua.com/blog/2010/09/emacs-org-mode-and-publishing-a-weekly-review/">Emacs Org mode and publishing a weekly review</a> (Sacha Chua's blog)</p>
]]></content:encoded>
			<wfw:commentRss>http://sachachua.com/blog/2010/09/emacs-org-mode-and-publishing-a-weekly-review/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Using org2blog to publish Org-mode subtrees</title>
		<link>http://sachachua.com/blog/2010/07/using-org2blog-to-publish-org-mode-subtrees/</link>
		<comments>http://sachachua.com/blog/2010/07/using-org2blog-to-publish-org-mode-subtrees/#comments</comments>
		<pubDate>Tue, 20 Jul 2010 12:00:00 +0000</pubDate>
		<dc:creator>Sacha Chua</dc:creator>
				<category><![CDATA[emacs]]></category>
		<category><![CDATA[geek]]></category>

		<guid isPermaLink="false">http://sachachua.com/blog/?p=7265</guid>
		<description><![CDATA[This patch modifies punchagan&#8217;s org2blog to allow you to publish an Org subtree with M-x org2blog-post-subtree. It posts a draft by default, and publishes the post if you call it with C-u M-x org2blog-post-subtree. It gets the posting date from SCHEDULED, DEADLINE, active or inactive timestamps, or the Post Date property, and lets you use [...]<p>Read the original or check out the comments on: <a href="http://sachachua.com/blog/2010/07/using-org2blog-to-publish-org-mode-subtrees/">Using org2blog to publish Org-mode subtrees</a> (Sacha Chua's blog)</p>
]]></description>
			<content:encoded><![CDATA[<p> This patch modifies punchagan&#8217;s <a href="http://github.com/punchagan/org2blog">org2blog</a> to allow you to publish an Org subtree with <code>M-x org2blog-post-subtree</code>. It posts a draft by default, and publishes the post if you call it with <code>C-u M-x org2blog-post-subtree</code>. It gets the posting date from SCHEDULED, DEADLINE, active or inactive timestamps, or the Post Date property, and lets you use tags as categories or use a separate Categories property. It inherits tags from parent headings, too. It picks up the title from the subtree heading or uses the Title property. </p>
<div id="outline-container-1" class="outline-4">
<h4 id="sec-1">Patch </h4>
<div class="outline-text-4" id="text-1">
<pre class="example">diff --git a/org2blog.el b/org2blog.el
index dc88291..b95caba 100644
--- a/org2blog.el
+++ b/org2blog.el
@@ -77,6 +77,11 @@
   :group 'org2blog
   :type 'string)

+(defcustom org2blog-use-tags-as-categories nil
+  "Non-nil means assign :tags: to WordPress categories instead."
+  :group 'org2blog
+  :type 'boolean)
+
 (defvar org2blog-categories-list nil
   "List of weblog categories")

@@ -433,4 +438,143 @@
        (goto-char current-pos)
        (command-execute (lookup-key org-mode-map (kbd "C-c t")))))))

+(defun org2blog-create-categories (categories)
+  "Create unknown CATEGORIES."
+  (mapcar
+   (lambda (cat)
+     (if (and (not (member cat org2blog-categories-list))
+              (y-or-n-p (format "Create %s category? " cat)))
+         (wp-new-category org2blog-server-xmlrpc-url
+                          org2blog-server-userid
+                          (org2blog-password)
+                          org2blog-server-blogid
+                          cat)))
+   categories))
+
+(defun org2blog-password ()
+  "Get password or prompt if needed."
+  (or org2blog-server-pass
+      (setq org2blog-server-pass (read-passwd "Weblog password? "))))
+
+(defun org2blog-upload-images-insert-links (&amp;optional beg end)
+  "Upload images and replace with links in the region specified by BEG to END."
+  (interactive "r")
+  (let ((re
+        (concat "\\[\\[\\(.*\\)"
+                (substring (org-image-file-name-regexp) 0 -2)
+                "\\]\\]"))
+       file-all-urls file-name file-web-url blog-pass)
+    (save-excursion
+      (save-restriction
+        (narrow-to-region (or beg (point-min))
+                          (or end (point-max)))
+        (goto-char (point-min))
+        (while (re-search-forward re nil t 1)
+          (setq file-name (concat
+                           (match-string-no-properties 1)
+                           "."
+                           (match-string-no-properties 2)))
+          (unless (save-match-data (string-match org-link-types-re file-name))
+            (save-match-data
+              (if (assoc file-name file-all-urls)
+                  (setq file-web-url (cdr (assoc file-name file-all-urls)))
+                (setq file-web-url
+                      (cdr (assoc "url"
+                                  (metaweblog-upload-image org2blog-server-xmlrpc-url
+                                                           org2blog-server-userid
+                                                           (org2blog-password)
+                                                           org2blog-server-weblog-id
+                                                           (get-image-properties file-name))))
+                      file-all-urls (append file-all-urls (list (cons
+                                                                 file-name file-web-url))))))
+            (replace-match (concat "[[" file-web-url "]]") t t nil 0)))))
+    file-all-urls))
+
+(defun org2blog-post-subtree (&amp;optional publish)
+  "Post the current entry as a draft. Publish if PUBLISH is non-nil."
+  (interactive "P")
+  (let ((post (org2blog-parse-subtree))
+        post-id)
+    (org2blog-create-categories (cdr (assoc "categories" post)))
+    (setq post-id (cdr (assoc "post-id" post)))
+    (save-excursion
+      (org2blog-upload-images-insert-links (org-back-to-heading) (org-end-of-subtree)))
+    (if post-id
+        (metaweblog-edit-post org2blog-server-xmlrpc-url
+                             org2blog-server-userid
+                              (org2blog-password)
+                             post-id
+                              post
+                             publish)
+      (setq post-id
+            (metaweblog-new-post
+             org2blog-server-xmlrpc-url
+             org2blog-server-userid
+             (org2blog-password)
+             org2blog-server-blogid
+             post
+             publish))
+      (org-entry-put (point) "Post ID" post-id)
+      (message (if publish
+                   "Published (%s): %s"
+                 "Draft (%s): %s")
+               post-id
+               (cdr (assoc "title" post))))))
+
+(defun org2blog-parse-subtree ()
+  "Parse the current subtree as a blog entry."
+  (let (html-text
+        (post-title (or (org-entry-get (point) "Title")
+                        (org-get-heading t)))
+        (post-id (org-entry-get (point) "Post ID"))
+        ;; Set post-date to the Post Date property or look for timestamp
+        (post-date (or (org-entry-get (point) "Post Date")
+                       (org-entry-get (point) "SCHEDULED")
+                       (org-entry-get (point) "DEADLINE")
+                       (org-entry-get (point) "TIMESTAMP_IA")
+                       (org-entry-get (point) "TIMESTAMP")))
+        (tags (org-get-tags-at (point) nil))
+        (categories (org-split-string (or (org-entry-get (point) "CATEGORIES") "") ":")))
+    ;; Convert post date to ISO timestamp
+    (setq post-date
+          (format-time-string "%Y%m%dT%T"
+                              (if post-date
+                                  (apply 'encode-time (org-parse-time-string post-date))
+                                (current-time))
+                              t))
+    (if org2blog-use-tags-as-categories
+        (setq categories tags
+              tags nil))
+    (save-excursion
+      (setq html-text
+            (org-export-region-as-html
+             (and (org-back-to-heading) (line-end-position))
+             (org-end-of-subtree)
+             t 'string))
+      (setq html-text
+            (with-temp-buffer
+              (insert html-text)
+              (goto-char (point-min))
+              ;; Fix newlines
+             (let (start-pos end-pos)
+                (setq start-pos (point-min))
+               (goto-char start-pos)
+                (while (re-search-forward "&lt;\\(pre\\|blockquote\\).*?&gt;" nil t 1)
+                  (setq end-pos (match-beginning 0))
+                  (replace-string "\n" " " nil start-pos end-pos)
+                  (re-search-forward (concat "&lt;/" (match-string-no-properties 1) "&gt;") nil t 1)
+                  (setq start-pos (match-end 0))
+                  (goto-char start-pos))
+               (setq end-pos (point-max))
+               (replace-string "\n" " " nil start-pos end-pos))
+              ;; Copy the text
+              (buffer-substring-no-properties (point-min) (point-max)))))
+    (list
+     (cons "date" post-date)
+     (cons "title" post-title)
+     (cons "tags" tags)
+     (cons "categories" categories)
+     (cons "post-id" post-id)
+     (cons "description" html-text))))
+
 (provide 'org2blog)
</pre>
<p> I like using one big Org file for all of my notes so that I can search and categorize things easily.  </p>
<p> Here is the sample code from my ~/.emacs: </p>
<pre class="src src-emacs-lisp">(add-to-list 'load-path "~/elisp/org2blog")
(require 'org2blog)
(setq org2blog-server-url "http://sachachua.com/blog/xmlrpc.php"
      org2blog-server-user "admin"
      org2blog-server-weblog-id ""
      org2blog-use-tags-as-categories t)
(org2blog-login)
</pre>
<p> Then I can go to the entry and call <code>M-x org2blog-post-subtree</code> to post a draft or <code>C-u M-x org2blog-post-subtree</code> to publish it. </p>
<p> Note that the code uses whatever heading level you&#8217;re on, so if you&#8217;re under a sub-heading of the post you want to publish, use <code>C-c C-u outline-up-heading</code> to go up headings until you&#8217;re at the right level. </p>
<p> You can get the modified source code from <a href="http://github.com/sachac/org2blog">http://github.com/sachac/org2blog</a> . I&#8217;ve also sent a pull request upstream. </p>
</div></div>
<p>Read the original or check out the comments on: <a href="http://sachachua.com/blog/2010/07/using-org2blog-to-publish-org-mode-subtrees/">Using org2blog to publish Org-mode subtrees</a> (Sacha Chua's blog)</p>
]]></content:encoded>
			<wfw:commentRss>http://sachachua.com/blog/2010/07/using-org2blog-to-publish-org-mode-subtrees/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Page Caching using disk: basic (User agent is rejected)
Database Caching 18/24 queries in 0.017 seconds using disk: basic

Served from: sachachua.com @ 2012-02-04 02:15:20 -->
