From 582168bb0e39c9630db978b60dce9a69a3c2552a Mon Sep 17 00:00:00 2001 From: Reg Braithwaite Date: Mon, 23 Jul 2012 20:41:33 -0400 Subject: [PATCH] update deprecated projects --- ...call-by-name_semantics_in_rewrite.markdown | 6 +-- 2008-12-18/called_by_name.md | 2 +- 2009-01-02/flight_of_the_phoenix.md | 6 +-- 2009-01-06/rewrite_rails.md | 2 +- 2009-01-12/mundane.md | 2 +- 2009-04-08/sick.md | 2 +- 2009-04-28/extension_methods.md | 2 +- 2009-05-25/rubyjobfair.md | 2 +- 2009-08-29/returning.md | 6 +-- 2009-09-22/anaphora.md | 6 +-- 2010/02/difficult_distraction.md | 14 +++---- 2010/04/blocks.md | 2 +- 2010/04/igesture.md | 8 ++-- 2010/04/modal_interface.md | 10 ++--- 2010/08/wood_and_stones.md | 2 +- 2010/09/concept.md | 8 ++-- 2011/value.markdown | 2 +- 2012/05/anaphora.md | 6 +-- dumping_ground/vapours.md | 2 +- homoiconic.tmproj | 37 +++++++++++++++++-- 20 files changed, 79 insertions(+), 48 deletions(-) diff --git a/2008-11-03/with_unhygienic_and_call-by-name_semantics_in_rewrite.markdown b/2008-11-03/with_unhygienic_and_call-by-name_semantics_in_rewrite.markdown index c7d7b444..d727a67f 100644 --- a/2008-11-03/with_unhygienic_and_call-by-name_semantics_in_rewrite.markdown +++ b/2008-11-03/with_unhygienic_and_call-by-name_semantics_in_rewrite.markdown @@ -1,7 +1,7 @@ With, Unhygienic, and Call-By-Name Semantics in Rewrite --- -[Rewrite](http://github.com/raganwald/rewrite/tree/master) is a gem that adds code-rewriting to the Ruby programming language. Recently, Caleb Clausen [announced](http://www.ruby-forum.com/topic/169148 "RubyMacros 0.1.0 Released - Ruby Forum") [RubyMacros](http://rubyforge.org/projects/rubymacros "RubyForge: rubymacros: Project Info"). We've had some discussion about the differences between the two projects on the Ruby Forum list and in emails: Caleb has graciously given me permission to repeat some of our discussion here. +[Rewrite](http://github.com/raganwald-deprecated/rewrite/tree/master) is a gem that adds code-rewriting to the Ruby programming language. Recently, Caleb Clausen [announced](http://www.ruby-forum.com/topic/169148 "RubyMacros 0.1.0 Released - Ruby Forum") [RubyMacros](http://rubyforge.org/projects/rubymacros "RubyForge: rubymacros: Project Info"). We've had some discussion about the differences between the two projects on the Ruby Forum list and in emails: Caleb has graciously given me permission to repeat some of our discussion here. Note well that I will say things like "In rewrite, you can do X" and also things like "In rewrite, Y is the case." These statements do not imply that you cannot do X in RubyMacros, nor do they imply that Y is not the case in RubyMacros. They are simply statements about rewrite. @@ -43,7 +43,7 @@ Or you can define them inline, just as Ruby lambdas and blocks are equivalent to ... end -Or you can use some of the built-in rewriters from rewrite's [prelude](http://github.com/raganwald/rewrite/tree/master/lib/rewrite/prelude): +Or you can use some of the built-in rewriters from rewrite's [prelude](http://github.com/raganwald-deprecated/rewrite/tree/master/lib/rewrite/prelude): include Rewrite::Prelude @@ -71,7 +71,7 @@ following code, performing substitutions here and here and here." Rewrite suppor Rewrite is very low-level. It uses these ridiculous s-expressions generated by a gem called ParseTree. That is not ParseTree's fault, ParseTree is giving us the very implementation-specific AST that MRI 1.8.x produces. Other Ruby implementations will have different trees. RubyMacros uses its own AST format. -Here's an example of rewrite working directly with s-expressions. It's an excerpt from [try.rb](http://github.com/raganwald/rewrite/tree/master/lib/rewrite/prelude/try.rb): +Here's an example of rewrite working directly with s-expressions. It's an excerpt from [try.rb](http://github.com/raganwald-deprecated/rewrite/tree/master/lib/rewrite/prelude/try.rb): def process_call(exp) # [:call, [:dvar, :foo], :try, [:array, [:lit, :bar]]] diff --git a/2008-12-18/called_by_name.md b/2008-12-18/called_by_name.md index 1b2b43cd..6b61e737 100644 --- a/2008-12-18/called_by_name.md +++ b/2008-12-18/called_by_name.md @@ -316,7 +316,7 @@ Of course, `called_by_name` does so with lots of anonymous functions, and that i Update (December 18, 2008) --- -I recently discovered that [rewrite](http://github.com/raganwald/rewrite/tree "raganwald's rewrite at master — GitHub") does not work with the latest versions of [ParseTree](http://rubyforge.org/projects/parsetree/ "RubyForge: ParseTree - ruby parse tree tools: Project Info"), Ruby2Ruby and their dependencies. The underlying representation of ruby code seems to have changed. For example, there are no longer any `:dvar` nodes, just `:lvar` nodes. What fun! +I recently discovered that [rewrite](http://github.com/raganwald-deprecated/rewrite/tree "raganwald's rewrite at master — GitHub") does not work with the latest versions of [ParseTree](http://rubyforge.org/projects/parsetree/ "RubyForge: ParseTree - ruby parse tree tools: Project Info"), Ruby2Ruby and their dependencies. The underlying representation of ruby code seems to have changed. For example, there are no longer any `:dvar` nodes, just `:lvar` nodes. What fun! I am fixing this, and my first priority is to make `called_by_name` work again. diff --git a/2009-01-02/flight_of_the_phoenix.md b/2009-01-02/flight_of_the_phoenix.md index 57cdecef..d1a1a5b3 100644 --- a/2009-01-02/flight_of_the_phoenix.md +++ b/2009-01-02/flight_of_the_phoenix.md @@ -1,7 +1,7 @@ The Flight of the Phoenix === -I am working on a new nano-project, the [RewriteRails](https://github.com/raganwald/rewrite_rails/tree) plug-in. RewriteRails applies some of my old [Rewrite Gem](https://github.com/raganwald/rewrite/tree)'s code rewriting to Ruby projects. +I am working on a new nano-project, the [RewriteRails](https://github.com/raganwald-deprecated/rewrite_rails/tree) plug-in. RewriteRails applies some of my old [Rewrite Gem](https://github.com/raganwald-deprecated/rewrite/tree)'s code rewriting to Ruby projects. Turning Back the Hands of Time --- @@ -16,7 +16,7 @@ At that time I had already reached certain decisions about the role blogging (or So, I decided to create some form of code rewriting or macro facility for Ruby. I already had certain opinions about the value of syntactic abstractions, and I had some experience writing tools that write Java code, so I figured I had a fair shot of actually finishing something worth discussing. At the very least, I figured the adventure of trying would provide grist for a presentation even if I failed. -As things turned out, I did make something that worked, the [Rewrite Gem](https://github.com/raganwald/rewrite/tree). In perverse celebration I decided to make my presentation in the form of code only. Okay, there was one little bit of Marx Brothers to kick it off, but everything else was code, and working code at that. (My presentation is on line at [InfoQ](http://www.infoq.com/presentations/braithwaite-rewrite-ruby). As you can see, I was seriously short of sleep. That's my excuse for giggling so much!) +As things turned out, I did make something that worked, the [Rewrite Gem](https://github.com/raganwald-deprecated/rewrite/tree). In perverse celebration I decided to make my presentation in the form of code only. Okay, there was one little bit of Marx Brothers to kick it off, but everything else was code, and working code at that. (My presentation is on line at [InfoQ](http://www.infoq.com/presentations/braithwaite-rewrite-ruby). As you can see, I was seriously short of sleep. That's my excuse for giggling so much!) And then I put the Rewrite Gem aside for some little time. And last month, I picked it up again and discovered that it was broken. It seems that in my haste to put it out there, I failed to take some hygienic precautions like carefully documenting the version dependencies, and when [ParseTree](http://rubyforge.org/projects/parsetree/ "RubyForge: ParseTree - ruby parse tree tools: Project Info") and [Ruby2Ruby](http://seattlerb.rubyforge.org/ruby2ruby/ "seattlerb's ruby2ruby-1.2.1 Documentation") got some upgrades, Rewrite broke. @@ -27,7 +27,7 @@ Whither Rewrite? So, the Rewrite Gem broke when ParseTree and Ruby2Ruby changed some of their representations. I thought about either freezing the versions Rewrite needed or upgrading the gem, but then I had a remarkably stupid idea: Why not try to make it a little more useful than a proof-of-concept? -So, I started [RewriteRails](https://github.com/raganwald/rewrite_rails/tree). The idea is remarkably simple: You are writing a Rails project. You want to use things like [`andand`](http://weblog.raganwald.com/2008/01/objectandand-objectme-in-ruby.html "Object#andand & Object#me in Ruby") and [`String#to_proc`](http://weblog.raganwald.com/2007/10/stringtoproc.html "String#to_proc"). But you either have a fastidious disdain for opening core classes and slinging proxy objects around, a fanatical need for speed, or you want to be able to rip all that stuff out if you grow bored with it. +So, I started [RewriteRails](https://github.com/raganwald-deprecated/rewrite_rails/tree). The idea is remarkably simple: You are writing a Rails project. You want to use things like [`andand`](http://weblog.raganwald.com/2008/01/objectandand-objectme-in-ruby.html "Object#andand & Object#me in Ruby") and [`String#to_proc`](http://weblog.raganwald.com/2007/10/stringtoproc.html "String#to_proc"). But you either have a fastidious disdain for opening core classes and slinging proxy objects around, a fanatical need for speed, or you want to be able to rip all that stuff out if you grow bored with it. RewriteRails solves all of these problems I invented that nobody is complaining about. diff --git a/2009-01-06/rewrite_rails.md b/2009-01-06/rewrite_rails.md index 8046f795..b997079d 100644 --- a/2009-01-06/rewrite_rails.md +++ b/2009-01-06/rewrite_rails.md @@ -1,7 +1,7 @@ RewriteRails === -A few days ago I wrote about [RewriteRails](http://github.com/raganwald/rewrite_rails/tree/master "raganwald's rewrite_rails at master — GitHub"). I have written up some documentation and as of now, I am asking absolutely everyone--this means you--to install it into your project. The best way to move it--and Ruby as a whole--forward is to make this bullet-proof. +A few days ago I wrote about [RewriteRails](http://github.com/raganwald-deprecated/rewrite_rails/tree/master "raganwald's rewrite_rails at master — GitHub"). I have written up some documentation and as of now, I am asking absolutely everyone--this means you--to install it into your project. The best way to move it--and Ruby as a whole--forward is to make this bullet-proof. Now, RewriteRails is not for everyone. Kindly pass this message on to some more deserving soul if you: diff --git a/2009-01-12/mundane.md b/2009-01-12/mundane.md index f7c84e52..9785c44e 100644 --- a/2009-01-12/mundane.md +++ b/2009-01-12/mundane.md @@ -5,7 +5,7 @@ A thought crossed my mind: Many people complain about [Ruby on Rails](http://rub Consider model classes. A few declarations... `acts_as_inscrutable`, `acts_as_magical`... And the model class gains a whole bunch of class and instance methods, plus often a whole bunch of `method_missing` behaviours that "behave like" methods. Some people complain it is hard to figure out what methods a model really has. -What if [RewriteRails](http://github.com/raganwald/rewrite_rails "raganwald's rewrite_rails at master — GitHub") were to rewrite ActiveRecord model class declarations to "mundane-ify" these magical methods? In other words, after a class has been loaded and all of the magic performed, RewriteRails writes out a `.rb` file that has the source code for all of the magic methods as if the programmer had written them in by hand. +What if [RewriteRails](http://github.com/raganwald-deprecated/rewrite_rails "raganwald's rewrite_rails at master — GitHub") were to rewrite ActiveRecord model class declarations to "mundane-ify" these magical methods? In other words, after a class has been loaded and all of the magic performed, RewriteRails writes out a `.rb` file that has the source code for all of the magic methods as if the programmer had written them in by hand. This `.rb` file can be placed somewhere that Rails can't find it, this is a case of documentation. Now a programmer can read the mundane-ified `.rb` file to get an idea of what methods the model class actually has. diff --git a/2009-04-08/sick.md b/2009-04-08/sick.md index 1ae84b41..a84bdd8a 100644 --- a/2009-04-08/sick.md +++ b/2009-04-08/sick.md @@ -15,7 +15,7 @@ The problem here, the thing that irritates me, is that we are using these mediev Likewise over in La-la-lisp land we have moved from naked recursion to recursive combinators. Combinators make our programs easier to understand and reason about. Naked recursion is GOTO dressed up in a scholar's mortar and gown. Likewise naked monkey-patching is GOTO dressed up in... Well, it isn't really dressed up, it's more baggy pants performing a frontside grab. -[Metaprogramming is beautiful.](http://weblog.raganwald.com/2008/07/my-analyst-warned-me-but.html "My analyst warned me, but metaprogramming was so beautiful I got another analyst") Now that we have embraced its beauty, let's invest some time and energy taking it to the next level, finding ways to apply abstractions and constraints to it so that we can benefit from it without falling into these entirely avoidable contretemps. I've taken one swing at the bat: I think many of the extensions people have added to core classes (including #andand) ought to be syntactic abstractions rather than methods, so I wrote [RewriteRails](http://github.com/raganwald/rewrite_rails). +[Metaprogramming is beautiful.](http://weblog.raganwald.com/2008/07/my-analyst-warned-me-but.html "My analyst warned me, but metaprogramming was so beautiful I got another analyst") Now that we have embraced its beauty, let's invest some time and energy taking it to the next level, finding ways to apply abstractions and constraints to it so that we can benefit from it without falling into these entirely avoidable contretemps. I've taken one swing at the bat: I think many of the extensions people have added to core classes (including #andand) ought to be syntactic abstractions rather than methods, so I wrote [RewriteRails](http://github.com/raganwald-deprecated/rewrite_rails). Now its your turn. Dazzle me. diff --git a/2009-04-28/extension_methods.md b/2009-04-28/extension_methods.md index 8e7cfa7b..82172c51 100644 --- a/2009-04-28/extension_methods.md +++ b/2009-04-28/extension_methods.md @@ -1,7 +1,7 @@ My Objection to Extension Methods === -The other day I pushed an update to Rewrite Rails. The new functionality supports writing [extension methods](http://en.wikipedia.org/wiki/Extension_method "Extension method - Wikipedia, the free encyclopedia") in your Ruby on Rails projects ([documentation here](http://github.com/raganwald/rewrite_rails/blob/master/doc/extension_methods.md#readme "Extension Methods in Rewrite Rails")). To grossly oversimplify, let's say you are writing some sort of scuba dive planning program, and you want to write things like: +The other day I pushed an update to Rewrite Rails. The new functionality supports writing [extension methods](http://en.wikipedia.org/wiki/Extension_method "Extension method - Wikipedia, the free encyclopedia") in your Ruby on Rails projects ([documentation here](http://github.com/raganwald-deprecated/rewrite_rails/blob/master/doc/extension_methods.md#readme "Extension Methods in Rewrite Rails")). To grossly oversimplify, let's say you are writing some sort of scuba dive planning program, and you want to write things like: 33.fsw.in_ata (4.5).ata.in_fsw diff --git a/2009-05-25/rubyjobfair.md b/2009-05-25/rubyjobfair.md index 3a57d88a..7ff69a12 100644 --- a/2009-05-25/rubyjobfair.md +++ b/2009-05-25/rubyjobfair.md @@ -1,7 +1,7 @@ Ruby Job Fair === -I will be "presenting myself" at Unspace's [Ruby Job Fair](http://rubyjobfair.ca/) on June 6, 2009. No, I am not on my knees begging anyone for employment, nor am I looking to hire a Sith Apprentice to initiate into the dark side of the [Ruby Rewriting](http://github.com/raganwald/rewrite_rails/tree/master "Rewrite Rails") arts. I have a completely different motivation. +I will be "presenting myself" at Unspace's [Ruby Job Fair](http://rubyjobfair.ca/) on June 6, 2009. No, I am not on my knees begging anyone for employment, nor am I looking to hire a Sith Apprentice to initiate into the dark side of the [Ruby Rewriting](http://github.com/raganwald-deprecated/rewrite_rails/tree/master "Rewrite Rails") arts. I have a completely different motivation. The Ruby Job Fair format is like a science fair: You have a "poster" to display your work, and absolutely no computers are allowed. This can be intimidating to people. What do you put on the poster? Let's read this famous story about Richard Hamming: diff --git a/2009-08-29/returning.md b/2009-08-29/returning.md index 5b6f2d8e..fc46e050 100644 --- a/2009-08-29/returning.md +++ b/2009-08-29/returning.md @@ -103,7 +103,7 @@ So I did. **Rewriting #returning** -The [RewriteRails](http://github.com/raganwald/rewrite_rails/tree/master) plug-in adds syntactic abstractions like [Andand](http://github.com/raganwald/rewrite_rails/tree/master/doc/andand.textile "") and [String to Block](http://github.com/raganwald/rewrite_rails/tree/master/doc/string_to_block.md#readme "") to Rails projects [without monkey-patching](http://avdi.org/devblog/2008/02/23/why-monkeypatching-is-destroying-ruby/ "Monkeypatching is Destroying Ruby"). RewriteRails now includes its own version of #returning that overrides the #returning shipping with Rails. +The [RewriteRails](http://github.com/raganwald-deprecated/rewrite_rails/tree/master) plug-in adds syntactic abstractions like [Andand](http://github.com/raganwald-deprecated/rewrite_rails/tree/master/doc/andand.textile "") and [String to Block](http://github.com/raganwald-deprecated/rewrite_rails/tree/master/doc/string_to_block.md#readme "") to Rails projects [without monkey-patching](http://avdi.org/devblog/2008/02/23/why-monkeypatching-is-destroying-ruby/ "Monkeypatching is Destroying Ruby"). RewriteRails now includes its own version of #returning that overrides the #returning shipping with Rails. When RewriteRails is processing source code, it turns code like this: @@ -144,8 +144,8 @@ Curiosity. It's easy to dismiss programmers who accidentally misuse features lik **More** -* [RewriteRails](http://github.com/raganwald/rewrite_rails/tree/master/README.md) -* [returning.rb](http://github.com/raganwald/rewrite_rails/tree/master/lib/rewrite_rails/returning.rb "") +* [RewriteRails](http://github.com/raganwald-deprecated/rewrite_rails/tree/master/README.md) +* [returning.rb](http://github.com/raganwald-deprecated/rewrite_rails/tree/master/lib/rewrite_rails/returning.rb "") --- diff --git a/2009-09-22/anaphora.md b/2009-09-22/anaphora.md index 32a62b49..b9addaa4 100644 --- a/2009-09-22/anaphora.md +++ b/2009-09-22/anaphora.md @@ -77,7 +77,7 @@ So while String#to\_proc allows you to write things like `(1..10).map(&'1 + it * **UPDATE: Block anaphora in rewrite_rails** -[rewrite_rails](http://github.com/raganwald/rewrite_rails "raganwald's rewrite_rails at master - GitHub") supports `it`, `its`, or `_` as block anaphora for blocks taking one argument. Similarly to Methodphitamine, you can write: +[rewrite_rails](http://github.com/raganwald-deprecated/rewrite_rails "raganwald's rewrite_rails at master - GitHub") supports `it`, `its`, or `_` as block anaphora for blocks taking one argument. Similarly to Methodphitamine, you can write: (1..10).map{ it * 2 + 1 } # => [3, 5, 7, 9, 11, 13, 15, 17, 19, 21] @@ -127,7 +127,7 @@ Reading about Lisp's anaphoric macros made me wonder whether anaphora for condit if big_long_calculation(): it.foo end -This is relatively easy to accomplish using [rewrite_rails](http://github.com/raganwald/rewrite_rails "raganwald's rewrite_rails at master - GitHub"). In the most naïve case, you want to rewrite all of your if statements such that: +This is relatively easy to accomplish using [rewrite_rails](http://github.com/raganwald-deprecated/rewrite_rails "raganwald's rewrite_rails at master - GitHub"). In the most naïve case, you want to rewrite all of your if statements such that: if big_long_calculation() it.foo @@ -232,7 +232,7 @@ Anaphora allow us to abbreviate code, hiding parameters and temporary variables * [String#to\_proc](http://github.com/raganwald/homoiconic/blob/master/2008-11-28/you_cant_be_serious.md "You can't be serious!?") and its original [blog post](http://weblog.raganwald.com/2007/10/stringtoproc.html "String#to_proc"). * [Methodphitamine](http://github.com/jicksta/methodphitamine "jicksta's methodphitamine at master - GitHub") and its original [blog post](http://jicksta.com/posts/the-methodphitamine "The Methodphitamine at Adhearsion Blog by Jay Phillips") * [Anaphoric macros](http://www.bookshelf.jp/texi/onlisp/onlisp_15.html "Onlisp: Anaphoric Macros") -* [rewrite_rails](http://github.com/raganwald/rewrite_rails "raganwald's rewrite_rails at master - GitHub") contains an improved implementation of String#to\_proc. +* [rewrite_rails](http://github.com/raganwald-deprecated/rewrite_rails "raganwald's rewrite_rails at master - GitHub") contains an improved implementation of String#to\_proc. * A [usenet discussion](http://groups.google.com/group/ruby-talk-google/browse_thread/thread/26445dcef22f5a5/1772d0c487d4c570?hl=en&lnk=ol& "Introducing the "it" keyword") about anaphora in Ruby. * [@RobertFischer](http://twitter.com/RobertFischer "Robert Fischer") pointed out that Groovy implements Block Anaphora using exactly the same syntax as rewrite\_rails, as well as mentioning that Groovy provides a special operator, `?.`, for the Maybe Monad. * Perl has some [anaphora of its own](http://www.wellho.net/mouth/969_Perl-and-.html "Perl - $_ and @_"). diff --git a/2010/02/difficult_distraction.md b/2010/02/difficult_distraction.md index 5c05ea6b..d9120c76 100644 --- a/2010/02/difficult_distraction.md +++ b/2010/02/difficult_distraction.md @@ -157,14 +157,14 @@ Recent work: [andand]: http://andand.rubyforge.org/ "Object#andand" [ast]: http://en.wikipedia.org/wiki/Abstract_syntax_tree "Abstract syntax tree - Wikipedia, the free encyclopedia" [bf]: http://github.com/raganwald/homoiconic/blob/master/2010/01/beautiful_failure.markdown "Beautiful Failure" -[cbn]: http://github.com/raganwald/rewrite_rails/blob/master/doc/call_by_name.md#readme +[cbn]: http://github.com/raganwald-deprecated/rewrite_rails/blob/master/doc/call_by_name.md#readme [comment]: http://news.ycombinator.com/item?id=1097422 [cs]: http://jashkenas.github.com/coffee-script/ -[em]: http://github.com/raganwald/rewrite_rails/blob/master/doc/extension_methods.md#readme +[em]: http://github.com/raganwald-deprecated/rewrite_rails/blob/master/doc/extension_methods.md#readme [haml]: http://haml-lang.com/ "Haml and Sass" [hh]: http://developers.facebook.com/news.php?blog=1&story=358 [hn]: http://news.ycombinator.com/item?id=1098773 "A Difficult Distraction on Hacker News" -[into]: http://github.com/raganwald/rewrite_rails/blob/master/doc/into.md#readme +[into]: http://github.com/raganwald-deprecated/rewrite_rails/blob/master/doc/into.md#readme [kestrel]: http://github.com/raganwald/homoiconic/blob/master/2008-10-29/kestrel.markdown "Kestrels" [ls]: http://www.asana.com/luna [matz]: http://casperfabricius.com/site/2008/04/02/ruby-fools-matzs-keynote/ "Matz’s keynote" @@ -172,13 +172,13 @@ Recent work: [mp]: http://jicksta.com/posts/the-methodphitamine "The Mthodphitamine" [node]: http://nodejs.org/ [proggit]: http://www.reddit.com/r/programming/comments/ay2bn/a_difficult_distraction_my_experience_creating_a/ -[ra]: http://github.com/raganwald/rewrite_rails/blob/master/doc/andand.textile#readme -[returning]: http://github.com/raganwald/rewrite_rails/blob/master/doc/returning.md#readme +[ra]: http://github.com/raganwald-deprecated/rewrite_rails/blob/master/doc/andand.textile#readme +[returning]: http://github.com/raganwald-deprecated/rewrite_rails/blob/master/doc/returning.md#readme [rewrite]: http://rewrite.rubyforge.org/ [rf]: http://www.infoq.com/presentations/braithwaite-rewrite-ruby "Video of the Ruby.rewrite(Ruby) presentation" [rhino]: http://weblog.raganwald.com/2007/07/javascript-on-jvm-in-fifteen-minutes.html "How to Run JavaScript on the JVM in Just Fifteen Minutes" -[rr]: http://github.com/raganwald/rewrite_rails +[rr]: http://github.com/raganwald-deprecated/rewrite_rails [s2p]: http://github.com/raganwald/homoiconic/blob/master/2008-11-28/you_cant_be_serious.md "You Can't be Serious!" -[source]: http://github.com/raganwald/rewrite_rails/blob/master/lib/rewrite_rails/block_anaphora.rb "block_anaphora.rb" +[source]: http://github.com/raganwald-deprecated/rewrite_rails/blob/master/lib/rewrite_rails/block_anaphora.rb "block_anaphora.rb" [thrush]: http://github.com/raganwald/homoiconic/blob/master/2008-10-30/thrush.markdown#readme "The Thrush" [w]: http://www.fogcreek.com/FogBugz/blog/post/The-Origin-of-Wasabi.aspx "The Origin of Wasabi" diff --git a/2010/04/blocks.md b/2010/04/blocks.md index 6abe1629..fd25ddf6 100644 --- a/2010/04/blocks.md +++ b/2010/04/blocks.md @@ -123,7 +123,7 @@ NEW! [Kestrels, Quirky Birds, and Hopeless Egocentricity](http://leanpub.com/com [Reg Braithwaite](http://braythwayt.com) | [@raganwald](http://twitter.com/raganwald) -[ig]: http://github.com/raganwald/iGesture +[ig]: http://github.com/raganwald-deprecated/iGesture [each]: http://api.jquery.com/jQuery.each/ "jQuery.each()" [blocks]: http://sphotos.ak.fbcdn.net/hphotos-ak-snc3/hs506.snc3/26589_10150173040005714_835045713_12122576_6398063_n.jpg [hn]: http://news.ycombinator.com/item?id=1270842 \ No newline at end of file diff --git a/2010/04/igesture.md b/2010/04/igesture.md index bcc775be..b9050ad0 100644 --- a/2010/04/igesture.md +++ b/2010/04/igesture.md @@ -93,10 +93,10 @@ NEW! [Kestrels, Quirky Birds, and Hopeless Egocentricity](http://leanpub.com/com [go]: http://github.com/raganwald/wood_and_stones [sw]: http://github.com/raganwald/homoiconic/blob/master/2010/03/significant_whitespace.md#readme "Significant Whitespace" [jg]: http://web.siruna.com/nico/jgesture/documentation.html -[gestures]: /raganwald/iGesture/raw/master/about/gestures.png "Example Gestures" +[gestures]: /raganwald-deprecated/iGesture/raw/master/about/gestures.png "Example Gestures" [eventified]: http://github.com/raganwald/wood_and_stones/blob/4562b25a40b3ef2e22aec9811921f622f84a2bff/public/javascripts/jgesture.eventified.js "jgesture.eventified.js" -[ig]: http://github.com/raganwald/iGesture -[igreadme]: http://github.com/raganwald/iGesture#readme +[ig]: http://github.com/raganwald-deprecated/iGesture +[igreadme]: http://github.com/raganwald-deprecated/iGesture#readme [nc]: http://raganwald.github.com/iGesture/naughts_and_crosses.html -[oxox]: /raganwald/iGesture/raw/master/about/oxox.png "Naughts and Crosses" +[oxox]: /raganwald-deprecated/iGesture/raw/master/about/oxox.png "Naughts and Crosses" [gojs]: http://github.com/raganwald/wood_and_stones/blob/master/public/javascripts/application.js "application.js" \ No newline at end of file diff --git a/2010/04/modal_interface.md b/2010/04/modal_interface.md index 5f161655..4f5c449a 100644 --- a/2010/04/modal_interface.md +++ b/2010/04/modal_interface.md @@ -136,18 +136,18 @@ NEW! [Kestrels, Quirky Birds, and Hopeless Egocentricity](http://leanpub.com/com [drag]: http://raganwald.github.com/iGesture/drag.html [slave]: /raganwald/homoiconic/raw/master/2010/04/slave_i.png "Slave I in Low Earth Orbit" -[ig]: /raganwald/iGesture "iGesture is a jQuery plugin for adding gesture support to web applications" +[ig]: /raganwald-deprecated/iGesture "iGesture is a jQuery plugin for adding gesture support to web applications" [affordance]: http://en.wikipedia.org/wiki/Affordance [go]: http://github.com/raganwald/wood_and_stones "Go" [band]: /raganwald/homoiconic/raw/master/2010/04/rubberband.jpg [home]: /raganwald/homoiconic/raw/master/2010/04/home_screen.png -[code]: http://github.com/raganwald/iGesture/tree/gh-pages +[code]: http://github.com/raganwald-deprecated/iGesture/tree/gh-pages [special]: http://benalman.com/news/2010/03/jquery-special-events/ -[catch_22]: http://github.com/raganwald/iGesture/issues/closed/#issue/22 "iGesture Issue #22" +[catch_22]: http://github.com/raganwald-deprecated/iGesture/issues/closed/#issue/22 "iGesture Issue #22" [dsble]: http://plugins.jquery.com/files/jquery.dragscroll.js.txt [ds]: http://plugins.jquery.com/files/jquery.dragscroll.js.txt -[dsjs]: http://github.com/raganwald/iGesture/blob/gh-pages/dragscrollable.js +[dsjs]: http://github.com/raganwald-deprecated/iGesture/blob/gh-pages/dragscrollable.js [dont_yak]: http://sethgodin.typepad.com/seths_blog/2005/03/dont_shave_that.html "Don't Shave That Yak!" [yak]: http://www.catb.org/~esr/jargon/html/Y/yak-shaving.html -[hold]: http://github.com/raganwald/iGesture/issues/closed/#issue/20 "iGesture Issue #20" +[hold]: http://github.com/raganwald-deprecated/iGesture/issues/closed/#issue/20 "iGesture Issue #20" [hn]: http://news.ycombinator.com/item?id=1277481 "Discuss this post" \ No newline at end of file diff --git a/2010/08/wood_and_stones.md b/2010/08/wood_and_stones.md index 28874cdb..28300272 100644 --- a/2010/08/wood_and_stones.md +++ b/2010/08/wood_and_stones.md @@ -76,6 +76,6 @@ Recent work: [ws]: http://raganwald.github.com/wood_and_stones [wscode]: http://github.com/raganwald/wood_and_stones [raganwaldcode]: http://github.com/raganwald/ -[ig]: http://github.com/raganwald/iGesture +[ig]: http://github.com/raganwald-deprecated/iGesture [jqc]: http://github.com/raganwald/JQuery-Combinators [peck]: http://github.com/davepeck/appengine-go \ No newline at end of file diff --git a/2010/09/concept.md b/2010/09/concept.md index 92658fa8..518b17d4 100644 --- a/2010/09/concept.md +++ b/2010/09/concept.md @@ -44,15 +44,15 @@ To me, andand is a very small software product. It has users, it has a very well After andand, I became curious about monads and about modifying the way Ruby invoked methods on objects. I wondered to myself, *If andand was imply a specific case of a more general things, what would that thing look like?*. That question, you will note, has no "why" in it, no transition from what came before to what will come after. Answering that question creates concept software, not a software product. -And indeed, I created the [Invocation Control Kit](http://github.com/raganwald/ick "raganwald's ick at master - GitHub"), "an ad hoc, informally-specified, bug-ridden, slow implementation of half of Monads" to answer the question. If you listen carefully, you can hear the crickets chirping around its download link. +And indeed, I created the [Invocation Control Kit](http://github.com/raganwald-deprecated/ick "raganwald's ick at master - GitHub"), "an ad hoc, informally-specified, bug-ridden, slow implementation of half of Monads" to answer the question. If you listen carefully, you can hear the crickets chirping around its download link. When I wrote Ick, I had no illusions that it would become a product. I deliberately discarded any notion that I needed to make it easy to learn, or popular, or even superior for solving certain problems. I set out to find out how far I could abstract and generalize the idea of andand. I was working with a software deign the way a materials engineer might destructively test a piece of carbon fibre: I was abusing it to find out how far it would go before breaking. -With andand and Ick, I went from product to concept. I later went in reverse: I created a concept called [Rewrite](http://github.com/raganwald/rewrite "raganwald's rewrite at master - GitHub"). I had a specific problem I wanted to solve, namely the egregious monkey-patching common in Ruby programs. However, I wrote Rewrite without any concern for making it adoptable. I set out to determine what and how without saying who, when, or why. +With andand and Ick, I went from product to concept. I later went in reverse: I created a concept called [Rewrite](http://github.com/raganwald-deprecated/rewrite "raganwald's rewrite at master - GitHub"). I had a specific problem I wanted to solve, namely the egregious monkey-patching common in Ruby programs. However, I wrote Rewrite without any concern for making it adoptable. I set out to determine what and how without saying who, when, or why. I even presented my concept product at [Rubyfringe](http://www.infoq.com/presentations/braithwaite-rewrite-ruby "InfoQ: Ruby.rewrite(Ruby)"), an un-conference. I didn't ask people to use it, I held it up as proof that there was at least one alternative to monkey-patching, and challenged the community to invent a better way. -Well, inspirational speaking is nice, but as a professional programmer I needed a product. So I started from scratch and used what I learned from writing Rewrite to--ummm--rewrite it as [Rewrite Rails](http://github.com/raganwald/rewrite_rails "raganwald's rewrite_rails at master - GitHub"). Rewrite Rails was a product: It was written specifically to make it easy to add to existing projects. I used it myself on a shipping product. My mission for Rewrite Rails very definitely addressed the questions of who and why. +Well, inspirational speaking is nice, but as a professional programmer I needed a product. So I started from scratch and used what I learned from writing Rewrite to--ummm--rewrite it as [Rewrite Rails](http://github.com/raganwald-deprecated/rewrite_rails "raganwald's rewrite_rails at master - GitHub"). Rewrite Rails was a product: It was written specifically to make it easy to add to existing projects. I used it myself on a shipping product. My mission for Rewrite Rails very definitely addressed the questions of who and why. So here we have two products and two concepts. In one case, the product inspired the concept. In the other, the concept inspired the product. Although they might seem to be inverses of each other, in both cases the impetus for the concept was *curiosity*. @@ -74,7 +74,7 @@ And this brings us to a satisfactory answer to the question. I write concept sof --- -p.s. My recent little product releases include [Wood & Stones](http://github.com/raganwald/wood_and_stones "raganwald's wood_and_stones at master - GitHub"), [jQuery Combinators](http://github.com/raganwald/JQuery-Combinators "raganwald's JQuery-Combinators at master - GitHub"), [jQuery Predicates](http://github.com/raganwald/jQuery-Predicates "raganwald's jQuery-Predicates at master - GitHub"), and [iGesture](http://github.com/raganwald/iGesture "raganwald's iGesture at master - GitHub"). Feedback about "why" or "why not" is always welcome... I wrote these things to be used! +p.s. My recent little product releases include [Wood & Stones](http://github.com/raganwald/wood_and_stones "raganwald's wood_and_stones at master - GitHub"), [jQuery Combinators](http://github.com/raganwald/JQuery-Combinators "raganwald's JQuery-Combinators at master - GitHub"), [jQuery Predicates](http://github.com/raganwald/jQuery-Predicates "raganwald's jQuery-Predicates at master - GitHub"), and [iGesture](http://github.com/raganwald-deprecated/iGesture "raganwald's iGesture at master - GitHub"). Feedback about "why" or "why not" is always welcome... I wrote these things to be used! ---- diff --git a/2011/value.markdown b/2011/value.markdown index 263d827e..127dce54 100644 --- a/2011/value.markdown +++ b/2011/value.markdown @@ -91,5 +91,5 @@ Recent work: [ss]: http://www.theserverside.com/news/thread.tss?track=NL-461&ad=808081&thread_id=61622&asrc=EM_NLN_13145929&uid=2780877 [tw]: https://twitter.com/#!/axeolotl/statuses/25634042510581760 [r]: http://github.com/raganwald -[name]: https://github.com/raganwald/rewrite_rails/blob/master/doc/call_by_name.md#readme "Call by Name in RewriteRails" +[name]: https://github.com/raganwald-deprecated/rewrite_rails/blob/master/doc/call_by_name.md#readme "Call by Name in RewriteRails" [p]: http://www.reddit.com/r/programming/comments/f1d7r/huge_war_over_whether_java_is_pass_by_reference/ \ No newline at end of file diff --git a/2012/05/anaphora.md b/2012/05/anaphora.md index afbd71fa..2519f11b 100644 --- a/2012/05/anaphora.md +++ b/2012/05/anaphora.md @@ -149,7 +149,7 @@ i = 1 To "fix" the problems with using a proxy to implement anaphora, you need to parse and rewrite Ruby directly. No sane person would do this just for the convenience of using block anaphora in their code, however Github archeologists report that a now-extinct society of programmers did this very thing: -The abandonware gem [rewrite_rails](http://github.com/raganwald/rewrite_rails "raganwald's rewrite_rails at master - GitHub") supported `it`, `its`, or `_` as block anaphora for blocks taking one argument. When writing a block that takes just one parameter, you can use either `it` or `its` as a parameter without actually declaring the parameter using `{ |it| ... }`. +The abandonware gem [rewrite_rails](http://github.com/raganwald-deprecated/rewrite_rails "raganwald's rewrite_rails at master - GitHub") supported `it`, `its`, or `_` as block anaphora for blocks taking one argument. When writing a block that takes just one parameter, you can use either `it` or `its` as a parameter without actually declaring the parameter using `{ |it| ... }`. Like Methodphitimine and Ampex, you can supply parameters: @@ -220,7 +220,7 @@ Reading about Lisp's anaphoric macros made me wonder whether anaphora for condit if big_long_calculation(): it.foo end -This is relatively easy to accomplish using [rewrite_rails](http://github.com/raganwald/rewrite_rails "raganwald's rewrite_rails at master - GitHub"). In the most naïve case, you want to rewrite all of your if statements such that: +This is relatively easy to accomplish using [rewrite_rails](http://github.com/raganwald-deprecated/rewrite_rails "raganwald's rewrite_rails at master - GitHub"). In the most naïve case, you want to rewrite all of your if statements such that: if big_long_calculation() it.foo @@ -301,7 +301,7 @@ Anaphora allow us to abbreviate code, hiding parameters and temporary variables * [String#to\_proc](http://github.com/raganwald/homoiconic/blob/master/2008-11-28/you_cant_be_serious.md "You can't be serious!?") and its original [blog post](http://weblog.raganwald.com/2007/10/stringtoproc.html "String#to_proc"). * [Methodphitamine](http://github.com/jicksta/methodphitamine "jicksta's methodphitamine at master - GitHub") and its original [blog post](http://jicksta.com/posts/the-methodphitamine "The Methodphitamine at Adhearsion Blog by Jay Phillips") * [Anaphoric macros](http://www.bookshelf.jp/texi/onlisp/onlisp_15.html "Onlisp: Anaphoric Macros") -* [rewrite_rails](http://github.com/raganwald/rewrite_rails "raganwald's rewrite_rails at master - GitHub") contains an improved implementation of String#to\_proc. +* [rewrite_rails](http://github.com/raganwald-deprecated/rewrite_rails "raganwald's rewrite_rails at master - GitHub") contains an improved implementation of String#to\_proc. * A [usenet discussion](http://groups.google.com/group/ruby-talk-google/browse_thread/thread/26445dcef22f5a5/1772d0c487d4c570?hl=en&lnk=ol& "Introducing the "it" keyword") about anaphora in Ruby. * [@RobertFischer](http://twitter.com/RobertFischer "Robert Fischer") pointed out that Groovy implements Block Anaphora using exactly the same syntax as rewrite\_rails, as well as mentioning that Groovy provides a special operator, `?.`, for the Maybe Monad. * Perl has some [anaphora of its own](http://www.wellho.net/mouth/969_Perl-and-.html "Perl - $_ and @_"). diff --git a/dumping_ground/vapours.md b/dumping_ground/vapours.md index 1549d310..6add4e96 100644 --- a/dumping_ground/vapours.md +++ b/dumping_ground/vapours.md @@ -1,7 +1,7 @@ From interview questions to production code === -Things are a little slow with me career-wise, so I have some cycles to eat a little of my own [dog food](http://en.wikipedia.org/wiki/Eating_one%27s_own_dog_food "Eating one's own dog food - Wikipedia, the free encyclopedia"). Specifically, I'm writing a server for playing [Go](http://github.com/raganwald/homoiconic/blob/master/2009-10-20/high_anxiety.md "High Anxiety") online. What does this have to do with dogfooding? Two things. First, I'm using [rewrite_rails](http://github.com/raganwald/rewrite_rails "raganwald's rewrite_rails at master - GitHub"). That's great and I'm actually filing issues as I run into them. +Things are a little slow with me career-wise, so I have some cycles to eat a little of my own [dog food](http://en.wikipedia.org/wiki/Eating_one%27s_own_dog_food "Eating one's own dog food - Wikipedia, the free encyclopedia"). Specifically, I'm writing a server for playing [Go](http://github.com/raganwald/homoiconic/blob/master/2009-10-20/high_anxiety.md "High Anxiety") online. What does this have to do with dogfooding? Two things. First, I'm using [rewrite_rails](http://github.com/raganwald-deprecated/rewrite_rails "raganwald's rewrite_rails at master - GitHub"). That's great and I'm actually filing issues as I run into them. Second, and this is the point of my quick post here, I have a chance to write a game you play online. If you've been reading some of my early dreck, this will sound familiar: It is the subject of [my favourite interview question](http://weblog.raganwald.com/2006/06/my-favourite-interview-question.html "My favourite interview question")! Mind you, my favourite interview question is allegedly about Monopoly, and this is Go. There are some important differences. First, Go is way easier: The rules are not poorly defined for the game itself. The rules are much smaller, simpler, and more elegant. But second, just like Monopoly there is the challenge of writing the program such that it documents the rules of the game. To quite myself liberally: diff --git a/homoiconic.tmproj b/homoiconic.tmproj index f27b7386..0563eede 100644 --- a/homoiconic.tmproj +++ b/homoiconic.tmproj @@ -3,7 +3,7 @@ currentDocument - 2012/05/anaphora.md + 2008-11-28/you_cant_be_serious.md documents @@ -35,6 +35,36 @@ firstVisibleLine 0 + 2008-11-28/you_cant_be_serious.md + + caret + + column + 103 + line + 189 + + columnSelection + + firstVisibleColumn + 0 + firstVisibleLine + 160 + selectFrom + + column + 24 + line + 189 + + selectTo + + column + 103 + line + 189 + + 2009-09-22/anaphora.md caret @@ -98,9 +128,9 @@ caret column - 277 + 212 line - 165 + 149 firstVisibleColumn 0 @@ -172,6 +202,7 @@ 2012/05/i.md 2009-09-22/anaphora.md 2012/05/anaphora.md + 2008-11-28/you_cant_be_serious.md showFileHierarchyDrawer