<?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>Alex&#039;s Adventures on the Infobahn &#187; emacs</title>
	<atom:link href="http://www.bennee.com/~alex/blog/tag/emacs/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.bennee.com/~alex/blog</link>
	<description>the wanderings of a supposed digital native</description>
	<lastBuildDate>Wed, 24 Apr 2013 00:22:33 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>On the death of Google Reader</title>
		<link>http://www.bennee.com/~alex/blog/2013/03/14/on-the-death-of-google-reader/</link>
		<comments>http://www.bennee.com/~alex/blog/2013/03/14/on-the-death-of-google-reader/#comments</comments>
		<pubDate>Thu, 14 Mar 2013 22:17:09 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[geek]]></category>
		<category><![CDATA[emacs]]></category>
		<category><![CDATA[floss]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[hosting]]></category>
		<category><![CDATA[rss]]></category>

		<guid isPermaLink="false">http://www.bennee.com/~alex/blog/?p=2652</guid>
		<description><![CDATA[You can probably tell the sort of on-line company I keep from the deluge of noise on the social networks regarding Google&#8217;s decision to shut down Reader. However we shouldn&#8217;t be that surprised. In fact some companies that source content from Reader have anticipated the need to collect content themselves. I of course will have ...</p><p><a href="http://www.bennee.com/~alex/blog/2013/03/14/on-the-death-of-google-reader/" class="more-link">Continue reading &#8216;On the death of Google Reader&#8217; &#187;</a>]]></description>
				<content:encoded><![CDATA[<p>You can probably tell the sort of on-line company I keep from the deluge of noise on the social networks regarding Google&#8217;s decision to shut down Reader. However we shouldn&#8217;t be that surprised. In fact some companies that source content from Reader <a href="http://blog.feedly.com/2013/03/14/google-reader/">have anticipated the need to collect content themselves</a>.</p>
<p>I of course will have to make a decision at some point. However I&#8217;ll not do it today like a lot of Reader users have. The rush to try out alternatives has over-whelmed some <a href="https://twitter.com/samuelclay">open source based projects</a> who were quietly growing organically. I don&#8217;t envy those that have to suddenly gear up their back-end systems because an Internet behemoth gave us 2593 hours notice to sort out a replacement.</p>
<p>I&#8217;m mulling over the difference between self-hosting and having someone else do it. I&#8217;m not overly worried about going for convenience if I know I can get my data back if I need to. In fact the knowledge that you can theoretically self-host might be enough. To be fair to Google their <a href="http://www.dataliberation.org/">Data Liberation</a> team made exporting all my Reader data easy.</p>
<p>Before I make a choice I need to decide what my priorities are. Currently I subscribe to 250+ RSS feeds. Obviously I don&#8217;t read every single post but I make extensive use of tags to quickly process through stuff I do need to see when I need to see it. Aside from news, blog posts, funny cat pictures I also subscribe to other data feeds like bug trackers, code repositories, and other data sources. I of course want access to all of this data at any point on one of a number of devices. This makes a web hosted solution pretty much a must. There is no point having the data on my desktop when I&#8217;m somewhere else. From my point of view I want it to be open source compatible because if the company hosting now decides it no longer wants to I&#8217;ll only have to move the data and not break my work-flow.</p>
<p>It would also be very useful if it had a public API so others can interact with the data. I don&#8217;t need the solution to be all provided by one company. It&#8217;s perfectly fine to have multiple 3rd parties sorting out the Android integration. I might even look to doing something to integrate it with my favourite editor (the name of which even my non-geek readers probably know by now). So far my experiment with moving all of IRC and IM into Emacs seems to be working well and should be a subject of another post.</p>
<p>Are you a Reader user? What are your criteria for it&#8217;s eventual replacement? Is RSS just a dying protocol or is the need to aggregate and sift through data becoming more important?</p>
<p>There may well be a much better way of solving this problem around the corner. I certainly am open to persuasion. But don&#8217;t take away my current preferred solution until I&#8217;m convinced I&#8217;m ready to switch <img src='/~alex/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.bennee.com/~alex/blog/2013/03/14/on-the-death-of-google-reader/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Edit with Emacs v1.12 now available</title>
		<link>http://www.bennee.com/~alex/blog/2012/12/03/edit-with-emacs-v1-12-now-available/</link>
		<comments>http://www.bennee.com/~alex/blog/2012/12/03/edit-with-emacs-v1-12-now-available/#comments</comments>
		<pubDate>Mon, 03 Dec 2012 21:58:51 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[geek]]></category>
		<category><![CDATA[edit with emacs]]></category>
		<category><![CDATA[emacs]]></category>

		<guid isPermaLink="false">http://www.bennee.com/~alex/blog/?p=2634</guid>
		<description><![CDATA[Apologies for the extended delay in getting out a new release of Edit with Emacs. Real life has been doing a good job keeping me busy that spare hacking time is in short supply. A number of people have submitted pull requests and I&#8217;ve also done a bit of clean-up on the code. The JavaScript ...</p><p><a href="http://www.bennee.com/~alex/blog/2012/12/03/edit-with-emacs-v1-12-now-available/" class="more-link">Continue reading &#8216;Edit with Emacs v1.12 now available&#8217; &#187;</a>]]></description>
				<content:encoded><![CDATA[<p>Apologies for the extended delay in getting out a new release of Edit with Emacs. Real life has been doing a good job keeping me busy that spare hacking time is in short supply. A number of people have submitted pull requests and I&#8217;ve also done a bit of clean-up on the code.</p>
<p>The JavaScript in the extension has had the hacky change tracking code replaced with a modern funky 21st century <a href="https://code.google.com/p/mutation-summary/">Mutation Observer implementation</a>. This should solve some of the more obvious performance problems on highly dynamic pages.</p>
<p>I&#8217;ve also implemented the iterative save method for edit-server.el. Unfortunately it doesn&#8217;t quite work as intended if the edited region uses encoding (e.g. longlines). In theory the buffer you have saved should have it&#8217;s contents replaced with the new data from the browser but it just doesn&#8217;t seem to work. For now I&#8217;ve just ensured the kill-ring has the real data in it so it&#8217;s not overly painful to restore formatting. Patches and/or explanations are of course welcome!</p>
<p>So grab it now from <a href="https://chrome.google.com/webstore/detail/edit-with-emacs/ljobjlafonikaiipfkggjbhkghgicgoh">webstore</a>. The changes are as follows:</p>
<p>Extension</p>
<p>* Upgraded manifest to version 2 for future releases of Chrome<br />
* Added an &#8220;Enable Debug&#8221; flag to control logging to console<br />
* Use Mutation Observers to better track changes in dynamic DOMs<br />
* Fake a keypress when updating the textarea<br />
* Bug fix for handling editable DIV elements</p>
<p>edit-server.el</p>
<p>* Now available from the MELPA package archive!<br />
* Beta support for iterative C-x C-s saving (it works but is ugly, see kill-ring)<br />
* Default to using UTF-8 coding for process communication<br />
* Raise existing frame consistently on Mac<br />
* Tweak the portion of the URL used to name buffers</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bennee.com/~alex/blog/2012/12/03/edit-with-emacs-v1-12-now-available/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Many ways to skin a GNU</title>
		<link>http://www.bennee.com/~alex/blog/2012/07/24/many-ways-to-skin-a-gnu/</link>
		<comments>http://www.bennee.com/~alex/blog/2012/07/24/many-ways-to-skin-a-gnu/#comments</comments>
		<pubDate>Tue, 24 Jul 2012 14:09:34 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[geek]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[elisp]]></category>
		<category><![CDATA[emacs]]></category>

		<guid isPermaLink="false">http://www.bennee.com/~alex/blog/?p=2625</guid>
		<description><![CDATA[It&#8217;s time for another examination of Emacs LISP and a selection of ways to solve the same problem. In this case it&#8217;s the behaviour of the etags-select package. This handy function will present a selection table when it finds multiple definitions of the same tag. This is handy if your global TAGs file contains reference ...</p><p><a href="http://www.bennee.com/~alex/blog/2012/07/24/many-ways-to-skin-a-gnu/" class="more-link">Continue reading &#8216;Many ways to skin a GNU&#8217; &#187;</a>]]></description>
				<content:encoded><![CDATA[<p>It&#8217;s time for another examination of Emacs LISP and a selection of ways to solve the same problem. In this case it&#8217;s the behaviour of the <em>etags-select</em> package. This handy function will present a selection table when it finds multiple definitions of the same tag. This is handy if your global TAGs file contains reference to multiple binaries that might have a common code heritage. It even provides a handy function <em>etags-select-find-tag-at-point</em> which will check <em>point</em> to see if that is a tag. However if <em>point</em> is on a blank line I&#8217;d prefer it to just prompt me for a tag name.</p>
<p>First version:</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="lisp" style="font-family:monospace;"><span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">defun</span> my-naive-find-tag <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>
  <span style="color: #ff0000;">&quot;Find at point or fall back&quot;</span>
  <span style="color: #66cc66;">&#40;</span>interactive<span style="color: #66cc66;">&#41;</span>
  <span style="color: #66cc66;">&#40;</span>unless <span style="color: #66cc66;">&#40;</span>etags-select-find-tag-at-point<span style="color: #66cc66;">&#41;</span>
    <span style="color: #66cc66;">&#40;</span>etags-select-find-tag<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span></pre></td></tr></table></div>

<p>Unfortunately this fails rather badly. I naively assumed <em>etags-select-find-tag-at-point</em> would return <em>&#8216;nil</em> on failure. Instead it bombs out with an error because <em>etags-select-find</em> expects a parameter and when <em>find-tag-default</em> fails it errors out.</p>
<p>Second version:</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="lisp" style="font-family:monospace;"><span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">defun</span> my-working-find-tag<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>
  <span style="color: #ff0000;">&quot;Find tag and call etags-select-find-tag-at-point if it will work&quot;</span>
  <span style="color: #66cc66;">&#40;</span>interactive<span style="color: #66cc66;">&#41;</span>
  <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span>find-tag-default<span style="color: #66cc66;">&#41;</span>
      <span style="color: #66cc66;">&#40;</span>etags-select-find-tag-at-point<span style="color: #66cc66;">&#41;</span>
    <span style="color: #66cc66;">&#40;</span>etags-select-find-tag<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span></pre></td></tr></table></div>

<p>This works by checking <em>find-tag-default</em> will work before calling <em>etags-select-find-tag-at-point</em>. Of course there is some duplication here because <em>find-tag-default</em> will get called again once I know it will work. Dissatisfied I asked the <a href=" http://stackoverflow.com/questions/11578723/whats-the-best-way-in-elisp-to-trap-an-error-case">stackoverflow</a> community for suggestions. The first solution is to simply trap the error case.</p>
<p>Third version:</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="lisp" style="font-family:monospace;"><span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">defun</span> my-try-except-find-tag<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>
  <span style="color: #ff0000;">&quot;Find at point or fall to etags-select-find-tag on error&quot;</span>
  <span style="color: #66cc66;">&#40;</span>interactive<span style="color: #66cc66;">&#41;</span>
  <span style="color: #66cc66;">&#40;</span>unless <span style="color: #66cc66;">&#40;</span>ignore-errors <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">or</span> <span style="color: #66cc66;">&#40;</span>etags-select-find-tag-at-point<span style="color: #66cc66;">&#41;</span> 't<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
    <span style="color: #66cc66;">&#40;</span>etags-select-find-tag<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span></pre></td></tr></table></div>

<p>This works by utilising deep lisp black magic to stop the error propagating and returning a &#8216;nil if it does. The <em>(or (etags-select-find-tag-at-point) &#8216;t)</em> line is to ensure a successful call returns something so we don&#8217;t then fall through. Interestingly the comments around <em>subr.el</em> mentions some of the keywords used may be redefined by common lisp.</p>
<p>Forth version:</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="lisp" style="font-family:monospace;"><span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">defun</span> my-efficent-find-tag<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>
  <span style="color: #ff0000;">&quot;Find tag at point, caching find-tag-default&quot;</span>
  <span style="color: #66cc66;">&#40;</span>interactive<span style="color: #66cc66;">&#41;</span>
  <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">let</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span>ftd <span style="color: #66cc66;">&#40;</span>find-tag-default<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
    <span style="color: #66cc66;">&#40;</span>flet <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span>find-tag-default <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> ftd<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
      <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span>find-tag-default<span style="color: #66cc66;">&#41;</span>
          <span style="color: #66cc66;">&#40;</span>etags-select-find-tag-at-point<span style="color: #66cc66;">&#41;</span>
        <span style="color: #66cc66;">&#40;</span>etags-select-find-tag<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span></pre></td></tr></table></div>

<p>While I expected something like <em>ignore-errors</em> to exist this demonstrates the flexibility of dynamic languages like Emacs Lisp. The key is the use of <em>flet</em> to redefine <em>find-tag-default</em> so when it gets executed again inside <em>etags-select-find-tag-at-point</em> it simply returns the cached value.</p>
<p>So as usual with these posts I try to invite feedback. Which of these forms do you prefer? Would you solve the problem another way? Have you just learnt something new about Emacs Lisp?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bennee.com/~alex/blog/2012/07/24/many-ways-to-skin-a-gnu/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Living la vida ELPA</title>
		<link>http://www.bennee.com/~alex/blog/2012/07/10/living-la-vida-elpa/</link>
		<comments>http://www.bennee.com/~alex/blog/2012/07/10/living-la-vida-elpa/#comments</comments>
		<pubDate>Tue, 10 Jul 2012 11:45:58 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[geek]]></category>
		<category><![CDATA[elpa]]></category>
		<category><![CDATA[emacs]]></category>
		<category><![CDATA[git]]></category>

		<guid isPermaLink="false">http://www.bennee.com/~alex/blog/?p=2616</guid>
		<description><![CDATA[I&#8217;ve been running Emacs 24 direct from the version control tree (technically a git mirror, bzr still confuses me) for some time now. As many people have mentioned ELPA is one of the big features that helps de-clutter an Emacs users ~/.emacs.d directory. I thought it might be a useful exercise to discuss which packages ...</p><p><a href="http://www.bennee.com/~alex/blog/2012/07/10/living-la-vida-elpa/" class="more-link">Continue reading &#8216;Living la vida ELPA&#8217; &#187;</a>]]></description>
				<content:encoded><![CDATA[<p>I&#8217;ve been running Emacs 24 direct from the version control tree (technically a git mirror, bzr still confuses me) for some time now. As many people have mentioned ELPA is one of the big features that helps de-clutter an Emacs users ~/.emacs.d directory. I thought it might be a useful exercise to discuss which packages I&#8217;m now loading from ELPA and which I still track directly.</p>
<p>First and formemost is my <a href="https://github.com/stsquad/my-emacs-stuff">my dotemacs collection</a>. Weighing in at around 2700 lines of elisp it&#8217;s small by some standards. I&#8217;ve toyed with moving my config across to things like the <a href="https://github.com/technomancy/emacs-starter-kit/">Emacs Starter Kit</a> but I&#8217;m not sure if it&#8217;s worth the transition pain. There is certainly a lot of cruft in my code but there is also quite a lot of muscle memory now invested in it. I have been trying to modularise it a little more but to be honest most of that was driven by a desire to get autoload working nicely which is no longer much of an issue as my session tends to stay up for weeks at an end.</p>
<p>I&#8217;ll gloss over edit-server.el surfice it to say I&#8217;d hope your not surprised I keep the development version running given it&#8217;s for <a href="https://github.com/stsquad/emacs_chrome">my extension</a> <img src='/~alex/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>After that we have Johnathan Rockway&#8217;s <a href="https://github.com/jrockway/eproject">eproject</a>. I work with lots of code bases during the day and some sort of sensible project type structure is a must. I&#8217;ve tried a number of different solutions and this one stuck as it was fairly lightweight and easy for my smaller lisp brain to extend. I&#8217;ve even managed to contribute some changes back. As a result I find tracking the bleeding edge of development useful.</p>
<p>The same reason applies to Stephen Bach&#8217;s <a href="https://github.com/sjbach/lusty-emacs">lusty-emacs</a>. While ido-mode and ibuffer work well for speed nothing matches lusty&#8217;s lazy file and buffer matching. It can get a little too much once you start dealing with hundreds of buffers at a time (something <em>midnight-mode</em> is trying to keep on top of). It&#8217;s still seeing some activitiy on the repository hence the local checkout.</p>
<p>Finally the biggie but generally unused <a href="http://cedet.sourceforge.net/">cedet</a>. There has been some work to make it comparitively easy to run out of a src checkout and as long as it&#8217;s included early enough it won&#8217;t conflict with the built in cedet shipping with Emacs 23+. I still haven&#8217;t really made much use of it although I have managed to get a completion out of it when editing some C. It&#8217;s basically sitting there until I can commit enough time to figuring out how to use the beast.</p>
<p>Finally a quick review of the ELPA packages that I&#8217;ve got loaded. Obviously there is the latest <em>org-mode</em> which I&#8217;m spending an increasing amount of time in. I also have my favourite <em>zenburn-theme</em> for easy on the eyes goodness. The popular GIT interaction mode <em>magit</em> also sits there which I use every day. <em>js2-mode</em> and <em>ssh_config_mode</em> completes the list of modules that I actually use. </p>
<p>I have a number of additional things in there which I don&#8217;t actually use at the moment but I plan to try out including <em>nose</em> (for python unit test), <em>jsshell</em> (for JavaScript coding) and another one I see a lot of the wizards using <em>yasnippet</em> but again is awaiting time to play with.</p>
<p>So what ELPA packages have you discovered and what hidden gems to you track directly in your .emacs.d?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bennee.com/~alex/blog/2012/07/10/living-la-vida-elpa/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Edit with Emacs v1.11</title>
		<link>http://www.bennee.com/~alex/blog/2012/05/23/edit-with-emacs-v1-11/</link>
		<comments>http://www.bennee.com/~alex/blog/2012/05/23/edit-with-emacs-v1-11/#comments</comments>
		<pubDate>Wed, 23 May 2012 14:57:42 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[geek]]></category>
		<category><![CDATA[edit with emacs]]></category>
		<category><![CDATA[emacs]]></category>

		<guid isPermaLink="false">http://www.bennee.com/~alex/blog/?p=2603</guid>
		<description><![CDATA[I haven&#8217;t really had much time for hacking at home unless programming my daughters wetware counts. However a few enterprising users have been sending me in some pull requests that fix a few minor bugs that slipped through the extensive pre-release testing I did for v1.10 so I thought it was worth pushing out a ...</p><p><a href="http://www.bennee.com/~alex/blog/2012/05/23/edit-with-emacs-v1-11/" class="more-link">Continue reading &#8216;Edit with Emacs v1.11&#8217; &#187;</a>]]></description>
				<content:encoded><![CDATA[<p>I haven&#8217;t really had much time for hacking at home unless programming my daughters <a href="http://en.wikipedia.org/wiki/Wetware_(brain)">wetware</a> counts. However a few enterprising users have been sending me in some pull requests that fix a few minor bugs that slipped through the extensive pre-release testing I did for v1.10 so I thought it was worth pushing out a bug-fix release:</p>
<p>Extension</p>
<p>* Fixed some breakage to the &#8220;edit focused area&#8221; feature<br />
* Fixed broken link to embedded edit-server</p>
<p>edit-server.el</p>
<p>* A couple of fixes for Emacs 24 compatibility<br />
* Globalize the minor mode so it persists through major-mode changes</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bennee.com/~alex/blog/2012/05/23/edit-with-emacs-v1-11/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Now a Windows user!</title>
		<link>http://www.bennee.com/~alex/blog/2012/05/01/now-a-windows-user/</link>
		<comments>http://www.bennee.com/~alex/blog/2012/05/01/now-a-windows-user/#comments</comments>
		<pubDate>Tue, 01 May 2012 12:50:42 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[geek]]></category>
		<category><![CDATA[emacs]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.bennee.com/~alex/blog/?p=2598</guid>
		<description><![CDATA[I&#8217;ve finally buckled and now have a Windows laptop. It was mainly forced on me by the need to have some sort of access to the intranet during the large number of meetings I&#8217;m now involved in at work. I have to say the experience has been enlightening, especially seeing all the hacky stuff that ...</p><p><a href="http://www.bennee.com/~alex/blog/2012/05/01/now-a-windows-user/" class="more-link">Continue reading &#8216;Now a Windows user!&#8217; &#187;</a>]]></description>
				<content:encoded><![CDATA[<p>I&#8217;ve finally buckled and now have a Windows laptop. It was mainly forced on me by the need to have some sort of access to the intranet during the large number of meetings I&#8217;m now involved in at work. I have to say the experience has been enlightening, especially seeing all the hacky stuff that has to be done to get things working under Windows. For example by default I couldn&#8217;t connect to any https (SSL) pages. Luckily I can just hand the laptop back to IT to fix it so I don&#8217;t have to scratch my head too much.</p>
<p>I&#8217;ve had only sporadic luck getting Emacs up and running on it though. Having been running the tip-of-tree release on my Linux workstation so long going back to Emacs 23 has been a bit of a retrograde step. It doesn&#8217;t help there are multiple suggestions for installation. I&#8217;ve been trying to get <a href="http://ourcomments.org/Emacs/EmacsW32.html">EmacsW32</a> working but I&#8217;ve run into <a href="http://stackoverflow.com/questions/885793/emacs-error-when-calling-server-start">problems on start-up</a>. So far I&#8217;ve been unable to fix the issue as the paths Emacs references don&#8217;t seem to show up in the system file browser. This seems to be the only avenue by which I can fix the permissions it&#8217;s complaining about.</p>
<p>Getting my init file onto the system and in the right place has also proved to be more complex than it should have been (there seems to be two &#8220;HOME&#8221; directories, one under a Roaming title). The Windows shell has finally gained completion but it&#8217;s still a shadow of a decent Unix shell. On the positive side I can already run <a href="http://emacswiki.org/emacs/CategoryEshell">eshell</a> from within Emacs which provides a nice alternative to the command shell. I&#8217;ve yet to get tramp working though but I suspect that&#8217;s just a case of getting ssh keys sorted out.</p>
<p>If there are better solutions to getting a decent Emacs set-up on Windows I&#8217;m all ears.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bennee.com/~alex/blog/2012/05/01/now-a-windows-user/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Switching buffers and Google+</title>
		<link>http://www.bennee.com/~alex/blog/2012/01/24/switching-buffers-and-google/</link>
		<comments>http://www.bennee.com/~alex/blog/2012/01/24/switching-buffers-and-google/#comments</comments>
		<pubDate>Tue, 24 Jan 2012 08:36:44 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[geek]]></category>
		<category><![CDATA[emacs]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[ibuffer]]></category>

		<guid isPermaLink="false">http://www.bennee.com/~alex/blog/?p=2573</guid>
		<description><![CDATA[When you do so much of your work in one text editor the efficiency of switching between buffers becomes more important. For a long time I&#8217;ve had two bindings &#8220;C-x b&#8221; and &#8220;C-x C-b&#8221; which in days of yore I had bound to bs-show and a hacked up list-buffers that opened another window. These are ...</p><p><a href="http://www.bennee.com/~alex/blog/2012/01/24/switching-buffers-and-google/" class="more-link">Continue reading &#8216;Switching buffers and Google+&#8217; &#187;</a>]]></description>
				<content:encoded><![CDATA[<p>When you do so much of your work in one text editor the efficiency of switching between buffers becomes more important. For a long time I&#8217;ve had two bindings &#8220;C-x b&#8221; and &#8220;C-x C-b&#8221; which in days of yore I had bound to <em>bs-show</em> and a hacked up <em>list-buffers</em> that opened another window. These are broadly the &#8220;quick switch between working buffers&#8221; and &#8220;show me all the buffers&#8221;.</p>
<p>For some time I&#8217;ve relegated <em>bs-show</em> to the longer binding and now use Stephen Bach&#8217;s excellent <a href="https://github.com/sjbach/lusty-emacs">Lusty Explorer</a> which works really well when you know the name of the buffer and it&#8217;s fairly unique. However when you&#8217;ve been going a while it can get un-manageable with a large number of open buffers, especially if you&#8217;ve opened second copy of a file from another source tree. This is what I would use the old classic <em>bs-show</em> for.</p>
<p>A few days ago I discovered <a href="http://www.emacswiki.org/emacs/IbufferMode">ibuffer-mode</a> with it&#8217;s <em>ibuffer-bs-show</em> buffer navigator. Looking back through the Planet Emacsen history I can see it has been mentioned before and given it&#8217;s been in Emacs since version 22 I&#8217;m surprised I hadn&#8217;t cottoned on to it earlier.</p>
<p>One thing that might have put me off is the initial buffer list can be quite sparse. By default you only see buffers with files associated which misses out IRC, Edit with Emacs and *scratch* buffers. However hit &#8220;h&#8221; and you&#8217;ll see there are a plethora of quick keys for chaning the view. A quick &#8220;//&#8221; and all filters are removed and you can quickly filter by different criteria. To get the most out of the mode you&#8217;ll probably want to set up some custom filters (&#8220;/r&lt;completing filter name&#8221;&gt;) to make quickly switching to groups of buffers easy. I currently have &#8220;work&#8221;, &#8220;remote&#8221;, &#8220;irc&#8221; and &#8220;logs&#8221; as filters. You can filter by name as well as major-mode.</p>
<p><em>ibuffer-mode</em> does have the concept of Filter Groups although I&#8217;m not sure what they add on top of having normal filters which as far as I can tell can be arbitrarily complex. It also has some quite handy sorting and selection modes e.g. &#8220;sv&#8221; &#8211; sort by last viewing time. Given the amount of space the wiki devotes <a href="http://www.emacswiki.org/emacs/CategoryBufferSwitching">to the topic</a> I wish I&#8217;d re-examined my buffer switching habits sooner. The change is already paying dividends for my productivity.</p>
<p>Before I go I thought I&#8217;d put in a quick mention of Google+. There is growing community of fellow Emacs users starting to post on it. One thing that attracts me to Google+ over Facebook (too data-miney) and Twitter (too short) is the concept of &#8220;Circles&#8221;. It makes sharing geeky Emacs posts with people that might actually care easy while sparing them the flood of baby pictures I share with friends and family. If you&#8217;d like to <a href="https://plus.google.com/110732415405459842150/posts">follow me</a> or my <a href="https://plus.google.com/b/109717789196934058146/">alter-ego</a> please do mention Emacs in your profile or in a message so I can assign you to the correct circles.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bennee.com/~alex/blog/2012/01/24/switching-buffers-and-google/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Getting organised</title>
		<link>http://www.bennee.com/~alex/blog/2012/01/13/getting-organised/</link>
		<comments>http://www.bennee.com/~alex/blog/2012/01/13/getting-organised/#comments</comments>
		<pubDate>Fri, 13 Jan 2012 10:38:21 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[geek]]></category>
		<category><![CDATA[emacs]]></category>
		<category><![CDATA[life]]></category>
		<category><![CDATA[org-mode]]></category>

		<guid isPermaLink="false">http://www.bennee.com/~alex/blog/?p=2567</guid>
		<description><![CDATA[What with becoming a parent and getting promoted I suddenly find myself needing to become a lot more organised. Although I&#8217;ve been using org-mode for a bit I need to get a lot more organised with it. Previously I had two sets of org notes. My personal set where sitting on my server which I ...</p><p><a href="http://www.bennee.com/~alex/blog/2012/01/13/getting-organised/" class="more-link">Continue reading &#8216;Getting organised&#8217; &#187;</a>]]></description>
				<content:encoded><![CDATA[<p>What with becoming a parent and getting promoted I suddenly find myself needing to become a lot more organised. Although I&#8217;ve been using <a href="http://orgmode.org/">org-mode</a> for a bit I need to get a lot more organised with it.</p>
<p>Previously I had two sets of org notes. My personal set where sitting on my server which I could access via the terminal. I generally accessed this at home on the odd occasion when I was doing things like the annual round of insurance quote gathering. The second set was a fairly simple time sheet type affair that I was using at work to keep a vague track of where all my time was spent. The big missing part of this is when I&#8217;m on the move.</p>
<p>I&#8217;ve just recently upgraded my phone to the latest <a href="http://www.bennee.com/~alex/blog/2012/01/06/nexus-of-possibilities/">Galaxy Nexus</a> which is a fine Google enabled device. I make no apologies for using Google&#8217;s calendering and shared document services. They work very well and importantly allow me to share things with my wife who doesn&#8217;t quite share my desire to run everything from a text editor. However for my personal task lists on the move and remembering what&#8217;s coming up at work it doesn&#8217;t quite cut it. Besides I like org-mode and I&#8217;d heard about <a href="http://mobileorg.ncogni.to/">MobileOrg</a> so I endeavoured to set it up.</p>
<p>MobileOrg has been around some time for the iPhone but the mechanisms it uses for integrating with org-mode are fairly well documented. As a result there is a couple of Android implementations for it. Matthew Jone&#8217;s <A href="https://github.com/matburt/mobileorg-android">mobileorg-android</a> was the first version I tried.</p>
<p>The original sync method for MobileOrg was to use a service like Dropbox to sync files. Given the history of Dropbox&#8217;s security I wasn&#8217;t about to move my files into the proprietary cloud. The alternative is to enable <a href="http://en.wikipedia.org/wiki/WebDAV">WebDAV</a> on my web-server and therefor enable two way communication via HTTP. It was a little concerning to see self-signed SSL wasn&#8217;t supported as this does open up a potential attack vector on my machine. I&#8217;ve mitigated it a little by using digest authentication instead of basic-auth but I&#8217;d still prefer to be conducting these read-write operations over something more secure.</p>
<p>Initial results were a little underwhelming. After some messing around with the format of org-links I eventually got a basic outline summary up. Unfortunately I can&#8217;t seem to sync notes created on my phone to the server. This seems to be a Apache problem which I shall have to dig into later.</p>
<p>After perusing the market some more I noticed there is a new project in town. Konstantin&#8217;s <a href="https://github.com/kvj/mobileorg-android">MobileOrgNG</a> was forked some time ago from Matthew&#8217;s code and on installing I found it looked an awful lot better. I&#8217;ve still be unable to post any locally added notes (due to previously mentioned Apache config issues). However it&#8217;s presentation is a lot slicker and it shows a lot of potential for being a good MobileOrg client.</p>
<p>I&#8217;m now stuck with a classic open source fork dilemma. The code bases look to have diverged enough that these two projects are essential going their own way. Looking at the two <a href="https://github.com/matburt/mobileorg-android/graphs/impact">impact</a> <a href="https://github.com/kvj/mobileorg-android/graphs/impact">graphs</a> it looks like they diverged around August 2011 and since then MobileOrgNG looks pretty much like a solo effort albeit with an impressive commit rate of new features.</p>
<p>So the questions for my readers. Which code base should I jump on? Has anyone got experience with the two different code bases and the reason they split? Are there any other Android clients for org-mode I should be looking at?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bennee.com/~alex/blog/2012/01/13/getting-organised/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Edit with Emacs v1.10 released</title>
		<link>http://www.bennee.com/~alex/blog/2011/11/06/edit-with-emacs-v1-10-released/</link>
		<comments>http://www.bennee.com/~alex/blog/2011/11/06/edit-with-emacs-v1-10-released/#comments</comments>
		<pubDate>Sun, 06 Nov 2011 20:25:15 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[geek]]></category>
		<category><![CDATA[chrome]]></category>
		<category><![CDATA[chromium]]></category>
		<category><![CDATA[edit with emacs]]></category>
		<category><![CDATA[emacs]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://www.bennee.com/~alex/blog/?p=2479</guid>
		<description><![CDATA[I received a bunch of feedback and patches from my last announcement but I think all the outstanding bugs are now squashed. The edit-server.el has seen some love to make it more idiomatically correct for elisp. The main change is new code to handle editable DIV tags beloved of such sites as Google+ (which you ...</p><p><a href="http://www.bennee.com/~alex/blog/2011/11/06/edit-with-emacs-v1-10-released/" class="more-link">Continue reading &#8216;Edit with Emacs v1.10 released&#8217; &#187;</a>]]></description>
				<content:encoded><![CDATA[<p>I received a bunch of feedback and patches from my last announcement but I think all the outstanding bugs are now squashed. The edit-server.el has seen some love to make it more idiomatically correct for elisp. The main change is new code to handle editable DIV tags beloved of such sites as Google+ (which you are welcome to <a href="https://plus.google.com/u/0/110732415405459842150/posts">follow me on</a>, maybe I should have an elisp circle?).</p>
<p>A big cosmetic change is a brand new settings page which looks less like a web-form from the early 90&#8242;s and more like part of Chrome. Alas I can take no credit for this but can thank  Frank Kohlhepp&#8217;s <a href="https://github.com/frankkohlhepp/fancy-settings">fancy-settings</a> library. In fact a lot of the credit should go to third party libraries like <a href="http://jquery.com/">jQuery</a> and of course the growing list of contributors who have submitted code for merging.</p>
<p>So the final changelog for 1.10 is:</p>
<p>Extension</p>
<p>* Ignore textareas marked as read only<br />
* Don&#8217;t tag areas that are not visible<br />
* General clean-up to use jQuery to find elements<br />
* Explicit CSS for edit button to override page settings<br />
* Handle editable DIV blocks (e.g. Google+)<br />
* Optimise the finding of text areas for highly dynamic pages<br />
* Revamp the settings page with &#8220;Fancy Settings&#8221;</p>
<p>edit-server.el</p>
<p>* Allow customisation of edit-server-default-major-mode<br />
* Allow edit mode to be set by matched URL<br />
* Tweak detection of MacOS X Emacsen<br />
* Change behaviour of C-x C-s to save to kill-ring<br />
* Persist the buffer-local variables beyond mode changes<br />
* Setup keymap within defvar<br />
* Clean-ups to code to be more idiomatic.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bennee.com/~alex/blog/2011/11/06/edit-with-emacs-v1-10-released/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Call for testing for Edit with Emacs</title>
		<link>http://www.bennee.com/~alex/blog/2011/10/30/call-for-testing-for-edit-with-emacs/</link>
		<comments>http://www.bennee.com/~alex/blog/2011/10/30/call-for-testing-for-edit-with-emacs/#comments</comments>
		<pubDate>Sun, 30 Oct 2011 22:55:36 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[geek]]></category>
		<category><![CDATA[edit with emacs]]></category>
		<category><![CDATA[emacs]]></category>

		<guid isPermaLink="false">http://www.bennee.com/~alex/blog/?p=2474</guid>
		<description><![CDATA[I&#8217;ve been doing a bunch of house-keeping on Edit with Emacs recently in preparation for a new release. I can only apologise to those people who have submitted patches and merge requests for my tardiness. I&#8217;m afraid Real Life tm has been taking precedence. As regular readers of the non-emacs sections of my blog will ...</p><p><a href="http://www.bennee.com/~alex/blog/2011/10/30/call-for-testing-for-edit-with-emacs/" class="more-link">Continue reading &#8216;Call for testing for Edit with Emacs&#8217; &#187;</a>]]></description>
				<content:encoded><![CDATA[<p>I&#8217;ve been doing a bunch of house-keeping on Edit with Emacs recently in preparation for a new release. I can only apologise to those people who have submitted patches and merge requests for my tardiness. I&#8217;m afraid Real Life <sup>tm</sup> has been taking precedence.</p>
<p>As regular readers of the non-emacs sections of my blog will be aware my recreational coding time is about to be severely curtailed. As it&#8217;s been a while since the last release and a number of new features have been added it would be nice to get some wider testing. I therefor am hoping to elicit the help of the Emacs community to <a href="https://github.com/stsquad/emacs_chrome">check out the code</a> and give the tires a bit of a kick before I push out the final release to &#8220;the cloud&#8221;. I&#8217;d rather not regress behaviour for the 1917 users who get Edit with Emacs from the Chrome store just before I disappear into a haze of nappies and parental responsibilities. The current changes over the last release are:</p>
<p>Extension</p>
<p>* Ignore textareas marked as read only<br />
* Don&#8217;t tag areas that are not visible<br />
* General clean-up to use jQuery to find elements<br />
* Explicit CSS for edit button to override page settings<br />
* Handle editable DIV blocks (e.g. Google+)<br />
* Optimise the finding of text areas for highly dynamic pages</p>
<p>edit-server.el</p>
<p>* Allow customisation of edit-server-default-major-mode<br />
* Allow edit mode to be set by matched URL<br />
* Tweak detection of MacOS X Emacsen<br />
* Change behaviour of C-x C-s to save to kill-ring</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bennee.com/~alex/blog/2011/10/30/call-for-testing-for-edit-with-emacs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
