<?xml version="1.0" encoding="UTF-8"?><!-- generator="WordPress/2.9.2" -->
<rss version="0.92">
<channel>
	<title>items.sjbach.com</title>
	<link>http://items.sjbach.com</link>
	<description></description>
	<lastBuildDate>Mon, 26 Apr 2010 22:05:57 +0000</lastBuildDate>
	<docs>http://backend.userland.com/rss092</docs>
	<language>en</language>
	
	<item>
		<title>Critiquing Clojure</title>
		<description><![CDATA[
Table of contents
1. No dynamic binding of dynamic variables
2. Functions must be declared before first call form
3. No keyword arguments in lambda-lists
4. Commas are whitespace
5. Syntax for type specification is ugly
6. All the good names are taken
7. Conclusion

Last week Brian Carper published Five Things that Mildly Annoy Me in Clojure.  Here&#8217;s another short list. [...]]]></description>
		<link>http://items.sjbach.com/567/critiquing-clojure</link>
			</item>
	<item>
		<title>Extensibility in Vim and Emacs</title>
		<description><![CDATA[
Table of contents
1. Development resources
2. Provisions for extension
3. Portability requirements
4. Conclusion

Emacs and Vim both provide facility for extension.  But as they represent divergent philosophies &#8212; Vim following the &#8220;small is beautiful&#8221; and &#8220;do one thing well&#8221; precepts of Unix, Emacs coming from a belief that the editor is an operational hub &#8212; they have [...]]]></description>
		<link>http://items.sjbach.com/560/extensibility-in-vim-and-emacs</link>
			</item>
	<item>
		<title>Surveying Emacs Lisp</title>
		<description><![CDATA[
Table of contents
1. Overview
2. Portability considerations
3. A short case study
4. The Common Lisp compatibility package
5. Conclusion

Emacs is well known for being highly configurable.  In large part, this is due to its close tie to some form of Lisp over the majority of its long and varied history.  Within all extant implementations of the [...]]]></description>
		<link>http://items.sjbach.com/544/surveying-emacs-lisp</link>
			</item>
	<item>
		<title>Clojure&#8217;s new regex syntax</title>
		<description><![CDATA[
Table of contents
1. What has changed
2. Clojure vs foo
3. The real reason this is neat

Last week, Rich Hickey announced a few notable changes to Clojure, including ahead-of-time compilation and a cleaner syntax for regular expressions.  Both are improvements, but the syntax is especially interesting for a reason unrelated to its function.  First, a [...]]]></description>
		<link>http://items.sjbach.com/406/clojures-new-regex-syntax</link>
			</item>
	<item>
		<title>Configuring Vim right</title>
		<description><![CDATA[
Table of contents
1. Essential .vimrc configuration items
2. Recommended .vimrc configuration items

I have spent a lot of time looking at a Vim window, and correspondingly, a lot of time testing different configurations.  These are the best non-standard options I&#8217;ve found or stolen from others over the years; listed below in order of descending usefulness &#8212; [...]]]></description>
		<link>http://items.sjbach.com/319/configuring-vim-right</link>
			</item>
	<item>
		<title>Extending the ITERATE macro</title>
		<description><![CDATA[
Table of contents
1. Generators
2. Writing a new gathering clause
3. Writing a new driver
Appendix: Extending the LOOP macro

In a previous article I gave an overview of ITERATE but punted on showing its best feature, the ability to extend it to support new iteration constructs.  These can be separated into two groups:

Gatherers, like collecting or summing, [...]]]></description>
		<link>http://items.sjbach.com/280/extending-the-iterate-macro</link>
			</item>
	<item>
		<title>Comparing LOOP and ITERATE</title>
		<description><![CDATA[
Table of contents
1. Views on LOOP
2. The purpose of ITERATE
3. Comparing looping clauses
4. Documentation
5. Obtaining ITERATE
6. Conclusion

Looping is the most common non-trivial construct in imperative programming, so having a domain language for generating iteration code is unquestionably a good thing.  I&#8217;ll explore two options within Common Lisp:

LOOP is a standard macro with an expressive [...]]]></description>
		<link>http://items.sjbach.com/211/comparing-loop-and-iterate</link>
			</item>
	<item>
		<title>Writing a Vim plugin</title>
		<description><![CDATA[
Table of contents
1. Vim Script
2. Alternative plugin languages
3. Choosing a language

Vim is fairly extensible.  Unlike Emacs or Eclipse, it&#8217;s just an editor, not a platform.  It is, however, very featureful, and includes its own slightly eccentric domain language as well as bindings into a few others.  Note: this isn&#8217;t a HOWTO, it&#8217;s [...]]]></description>
		<link>http://items.sjbach.com/97/writing-a-vim-plugin</link>
			</item>
	<item>
		<title>Some notes about Clojure</title>
		<description><![CDATA[
Table of contents
1. Implicit destructuring in binding forms
2. Unnamed arguments for short lambdas
3. Data structures as functions
4. Implicit gensyms
5. &#8220;[...]&#8221; syntax
6. SLIME integration

1. Only single-value function returns
2. Recursion-looking iteration construct


Last week, Rich Hickey came to speak at the monthly Boston Lisp Meeting about his new-ish programming language, Clojure.  His presentation went double length, but [...]]]></description>
		<link>http://items.sjbach.com/16/some-notes-about-clojure</link>
			</item>
</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk
Page Caching using disk (enhanced) (user agent is rejected)
Database Caching 2/9 queries in 0.103 seconds using disk

Served from: items.sjbach.com @ 2010-07-29 13:52:54 -->