# "RESTful Web Services"

**URL:** <https://www.ruby-forum.com/t/restful-web-services/106295>\
**Category:** Ruby\
**Created:** [June 8, 2007, 6:02am UTC](https://www.ruby-forum.com/t/restful-web-services/106295 "2007-06-08T06:02:19Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![iceburgh](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/i/c4cdca/32.png) [@iceburgh](https://www.ruby-forum.com/u/iceburgh)\
**Post date:** [June 8, 2007, 6:02am UTC](https://www.ruby-forum.com/t/restful-web-services/106295/1 "2007-06-08T06:02:19Z")

</div>

I’ve been reading

RESTful Web Services  
Leonard Richardson & Sam Ruby  
O’Reilly, 2007

Aside from being an interesting and well-written book on  
the topic, I was pleased to find that it uses Ruby for  
all of its code examples.

## -r

[http://www.cfcl.com/rdm](http://www.cfcl.com/rdm) Rich M.  
[http://www.cfcl.com/rdm/resume](http://www.cfcl.com/rdm/resume) removed\_email\_address@domain.invalid  
[http://www.cfcl.com/rdm/weblog](http://www.cfcl.com/rdm/weblog) +1 650-873-7841

Technical editing and writing, programming, and web development

---

<div class="post-metadata">

**Author:** ![iceburgh](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/i/c4cdca/32.png) [@iceburgh](https://www.ruby-forum.com/u/iceburgh)\
**Post date:** [June 8, 2007, 1:23pm UTC](https://www.ruby-forum.com/t/restful-web-services/106295/2 "2007-06-08T13:23:11Z")

</div>

Hi –

On Fri, 8 Jun 2007, Rich M. wrote:

> I’ve been reading
> 
> RESTful Web Services  
> Leonard Richardson & Sam Ruby  
> O’Reilly, 2007
> 
> Aside from being an interesting and well-written book on  
> the topic, I was pleased to find that it uses Ruby for  
> all of its code examples.

That is indeed cool. I remember when Jack Herrington’s book on code  
generation came out in 2003, also using Ruby for its examples –  
definitely a nice way to raise Ruby awareness and demonstrate the  
language’s strengths.

David

---

<div class="post-metadata">

**Author:** ![iceburgh](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/i/c4cdca/32.png) [@iceburgh](https://www.ruby-forum.com/u/iceburgh)\
**Post date:** [June 8, 2007, 2:19pm UTC](https://www.ruby-forum.com/t/restful-web-services/106295/3 "2007-06-08T14:19:20Z")

</div>

On Jun 7, 2007, at 11:00 PM, Rich M. wrote:

> I’ve been reading
> 
> RESTful Web Services  
> Leonard Richardson & Sam Ruby  
> O’Reilly, 2007
> 
> Aside from being an interesting and well-written book on  
> the topic, I was pleased to find that it uses Ruby for  
> all of its code examples.

I picked that up recently too and agree that it’s a really well  
written book … at least what I’ve read so far.

---

<div class="post-metadata">

**Author:** ![iceburgh](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/i/c4cdca/32.png) [@iceburgh](https://www.ruby-forum.com/u/iceburgh)\
**Post date:** [June 9, 2007, 8:32pm UTC](https://www.ruby-forum.com/t/restful-web-services/106295/4 "2007-06-09T20:32:34Z")

</div>

> That is indeed cool. I remember when Jack Herrington’s book on code  
> generation came out in 2003, also using Ruby for its examples –  
> definitely a nice way to raise Ruby awareness and demonstrate the  
> language’s strengths.

Can I just say that this is an absurdly under-rated book? Admittedly I  
skipped a lot of its parts, especially the Java stuff, which I think  
he only threw in because he had to, but it very much turned my brain  
sideways. My new theory, based on this book, is that Unix is Lisp with  
a compilation phase. Think about it - how many times have you written  
shell scripts to generate new shell scripts, or to generate new lists  
of shell commands? How many shell commands do you invoke with a list  
of files? Unix is all code generation and lists. It’s Lisp in a  
different form.

Anyway, long story short, “Code Generation in Action,” awesome.

–  
Giles B.

Blog: [http://gilesbowkett.blogspot.com](http://gilesbowkett.blogspot.com)  
Portfolio: [http://www.gilesgoatboy.org](http://www.gilesgoatboy.org)

---

<div class="post-metadata">

**Author:** ![iceburgh](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/i/c4cdca/32.png) [@iceburgh](https://www.ruby-forum.com/u/iceburgh)\
**Post date:** [June 10, 2007, 5:34am UTC](https://www.ruby-forum.com/t/restful-web-services/106295/5 "2007-06-10T05:34:31Z")

</div>

[code generation in action tangent]

> > sideways. My new theory, based on this book, is that Unix is Lisp with  
> > a compilation phase. Think about it - how many times have you written

> also built into the first versions of Unix.
> 
> I guess I should get the book. 😉

Well, it’s kind of my own theory based off the book, but it is an  
excellent book. I say it that way because of the Paul Graham thing,  
praise for Lisp macros, where you have a language sufficiently  
malleable to adapt it to the program you’re building in it. Being able  
to write programs which generate Unix commands is kind of the same  
experience - the “compilation phase” comes when you save a shell  
script to a text file, or especially when you save a list of files to  
a text file, save a Perl script which writes a shell script for you to  
a Perl file, run that Perl file to generate that shell script, and  
pass it that text file containing a list of files. In Lisp you’d do it  
all with macros; in Unix you’re saving it to the drive. But it’s  
still, in either case, code which generates code and handles lists.

Might even be more a metaphor than a theory, but the whole idea of  
creating code which creates code, so that you can program at a very  
high level, that is actually totally available to anybody who writes  
code which runs on Unix. It’s not just a Lisp thing.

–  
Giles B.

Blog: [http://gilesbowkett.blogspot.com](http://gilesbowkett.blogspot.com)  
Portfolio: [http://www.gilesgoatboy.org](http://www.gilesgoatboy.org)

---

<div class="post-metadata">

**Author:** ![iceburgh](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/i/c4cdca/32.png) [@iceburgh](https://www.ruby-forum.com/u/iceburgh)\
**Post date:** [June 9, 2007, 9:04pm UTC](https://www.ruby-forum.com/t/restful-web-services/106295/6 "2007-06-09T21:04:36Z")

</div>

Giles B. wrote:

> shell scripts to generate new shell scripts, or to generate new lists  
> of shell commands? How many shell commands do you invoke with a list  
> of files? Unix is all code generation and lists. It’s Lisp in a  
> different form.
> 
> Anyway, long story short, “Code Generation in Action,” awesome.

Hmmm … well … I came to Unix fairly late in its evolution, having  
spent most of the previous time as an assembly language and FORTRAN  
programmer and having used a range of operating systems dating back to  
such primitive beasts as the IBM 7090 without disks to “modern” systems  
like Xerox CP-V and VAX/VMS.

My first encounters with Unix were, coming from VAX/VMS, quite  
unpleasant. The editors didn’t make sense, the whole notion of shell  
scripting rather than command files didn’t seem useful, etc. I  
essentially used FORTRAN as a scripting language.

What changed that was that the company I was working for, Floating Point  
Systems, merged with another company, Celerity Computing, that was  
making a Unix (4.3 BSD) product. Instantly I had colleagues who knew all  
this fancy Unix stuff, could write C code as well as I could write  
FORTRAN, etc. It was sink or swim so I learned to swim.

But I don’t think Unix is as much about code generation and lists as it  
is, at least initially, about text processing. The whole philosophy at  
the time, before GUIs, etc., was that developers spent a lot of time  
dealing with text files, whether they be code, numeric data, documents  
or something else, so Unix should make that easy to automate.

IIRC spell checking was built into the very first versions of Unix, for  
example. And I think the core idea of the Unix user interface is not  
Lisp, lambda calculus, and AI so much as it is the notion of regular  
expressions and the compiler-compiler. Again IIRC, lex and yacc were  
also built into the first versions of Unix.

I guess I should get the book. 😉

---

<div class="post-metadata">

**Author:** ![iceburgh](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/i/c4cdca/32.png) [@iceburgh](https://www.ruby-forum.com/u/iceburgh)\
**Post date:** [September 25, 2007, 11:04pm UTC](https://www.ruby-forum.com/t/restful-web-services/106295/7 "2007-09-25T23:04:23Z")

</div>

On 6/7/07, Rich M. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> I’ve been reading
> 
> RESTful Web Services  
> Leonard Richardson & Sam Ruby  
> O’Reilly, 2007
> 
> Aside from being an interesting and well-written book on  
> the topic, I was pleased to find that it uses Ruby for  
> all of its code examples.

Yeah,

Leonard Richardson was also a co-author of the well-reviewed Ruby  
Cookbook, so it’s no surprise:

Ruby Cookbook  
Lucas Carlson & Leonard Richardson  
O’Reilly, 2006  
[http://www.oreilly.com/catalog/rubyckbk/index.html](http://www.oreilly.com/catalog/rubyckbk/index.html)

HTH,  
Keith

---

<div class="post-metadata">

**Author:** ![iceburgh](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/i/c4cdca/32.png) [@iceburgh](https://www.ruby-forum.com/u/iceburgh)\
**Post date:** [September 25, 2007, 11:09pm UTC](https://www.ruby-forum.com/t/restful-web-services/106295/8 "2007-09-25T23:09:18Z")

</div>

Thank you for sharing this with us, are there any good books in Ruby and  
agent or multi-agent technology that you can recommend?

Fatmah

vasudevram [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> On 6/7/07, Rich M. wrote:

Hey, that’s good news. Thanks for the info - I must check it out -  
REST is one of my interests. BTW, the book “Enterprise Integration  
with Ruby” by Maik Schmidt, published by the Pragmatic Bookshelf, is  
also a pretty good one - though its not only about REST, it does have  
some good code and text about it. I wrote a short review of it here:

> **[jugad's Journal](https://jugad.livejournal.com/2007/04/15/)**
>
> Vasudev Ram's blog on software innovation

## Vasudev Ram

## Biz site: [http://www.dancingbison.com](http://www.dancingbison.com) Blog on software innovation: [http://jugad.livejournal.com](http://jugad.livejournal.com) PDF creation toolkit: [Conversion of other file formats to PDF download | SourceForge.net](http://sourceforge.net/projects/xtopdf)

---

<div class="post-metadata">

**Author:** ![iceburgh](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/i/c4cdca/32.png) [@iceburgh](https://www.ruby-forum.com/u/iceburgh)\
**Post date:** [September 25, 2007, 11:05pm UTC](https://www.ruby-forum.com/t/restful-web-services/106295/9 "2007-09-25T23:05:39Z")

</div>

> > all of its code examples.

Hey, that’s good news. Thanks for the info - I must check it out -  
REST is one of my interests. BTW, the book “Enterprise Integration  
with Ruby” by Maik Schmidt, published by the Pragmatic Bookshelf, is  
also a pretty good one - though its not only about REST, it does have  
some good code and text about it. I wrote a short review of it here:

```
http://jugad.livejournal.com/2007/04/15/

```

Vasudev Ram
