[#52047] ruby-talk separation, part II — " JamesBritt" <james@...>

32 messages 2002/10/01
[#52099] Re: ruby-talk separation, part II — Holden Glova <dsafari@...> 2002/10/01

-----BEGIN PGP SIGNED MESSAGE-----

[#52111] Re: ruby-talk separation, part II — "Bulat Ziganshin" <bulatz@...> 2002/10/01

[#52118] Re: ruby-talk separation, part II — Jim Freeze <jim@...> 2002/10/01

On Tue, Oct 01, 2002 at 09:03:44PM +0900, Bulat Ziganshin wrote:

[#52167] Re: ruby-talk separation, part II — Sean Chittenden <sean@...> 2002/10/01

FreeBSD's got a decent setup. Few additions to the list here:

[#52245] Compiling stuff under Windows: list of problems — "Gavin Sinclair" <gsinclair@...>

I don't want my tortuous experience of trying to get things working under this

13 messages 2002/10/02

[#52259] bugs — "Kontra, Gergely" <kgergely@...>

Hi!

26 messages 2002/10/02
[#52261] Re: bugs — nobu.nokada@... 2002/10/02

Hi,

[#52269] Re: bugs — "Stathy G. Touloumis" <stathy.touloumis@...> 2002/10/02

[#52300] Can soneone tell me what I'm doing wrong... — Jeremy Gregorio <gunvalk@...>

I'm trying to write a little script to rename my mp3s I started with this:

15 messages 2002/10/02

[#52391] CRuby (Was: R) — Nikodemus Siivola <tsiivola@...>

CRuby = subset of Ruby + typed methods + compiler to C

28 messages 2002/10/03
[#52395] Re: CRuby (Was: R) — Anders Bengtsson <ndrsbngtssn@...> 2002/10/03

Nikodemus Siivola wrote:

[#52400] Re: CRuby (Was: R) — Michael Campbell <michael_s_campbell@...> 2002/10/03

[#52402] Re: CRuby (Was: R) — Anders Bengtsson <ndrsbngtssn@...> 2002/10/03

Michael Campbell wrote:

[#52436] Specifying local and external block parameters (that old chestnut) — "Gavin Sinclair" <gsinclair@...>

I've cannibalised discussion from the "Bugs" thread. I hope it is a service to

49 messages 2002/10/04
[#52440] Re: Specifying local and external block parameters (that old chestnut) — matz@... (Yukihiro Matsumoto) 2002/10/04

Hi,

[#52610] Re: Specifying local and external block parameters (that old chestnut) — "MikkelFJ" <mikkelfj-anti-spam@...> 2002/10/06

[#52612] Re: Specifying local and external block parameters (that old chestnut) — ts <decoux@...> 2002/10/06

>>>>> "M" == MikkelFJ <mikkelfj-anti-spam@bigfoot.com> writes:

[#52557] Speed of Ruby/modruby vs PHP — Jim Freeze <jim@...>

Hi:

27 messages 2002/10/05
[#52598] Re: Speed of Ruby/modruby vs PHP — "MikkelFJ" <mikkelfj-anti-spam@...> 2002/10/06

[#52600] Re: Speed of Ruby/modruby vs PHP — Jim Freeze <jim@...> 2002/10/06

On Sun, Oct 06, 2002 at 08:50:48PM +0900, MikkelFJ wrote:

[#52601] Re: Speed of Ruby/modruby vs PHP — MoonWolf <moonwolf@...> 2002/10/06

> How do I configure mod_ruby to run with a cached script?

[#52628] Re: Speed of Ruby/modruby vs PHP — Jim Freeze <jim@...> 2002/10/06

Ok, here is how I understand this.

[#52636] Re: Speed of Ruby/modruby vs PHP — Jim Freeze <jim@...> 2002/10/06

On Sun, Oct 06, 2002 at 05:07:25PM -0400, Jim Freeze wrote:

[#52581] Platform again — Friedrich Dominicus <frido@...>

Well I ask again. On what platforms are you using ruby most of the

36 messages 2002/10/06

[#52602] Another take on ensuring right args to methods — Massimiliano Mirra <list@...>

11 messages 2002/10/06

[#52653] webforms — "Kontra, Gergely" <kgergely@...>

Hi!

19 messages 2002/10/07

[#52669] Things That Newcomers to Ruby Should Know — billtj@... (Bill Tj)

Hi,

59 messages 2002/10/07
[#52805] Re: Things That Newcomers to Ruby Should Know — "Bulat Ziganshin" <bulatz@...> 2002/10/09

Hello Bill,

[#52982] Re: Things That Newcomers to Ruby Should Know — "Kontra, Gergely" <kgergely@...> 2002/10/11

>3) 'x+=b', 'x*=b' and other assignment operators is internally translated

[#52727] block vars (some theory) — "Bulat Ziganshin" <bulatz@...>

Hello all,

37 messages 2002/10/08
[#52728] Re: block vars (some theory) — ts <decoux@...> 2002/10/08

>>>>> "B" == Bulat Ziganshin <bulatz@integ.ru> writes:

[#52806] strange Hash default behaviour — John Tromp <tromp@...>

I wrote a ruby program to read a list of graph edges and produce

16 messages 2002/10/09

[#52823] CGI sessions without cookies? — Stefan Scholl <stefan.scholl@...>

I haven't tried sessions, yet. But I'm curious if you can work

17 messages 2002/10/09

[#52848] Polymorphism, Isomorphism — ptkwt@...1.aracnet.com (Phil Tomson)

Consider this a bit of public pondering...

21 messages 2002/10/09

[#53045] Sorting — warren@... (Warren Brian Noronha)

dear developer,

31 messages 2002/10/12
[#53048] Re: Sorting — dblack@... 2002/10/12

Hello --

[#53082] Re: Sorting — "Mike Campbell" <michael_s_campbell@...> 2002/10/13

> I think almost anything is a better name than CRAN, as that (to me)

[#53083] Re: Sorting — dblack@... 2002/10/13

Hello --

[#53093] Re: Sorting — "Gavin Sinclair" <gsinclair@...> 2002/10/13

[#53109] Re: Sorting — "Mike Campbell" <michael_s_campbell@...> 2002/10/13

> Just a thought: why *not* copy CPAN? It's pretty good, isn't it?

[#53183] final in ruby — "Kontra, Gergely" <kgergely@...>

Hi!

21 messages 2002/10/14

[#53230] Please check my algorithm — Vincent Foley <vinfoley@...>

Hi, I found a nice programming challenge:

12 messages 2002/10/14

[#53278] ruby-dev summary 18458-18504 — TAKAHASHI Masayoshi <maki@...>

Hi all,

16 messages 2002/10/15

[#53285] Psyco — Travis Whitton <whitton@...>

There's an interesting article on IBM developerWorks about a new program

18 messages 2002/10/16

[#53297] Interfaces in Ruby — web2ed@... (Edward Wilson)

Is there a way to write/inforce interfaces in Ruby like one can using

44 messages 2002/10/16
[#53300] Re: Interfaces in Ruby — Chris Gehlker <canyonrat@...> 2002/10/16

[#53334] Re: Interfaces in Ruby — Paul Brannan <pbrannan@...> 2002/10/16

On Wed, Oct 16, 2002 at 01:30:04PM +0900, Chris Gehlker wrote:

[#53409] Re: Interfaces in Ruby — web2ed@... (Edward Wilson) 2002/10/17

>http://rm-f.net/~cout/code/ruby/treasures/RubyTreasures-0.3/lib/hacks/interface.rb.html

[#53470] Re: Interfaces in Ruby — Paul Brannan <pbrannan@...> 2002/10/17

On Thu, Oct 17, 2002 at 01:25:57PM +0900, Edward Wilson wrote:

[#53514] Re: Interfaces in Ruby — Massimiliano Mirra <list@...> 2002/10/18

On Fri, Oct 18, 2002 at 12:16:30AM +0900, Paul Brannan wrote:

[#53359] Things That Newcomers to Ruby Should Know (10/16/02) — William Djaja Tjokroaminata <billtj@...>

Hi,

29 messages 2002/10/16
[#53774] Re: Things That Newcomers to Ruby Should Know (10/16/02) — "Hal E. Fulton" <hal9000@...> 2002/10/22

----- Original Message -----

[#53556] Help wanted with an experimental FAQ facility — Dave Thomas <Dave@...>

24 messages 2002/10/18

[#53626] XMLParser, NQXML, REXML, ... — Armin Roehrl <armin@...>

Hi XML-freaks,

23 messages 2002/10/20
[#53897] Re: XMLParser, NQXML, REXML, ... — Sean Chittenden <sean@...> 2002/10/23

> Hi XML-freaks,

[#53902] Ruby.bah! (was Re: XMLParser, NQXML... and also RAA.succ) — Austin Ziegler <austin@...> 2002/10/23

On Wed, 23 Oct 2002 13:01:59 +0900, Sean Chittenden wrote:

[#53904] Re: Ruby.bah! (was Re: XMLParser, NQXML... and also RAA.succ) — Sean Chittenden <sean@...> 2002/10/23

> > Markus and I are working on rubydoc which is now able to

[#53911] Re: Ruby.bah! (was Re: XMLParser, NQXML... and also RAA.succ) — Austin Ziegler <austin@...> 2002/10/23

On Wed, 23 Oct 2002 14:07:46 +0900, Sean Chittenden wrote:

[#53652] RAA.succ? — ptkwt@...1.aracnet.com (Phil Tomson)

I hope there will be some discussion of RAA.succ (or is it RAA.next) at

78 messages 2002/10/21
[#53654] Re: RAA.succ? — nobu.nokada@... 2002/10/21

Hi,

[#53669] Re: RAA.succ? — "NAKAMURA, Hiroshi" <nahi@...> 2002/10/21

Hi,

[#54022] RAA replaced — "NAKAMURA, Hiroshi" <nahi@...> 2002/10/24

Hi,

[#53914] Re: RAA.succ? (rpkg vs rubynet) — ptkwt@...1.aracnet.com (Phil Tomson) 2002/10/23

In article <20021023041621.GC48080@perrin.int.nxad.com>,

[#53688] functional Ruby equiv to this perl snippet — bobx@... (Bob)

# parses a text file looking for server names and ignoring lines

29 messages 2002/10/21
[#53694] Re: functional Ruby equiv to this perl snippet — Austin Ziegler <austin@...> 2002/10/21

def load_server_list

[#53696] Re: functional Ruby equiv to this perl snippet — Austin Ziegler <austin@...> 2002/10/21

I realised that my first test wasn't good for non-empty but blank

[#53718] Re: functional Ruby equiv to this perl snippet — "Bob X" <bobx@...> 2002/10/21

"Austin Ziegler" <austin@halostatue.ca> wrote in message

[#53703] rb_gc_register_address problem — Paul Brannan <pbrannan@...>

We ran into a problem today with the garbage collector (caused by our

28 messages 2002/10/21

[#53771] Perl multiple match RE in Ruby? — michael libby <x@...>

-----BEGIN PGP SIGNED MESSAGE-----

14 messages 2002/10/22

[#53865] XMLRPC and IP authentication — Daniel Berger <djberge@...>

Hi all,

13 messages 2002/10/22

[#53884] SQLite — "Bob X" <bobx@...>

Anyone working on a Ruby interface for SQLite?

109 messages 2002/10/23
[#53894] Re: SQLite — Austin Ziegler <austin@...> 2002/10/23

On Wed, 23 Oct 2002 10:38:31 +0900, Bob X wrote:

[#54714] Thoughts on Ruby — Enric Lafont <enric@1smart.com> 2002/11/03

Hi all,

[#54724] Re: Thoughts on Ruby — Albert Wagner <alwagner@...> 2002/11/03

On Saturday 02 November 2002 7:57 pm, Enric Lafont wrote:

[#54725] Re: Thoughts on Ruby — Austin Ziegler <austin@...> 2002/11/03

On Sun, 3 Nov 2002 10:57:29 +0900, Enric Lafont wrote:

[#54784] Re: Thoughts on Ruby — Enric Lafont <enric@1smart.com> 2002/11/03

Austin Ziegler wrote:

[#54802] Re: Thoughts on Ruby — Austin Ziegler <austin@...> 2002/11/03

On Mon, 4 Nov 2002 06:44:46 +0900, Enric Lafont wrote:

[#54826] Re: Thoughts on Ruby — "Gavin Sinclair" <gsinclair@...> 2002/11/04

From: "Enric Lafont" <enric@1smart.com>

[#54903] Re: Thoughts on Ruby — Brian Candler <B.Candler@...> 2002/11/05

On Mon, Nov 04, 2002 at 10:02:12PM +0900, Gavin Sinclair wrote:

[#54920] Re: Thoughts on Ruby — Austin Ziegler <austin@...> 2002/11/05

On Tue, 5 Nov 2002 20:18:47 +0900, Brian Candler wrote:

[#54927] Re: Thoughts on Ruby lack of IDE — Brad Cox <bcox@...> 2002/11/05

It is a sign of my hybrid Objective-C background, no doubt, but I

[#54929] Re: Thoughts on Ruby lack of IDE — "Curt Hibbs" <curt@...> 2002/11/05

Brad Cox wrote:

[#55322] FreeRIDE and FUI ?? (was: Re: Thoughts on Ruby lack of IDE) — "Rich" <rich@...> 2002/11/08

> > >

[#55346] Re: FreeRIDE and FUI ?? (was: Re: Thoughts on Ruby lack of IDE) — "Rich Kilmer" <rich@...> 2002/11/09

> -----Original Message-----

[#53953] Re: Things That Newcomers to Ruby Should Know (10/16/02) — "Mills Thomas (app1tam)" <app1tam@...>

But why does it really, REALLY mean that? Was there a reason for doing

13 messages 2002/10/23

[#53957] NODE tree introspection — Simon Cozens <simon@...>

13 messages 2002/10/23

[#53983] Re: Things That Newcomers to Ruby Should Know (10/16/02) — "Mills Thomas (app1tam)" <app1tam@...>

Actually, the way you describe '+=' makes sense to me. It is what I would

17 messages 2002/10/23
[#54001] Re: Things That Newcomers to Ruby Should Know (10/16/02) — William Djaja Tjokroaminata <billtj@...> 2002/10/23

Hi,

[#54012] Re: Things That Newcomers to Ruby Should Know (10/16/02) — dblack@... 2002/10/24

Hi --

[#54111] How come true, false don't support <=> (comparison) operator? — cilibrar@... (Rudi Cilibrasi)

I am wondering if there is a good reason why Ruby does not by default

24 messages 2002/10/25
[#54112] Re: How come true, false don't support <=> (comparison) operator? — dblack@... 2002/10/25

Hello --

[#54139] Re: How come true, false don't support <=> (comparison) operator? — ptkwt@...1.aracnet.com (Phil Tomson) 2002/10/25

In article <Pine.LNX.4.44.0210250754010.2650-100000@candle.superlink.net>,

[#54156] Re: How come true, false don't support <=> (comparison) operator? — dblack@... 2002/10/25

Hi --

[#54239] Snippet request: Ruby Web Server written in under an hour — Phlip <phlipcpp@...>

Rubies:

37 messages 2002/10/28
[#54328] Snippet: Tiny Featureless Ruby Web Server — Phlip <phlipcpp@...> 2002/10/29

Rubies:

[#54339] method-call style (was Re: Snippet: Tiny Featureless Ruby Web Server) — dblack@... 2002/10/29

Hi --

[#54517] Re: method-call style (was Re: Snippet: Tiny Featureless Ruby Web Server) — William Djaja Tjokroaminata <billtj@...> 2002/10/30

Bulat Ziganshin <bulatz@integ.ru> wrote:

[#54519] Re: method-call style (was Re: Snippet: Tiny Featureless Ruby Web Server) — dblack@... 2002/10/30

Hi --

[#54525] Re: method-call style (was Re: Snippet: Tiny Featureless Ruby Web Server) — William Djaja Tjokroaminata <billtj@...> 2002/10/30

dblack@candle.superlink.net wrote:

[#54527] Re: method-call style (was Re: Snippet: Tiny Featureless Ruby Web Server) — dblack@... 2002/10/30

Hi --

[#54280] exerb & fox-problem; converting gui-script to .exe on windows — Armin Roehrl <armin@...>

Hi,

12 messages 2002/10/28

[#54354] good link to read as we contemplate RAA, RAA.succ, et al — Pat Eyler <pate@...>

http://www.onlamp.com/pub/wlg/2225

28 messages 2002/10/29
[#54356] Re: good link to read as we contemplate RAA, RAA.succ, et al — dblack@... 2002/10/29

Hi --

[#54385] Re: good link to read as we contemplate RAA, RAA.succ, et al — " JamesBritt" <james@...> 2002/10/29

> Interesting. Simon (hi Simon!) is probably right that "Definitive

[#54421] want to meet Microsoft .NET guy? — matz@... (Yukihiro Matsumoto)

Hi,

17 messages 2002/10/30

[#54449] feature idea: custom literals — loats205@... (loats205)

wouldn't it be cool if you could define custom literal representations for your

30 messages 2002/10/30
[#54459] Re: feature idea: custom literals — Peter Hickman <peter@...> 2002/10/30

loats205 wrote:

[#54476] Re: feature idea: custom literals — Nikodemus Siivola <tsiivola@...> 2002/10/30

Re: CGI sessions as threads?

From: avi@...4.com (Avi Bryant)
Date: 2002-10-06 19:31:23 UTC
List: ruby-talk #52624
Brian Candler <B.Candler@pobox.com> wrote in message news:<20021006110515.A13624@uk.tiscali.com>...
> Hello,
> 
> One of the things which interests me most about Ruby is its built-in
> threading capability.
> 
> In particular, I would like to know if anyone has written a library which
> allows CGI sessions to be modelled as threads? This would make it extremely
> easy to write interactive CGI applications, as the thread would only see
> exchanges between itself and its one client.

Brian,

I've done a lot of work on and with libraries very much like what you
describe. My talk at RubyConf, in fact, will be on exactly this
approach.  Most of my work has been in Smalltalk, although I did spend
some time this summer porting the basic ideas to Ruby; I'll be
updating that port before my talk. If anyone is interested in taking a
look at it, email me, but if you can wait until November it will be in
much better shape.

A few comments:

> For example, you might start writing a simple login screen like this:
> 
> ----------------------------------------------------------------------------
> retries = 0
> 
> begin
>   show 'login_page.htm'
>   u = wait_response
>   retries+=1
> end while retries < 3 && u.username!='brian' && u.password!='mypass'

The explicit wait_response in unnecessary - this can just be

begin
  u = show 'login_page.htm'
  retries += 1
end while retries < 3 && u.username!='brian' && u.password!='mypass'
 
> wait_response blocks until the next CGI request (HTTP post) which is
> associated with this particular thread arrives. It also commits suicide if
> no response is received within an idle timeout period.
<snip>
> Perhaps for safety, the 'show' function should set a different cookie every
> time, to ensure that the user cannot press 'back' multiple times and then
> submit an out-of-sequence form - or else the server thread should have the
> option of handling this case itself.

Yes, exactly, although you need to encode this in the URL, not in a
cookie, so that you can actually detect which page the user
backtracked to.  What I've found works best is this:

- by default, if the user backtracks (or clones the browser window, or
whatever), everything keeps working as before.  If the user submits a
form multiple times, *that call to show() simply returns multiple
times*, and the thread proceeds from there.  This is easy to do with
ruby's callcc function, and is really what makes the whole approach so
cool.

- some times that's not appropiate; for that, you need to be able to
set up "transactions" in the thread.  For example, a piece of a
shopping cart app might look like

cart = confirm_cart_contents
cc = ask_for_credit_card
process_payment(cart, cc)
show_thankyou_page

You don't want a user to hit the back button and change the cart
contents once the credit card has gone through!  So you have something
like this:

session.isolate do
  cart = confirm_cart_contents
  cc = ask_for_credit_card
  process_payment(cart, cc)
end
show_thankyou_page

While inside the "isolate" block, backtracking works normally (they
can, for example, go back and change the cart).  As soon as the
"isolate" block ends, all of those pages immediately "expire", in that
attempts to click any links or submit any forms from them will result
in a redirect back to the thankyou page.
 
> Anyway, it seems to me that this ought to be fairly straightforward to
> implement, so has anybody done this already? I have a lot of Ruby learning
> to do before I would attempt it myself :-)

The core is indeed very straightforward to implement; it's probably
about 40 lines of code.  What's fun is all the great stuff you can
build on top once you have this basic facility...

Incidentally, as others have pointed out, this won't work as straight
CGI; the expirements I've done in Ruby use WEBrick, but FastCGI would
also work.

Cheers,
Avi

In This Thread