Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/raganwald-deprecated/homoiconic

An experiment in publishing code and words about code on a small scale.
https://github.com/raganwald-deprecated/homoiconic

Last synced: about 2 months ago
JSON representation

An experiment in publishing code and words about code on a small scale.

Awesome Lists containing this project

README

        

What was Homoiconic?
---

[Homoiconic](http://github.com/raganwald/homoiconic/) was an experiment in publishing code and words about code on a small scale. When I wrote, I added files to the `homoiconic` git repository, organized by date. Code was included in the posts and also in the folder with the posts that discussed them, so it was easy to download what you liked. You could (and still can) download the entire site as an archive!

Homoiconic was really simple: *Snippets of code and words about snippets of code*. I avoided words by themselves. And the words existed to amplify and explain the code, rather than the code existing to illustrate the words. This was the opposite of most of the posts we could find on traditional (circa 2004) blogs.

**what can I read right now?**

Asking me what to read is like asking the chef what's good on the menu. It's all excellent, of course! That being said, I had a few personal favourites:

* [Optimism](http://github.com/raganwald/homoiconic/blob/master/2009-05-01/optimism.md#readme)
* [Elegance and the Surreals](http://github.com/raganwald/homoiconic/blob/master/2009-03-07/surreal.md#readme)

Many people link to my series on combinators: [Kestrels](http://github.com/raganwald/homoiconic/tree/master/2008-10-29/kestrel.markdown#readme), [The Thrush](http://github.com/raganwald/homoiconic/tree/master/2008-10-30/thrush.markdown#readme), [Songs of the Cardinal](http://github.com/raganwald/homoiconic/tree/master/2008-10-31/songs_of_the_cardinal.markdown#readme), [Quirky Birds and Meta-Syntactic Programming](http://github.com/raganwald/homoiconic/tree/master/2008-11-04/quirky_birds_and_meta_syntactic_programming.markdown#readme), [Aspect-Oriented Programming in Ruby using Combinator Birds](http://github.com/raganwald/homoiconic/tree/master/2008-11-07/from_birds_that_compose_to_method_advice.markdown#readme), [The Enchaining and Obdurate Kestrels](http://github.com/raganwald/homoiconic/tree/master/2008-11-12/the_obdurate_kestrel.md#readme), [Finding Joy in Combinators](http://github.com/raganwald/homoiconic/tree/master/2008-11-16/joy.md#readme), [Refactoring Methods with Recursive Combinators](http://github.com/raganwald/homoiconic/tree/master/2008-11-23/recursive_combinators.md#readme), [Practical Recursive Combinators](http://github.com/raganwald/homoiconic/tree/master/2008-11-26/practical_recursive_combinators.md#readme), [The Hopelessly Egocentric Blog Post](http://github.com/raganwald/homoiconic/tree/master/2009-02-02/hopeless_egocentricity.md#readme), and [Wrapping Combinators](http://github.com/raganwald/homoiconic/tree/master/2009-06-29/wrapping_combinators.md#readme).

There are also a few things about [abstractions](http://raganwald.github.com/2007/07/abbreviation-accidental-complexity-and.html "Abbreviation, Accidental Complexity, and Abstraction"), [functional programming](http://raganwald.github.com/2007/03/why-why-functional-programming-matters.html "Why Why Functional Programming Matters Matters"), [meta-programming](http://raganwald.github.com/2008/07/my-analyst-warned-me-but.html "My analyst warned me, but metaprogramming was so beautiful I got another analyst"), [metaprogramming again](http://raganwald.github.com/2008/03/spaghetti-western-coding.html "Spaghetti-Western Coding"), and [brevity](http://raganwald.github.com/2007/12/golf-is-good-program-spoiled.html "Golf is a good program spoiled").

Of course, you can simply read the archives. They're organized by date, so the most recent writing is at the bottom, not the top.

**is there anything else to read?**

My current blog is called [raganwald](http://raganwald.com).

**is this code clever?**

Whoa, Nellie! Easy with the word "clever." Being interested in some of the things that interest smart people is not the same thing as being smart. Especially in my case. So before rushing off to use each and every technique presented here, be mindful of the fact that programming requires *judgment*, it isn't a perfectly logical process of solving problems using whatever tools, materials, and techniques happen to be within reach. You don't want to provoke responses like this:

> Why do I have a feeling that the professional code you write would be too "clever" for most developers to understand? --[devinus](http://www.reddit.com/user/devinus)

My goal is to be able to say that thinking about the code and ideas presented here is a useful way to learn and grow, whether you use any of this code or not.

**credit where credit is due**

I originally set up a blog at homoiconic.com, but I spotted [David Baldwin's blog](http://github.com/bilson/blog/tree/master), and I knew right away that a blog that is about the how of code ought to be hosted on Github.

---

(Spot a bug or a spelling mistake? This is a Github repo, fork it and send me a pull request!)

I am [Reg Braithwaite](http://braythwayt.com/). You can reach me by email. My first name is `reg`, and that works fine for sending email to `braythwayt.com`. I look forward to hearing from you.