[#362083] Teaching Programming Languages (including Ruby) — Samuel Williams <space.ship.traveller@...>

Hello,

20 messages 2010/05/02

[#362098] Main working window for Ruby is DOS? — Kaye Ng <sbstn26@...>

I know nothing about programming and am not a techy person, so please

16 messages 2010/05/03

[#362116] School teacher still at it learning programming language — Hilary Bailey <my77elephants@...>

Now I while glimpsing at the beauty of Ruby, there is the software of

11 messages 2010/05/03

[#362166] Something I expected to work, but didn't! — Kurtis Rainbolt-greene <kurtisrainboltgreene@...>

irb(main):001:0> x = 2

11 messages 2010/05/04

[#362215] for-in vs. map closures — Mike Austin <mike_ekim@...>

I was experimenting with closures and JavaScript's and Ruby's

11 messages 2010/05/05

[#362286] ri on sqlite — Intransition <transfire@...>

What do others think of a creating a new ri tool which uses a SQLite

17 messages 2010/05/06

[#362341] ease of porting (translating) ruby to C (vs. python)? — bwv549 <jtprince@...>

In a very small bioinformatics group I know of, they are deciding

17 messages 2010/05/07

[#362375] Strings iteration — Viorel <viorelvladu@...>

I have some names like aaxxbbyy where xx is '01'..'10' and yy is also

14 messages 2010/05/08

[#362425] Any future for curses applications/toolkits like rbcurse ? — "R. Kumar" <sentinel.2001@...>

Have apps moved over to the web (or GUI) totally ? Will there be any

21 messages 2010/05/10
[#362441] Re: Any future for curses applications/toolkits like rbcurse ? — botp <botpena@...> 2010/05/10

On Mon, May 10, 2010 at 2:13 PM, R. Kumar <sentinel.2001@gmx.com> wrote:

[#362448] Re: Any future for curses applications/toolkits like rbcurse ? — "R. Kumar" <sentinel.2001@...> 2010/05/10

interface and/or the installation itself is terrible.

[#362458] Re: Any future for curses applications/toolkits like rbcurse ? — botp <botpena@...> 2010/05/10

On Mon, May 10, 2010 at 10:28 PM, R. Kumar <sentinel.2001@gmx.com> wrote:

[#362460] Re: Any future for curses applications/toolkits like rbcurse ? — "R. Kumar" <sentinel.2001@...> 2010/05/10

botp wrote:

[#362463] Re: Any future for curses applications/toolkits like rbcurse ? — "R. Kumar" <sentinel.2001@...> 2010/05/10

Strange. I cant push a gem even after yanking.

[#362452] Unit Test of method calling system() - how? — Martin Hansen <mail@...>

How can I unit test the two methods:

16 messages 2010/05/10

[#362498] In Ruby, can the coerce() method know what operator it is th — Jian Lin <blueskybreeze@...>

In Ruby, it seems that a lot of coerce() help can be done by

12 messages 2010/05/11
[#362546] Re: In Ruby, can the coerce() method know what operator it is th — Caleb Clausen <vikkous@...> 2010/05/11

On 5/10/10, Jian Lin <blueskybreeze@gmail.com> wrote:

[#362611] Re: In Ruby, can the coerce() method know what operator it is th — Colin Bartlett <colinb2r@...> 2010/05/12

On Tue, May 11, 2010 at 4:46 PM, Caleb Clausen <vikkous@gmail.com> wrote:

[#362657] Asynchronous HTTP request — Daniel DeLorme <dan-ml@...42.com>

Does anyone know how to do the following, but without threads, purely

28 messages 2010/05/13

[#362718] Range on strings. — Vikrant Chaudhary <nasa42@...>

Hi,

13 messages 2010/05/14

[#362787] class best way for getters ? — unbewusst.sein@... (Une B騅ue)

i have a class "HFSFile" initialized by a parsed string

12 messages 2010/05/15

[#362979] curl library? — Xeno Campanoli / Eskimo North and Gmail <xeno.campanoli@...>

Two questions:

14 messages 2010/05/18
[#362980] Re: curl library? — Xeno Campanoli / Eskimo North and Gmail <xeno.campanoli@...> 2010/05/18

On 10-05-18 02:35 PM, Xeno Campanoli / Eskimo North and Gmail wrote:

[#362982] Re: curl library? — Luis Parravicini <lparravi@...> 2010/05/18

On Tue, May 18, 2010 at 6:56 PM, Xeno Campanoli / Eskimo North and

[#362984] Re: curl library? — Xeno Campanoli / Eskimo North and Gmail <xeno.campanoli@...> 2010/05/18

Well, I got that -dev thing installed with apt-get, and then I tried again and

[#363027] Retrieve instance — Walle Wallen <walle.sthlm@...>

Quick question. Can I somehow retrieve the instance of the class Test in

11 messages 2010/05/19

[#363076] Scrape javascript content — Phil Mcdonnell <phil.a.mcdonnell@...>

I'm trying to scrape a page that hides some data behind a javascript

11 messages 2010/05/20

[#363115] OMG, why are there so many Strings in ObjectSpace! — timr <timrandg@...>

I was playing around looking at ObjectSpace in irb and was astounded

14 messages 2010/05/21

[#363225] Redefine a Class? — Mark T <paradisaeidae@...>

Currently this raises: superclass mismatch for class Soda (TypeError)

12 messages 2010/05/25

[#363240] Funny IO.select behaviour — Dennis Nedry <dennis@...>

I've been debugging my full screen console ruby editor.

13 messages 2010/05/25

[#363348] Ruby as Client Side Language in Web Browser (replacing JS) — "Simone R." <k5mmx@...>

Hi everybody,

17 messages 2010/05/27

[#363412] A better way to write this function? — Jason Lillywhite <jason.lillywhite@...>

Here is my attempt at Newton's second law in Ruby:

14 messages 2010/05/28

[#363417] Interrupting the evaluation of a ruby script — Emmanuel Emmanuel <emmanuel.bacry@...>

This is my problem :

12 messages 2010/05/28
[#363447] Re: Interrupting the evaluation of a ruby script — Branden Tanga <branden.tanga@...> 2010/05/28

Emmanuel Emmanuel wrote:

[#363483] Re: Interrupting the evaluation of a ruby script — Emmanuel Emmanuel <emmanuel.bacry@...> 2010/05/29

[#363426] A complete beginners question — Ant Walliams <anthonywainwright@...>

Hi there,

19 messages 2010/05/28

[#363432] Dynamic SVG with Ruby/Tk — Yotta Meter <spam@...>

The example I'm looking for in regards to ruby/SVG differs from the

14 messages 2010/05/28

[#363467] Date.today problem on linux with Ruby 1.8.6 — Jarmo Pertman <jarmo.p@...>

Hello.

10 messages 2010/05/29

[#363524] enumerator problem in 1.9.1 — Bug Free <amberarrow@...>

The following line:

19 messages 2010/05/31
[#363528] Re: enumerator problem in 1.9.1 — botp <botpena@...> 2010/05/31

On Mon, May 31, 2010 at 9:04 AM, Bug Free <amberarrow@yahoo.com> wrote:

[#363533] Re: enumerator problem in 1.9.1 — Robert Klemme <shortcutter@...> 2010/05/31

2010/5/31 botp <botpena@gmail.com>:

Re: Asynchronous HTTP request

From: Daniel N <has.sox@...>
Date: 2010-05-19 02:54:11 UTC
List: ruby-talk #362999
On 19 May 2010 11:56, Daniel DeLorme <dan-ml@dan42.com> wrote:

> Daniel N wrote:
>
>> On 18 May 2010 16:56, Daniel DeLorme <dan-ml@dan42.com> wrote:
>>
>>  Daniel N wrote:
>>>
>>>  On 13 May 2010 17:37, Daniel DeLorme <dan-ml@dan42.com> wrote:
>>>>
>>>>  Does anyone know how to do the following, but without threads, purely
>>>>
>>>>> with
>>>>> asynchronous IO?
>>>>>
>>>>> website = Thread.new{ Net::HTTP.get(URI.parse(url)) }
>>>>> template = compute_lots_of_stuff()
>>>>> puts template.sub("<content goes here>", website.value)
>>>>>
>>>>>  Event machine is perfect for this kind of stuff.  Weather it fits with
>>>> the
>>>> rest of your web framework is more likely the thing that makes it an
>>>> unlikely selection (if you're using anything rack based for example)
>>>>
>>>>  If you could show me how to use EventMachine in this case I'd be
>>> grateful.
>>> I couldn't figure out how to run compute_lots_of_stuff() while the http
>>> requests are executing.
>>>
>>>
>> What context are you trying to do this in?  Is it inside a rack request
>> (rails / merb / sinatra /pancake / other)?  or is this in a stand alone
>> script?
>>
>> Could you perhaps provide a bit of context for what you're trying to
>> achive?
>>
>
> Ok, here's the context. I didn't put this in my OP because I figured
> it would just bore everybody to tears.
>
> This is inside a rack request. The idea is that I'm assembling a web
> page by doing a bunch of sub-requests for the various parts of the
> page. So I'll have something like:
>
>  action "index" do
>    @news = subreq("http://news.server")
>    @ad = subreq("http://ad.server")
>    @blog = subreq("http://blog.server")
>    @forum = subreq("http://forum.server")
>  end
>
> All these sub-requests are launched asynchronously and, while they are
> executing, the app generates the layout within which the output of the
> subrequests will be embedded. So I'll have something like:
>
>  response = ['<html><body>',
>    '<div>',@ad,'</div>',
>    '<div>',@news,'</div>',
>    '<div>',@blog,'</div>',
>    '<div>',@forum,'</div>',
>    '</body></html>']
>
> And when rack finally outputs the response to the client it will block
> on the various subrequests unless/until they have completed.
>
> What I can't figure out with EventMachine is how to have the "main
> thread" generate the layout while the subrequests are executing.
>
>
Ok now we're talking.  So with rack you can't do true async with a callback.
 Rack is callstack based, meaning that you have to return the value as the
response the the .call method on your application.  This means that any
callback based async actually needs to block in order for the rack
application you're in to return it's result.  You _could_ do it by returning
a custom object in the rack response that renders as much as possible while
it waits for the response, and then renders that when it can, but that
option may not be available depending on what framework you're using.

There are a couple of other things that could help you here that immediately
come to mind.

You can use http://github.com/pauldix/typhoeus which can fetch all the
resources in parallell, and then block until all the responses come in.
 This is probably going to be relatively easy to implement, and means that
the total request time for the resources is only very slightly higher than
the longest single response.

You can use ESI.  There's an esi for rack project on github by Joshua Hull
which could be useful to you.  http://github.com/joshbuddy/esi-for-rack You
can also use esi outside of the rack request in apache or nginx, by
responding first with a layout file containing esi tags pointing to the
content to use.  Ngins, Apache or the esi rack project can then assemble the
page for you using the resources specified.

Alternatively if you're not married to hard to rack, you can take a look at
something like cramp, or node.js for a true async server environment.

HTH
Daniel

In This Thread