# Webrick and ruby

**URL:** <https://rubytalk.org/t/webrick-and-ruby/7820>\
**Category:** ruby-talk\
**Created:** [3 September 2003 18:03 UTC](https://rubytalk.org/t/webrick-and-ruby/7820 "2003-09-03T18:03:25Z")\
**Posts on this page:** 12\
**Page:** 1

<div class="post-metadata">

**Author:** ![Ara.T.Howard1](https://avatars.discourse-cdn.com/v4/letter/a/f19dbf/32.png) [@Ara.T.Howard1](https://rubytalk.org/u/Ara.T.Howard1)\
**Post date:** [3 September 2003 18:03 UTC](https://rubytalk.org/t/webrick-and-ruby/7820/1 "2003-09-03T18:03:25Z")

</div>

does anyone know of a development effort being made to support fastcgi in  
webrick? any interest in the idea out there?

i’m thinking that a fastcgi enabled webrick, coupled with an object prevalence  
strategy as the database backend could be a really cool pure ruby cross  
platform web application development environment…

ruby + webrick + fastcgi + amrita + object prevalence

-a

> **···**
>
> ====================================
> 
> > Ara Howard  
> > NOAA Forecast Systems Laboratory  
> > Information and Technology Services  
> > Data Systems Group  
> > R/FST 325 Broadway  
> > Boulder, CO 80305-3328  
> > Email: [ara.t.howard@noaa.gov](mailto:ara.t.howard@noaa.gov)  
> > Phone: 303-497-7238  
> > Fax: 303-497-7259  
> > ~ \> ruby -e ‘p(%.\x2d\x29…intern)’  
> > ====================================

---

<div class="post-metadata">

**Author:** ![David\_Heinemeier\_Ha2](https://avatars.discourse-cdn.com/v4/letter/d/fbc32d/32.png) [@David\_Heinemeier\_Ha2](https://rubytalk.org/u/David_Heinemeier_Ha2)\
**Post date:** [3 September 2003 21:19 UTC](https://rubytalk.org/t/webrick-and-ruby/7820/2 "2003-09-03T21:19:13Z")

</div>

> i’m thinking that a fastcgi enabled webrick, coupled with an object  
> prevalence  
> strategy as the database backend could be a really cool pure ruby cross  
> platform web application development environment…

I’d have a great interest in seeing something like this come through. A  
pure Ruby approach would make it much easier to distribute a bundled  
solution without dependencies on external services, such as Apache or  
MySQL.

CherryPy ([http://www.cherrypy.org/](http://www.cherrypy.org/)) is persuing such a strategy in  
Python land. It would be very cool to have something similiar in Ruby.

> **···**
>
> –  
> David Heinemeier Hansson,  
> [http://www.loudthinking.com/](http://www.loudthinking.com/) – Thoughts for free  
> [http://www.nextangle.com/](http://www.nextangle.com/) – Thoughts for hire

---

<div class="post-metadata">

**Author:** ![Ptkwt](https://avatars.discourse-cdn.com/v4/letter/p/f14d63/32.png) [@Ptkwt](https://rubytalk.org/u/Ptkwt)\
**Post date:** [4 September 2003 00:44 UTC](https://rubytalk.org/t/webrick-and-ruby/7820/3 "2003-09-04T00:44:09Z")

</div>

In article [Pine.LNX.4.53.0309031650350.16626@eli.fsl.noaa.gov](mailto:Pine.LNX.4.53.0309031650350.16626@eli.fsl.noaa.gov),

> **···**
>
> ahoward [ahoward@fsl.noaa.gov](mailto:ahoward@fsl.noaa.gov) wrote:
> 
> > does anyone know of a development effort being made to support fastcgi in  
> > webrick? any interest in the idea out there?
> > 
> > i’m thinking that a fastcgi enabled webrick, coupled with an object prevalence  
> > strategy as the database backend could be a really cool pure ruby cross  
> > platform web application development environment…
> > 
> > ruby + webrick + fastcgi + amrita + object prevalence
> 
> How about including borges as well?
> 
> PHil

---

<div class="post-metadata">

**Author:** ![Martin\_DeMello1](https://avatars.discourse-cdn.com/v4/letter/m/3be4f8/32.png) [@Martin\_DeMello1](https://rubytalk.org/u/Martin_DeMello1)\
**Post date:** [4 September 2003 08:25 UTC](https://rubytalk.org/t/webrick-and-ruby/7820/4 "2003-09-04T08:25:09Z")

</div>

Something to add to the debate - the python guys have nicer wordplay  
possibilities 🙂 (I suppose we could call ours RuBrick).

martin

> **···**
>
> David Heinemeier Hansson [david@loudthinking.com](mailto:david@loudthinking.com) wrote:
> 
> > CherryPy ([http://www.cherrypy.org/](http://www.cherrypy.org/)) is persuing such a strategy in  
> > Python land. It would be very cool to have something similiar in Ruby.

---

<div class="post-metadata">

**Author:** ![Ara.T.Howard1](https://avatars.discourse-cdn.com/v4/letter/a/f19dbf/32.png) [@Ara.T.Howard1](https://rubytalk.org/u/Ara.T.Howard1)\
**Post date:** [4 September 2003 20:46 UTC](https://rubytalk.org/t/webrick-and-ruby/7820/5 "2003-09-04T20:46:48Z")

</div>

sounds good - can you explain it to me? 😉

-a

> **···**
>
> On Wed, 3 Sep 2003, Phil Tomson wrote:
> 
> > In article [Pine.LNX.4.53.0309031650350.16626@eli.fsl.noaa.gov](mailto:Pine.LNX.4.53.0309031650350.16626@eli.fsl.noaa.gov),  
> > ahoward [ahoward@fsl.noaa.gov](mailto:ahoward@fsl.noaa.gov) wrote:
> > 
> > > does anyone know of a development effort being made to support fastcgi in  
> > > webrick? any interest in the idea out there?
> > > 
> > > i’m thinking that a fastcgi enabled webrick, coupled with an object prevalence  
> > > strategy as the database backend could be a really cool pure ruby cross  
> > > platform web application development environment…
> > > 
> > > ruby + webrick + fastcgi + amrita + object prevalence
> > 
> > How about including borges as well?
> 
> ====================================
> 
> > Ara Howard  
> > NOAA Forecast Systems Laboratory  
> > Information and Technology Services  
> > Data Systems Group  
> > R/FST 325 Broadway  
> > Boulder, CO 80305-3328  
> > Email: [ara.t.howard@noaa.gov](mailto:ara.t.howard@noaa.gov)  
> > Phone: 303-497-7238  
> > Fax: 303-497-7259  
> > ~ \> ruby -e ‘p(%.\x2d\x29…intern)’  
> > ====================================

---

<div class="post-metadata">

**Author:** ![Remi](https://avatars.discourse-cdn.com/v4/letter/r/ed8c4c/32.png) [@Remi](https://rubytalk.org/u/Remi)\
**Post date:** [5 September 2003 15:49 UTC](https://rubytalk.org/t/webrick-and-ruby/7820/6 "2003-09-05T15:49:59Z")

</div>

Martin DeMello [martindemello@yahoo.com](mailto:martindemello@yahoo.com) wrote in message news:[MyC5b.49842$\_5.936426@news1.telusplanet.net](mailto:MyC5b.49842$_5.936426@news1.telusplanet.net)…

> **···**
>
> > David Heinemeier Hansson [david@loudthinking.com](mailto:david@loudthinking.com) wrote:
> > 
> > > CherryPy ([http://www.cherrypy.org/](http://www.cherrypy.org/)) is persuing such a strategy in  
> > > Python land. It would be very cool to have something similiar in Ruby.
> > 
> > Something to add to the debate - the python guys have nicer wordplay  
> > possibilities 🙂 (I suppose we could call ours RuBrick).
> > 
> > martin
> 
> Why don’t you call it “Rubarb” 🙂
> 
> Remi.

---

<div class="post-metadata">

**Author:** ![Eric\_Hodel1](https://avatars.discourse-cdn.com/v4/letter/e/a9adbd/32.png) [@Eric\_Hodel1](https://rubytalk.org/u/Eric_Hodel1)\
**Post date:** [10 September 2003 21:19 UTC](https://rubytalk.org/t/webrick-and-ruby/7820/7 "2003-09-10T21:19:55Z")

</div>

Well, once you add Borges, you’ll not need amrita or fastcgi…

Borges is a web app framework based on HTTP state persistence using  
call/cc. Avi Bryant gave a talk on it at last year’s RubyConf,  
with a bare-bones demo. I’ll be giving a talk on it at this year’s  
RubyConf, demoing a much more fully featured Borges. You can get  
it out of the RAA.

I’ll take this as a reminder to myself to assemble a private email  
convesation of the inner workings of Borges into a document.

> **···**
>
> ahoward ([ahoward@fsl.noaa.gov](mailto:ahoward@fsl.noaa.gov)) wrote:
> 
> > On Wed, 3 Sep 2003, Phil Tomson wrote:
> > 
> > > In article [Pine.LNX.4.53.0309031650350.16626@eli.fsl.noaa.gov](mailto:Pine.LNX.4.53.0309031650350.16626@eli.fsl.noaa.gov),  
> > > ahoward [ahoward@fsl.noaa.gov](mailto:ahoward@fsl.noaa.gov) wrote:
> > > 
> > > > does anyone know of a development effort being made to support fastcgi in  
> > > > webrick? any interest in the idea out there?
> > > > 
> > > > i’m thinking that a fastcgi enabled webrick, coupled with an object prevalence  
> > > > strategy as the database backend could be a really cool pure ruby cross  
> > > > platform web application development environment…
> > > > 
> > > > ruby + webrick + fastcgi + amrita + object prevalence
> > > 
> > > How about including borges as well?
> > 
> > sounds good - can you explain it to me? 😉
> 
> –  
> Eric Hodel - [drbrain@segment7.net](mailto:drbrain@segment7.net) - [http://segment7.net](http://segment7.net)  
> All messages signed with fingerprint:  
> FEC2 57F1 D465 EB15 5D6E 7C11 332A 551C 796C 9F04

---

<div class="post-metadata">

**Author:** ![Scott\_Thompson](https://avatars.discourse-cdn.com/v4/letter/s/9fc348/32.png) [@Scott\_Thompson](https://rubytalk.org/u/Scott_Thompson)\
**Post date:** [5 September 2003 15:55 UTC](https://rubytalk.org/t/webrick-and-ruby/7820/8 "2003-09-05T15:55:32Z")

</div>

Given that cherries are often described as being Ruby red, I would  
imagine that you could find a wealth of food puns to base a code name  
off of. I got 22 results when I searched for Ruby at [foodtv.com](http://foodtv.com).  
Other sites are bound to have more 🙂

Scott

> **···**
>
> On Friday, September 5, 2003, at 10:49 AM, Remi Delon wrote:
> 
> > Martin DeMello [martindemello@yahoo.com](mailto:martindemello@yahoo.com) wrote in message  
> > news:[MyC5b.49842$\_5.936426@news1.telusplanet.net](mailto:MyC5b.49842$_5.936426@news1.telusplanet.net)…
> > 
> > > David Heinemeier Hansson [david@loudthinking.com](mailto:david@loudthinking.com) wrote:
> > > 
> > > > CherryPy ([http://www.cherrypy.org/](http://www.cherrypy.org/)) is persuing such a strategy in  
> > > > Python land. It would be very cool to have something similiar in  
> > > > Ruby.
> > > 
> > > Something to add to the debate - the python guys have nicer wordplay  
> > > possibilities 🙂 (I suppose we could call ours RuBrick).
> > > 
> > > martin
> > 
> > Why don’t you call it “Rubarb” 🙂
> > 
> > Remi.

---

<div class="post-metadata">

**Author:** ![Chalmers](https://avatars.discourse-cdn.com/v4/letter/c/a87d85/32.png) [@Chalmers](https://rubytalk.org/u/Chalmers)\
**Post date:** [10 September 2003 21:50 UTC](https://rubytalk.org/t/webrick-and-ruby/7820/9 "2003-09-10T21:50:08Z")

</div>

Eric Hodel [drbrain@segment7.net](mailto:drbrain@segment7.net) skrev den Wed, 10 Sep 2003 14:19:52 -0700:

> Well, once you add Borges, you’ll not need amrita or fastcgi…

But then your code will not be separated from the skin/presentation, eh?  
This seems to me to be one of the strengths of the amrita approach.  
Not that I’m an expert in any of them (just checked them out) but from  
a cursory look at borges the tight coupling between logic and presentation  
stands out as annoying. Is this something that is being adressed or is  
the tight coupling a “feature”?

More q’s on borges:

Can it not be a performance issue that you regenerate the html  
from scratch in each component? At least that was my impression  
from the few borges examples? I guess you can avoid that by using  
a different (template-based) renderer though. But this is probably  
premature optimization on my part anyway… 😉

Do you have any larger examples showing the strength of the  
borges approach? It is theoretically appealing and sort of  
feels right but since its a different framework  
than the predominant ones (sessions) I think you need to  
really write it on our noses for us to get it :). Does  
it give real advantages in real use? What are the downsides? Problematic  
to disallow the back-button in situations where it shouldn’t be allowed?

Why don’t we take some more complex web app (phpbb2?) and rewrite  
it in borges w. webrick? We can even “borrow” their themes and templates so its really “only” the code/php that we need to redo in  
ruby.

Regards,

Robert

---

<div class="post-metadata">

**Author:** ![Eric\_Hodel1](https://avatars.discourse-cdn.com/v4/letter/e/a9adbd/32.png) [@Eric\_Hodel1](https://rubytalk.org/u/Eric_Hodel1)\
**Post date:** [10 September 2003 22:42 UTC](https://rubytalk.org/t/webrick-and-ruby/7820/10 "2003-09-10T22:42:48Z")

</div>

> Eric Hodel [drbrain@segment7.net](mailto:drbrain@segment7.net) skrev den Wed, 10 Sep 2003 14:19:52 -0700:
> 
> > Well, once you add Borges, you’ll not need amrita or fastcgi…
> 
> But then your code will not be separated from the skin/presentation, eh?  
> This seems to me to be one of the strengths of the amrita approach.  
> Not that I’m an expert in any of them (just checked them out) but from  
> a cursory look at borges the tight coupling between logic and presentation  
> stands out as annoying. Is this something that is being adressed or is  
> the tight coupling a “feature”?

Borges promotes heavy use of CSS, and tight coupling is a “feature”. In  
Borges, you write web apps more like GUI apps. Instead of spitting out  
HTML, you connect Components (or widgets). It is much different  
than traditional web app development.

> More q’s on borges:
> 
> Can it not be a performance issue that you regenerate the html  
> from scratch in each component? At least that was my impression  
> from the few borges examples? I guess you can avoid that by using  
> a different (template-based) renderer though. But this is probably  
> premature optimization on my part anyway… 😉

Yes, it may be a performance hit, but its hard to say whether or not it  
will be dwarfed by all the behind-the-scenes magic with Continuations.

Seaside2 has no template system, and nobody there really complains  
(well, there’s one guy who’s writing a template based system). A  
majority of the Seaside2 developers do not use templating systems, but  
there is a facility for sticking pre-generated chunks of HTML into the  
code.

> Do you have any larger examples showing the strength of the  
> borges approach? It is theoretically appealing and sort of  
> feels right but since its a different framework  
> than the predominant ones (sessions)

There’s Webplayer, but it isn’t as clean an app as it should be. It  
does show the general idea and power of the approach. Webplayer is a  
browser-controlled mp3 player with rudimentary playlist support.

> ```
> I think you need to
> 
> ```
> 
> really write it on our noses for us to get it :). Does  
> it give real advantages in real use? What are the downsides? Problematic  
> to disallow the back-button in situations where it shouldn’t be allowed?

The major advantage is that sessions are transparent. You only  
need to identify which data needs its state held. The downside is that  
it will be slower and larger (memory footprint) than a CGI-based  
solution. Code may be smaller and simpler.

The back button never needs to be disabled, but backtracking can be  
forbidden for things like shopping carts (not yet implemented).

> Why don’t we take some more complex web app (phpbb2?) and rewrite  
> it in borges w. webrick? We can even “borrow” their themes and templates so  
> its really “only” the code/php that we need to redo in  
> ruby.

Wait until after RubyConf, I’ll have a much better framework written by  
then.

> **···**
>
> Robert Feldt (feldt@ce.chalmers.se) wrote:
> 
> –  
> Eric Hodel - [drbrain@segment7.net](mailto:drbrain@segment7.net) - [http://segment7.net](http://segment7.net)  
> All messages signed with fingerprint:  
> FEC2 57F1 D465 EB15 5D6E 7C11 332A 551C 796C 9F04

---

<div class="post-metadata">

**Author:** ![Chalmers](https://avatars.discourse-cdn.com/v4/letter/c/a87d85/32.png) [@Chalmers](https://rubytalk.org/u/Chalmers)\
**Post date:** [11 September 2003 12:15 UTC](https://rubytalk.org/t/webrick-and-ruby/7820/11 "2003-09-11T12:15:38Z")

</div>

Eric Hodel [drbrain@segment7.net](mailto:drbrain@segment7.net) skrev den Wed, 10 Sep 2003 15:42:46 -0700:

> Borges promotes heavy use of CSS, and tight coupling is a “feature”. In  
> Borges, you write web apps more like GUI apps. Instead of spitting out  
> HTML, you connect Components (or widgets). It is much different  
> than traditional web app development.

Sounds great. Looking forward to larger examples.

> > Why don’t we take some more complex web app (phpbb2?) and rewrite  
> > it in borges w. webrick? We can even “borrow” their themes and templates so its really “only” the code/php that we need to redo in  
> > ruby.
> 
> Wait until after RubyConf, I’ll have a much better framework written by  
> then.

Framework as in “borges will by then be a better/more mature framework for this”  
or as in “I will have written a framework like phpbb2 in borges”?

Anyway, please share as soon as you have something to show. I need  
to set up a community site and am contemplating wether to use phpbb2  
or do something myself with webrick + amrita or borges.

Despite the plethora of web app frameworks out there I think  
there is an opportunity for Ruby here. Most of what is out  
there is overly complex. I kind of like what you can do  
with plone ([plone.org](http://plone.org)) but since its based on zope I find it  
counterintuitive in several areas and not easy to extend.

ruby + borges + madeleine

could be a killer here! Samizdat might also be important  
although its hard to know until there are some example  
sites using it.

Regards and thanks for your efforts,

/Robert

I think there is a rea

> **···**
>
> –  
> Robert Feldt

---

<div class="post-metadata">

**Author:** ![Eric\_Hodel1](https://avatars.discourse-cdn.com/v4/letter/e/a9adbd/32.png) [@Eric\_Hodel1](https://rubytalk.org/u/Eric_Hodel1)\
**Post date:** [11 September 2003 18:50 UTC](https://rubytalk.org/t/webrick-and-ruby/7820/12 "2003-09-11T18:50:00Z")

</div>

> Eric Hodel [drbrain@segment7.net](mailto:drbrain@segment7.net) skrev den Wed, 10 Sep 2003 15:42:46 -0700:
> 
> > Wait until after RubyConf, I’ll have a much better framework written by  
> > then.
> 
> Framework as in “borges will by then be a better/more mature framework for  
> this”  
> or as in “I will have written a framework like phpbb2 in borges”?

The former.

> Anyway, please share as soon as you have something to show. I need  
> to set up a community site and am contemplating wether to use phpbb2  
> or do something myself with webrick + amrita or borges.

If its time critical, by all means use phpbb2 or something else, I’m not  
certain how well Borges will scale. The one thing I do know is  
writing a Borges app is much easier and faster than a CGI app.

> **···**
>
> Robert Feldt (feldt@ce.chalmers.se) wrote:
> 
> –  
> Eric Hodel - [drbrain@segment7.net](mailto:drbrain@segment7.net) - [http://segment7.net](http://segment7.net)  
> All messages signed with fingerprint:  
> FEC2 57F1 D465 EB15 5D6E 7C11 332A 551C 796C 9F04
