[#96321] parent of TrueClass, FalseClass — "Ara.T.Howard" <Ara.T.Howard@...>

19 messages 2004/04/01
[#96356] Re: parent of TrueClass, FalseClass — matz@... (Yukihiro Matsumoto) 2004/04/02

Hi,

[#96404] Variable names — David King Landrith <dlandrith@...>

About a year ago, I wrote a simple type enforcement library that adds a

33 messages 2004/04/02
[#96406] Re: Variable names — ts <decoux@...> 2004/04/02

>>>>> "D" == David King Landrith <dlandrith@mac.com> writes:

[#96424] Re: Variable names — David King Landrith <dlandrith@...> 2004/04/02

[#96430] Re: Variable names — Dan Doel <djd15@...> 2004/04/02

On Friday 02 April 2004 2:43 pm, David King Landrith wrote:

[#96432] Re: Variable names — David King Landrith <dlandrith@...> 2004/04/02

On Apr 2, 2004, at 3:51 PM, Dan Doel wrote:

[#96447] Learning Ruby, was a C geek... — Nicholas Paul Johnson <nickjohnson@...>

Hello all,

17 messages 2004/04/02

[#96634] Where does the name Rite come from? — Michael Neumann <mneumann@...>

Hi,

15 messages 2004/04/06
[#96642] Re: Where does the name Rite come from? — matz@... (Yukihiro Matsumoto) 2004/04/06

Hi,

[#96652] Re: Where does the name Rite come from? — Eric Hodel <drbrain@...7.net> 2004/04/06

Yukihiro Matsumoto (matz@ruby-lang.org) wrote:

[#96697] Idea: Simplified GTK — Hal Fulton <hal9000@...>

Here's an idea. I've begun implementing it.

74 messages 2004/04/07
[#96699] Re: Idea: Simplified GTK — Chad Fowler <chad@...> 2004/04/07

[#96876] RedCloth bug and suggestion — Jim Menard <jimm@...>

_why_ and fellow RedCloth users,

15 messages 2004/04/09

[#96877] Instiki 0.3.0: Before the Storm — David Heinemeier Hansson <david@...>

What's new in Instiki 0.3.0?

12 messages 2004/04/09

[#97020] test / unit question: facility to mark some tests as "missing" or "incomplete" — "Its Me" <itsme213@...>

I often find myself with some unit tests that run, and several more test

14 messages 2004/04/12

[#97077] Instiki 0.5.0: Getting Serious — David Heinemeier Hansson <david@...>

What's new in Instiki 0.5.0?

16 messages 2004/04/13

[#97083] New Ruby questions... — Jeff Massung <jma@...>

I've just started Ruby a couple days ago (man this is cool). Coming from

14 messages 2004/04/13

[#97109] New Local Variable Scope rule — "Shashank Date" <sdate@...>

In one of Matz's slides at RubyConf ,

33 messages 2004/04/14

[#97134] BlueCloth: a Markdown implementation for Ruby — Michael Granger <ged@...>

Hi all,

17 messages 2004/04/14

[#97201] File locking, portably? — Hugh Sasse Staff Elec Eng <hgs@...>

Searching the web and books for information on this, I can't seem to

12 messages 2004/04/14

[#97277] Hash, ==, key-value comparison — walter@...

Ok,

20 messages 2004/04/15

[#97308] Instiki 0.6.0: Feeds, Exports, Safety, and Compatibility — David Heinemeier Hansson <david@...>

What's new in Instiki 0.6.0?

14 messages 2004/04/15

[#97351] "bad file descriptor" in Win32 DLL — "Christian Kaiser" <chk@...>

Using Ruby 1.81, the DLL (msvcrt-ruby18.dll) sometimes raises an exception

14 messages 2004/04/16

[#97363] BlueCloth 0.0.2 (beta) — Michael Granger <ged@...>

Hi,

18 messages 2004/04/16
[#97399] BlueCloth on Instiki (was Re: [ANN] BlueCloth 0.0.2 (beta)) — David Heinemeier Hansson <david@...> 2004/04/16

> Thanks to all of you that have offered your suggestions and code. I

[#97405] RubyConf 2004 — Ian Macdonald <ian@...>

Hello,

46 messages 2004/04/17
[#97409] Re: RubyConf 2004 — Chad Fowler <chad@...> 2004/04/17

[#97460] Re: RubyConf 2004 — Paul Duncan <pabs@...> 2004/04/17

* Chad Fowler (chad@chadfowler.com) wrote:

[#97465] Re: RubyConf 2004 — Hal Fulton <hal9000@...> 2004/04/17

Paul Duncan wrote:

[#97466] Re: RubyConf 2004 — Chad Fowler <chad@...> 2004/04/17

[#97486] Ruby Installer for Windows 1.8.1-12 — "Curt Hibbs" <curt@...> 2004/04/18

The Ruby Installer 1.8.1-12 for Windows has been released and is now

[#97418] Objects in perl6 (rubyish :) — gabriele renzi <surrender_it@...1.vip.ukl.yahoo.com>

Hi gurus and nubys,

20 messages 2004/04/17

[#97426] $0 is messed up — Simon Strandgaard <neoneye@...>

I have just upgraded to 1.9 16-apr-2004 from 1.9 7-apr-2004.

15 messages 2004/04/17

[#97473] convert yield to proc — Simon Strandgaard <neoneye@...>

How do you guys convert yield to block ?

21 messages 2004/04/18

[#97565] Gateway — "Robert Klemme" <bob.news@...>

34 messages 2004/04/19

[#97628] Instiki 0.7.0: Flavors of Expression — David Heinemeier Hansson <david@...>

What's new in Instiki 0.7.0?

15 messages 2004/04/19

[#97631] proposal: call_up() for use in redefined methods — Mark Hubbart <discord@...>

Hi all,

18 messages 2004/04/19

[#97640] Fox --> GTK ? — Hal Fulton <hal9000@...>

Who has experience converting Fox to GTK and might like to

29 messages 2004/04/19

[#97705] The quest for opensource database... — "Ruby Tuesdays" <NoSpamPlease_rubytuzdaiz@...>

Perhaps you database guru able to suggest what would be a good choice for

35 messages 2004/04/20

[#97743] Setting up a wiki when you don't have root — ptkwt@... (Phil Tomson)

12 messages 2004/04/20

[#97785] Creating bang methods — "Jon Hurst" <jon@...>

(newbie) I can't for my life figure out how to create bang methods. Please

20 messages 2004/04/21

[#97797] rexml: how to get element type? — "Its Me" <itsme213@...>

doc = REXML::Document.new <<EOF

14 messages 2004/04/21

[#97808] binding - how to get current script? — Szymon Drejewicz <drejewic@...>

18 messages 2004/04/21

[#97866] Is Ruby is better than PHP ... — "Useko Netsumi" <usenets_remote_this@...>

or perhaps Java for developing web application?

46 messages 2004/04/21

[#97873] Re: how to get ri/rdoc working for 1.8.1 on Windows? — "John W. Kennedy" <jwkenne@...>

Part 1 is to chdir \Ruby\bin and delete the five *.bat files

41 messages 2004/04/21
[#97910] Re: how to get ri/rdoc working for 1.8.1 on Windows? — "Its Me" <itsme213@...> 2004/04/21

[#97964] Re: how to get ri/rdoc working for [user-installed libraries] — Gavin Sinclair <gsinclair@...> 2004/04/21

On Thursday, April 22, 2004, 4:44:09 AM, Its wrote:

[#97984] Re: how to get ri/rdoc working for [user-installed libraries] — Dave Thomas <dave@...> 2004/04/22

[#98000] Re: how to get ri/rdoc working for [user-installed libraries] — "Gavin Sinclair" <gsinclair@...> 2004/04/22

>

[#97926] Re: how to get ri/rdoc working for 1.8.1 on Windows? — Lothar Scholz <mailinglists@...> 2004/04/21

Hello John,

[#97936] Re: how to get ri/rdoc working for 1.8.1 on Windows? — Dave Thomas <dave@...> 2004/04/21

[#97971] Re: how to get ri/rdoc working for 1.8.1 on Windows? — Jos Backus <jos@...> 2004/04/21

On Thu, Apr 22, 2004 at 05:50:40AM +0900, Dave Thomas wrote:

[#97985] Re: how to get ri/rdoc working for 1.8.1 on Windows? — Dave Thomas <dave@...> 2004/04/22

[#97997] RedCloth 2.0.7 -- A Textile Humane Web Text Generator — why the lucky stiff <ruby-talk@...>

more and more, you've seen it all before (i swear it's slowin down):

12 messages 2004/04/22
[#98008] Re: [ANN] RedCloth 2.0.7 -- A Textile Humane Web Text Generator — David Heinemeier Hansson <david@...> 2004/04/22

> I've wanted this feature to work right for awhile. It took a rewrite

[#98101] Extract all occurences from a text — Michael Weller <michael@...>

Hi!

11 messages 2004/04/23

[#98135] Problem assigning an Array object to an Array-subclass object — "Richard Lionheart" <NoOne@...>

[ I apologize if this is a second post. My earlier one seems to have gotten

29 messages 2004/04/23

[#98177] Psyco — Jim Moy <web@...>

Interesting stuff for Python, is any work like this being done in Ruby?

14 messages 2004/04/23

[#98181] Playing with sockets... — Hal Fulton <hal9000@...>

I'm writing a little expect-like piece of code and trying to test it

16 messages 2004/04/23

[#98281] String#unpack and null-terminated strings — Michael Neumann <mneumann@...>

Hi,

15 messages 2004/04/24

[#98362] How's ruby compare to it older brother python — "Hunn E. Balsiche" <hunnebal@...>

in term of its OO features, syntax consistencies, ease of use, and their

51 messages 2004/04/26
[#98597] Re: How's ruby compare to it older brother python — "Ken Hilton" <kenosis@...> 2004/04/28

Amen, brother.

[#98778] Re: How's ruby compare to it older brother python — "trevor andrade" <trevor.andrade@...> 2004/04/30

I agree that flaming the question is not appropriate and its also bad for

[#98789] Re: How's ruby compare to it older brother python — Dan Doel <djd15@...> 2004/04/30

I'm not saying the topic isn't appropriate. I don't mind the topic, and I find

[#98365] Introducing myself - Sascha Ebach — Sascha Ebach <se@...>

Hello dear Rubyists,

51 messages 2004/04/26
[#98568] Re: Introducing myself - Sascha Ebach — "Josef 'Jupp' Schugt" <jupp@...> 2004/04/27

Hello from Beethoven's home town,

[#98569] Re: Introducing myself - Sascha Ebach — Sascha Ebach <se@...> 2004/04/27

Hello Jupp

[#98570] Re: Introducing myself - Sascha Ebach — Simon Strandgaard <neoneye@...> 2004/04/27

Sascha Ebach <se@hexatex.de> wrote:

[#98753] Re: Introducing myself - Sascha Ebach — "Josef 'Jupp' Schugt" <jupp@...> 2004/04/29

Simon Strandgaard wrote:

[#98762] Re: Introducing myself - Sascha Ebach — Simon Strandgaard <neoneye@...> 2004/04/29

Josef 'Jupp' Schugt <jupp@gmx.de> wrote:

[#98817] Opportunities and pitfalls; was "Introducing myself - Sascha Ebach" — Mike Calder <ceo@...> 2004/04/30

A word of warning from a potential friend. Please don't take this negatively,

[#98847] Re: Opportunities and pitfalls; was "Introducing myself - Sascha Ebach" — Mark Hubbart <discord@...> 2004/04/30

[#98854] Re: Opportunities and pitfalls; was "Introducing myself - Sascha Ebach" — "Curt Hibbs" <curt@...> 2004/04/30

Mark Hubbart wrote:

[#98858] Re: Opportunities and pitfalls; was "Introducing myself - Sascha Ebach" — Mark Hubbart <discord@...> 2004/04/30

[#98366] How do I scale large Ruby web applications? — Sascha Ebach <se@...>

Hi there,

19 messages 2004/04/26

[#98409] Semantics of Multiple Values — Kristof Bastiaensen <kristof@...>

Hi liszt,

25 messages 2004/04/26

[#98435] Approaches to localization? — ptkwt@... (Phil Tomson)

I'm developing a GUI app using Ruby and FLTK. One of the requirements

22 messages 2004/04/26

[#98714] Ruby under Suse Linux — Mike Calder <ceo@...>

Hi.

14 messages 2004/04/29

[#98750] coerce(), what protocol to implement it — Jean-Hugues ROBERT <jean_hugues_robert@...>

Hi,

14 messages 2004/04/29

[#98758] File.expand_path(__FILE__) — John Platte <john.platte@...>

I'm having a problem with File.expand_path(__FILE__) after a chdir.

30 messages 2004/04/29

[#98796] SciTE Ruby Lexer — Kaspar Schiess <eule@...>

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

13 messages 2004/04/30

[#98820] ruby CVS can't use shared libs on NetBSD — Dick Davies <rasputnik@...>

11 messages 2004/04/30

[#98832] def [](v) xx; return yy; end # returned value is ignored !? — Jean-Hugues ROBERT <jean_hugues_robert@...>

Hi,

27 messages 2004/04/30

[#98851] Lazy evaluation — Michael Neumann <mneumann@...>

Hi,

51 messages 2004/04/30
[#98871] Re: Lazy evaluation — Jean-Hugues ROBERT <jean_hugues_robert@...> 2004/04/30

At 03:45 01/05/2004 +0900, you wrote:

[#98875] Re: Lazy evaluation — Florian Gross <flgr@...> 2004/04/30

Jean-Hugues ROBERT wrote:

[#98896] Re: Lazy evaluation (evil) — ptkwt@... (Phil Tomson) 2004/05/01

In article <c6uh31$gaq2i$1@ID-7468.news.uni-berlin.de>,

[#98913] Re: Lazy evaluation (evil) — Florian Gross <flgr@...> 2004/05/01

Phil Tomson wrote:

[#98917] Re: Lazy evaluation (evil) — ts <decoux@...> 2004/05/01

>>>>> "F" == Florian Gross <flgr@ccan.de> writes:

[#98919] Re: Lazy evaluation (evil) — Florian Gross <flgr@...> 2004/05/01

ts wrote:

Re: How do I scale large Ruby web applications?

From: Sascha Ebach <se@...>
Date: 2004-04-27 09:53:08 UTC
List: ruby-talk #98505
Thanks for all the comments so far. They are really helping.

Let me elaborate a little more. In the comments I read interesting ideas
I want to go into a little more.

Robert Klemme wrote:

> The problem with performance is that you normally have to try and 
> measure to see whether it's ok or not.  And of course it heavily 
> depends on the algorithms and kind of application at hand.  I'd say 
> without more information about these it's impossible to say offhand 
> whether Ruby will deliver or not.

I know that. You only going to really know the moment your service gets
used. Still you have to find a good scalable approach to begin with to
minimize the chances of rewriting everything. And I also know that
premature optimization is a bad thing. But blindly doing anything that
works can be equally problematic in the future.

We are currently in the planning stages writing the use cases. And if I
would have to compare what the system will have to do I would probably
have to say it will be a lot like ebay. Except that it will have nothing
to do with auctions. We are not that crazy ;) Ppl will be able to put
there profiles in, upload pictures and descriptions of their objects,
search the database for these objects, communicate over the system about
these objects. Those are the basics. So from the viewpoint of what you
will be able to do I see that it is pretty similiar to the basic things
you can do on ebay. I hope that clears things up a little more.

Robert also states that typically (in web applications?) a queue based
approach is used. That sounds very interesting. Not only that you can
circumvent threads which is always good if possible but I can imagine
that such a system would be fairly easy to implement. The thing I am
wondering about is the response times. While you can have
progress bars in a desktop app you really can't afford to let the
user wait in a web app. It would probably take a while before that
happens on newer hardware, but this was exactly my point. In the event
you are so lucky that ppl get crazy about your service and you really
get more visitors than anticipated even a queue based solution has to
scale. I cannot imagine how to do that so I have to give it more
thought. Maybe such a system can be implemted in such a way that it can
be easily scaled with new (upgrading) hardware? I could imagine a queue
based system that forwards its items to a distributed network of
computers via DRb...

Lothar Scholz wrote:

> The best way to scale ruby web apps is to use numerous external 
> started FCGI servers and use the session id to bind to the same user 
> to the same FCGI server. If you don't have extremely high interuser 
> interaction this would simplify your life. It can also reduce your 
> database load a lot and make HTML-GUI implementation easier. The most
>  complicated thing is to get this configuration up and running - and 
> it does not work good with load balancers.

You seem to speak out of experience. Could you elaborate a little more
or maybe point me into a direction where I can read a more about this
technique? I will read about FCGI because others have mentioned it too.
The reason I haven't already done so, is that from a PHP perspective you
wouldn't bother to use CGI because of the process duplication which
slows down things considerably. mod_php is a lot more stable and
complete than mod_ruby at the moment. I must investigate more in this
option. One other thing I wonder about is when you say that it is
complicated to set up. It sounds to me that this technique is like
distributed processes in contrast to distributed services on different
machines. With the advantage of being able to scale the hardware on one
machine.

> The first thing would be to check if ruby is really what you want. Do
>  you have the libraries you need for your project, are they stable

I don't know if there are any really stable and mature libraries for
Ruby in comparison to Java libraries. At first I thought it would be a 
good idea
to write everything myself so I could keep the system as small as 
possible. But
I have come to realize that this may be not the optimal approach. At the
moment I think it would be a better idea to use one of the available
frameworks and contribute to them rather than rewrite my own. That way I
can give something back to the open source community which is long
overdue for me (using open source stuff all the time). At the moment my
favourite framework is Cerise (http://cerise.rubyforge.org/) as it is
the most elegant solution I have encountered so far (not only for Ruby). 
I have done some
preliminary tests with Cerise and the functionality I want to implement
will be a snap to do so with this framework. Will Glozer the project
maintainer seems to be very experienced and still working alone on this
wonderful piece of software. I would like to join that project (or any
other) if it turns out to be the right one for my purposes. But I 
haven't made my final
decision, yet. I still have to really test a couple of the other
frameworks that were mentioned on this list earlier, including the soon
(?) to be released rails. The project will span from June 2004 to March 
2005, so
there is still some time.

David Heinemeier Hansson wrote:

> Stay on a single box as long as you can. Next, move the database to a
>  separate machine. Then start thinking about scaling the application 
> server. (Or you may start thinking beforehand as you do now, just no 
> need to commit the dollars)

That was the idea. First the database, then the images on a another
machine (maybe with a fast webserver and logging turned off).

> COMMERCIAL: If you happen to be in Chicago on June 25th, we'll be 
> realing all about Basecamp and Rails in a one-day workshop. There's 
> more information on http://www.37signals.com/workshop-062504.php.

Yeah, I read all about that. Two weeks ago our first child was born so I
am a little tied at the moment. I would have probably come to Denmark 
for your
presentation, but because of these new "circumstances" I really cannot.
I wonder if anyone would be able to record your session on video and
offer it for download via torrent or so, maybe you?

Kirk Haines: I really like the way you described the scaling process.
That seems like a viable possibility I must investigate. I have just
started reading about IOWA and have yet to really check it out. I only
know roughly what it is, but not what it can do for me. Very
interesting.

Dan Janowski wrote:

> Distributing objects is one thing, but using drb as a
> request/response and control protocol is what I am considering at the
> moment. I was thinking of FCGI, but it is all or nothing in the sense
> that it forces the whole hit service out of Apache. But a
> considerable amount of cgi processing is not session dependent and is
> more appropriate in the Apache side (I use mod_ruby). Separating
> non-web application logic from cgi/web processing is one way to
> efficiently distribute the load.

It seems like I will have to weigh those two options against each other. 
I think once you have a running DRb system on one machine it should be a 
snap to just add other machines to the system. If you first go the FCGI 
route you will have to leave it sooner or later. The problem is with 
development time. A distributed system can be so much harder to 
implement, remember the HURD? http://www.gnu.org/software/hurd/

Lothar Scholz added:

> By the way if you have your own webserver (so you don't need all the
> flexible configuration features of apache) then you should never use
> apache if performance is important. Apache is not a very fast
> webserver. A lot of other servers give you twice the responds then
> apache (or even more if apache is not configured correctly).

That sounds good. I was hoping to be able to use a built-in server like 
Cerise offers. What would really be nice if someone with the right 
skills would implement a webserver as a barebones c-module. Or maybe 
somehow integrating one of the available webservers like 
http://www.annexia.org/freeware/rws/ or any other. Ideally something 
that would work with Webrick and making it faster. Apache is not really 
fast but Webrick or any other Ruby implementation is by far slower. 
Anyone heard of such a project? My c-skills are really not mentionable. 
I never came around to actually write anything in c although I have 
already read 3 or 4 books about the languags (just in case).


Thanks again for all your replies.
-- 
Sascha Ebach

In This Thread