<?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>Deadpan Sincerity &#187; favourite things</title>
	<atom:link href="http://blog.deadpansincerity.com/category/favourite-things/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.deadpansincerity.com</link>
	<description>a weblog by david miller</description>
	<lastBuildDate>Fri, 09 Dec 2011 12:03:04 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Setting up Emacs as a Javascript editing environment for Fun or Profit</title>
		<link>http://blog.deadpansincerity.com/2011/05/setting-up-emacs-as-a-javascript-editing-environment-for-fun-and-profit/</link>
		<comments>http://blog.deadpansincerity.com/2011/05/setting-up-emacs-as-a-javascript-editing-environment-for-fun-and-profit/#comments</comments>
		<pubDate>Sun, 29 May 2011 17:21:16 +0000</pubDate>
		<dc:creator>david miller</dc:creator>
				<category><![CDATA[favourite things]]></category>
		<category><![CDATA[technical]]></category>
		<category><![CDATA[editing]]></category>
		<category><![CDATA[emacs]]></category>
		<category><![CDATA[flymake]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[js]]></category>
		<category><![CDATA[jslint]]></category>
		<category><![CDATA[node]]></category>
		<category><![CDATA[nodejs]]></category>
		<category><![CDATA[yasnippet]]></category>

		<guid isPermaLink="false">http://blog.deadpansincerity.com/?p=454</guid>
		<description><![CDATA[I&#8217;ve been doing a lot of Javascript lately, which has naturally led to a whole lot of trips down the .emacs rabbit-hole So, here are the steps you need to turn OOTB Emacs into the perfect environment for working on Javascript: Auto-completion First up, you&#8217;re going to want decent auto-completion, so install the straightforwardly named [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been doing a lot of Javascript lately, which has naturally led to a whole lot of trips down the .emacs rabbit-hole</p>
<p>So, here are the steps you need to turn OOTB Emacs into the perfect environment for working on Javascript:</p>
<h2>Auto-completion</h2>
<div id="attachment_479" class="wp-caption aligncenter" style="width: 386px"><a href="http://blog.deadpansincerity.com/wp-content/uploads/2011/05/ac.png"><img src="http://blog.deadpansincerity.com/wp-content/uploads/2011/05/ac.png" alt="" title="Emacs Auto completing" width="376" height="224" class="size-full wp-image-479" /></a><p class="wp-caption-text">Fizzing!</p></div><br />
<br \></p>
<p>First up, you&#8217;re going to want decent auto-completion, so install the straightforwardly named <a href="http://cx4a.org/software/auto-complete/">auto-complete-mode</a>. Due to some mode-name aliasing that goes on in the Emacs23 javascript mode, You&#8217;ll need to make sure it can find the relevant Javascript dictionary so</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">cd</span> path<span style="color: #000000; font-weight: bold;">/</span>to<span style="color: #000000; font-weight: bold;">/</span>auto-complete<span style="color: #000000; font-weight: bold;">/</span>dict
<span style="color: #c20cb9; font-weight: bold;">ln</span> <span style="color: #660033;">-s</span> javascript-mode js-mode</pre></div></div>

<p>and then add to your .emacs:</p>

<div class="wp_syntax"><div class="code"><pre class="lisp" style="font-family:monospace;"><span style="color: #66cc66;">&#40;</span>add-to-<span style="color: #b1b100;">list</span> 'load-path <span style="color: #ff0000;">&quot;~/path-to/auto-complete&quot;</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #808080; font-style: italic;">; Load the default configuration</span>
<span style="color: #66cc66;">&#40;</span>require 'auto-complete-config<span style="color: #66cc66;">&#41;</span>
<span style="color: #808080; font-style: italic;">; Make sure we can find the dictionaries</span>
<span style="color: #66cc66;">&#40;</span>add-to-<span style="color: #b1b100;">list</span> 'ac-dictionary-directories <span style="color: #ff0000;">&quot;~/emacs/auto-complete/dict&quot;</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #808080; font-style: italic;">; Use dictionaries by default</span>
<span style="color: #66cc66;">&#40;</span>setq-default ac-sources <span style="color: #66cc66;">&#40;</span>add-to-<span style="color: #b1b100;">list</span> 'ac-sources 'ac-source-dictionary<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#40;</span>global-auto-complete-mode t<span style="color: #66cc66;">&#41;</span>
<span style="color: #808080; font-style: italic;">; Start auto-completion after 2 characters of a word</span>
<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">setq</span> ac-auto-start <span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #808080; font-style: italic;">; case sensitivity is important when finding matches</span>
<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">setq</span> ac-ignore-<span style="color: #b1b100;">case</span> <span style="color: #b1b100;">nil</span><span style="color: #66cc66;">&#41;</span></pre></div></div>

<p>You now have auto-completion for all variable names in all open Javascript buffers, as well as for standard syntax words (setTimeout, parseInt, onFocus etc).</p>
<h2>Snippeting</h2>
<p>Not content with that, we&#8217;ll also want some kind of intelligent snippet package right &#8211; how many times do you really want to type all those semicolons and curly braces? Once is good for me.</p>
<p>The excellent <a href="http://code.google.com/p/yasnippet/">Yasnippet</a> provides this (check out the <a href="http://www.youtube.com/watch%3Fv%3D76Ygeg9miao">youtube demo</a> if you&#8217;ve not come across it before)</p>
<p>Once you&#8217;ve got that downloaded and installed, you&#8217;ll want some Javascript snippets to load in, the ones I use, for standard Javascript and jQuery can be downloaded from <a href="https://github.com/davidmiller/yasnips/raw/master/jsnips.tgz">here</a>, and then the directory provided by that tarfile needs to go in yasnippet/snippets/text-mode</p>
<p>So for our .emacs:</p>

<div class="wp_syntax"><div class="code"><pre class="lisp" style="font-family:monospace;"><span style="color: #66cc66;">&#40;</span>add-to-<span style="color: #b1b100;">list</span> 'load-path <span style="color: #ff0000;">&quot;~/path/to/yasnippet&quot;</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #808080; font-style: italic;">;; Load the library</span>
<span style="color: #66cc66;">&#40;</span>require 'yasnippet<span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#40;</span>yas/initialize<span style="color: #66cc66;">&#41;</span>
<span style="color: #808080; font-style: italic;">;; Load the snippet files themselves</span>
<span style="color: #66cc66;">&#40;</span>yas/load-directory <span style="color: #ff0000;">&quot;~/path/to/yasnippet/snippets/text-mode&quot;</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #808080; font-style: italic;">;; Let's have snippets in the auto-complete dropdown</span>
<span style="color: #66cc66;">&#40;</span>add-to-<span style="color: #b1b100;">list</span> 'ac-sources 'ac-source-yasnippet<span style="color: #66cc66;">&#41;</span></pre></div></div>

<h2>Syntax Checking</h2>
<p><div id="attachment_484" class="wp-caption alignright" style="width: 136px"><a href="http://blog.deadpansincerity.com/wp-content/uploads/2011/05/syntax.png"><img src="http://blog.deadpansincerity.com/wp-content/uploads/2011/05/syntax.png" alt="" title="whoops..." width="126" height="79" class="size-full wp-image-484" /></a><p class="wp-caption-text">Whoops...</p></div>
<p>One of the problems with Javascript programming is that the feedback loop for syntax errors is *slow* &#8211; if you&#8217;re working with the web you have to wait for a whole pageload. So we&#8217;ll want on-the-fly error checking.</p>
<p><a href="http://keturn.net/">Kevin Turner</a> originally wrote <a href="https://github.com/keturn/lintnode#readme">Lintnode</a>, which runs a lighthweight node.js server that passes your file to <a href="http://www.crockford.com/">Douglas Crockford&#8217;s</a> <a href="http://www.jslint.com/">JSLint</a> to integrate with <a href="http://www.emacswiki.org/emacs/FlyMake">Flymake</a> &#8211; the Emacs solution for on-the-fly syntax checking. The fork I&#8217;m currently maintaining at <a href="https://github.com/davidmiller/lintnode">Github</a> contains some enhancements such as automatic initialization and JSLint options passed from Emacs that the original has yet to merge in. Given that JSLint frequently complains about things that you might like it to er, not complain about, the ability to change the options with the lintnode-jslint-excludes variable makes this far more useable.</p>
<p>So:</p>
<p>Install <a href="http://nodejs.org/">node.js</a> and <a href="http://npmjs.org/">npm</a> (The package manager for node)</p>
<p>Get lintnode and the dependencies</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">git</span> clone https:<span style="color: #000000; font-weight: bold;">//</span>github.com<span style="color: #000000; font-weight: bold;">/</span>davidmiller<span style="color: #000000; font-weight: bold;">/</span>lintnode.git
<span style="color: #7a0874; font-weight: bold;">cd</span> lintnode
npm <span style="color: #c20cb9; font-weight: bold;">install</span> express connect-form haml underscore</pre></div></div>

<p>Then we need this in our .emacs:</p>

<div class="wp_syntax"><div class="code"><pre class="lisp" style="font-family:monospace;"><span style="color: #66cc66;">&#40;</span>add-to-<span style="color: #b1b100;">list</span> 'load-path <span style="color: #ff0000;">&quot;~/path/to/lintnode&quot;</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#40;</span>require 'flymake-jslint<span style="color: #66cc66;">&#41;</span>
<span style="color: #808080; font-style: italic;">;; Make sure we can find the lintnode executable</span>
<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">setq</span> lintnode-location <span style="color: #ff0000;">&quot;~/path/to/lintnode&quot;</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #808080; font-style: italic;">;; JSLint can be... opinionated</span>
<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">setq</span> lintnode-jslint-excludes <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">list</span> 'nomen 'undef 'plusplus 'onevar 'white<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #808080; font-style: italic;">;; Start the server when we first open a js file and start checking</span>
<span style="color: #66cc66;">&#40;</span>add-hook 'js-mode-hook
          <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">lambda</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>
            <span style="color: #66cc66;">&#40;</span>lintnode-hook<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span></pre></div></div>

<p>Syntax errors will now be given a red background without having to leave the comfort of Emacs.</p>
<p>Even better, if we install the <a href="http://www.emacswiki.org/emacs/FlymakeCursor">Flymake Cursor</a> package, we get the error message in the minibuffer when the cursor is on a line with an error.</p>
<div id="attachment_485" class="wp-caption aligncenter" style="width: 351px"><a href="http://blog.deadpansincerity.com/wp-content/uploads/2011/05/modeline.png"><img src="http://blog.deadpansincerity.com/wp-content/uploads/2011/05/modeline.png" alt="" title="modeline" width="341" height="153" class="size-full wp-image-485" /></a><p class="wp-caption-text">Easy Mistake!</p></div>
<p>Get the source from http://www.emacswiki.org/emacs/flymake-cursor.el and then add to your .emacs:</p>

<div class="wp_syntax"><div class="code"><pre class="lisp" style="font-family:monospace;"><span style="color: #66cc66;">&#40;</span>add-to-<span style="color: #b1b100;">list</span> 'load-path <span style="color: #ff0000;">&quot;~/emacs/minor-modes&quot;</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #808080; font-style: italic;">;; Nice Flymake minibuffer messages</span>
<span style="color: #66cc66;">&#40;</span>require 'flymake-cursor<span style="color: #66cc66;">&#41;</span></pre></div></div>

<p><b>Edit:</b></p>
<p>As Jesse and Magnar point out in the comments, it&#8217;s probably a better idea to not exclude &#8216;undef from the jslint errors, but rather to declare global variables at the top of your .js file</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"> <span style="color: #006600; font-style: italic;">/*global $ */</span></pre></div></div>

<p>This way you can let jslint know about other libraries you are using, but still get the checks for undefined variables in your own code.</p>
<h2>Code folding</h2>
<div id="attachment_486" class="wp-caption aligncenter" style="width: 484px"><a href="http://blog.deadpansincerity.com/wp-content/uploads/2011/05/hideshow.png"><img src="http://blog.deadpansincerity.com/wp-content/uploads/2011/05/hideshow.png" alt="" title="hideshow" width="474" height="144" class="size-full wp-image-486" /></a><p class="wp-caption-text">Underscore outline</p></div>
<p>Especially if you&#8217;re dealing with large projects, the ability to hide portions of code can be great for maintaining focus. Emacs comes with this built in, but you have to enable it, so returning to our .emacs:</p>

<div class="wp_syntax"><div class="code"><pre class="lisp" style="font-family:monospace;"><span style="color: #66cc66;">&#40;</span>add-hook 'js-mode-hook
          <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">lambda</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>
            <span style="color: #808080; font-style: italic;">;; Scan the file for nested code blocks</span>
            <span style="color: #66cc66;">&#40;</span>imenu-add-menubar-index<span style="color: #66cc66;">&#41;</span>
            <span style="color: #808080; font-style: italic;">;; Activate the folding mode</span>
            <span style="color: #66cc66;">&#40;</span>hs-minor-mode t<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span></pre></div></div>

<p>This means that when your cursor is in the function&#8230;</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> Foo <span style="color: #339933;">=</span> <span style="color: #CC0000;">42</span><span style="color: #339933;">;</span>
addFoo <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>num<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
    <span style="color: #006600; font-style: italic;">// Let's add the meaning of life to</span>
    <span style="color: #006600; font-style: italic;">// our `num` - it'll be fun!</span>
    <span style="color: #003366; font-weight: bold;">var</span> meaningful<span style="color: #339933;">;</span>
    meaningful <span style="color: #339933;">=</span> num <span style="color: #339933;">+</span> Foo<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span></pre></div></div>

<p>&#8230; and you M-x hs-hide-block, the function turns into:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">Var</span> Foo <span style="color: #339933;">=</span> <span style="color: #CC0000;">42</span><span style="color: #339933;">;</span>
addFoo <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>num<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>...<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span></pre></div></div>

<p>To my taste the default keybinding of C-c @ C-h to hide blocks is somewhat perverse, so I&#8217;d recommend this in your .emacs:</p>

<div class="wp_syntax"><div class="code"><pre class="lisp" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">;; Show-hide</span>
<span style="color: #66cc66;">&#40;</span>global-set-key <span style="color: #66cc66;">&#40;</span>kbd <span style="color: #ff0000;">&quot;&quot;</span><span style="color: #66cc66;">&#41;</span> 'hs-show-block<span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#40;</span>global-set-key <span style="color: #66cc66;">&#40;</span>kbd <span style="color: #ff0000;">&quot;&quot;</span><span style="color: #66cc66;">&#41;</span> 'hs-show-all<span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#40;</span>global-set-key <span style="color: #66cc66;">&#40;</span>kbd <span style="color: #ff0000;">&quot;&quot;</span><span style="color: #66cc66;">&#41;</span> 'hs-hide-block<span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#40;</span>global-set-key <span style="color: #66cc66;">&#40;</span>kbd <span style="color: #ff0000;">&quot;&quot;</span><span style="color: #66cc66;">&#41;</span> 'hs-hide-all<span style="color: #66cc66;">&#41;</span></pre></div></div>

<p>YMMV.</p>
<h2>Javascript Console</h2>
<p>Having a REPL for the language you&#8217;re working with close to hand is basically required for me to enjoy working with it. Now that we&#8217;ve installed node.js, though, we can have us a Javascript console inside Emacs with <a href="http://js-comint-el.sourceforge.net/">js-comint</a>&#8230;</p>
<p>Once you&#8217;ve grabbed the file, your .emacs should have:</p>

<div class="wp_syntax"><div class="code"><pre class="lisp" style="font-family:monospace;"><span style="color: #66cc66;">&#40;</span>add-to-<span style="color: #b1b100;">list</span> 'load-path <span style="color: #ff0000;">&quot;~/path/to/js-comint&quot;</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#40;</span>require 'js-comint<span style="color: #66cc66;">&#41;</span>
<span style="color: #808080; font-style: italic;">;; Use node as our repl</span>
<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">setq</span> inferior-js-program-command <span style="color: #ff0000;">&quot;node&quot;</span><span style="color: #66cc66;">&#41;</span>
&nbsp;
<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">setq</span> inferior-js-mode-hook
      <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">lambda</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>
        <span style="color: #808080; font-style: italic;">;; We like nice colors</span>
        <span style="color: #66cc66;">&#40;</span>ansi-color-for-comint-mode-on<span style="color: #66cc66;">&#41;</span>
        <span style="color: #808080; font-style: italic;">;; Deal with some prompt nonsense</span>
        <span style="color: #66cc66;">&#40;</span>add-to-<span style="color: #b1b100;">list</span> 'comint-preoutput-filter-functions
                     <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">lambda</span> <span style="color: #66cc66;">&#40;</span>output<span style="color: #66cc66;">&#41;</span>
                       <span style="color: #66cc66;">&#40;</span>replace-regexp-in-string <span style="color: #ff0000;">&quot;.*1G<span style="color: #000099; font-weight: bold;">\.</span><span style="color: #000099; font-weight: bold;">\.</span><span style="color: #000099; font-weight: bold;">\.</span>.*5G&quot;</span> <span style="color: #ff0000;">&quot;...&quot;</span>
                     <span style="color: #66cc66;">&#40;</span>replace-regexp-in-string <span style="color: #ff0000;">&quot;.*1G.*3G&quot;</span> <span style="color: #ff0000;">&quot;&amp;gt;&quot;</span> output<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></div></div>

<p>You can then run a Javascript REPL with M-x run-js and also send portions of files by selecting them and then running M-x send-region. Neat.</p>
<h2>By way of conclusion</h2>
<p>There are a few other tweaks that make my Javascripting just that little bit nicer, but they&#8217;re more personal Emacs setup than anything specific to Javascript. So, there you have it, the perfect Javascript editing environment.</p>
<p>Love regards etc</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.deadpansincerity.com/2011/05/setting-up-emacs-as-a-javascript-editing-environment-for-fun-and-profit/feed/</wfw:commentRss>
		<slash:comments>25</slash:comments>
		</item>
		<item>
		<title>Announcing Pony Mode &#8211; a Django editing mode for Emacs</title>
		<link>http://blog.deadpansincerity.com/2011/05/announcing-pony-mode-a-django-editing-mode-for-emacs/</link>
		<comments>http://blog.deadpansincerity.com/2011/05/announcing-pony-mode-a-django-editing-mode-for-emacs/#comments</comments>
		<pubDate>Sat, 28 May 2011 11:33:10 +0000</pubDate>
		<dc:creator>david miller</dc:creator>
				<category><![CDATA[favourite things]]></category>
		<category><![CDATA[technical]]></category>
		<category><![CDATA[django]]></category>
		<category><![CDATA[emacs]]></category>
		<category><![CDATA[lisp]]></category>
		<category><![CDATA[projects]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://blog.deadpansincerity.com/?p=448</guid>
		<description><![CDATA[I&#8217;m pleased to announce the first beta &#8216;release&#8217; of Pony Mode, a minor mode for working on Django projects in Emacs. This mode provides integration with the django management commands within emacs, as well as test integration, a minor-mode with syntax highlighting for editing templates, will determine whether you are using Fabric or Buildout, as [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m pleased to announce the first beta &#8216;release&#8217; of <a href="https://github.com/davidmiller/pony-mode">Pony Mode</a>, a minor mode for working on <a href="www.djangoproject.com">Django</a> projects in <a href="http://www.gnu.org/software/emacs/">Emacs</a>.</p>
<p>This mode provides integration with the django management commands within emacs, as well as test integration, a minor-mode with syntax highlighting for editing templates, will determine whether you are using <a href="http://fabfile.org">Fabric</a> or <a href="http://www.buildout.org/">Buildout</a>, as well as much more!</p>
<p>This mode is under active development, so please file any bugs at the <a href="https://github.com/davidmiller/pony-mode/issues">Github page</a>, and feel free to provide any feedback/feature requests etc.</p>
<p>Current features include:</p>
<ul>
<li>Run dev server in an emacs buffer [C-c C-p r]</li>
<li>* Checks to see if runserver_plus is available</li>
<li>* If not uses in-built runserver</li>
<li>Jump to current project in browser (start server if required) [C-c C-p b]</li>
<li>Run test case at point in buffer [C-c C-p t]</li>
<li>Run tests for current app in buffer [C-c C-p t]</li>
<li>Run Syncdb on current project</li>
<li>Management commands for current project in interactive buffer</li>
<li>South integration &#8211; run south convert, schemamigration, migrate</li>
<li>Run django shell in buffer [C-c C-p s]</li>
<li>* Checks for shell_plus</li>
<li>* If not defaults to shell</li>
<li>Fabric integration [C-c C-p f]</li>
<li>Startapp and dumpdata on current project within emacs</li>
<li>Database integration with Emacs sql-mode interactive buffer [C-c C-c d</li>
<li>Django Template minor mode with syntax highlighting for django</li>
<p> template tags</p>
<li>Snippet collection for django</li>
<li>generate tags table for project</li>
<li>run manage commands in interactive buffer</li>
<li>Buildout integration</li>
<li>Generate TAGS table for project to enable quick navigation</li>
<li>Jump to template at point or from editing view [C-c C-p g t]</li>
</ul>
<p>Grab it while it&#8217;s hot!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.deadpansincerity.com/2011/05/announcing-pony-mode-a-django-editing-mode-for-emacs/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Security and freedoms</title>
		<link>http://blog.deadpansincerity.com/2010/10/security-and-freedoms/</link>
		<comments>http://blog.deadpansincerity.com/2010/10/security-and-freedoms/#comments</comments>
		<pubDate>Sun, 31 Oct 2010 12:05:12 +0000</pubDate>
		<dc:creator>david miller</dc:creator>
				<category><![CDATA[favourite things]]></category>
		<category><![CDATA[wishful thinking]]></category>
		<category><![CDATA[freedom]]></category>
		<category><![CDATA[Popper]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://blog.deadpansincerity.com/2010/10/security-and-freedoms/</guid>
		<description><![CDATA[We must plan for freedom, and not only for security, if for no other reason than that only freedom can make security secure. Karl Popper &#8211; The Open Society and its Enemies]]></description>
			<content:encoded><![CDATA[<blockquote><p>We must plan for freedom, and not only for security, if for no other reason than that only freedom can make security secure.</p></blockquote>
<p>Karl Popper &#8211; The Open Society and its Enemies</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.deadpansincerity.com/2010/10/security-and-freedoms/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sheep Stealing</title>
		<link>http://blog.deadpansincerity.com/2010/10/sheep-stealing/</link>
		<comments>http://blog.deadpansincerity.com/2010/10/sheep-stealing/#comments</comments>
		<pubDate>Mon, 18 Oct 2010 18:22:26 +0000</pubDate>
		<dc:creator>david miller</dc:creator>
				<category><![CDATA[favourite things]]></category>
		<category><![CDATA[books]]></category>
		<category><![CDATA[journalism]]></category>
		<category><![CDATA[quotes]]></category>
		<category><![CDATA[sheep]]></category>
		<category><![CDATA[stealing]]></category>
		<category><![CDATA[typography]]></category>

		<guid isPermaLink="false">http://blog.deadpansincerity.com/?p=396</guid>
		<description><![CDATA[Every society needs a diversion that doesn&#8217;t do any physical harm, but keeps those people who prefer to live in fantasy worlds occupied. Certain newspapers cater to this segment of the populace, and the typographic styles reflect their journalistic attitude toward the truth. Stop stealing sheep and find out how type works]]></description>
			<content:encoded><![CDATA[<blockquote><p>
Every society needs a diversion that doesn&#8217;t do any physical harm, but keeps those people who prefer to live in fantasy worlds occupied. Certain newspapers cater to this segment of the populace, and the typographic styles reflect their journalistic attitude toward the truth.
</p></blockquote>
<p><a href="http://www.amazon.co.uk/Stop-Stealing-Sheep-Find-Works/dp/0201703394">Stop stealing sheep and find out how type works</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.deadpansincerity.com/2010/10/sheep-stealing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Baudelaireian</title>
		<link>http://blog.deadpansincerity.com/2010/04/354/</link>
		<comments>http://blog.deadpansincerity.com/2010/04/354/#comments</comments>
		<pubDate>Fri, 09 Apr 2010 06:53:00 +0000</pubDate>
		<dc:creator>david miller</dc:creator>
				<category><![CDATA[favourite things]]></category>
		<category><![CDATA[Baudelaire]]></category>
		<category><![CDATA[History]]></category>
		<category><![CDATA[On this Day]]></category>
		<category><![CDATA[poetry]]></category>

		<guid isPermaLink="false">http://blog.deadpansincerity.com/?p=354</guid>
		<description><![CDATA[LA MUSE VÉNALE Ma pauvre muse, hélas ! qu’as-tu donc ce matin ? Tes yeux creux sont peuplés de visions nocturnes, Et je vois tour à tour réfléchis sur ton teint La folie et l’horreur, froides et taciturnes. Le succube verdâtre et le rose lutin T’ont-ils versé la peur et l’amour de leurs urnes ? [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://blog.deadpansincerity.com/wp-content/uploads/2010/04/baudelaire.jpg" alt="baudelaire" title="baudelaire" width="297" height="409" class="alignright size-full wp-image-357" style="float:none;"/><br />
</p>
<blockquote><p>
LA MUSE VÉNALE</p>
<p>Ma pauvre muse, hélas ! qu’as-tu donc ce matin ?<br />
Tes yeux creux sont peuplés de visions nocturnes,<br />
Et je vois tour à tour réfléchis sur ton teint<br />
La folie et l’horreur, froides et taciturnes.</p>
<p>Le succube verdâtre et le rose lutin<br />
T’ont-ils versé la peur et l’amour de leurs urnes ?<br />
Le cauchemar, d’un poing despotique et mutin,<br />
T’a-t-il noyée au fond d’un fabuleux Minturnes ? [  23 ]</p>
<p>Je voudrais qu’exhalant l’odeur de la santé<br />
Ton sein de pensers forts fût toujours fréquenté,<br />
Et que ton sang chrétien coulât à flots rhythmiques,</p>
<p>Comme les sons nombreux des syllabes antiques,<br />
Où règnent tour à tour le père des chansons,<br />
Phœbus, et le grand Pan, le seigneur des moissons.
</p></blockquote>
<p>Charles Baudelaire was once but is no longer. </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.deadpansincerity.com/2010/04/354/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tom Waits &amp; the art of conversation</title>
		<link>http://blog.deadpansincerity.com/2009/07/tom-waits-the-art-of-conversation/</link>
		<comments>http://blog.deadpansincerity.com/2009/07/tom-waits-the-art-of-conversation/#comments</comments>
		<pubDate>Sun, 05 Jul 2009 10:44:59 +0000</pubDate>
		<dc:creator>david miller</dc:creator>
				<category><![CDATA[favourite things]]></category>
		<category><![CDATA[press conference]]></category>
		<category><![CDATA[quotes]]></category>
		<category><![CDATA[tom waits]]></category>
		<category><![CDATA[Video]]></category>

		<guid isPermaLink="false">http://blog.deadpansincerity.com/?p=214</guid>
		<description><![CDATA[The large print giveth and the small print taketh away. - Tom Waits Which is a wonderful thought enough for this time of day, moreover &#038; however take good care of the following video, in which Mr Tom Waits explores issues close to all of us, explaining the meaning of the word/acronym/god PEHDTSCKJMBA for those [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>The large print giveth and the small print taketh away.</p></blockquote>
<p>- Tom Waits</p>
<p>Which is a wonderful thought enough for this time of day, moreover &#038; however take good care of the following video, in which Mr Tom Waits explores issues close to all of us, explaining the meaning of the word/acronym/god PEHDTSCKJMBA for those of you who are yet to become acquainted, in one of the finest press conferences you are likely to see in the next ten minutes:</p>
<p><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/EOrG1r3S6ZA&#038;hl=en&#038;fs=1&#038;rel=0"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/EOrG1r3S6ZA&#038;hl=en&#038;fs=1&#038;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></p>
<p>Quote found via <a href="http://quotesondesign.com/">QuotesOnDesign.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.deadpansincerity.com/2009/07/tom-waits-the-art-of-conversation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>favourite things: the elephant&#8217;s five pound brain</title>
		<link>http://blog.deadpansincerity.com/2008/11/favourite-things-the-elephants-five-pound-brain/</link>
		<comments>http://blog.deadpansincerity.com/2008/11/favourite-things-the-elephants-five-pound-brain/#comments</comments>
		<pubDate>Mon, 10 Nov 2008 12:03:36 +0000</pubDate>
		<dc:creator>david miller</dc:creator>
				<category><![CDATA[favourite things]]></category>
		<category><![CDATA[elephant]]></category>
		<category><![CDATA[milton acorn]]></category>
		<category><![CDATA[natural history]]></category>
		<category><![CDATA[poetry]]></category>
		<category><![CDATA[satan]]></category>

		<guid isPermaLink="false">http://blog.deadpansincerity.com/?p=95</guid>
		<description><![CDATA[I was initially made aware of Milton Acorndue to the twin factors of his excellent name, and also the wikipedia claim that he &#8220;lost his will to live after the death of a younger sister.&#8221; [Milton Acorn Wikipedia] [Photo by @SheldonGrimson] But more than just that, he was also an excellent poet whose work has [...]]]></description>
			<content:encoded><![CDATA[<p>I was initially made aware of <a href="http://www.library.utoronto.ca/canpoetry/acorn/index.htm">Milton Acorn</a>due to the twin factors of his excellent name, and also the wikipedia claim that he</p>
<blockquote><p>&#8220;lost his will to live after the death of a younger sister.&#8221;</p></blockquote>
<p>[<a href="http://en.wikipedia.org/wiki/Milton_Acorn">Milton Acorn Wikipedia</a>]</p>
<div class="wp-caption alignnone" style="width: 310px"><a href="http://web.ncf.ca/ek867/grimson.acorn.detail.jpg"><img title="Milton Acorn" src="http://web.ncf.ca/ek867/grimson.acorn.detail.jpg" alt="http://www.primegallery.ca/dynamic/artist_artwork.asp?ArtistID=63&amp;Count=0&amp;categoryID=Photography" width="300" height="338" /></a><p class="wp-caption-text">Milton Acorn</p></div>
<p>[Photo by <a href="http://www.primegallery.ca/dynamic/artist_artwork.asp?ArtistID=63&amp;Count=0&amp;categoryID=Photography">@SheldonGrimson</a>]</p>
<p>But more than just that, he was also an excellent poet whose work has a fragile brutality, dragged along by an absurdist sense of humour&#8230; Enjoyable:</p>
<blockquote><p><small>In the elephant&#8217;s five-pound brain<br />
Dwarves have an incredible vicious sincerity,<br />
A persistent will to undo things. The beast cannot grasp<br />
The convolutions of destruction, always his mind<br />
Turns to other things &#8211; the vastness of green<br />
And of frangibility of forest. If only once he could descend<br />
To trivialities he&#8217;d sweep the whole earth clean of his tormentors<br />
In one sneeze so mighty as to be observed from Mars.</small></p>
<p><small>In the elephant&#8217;s five-pound brain<br />
Sun and moon are the pieces in a delightfully complex ballgame<br />
That have to do with him&#8230;never does he doubt<br />
The sky has opened and rain and thunder descend<br />
For his special ministration. He dreams of mastodons<br />
And mammoths and still his pride beats<br />
Like the heart of the world, he knows he could reach<br />
To the end of space if he stood still and imagined the effort.</small></p></blockquote>
<p>[excerpt from <a href="http://www.library.utoronto.ca/canpoetry/acorn/poem6.htm">The Natural History of Elephants</a>]</p>
<p>Frankly, that should be enough for anyone to go and <a href="http://www.canadianpoetry.ca/cpjrn/vol40/for_my_own_damn_satisfaction.htm">investigate</a> <a href="http://www.mtls.ca/2008/08/fiction-fantasy-and-tabix/">further</a>.</p>
<p>P.S. I was also recently made aware that Satan once <a href="http://edition.cnn.com/2008/LIVING/wayoflife/11/07/mf.presidential.pets/index.html">lived in the White House</a>, incarnated as the dog of the Second Lady Abigail Adams</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.deadpansincerity.com/2008/11/favourite-things-the-elephants-five-pound-brain/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>favourite things: a working library</title>
		<link>http://blog.deadpansincerity.com/2008/09/favourite-things-a-working-library/</link>
		<comments>http://blog.deadpansincerity.com/2008/09/favourite-things-a-working-library/#comments</comments>
		<pubDate>Tue, 23 Sep 2008 21:36:50 +0000</pubDate>
		<dc:creator>david miller</dc:creator>
				<category><![CDATA[favourite things]]></category>

		<guid isPermaLink="false">http://blog.deadpansincerity.com/?p=56</guid>
		<description><![CDATA[favourite things: an occasional category of post with a sensible name In terms of blogs, there are very few that I automatically read as soon as a new post turns up in my google reader. a working library is one of these. Mandy Brown shares the most interesting passages from her current reading, along with [...]]]></description>
			<content:encoded><![CDATA[<p>favourite things: an occasional category of post with a sensible name</p>
<p>In terms of blogs, there are very few that I automatically read as soon as a new post turns up in my google reader. <a href="http://aworkinglibrary.com/library/">a working library </a>is one of these.</p>
<p>Mandy Brown shares the most interesting passages from her current reading, along with her thoughts and observations on life, philosophy, criticism &amp; whatever else. It is by far the most intellectualised thing that turns up in my favourites folder, but always welcome to shift me into a different mental gear.</p>
<p>Recent favourites have been <a href="http://aworkinglibrary.com/library/archives/regarding_the_new_typography/">Robin Kinross</a> on typography, <a href="http://aworkinglibrary.com/library/archives/in_defense_of_truth/">Adorno</a> on Marxism and <a href="http://aworkinglibrary.com/library/archives/on_the_difference_between_conservatives_and_liberals/">Terry Eagleton</a> on Ideology.</p>
<p>The stimulation of receiving someones thoughts and observations along with key passages as they read fascinating books is brilliant. Short, dense posts with a real weight behind them this is a series of deft punches rather than lectures, and all the better for it.</p>
<p>Thank you</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.deadpansincerity.com/2008/09/favourite-things-a-working-library/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

