[#10198] POLS question: returning from a closure — David Alan Black <dblack@...>
Hello --
[#10209] Market for XML Web stuff — Matt Sergeant <matt@...>
I'm trying to get a handle on what the size of the market for AxKit would be
> mod_fastcgi with ruby is stable and IMHO a much better architecture
Joseph McDonald wrote:
On Fri, 2 Feb 2001, Joseph McDonald wrote:
Hi,
Hi,
Hi,
[#10232] ANN: Slide show available — Dave Thomas <Dave@...>
[#10238] RFC: RubyVM (long) — Robert Feldt <feldt@...>
Hi,
On Sun, 4 Feb 2001, Mathieu Bouchard wrote:
On Mon, 5 Feb 2001, Robert Feldt wrote:
--- Mathieu Bouchard and Robert Feldt wrote:
On Tue, 13 Feb 2001, John van V. wrote:
[#10256] Re: ANN: Slide show available(Publicity for Ruby) — "Ben Tilly" <ben_tilly@...>
Dave Thomas <Dave@PragmaticProgrammer.com> wrote:
[#10271] Telnet program in ruby? — Hugh Sasse Staff Elec Eng <hgs@...>
Given the existence of Tk widget demos in Ruby, and the net/telnet module,
[#10277] Re: configure shebang paths for apache cgi? — "Ben Tilly" <ben_tilly@...>
Jim Freeze <jim@freeze.org> wrote:
[#10290] Re: configure shebang paths for apache cgi? — "Morris, Chris" <ChrisM@...>
> For that to work, you need 'ruby' in your $PATH. Try "which ruby".
[#10307] Re: Local directory search "server" script — Mike Wilson <wmwilson1@...>
[#10317] TCPServer - bug in documentation ? — Michael Neumann <neumann@...>
Hi,
[#10328] Multi-dimensional Array — Jason <jasowong@...>
Hi All,
[#10336] ObjectSpace.each_object & terminated objects — Dave Thomas <Dave@...>
[#10385] Structured text matching? — schuerig@... (Michael Schuerig)
[#10386] Ruby/Tk, what am I doing wrong... — "Noel Rappin" <noel.rappin@...>
Now I'm diving into Ruby/Tk and I have some newbie type questions...
[#10399] Ruby users in Sydney? — harryo@... (Harry Ohlsen)
I was just wondering how many of the people who read this newgroup are
Harry Ohlsen wrote:
[#10419] Installing on Mandrake 7.1 — peterhi@...
I have the 1.6.2 tarball and I've unpacked it to /root/x. I've then run
[#10420] Preemptive scheduling? — wys@... (Clemens Wyss)
In the following example:
[#10424] generic method — ts <decoux@...>
[#10434] Serialization/persistence/marshalling to/from XML? — Kent Dahl <kentda@...>
Is there a library or framework for serializing a hierarchy of Ruby
[#10442] Re: book review? — "Mike Wilson" <wmwilson01@...>
[#10452] Re: Recall Regexp options? — "Ben Tilly" <ben_tilly@...>
matz@zetabits.com (Yukihiro Matsumoto) wrote:
[#10477] threads and resolving names — "Joseph McDonald" <joe@...>
Hi,
Hi,
[#10518] Embedded Ruby (Part III) — Olivier CARRERE <olivier@...>
Hi all,
[#10521] RE: Need a Jpn->Eng Translator? — Aleksi Niemel<aleksi.niemela@...>
Neil Johnson wrote:
[#10522] Prioritize the need for documentation — Aleksi Niemel<aleksi.niemela@...>
As I promised in mail [ruby-talk:10521], I'm querying the opinion of the
[#10534] Re: Embedded Ruby (Part III) — "Ben Tilly" <ben_tilly@...>
Olivier CARRERE <olivier@vibes.net> wrote:
[#10549] Giving a Proc utility methods? — "Ben Tilly" <ben_tilly@...>
Here is my situation. I have a class, call it Foo.
[#10566] Rubygarden.com? — Hugh Sasse Staff Elec Eng <hgs@...>
What is the purpose of Rubygarden.com? I know that
[#10577] Word wrap algorithm — "Morris, Chris" <ChrisM@...>
I'm in need of a word wrap method -- anyone know of an existing one
[#10592] Re: Are """ here documents here to stay? :-) — ts <decoux@...>
>>>>> "R" == Robert Feldt <feldt@ce.chalmers.se> writes:
On Fri, 9 Feb 2001, ts wrote:
[#10646] Need other Links to English InstallShield version of Ruby? — "Conrad Schneiker" <schneik@...>
I see "The English InstallShield version of Ruby" is on the "What's New"
[#10682] RE: heap data structure — Michael Davis <mdavis@...>
Can I make the heap a static or fixed size? For example, I want the heap to be 2K regardless of how many items it contains.
[#10684] Passing on a block to a called method — schuerig@... (Michael Schuerig)
[#10692] stopping a thread instance — "Guy N. Hurst" <gnhurst@...>
Hi,
[#10708] Suggestion for threading model — Stephen White <spwhite@...>
I've been playing around with multi-threading. I notice that there are
----- Original Message -----
In message <Pine.LNX.4.21.0102120019340.878-100000@localhost.localdomain>
[#10715] Threading model change, proposal — "Gaston Fong" <gastonfong@...>
I have been thinking for a while on the pros and cons of relying on
[#10718] Eric S. Raymond mentions Ruby but ... — Robert Feldt <feldt@...>
[#10777] Re: RFC: RubyVM (long) — Robert Feldt <feldt@...>
On Tue, 13 Feb 2001, Mathieu Bouchard wrote:
[#10778] perform. of Dir["**/*"] — "Richard Hensh" <hensh@...>
Now that someone has straightened me out on the use of **, I have a
[#10802] iowa, segfaults — Jonas Bulow <jonas.bulow@...>
Hi,
[#10839] Re: RCR's — "Mike Wilson" <wmwilson01@...>
[#10853] Re: RubyChangeRequest #U002: new proper name for Hash#indexes, Array#indexes — "Mike Wilson" <wmwilson01@...>
matz@zetabits.com (Yukihiro Matsumoto) writes:
On Thu, 15 Feb 2001, Dave Thomas wrote:
On Thu, 15 Feb 2001, David Alan Black wrote:
On Fri, 16 Feb 2001, Mathieu Bouchard wrote:
[#10906] Avoid bad advocacy, please — "Ben Tilly" <ben_tilly@...>
Last night I went to a talk by Damian Conway. (Wonderful
[#10909] rwiki *hangs* in send() — wys@... (Clemens Wyss)
I am trying to install rwiki (1.1) on my linux box (running Ruby 1.7.0).
[#10912] Making Hash from two lists — Kenichi Komiya <kom@...1.accsnet.ne.jp>
[#10924] Mashal.dump 10000 records, Marshal.load only reads 9939 records — Michael Davis <mdavis@...>
I have provided a small ruby script to test Marshal dump and how efficient
On Fri, 16 Feb 2001, Michael Davis wrote:
[#10943] ANN: Windows Installer for 1.6.2 — andy@... (Andrew Hunt)
I am pleased to announce that the 1.6.2 version
[#10966] RCR Summary 02/16/01 — "Mike Wilson" <wmwilson01@...>
I thought that maybe every Friday, I could list the open change requests to
[#11007] Generators (was: RCR Summary 02/16/01 -suspend) — jweirich@...
[#11017] inconsistency — Mathieu Bouchard <matju@...>
At 03:27 2/18/2001 +0900, you wrote:
[#11037] to_s and << — "Brent Rowland" <tarod@...>
list = [1, 2.3, 'four', false]
On Sun, 18 Feb 2001, Brent Rowland wrote:
On Sun, 18 Feb 2001, Stephen White wrote:
On Sun, 18 Feb 2001, David Alan Black wrote:
[#11065] MetaRuby 0.5 — Mathieu Bouchard <matju@...>
[#11068] Re: to_s and << — "Ben Tilly" <ben_tilly@...>
craig duncan <duncan@nycap.rr.com> wrote:
[#11094] Re: Summary: RCR #U002 - proper new name fo r indexes — Aleksi Niemel<aleksi.niemela@...>
> On Mon, 19 Feb 2001, Yukihiro Matsumoto wrote:
[#11113] Auto-magically determine your class/method in Ruby — Bryan Zarnett <bryan_zarnett@...>
Is their a way to auto-magically determine the class
Bryan Zarnett <bryan_zarnett@yahoo.ca> writes:
On Tue, 20 Feb 2001, Dave Thomas wrote:
I agree, having the calling class as part of caller
[#11116] RE: TCPSocket.open() lasts 2 minutes (was: rwik i *hangs* in send()) — Aleksi Niemel<aleksi.niemela@...>
Clemens wrote:
[#11131] Re: Summary: RCR #U002 - proper new name fo r indexes — "Conrad Schneiker" <schneik@...>
Robert Feldt wrote:
On Tue, 20 Feb 2001, Conrad Schneiker wrote:
On Tue, 20 Feb 2001, David Alan Black wrote:
On Tue, 20 Feb 2001, Mathieu Bouchard wrote:
[#11132] Problem compiling in MySQL support — "Carl Youngblood" <carlyoungblood@...>
I'm trying to install MySQL support for Ruby on my redhat 7.0 linux box.
[#11139] Re: One source tree for Ruby & modules — "Conrad Schneiker" <schneik@...>
Stephen White wrote:
[#11185] ANN: RubyCHannel -> Rwiki w. Online Ruby Interpreter — wys@... (Clemens Wyss)
Hi,
Hi,
"NAKAMURA, Hiroshi" <nahi@keynauts.com> wrote in
Hi Clemens,
"NAKAMURA, Hiroshi" <nahi@keynauts.com> wrote in
[#11188] better "gets"? — Nikita Proskourine <nop1@...>
Hi,
[#11191] Telnet/SSH service — nickb@... (Nick Bensema)
I'm among a group of people who are trying to get a simple BBS server up,
[#11225] Re: ANN: RubyCHannel -> Rwiki w. Online Ruby Interpreter — "Conrad Schneiker" <schneik@...>
Clemens Wyss wrote:
[#11237] Re: C scripting using Ruby (instead of Perl)? — "Ben Tilly" <ben_tilly@...>
ts <decoux@moulon.inra.fr> wrote:
[#11251] Programming Ruby is now online — Dave Thomas <Dave@...>
On Thu, 22 Feb 2001 07:24:51 +0900, Dave Thomas wrote:
Guillaume Cottenceau <gc@mandrakesoft.com> writes:
[#11270] Re: Programming Ruby is now online — "Ben Tilly" <ben_tilly@...>
Dave Thomas <Dave@PragmaticProgrammer.com> wrote:
[#11272] musings about Hash#each_with_index — David Alan Black <dblack@...>
Hello --
[#11316] Bottles of Beer finally in Ruby — Jim Menard <jimm@...>
The following URL contains a collection of programs to print the words to
[#11357] binding to callers namespace. — "Joseph McDonald" <joe@...>
[#11378] Emacs-mode? — "Noel Rappin" <noel.rappin@...>
I'd really appreciate it if somebody could give me a pointer on how to get
[#11381] Re: Time without seconds (updated/fixed) — Kevin Smith <sent@...>
ts wrote:
On Sat, 24 Feb 2001, Kevin Smith wrote:
[#11386] Re: Time without seconds (updated/fixed) — ts <decoux@...>
>>>>> "D" == David Alan Black <dblack@candle.superlink.net> writes:
[#11391] trial balloon: Ruby desktop? — Jon Aseltine <aseltine@...>
Hi,
[#11403] Re: trial balloon: Ruby desktop? — Steve Tuckner <SAT@...>
This sounds like a very interesting idea (to me) if the goal was to use it
On Sat, 24 Feb 2001, Steve Tuckner wrote:
[#11422] Dir#each -- include '.'? — Neil Conway <nconway@...>
Hi all,
[#11432] Esperanto (was: trial balloon: Ruby desktop?) — Kevin Smith <sent@...>
Brent Rowland wrote:
On Friday 23 February 2001 23:44, Kevin Smith wrote:
[#11461] French Translation — Mathieu Bouchard <matju@...>
[#11469] XML-RPC and KDE — schuerig@... (Michael Schuerig)
Michael Neumann <neumann@s-direktnet.de> wrote:
Hi all:
[#11483] Re: Esperanto (was: trial balloon: Ruby desktop?) — "Ben Tilly" <ben_tilly@...>
nickb@fnord.io.com (Nick Bensema) wrote:
[#11487] TCPSocket Problem? — "Chris New" <chris@...>
I am using 1.6.2 on both Redhat 6.1 and Redhat 7.0.
[#11511] ANN: ri - the Ruby Interactive reference — Dave Thomas <Dave@...>
[#11534] Re: Negative Reviews for Ruby and ProgrammingRuby — Kevin Smith <sent@...>
jeremy@chaos.org.uk wrote:
[#11594] Re: A design/implementation question — "Ben Tilly" <ben_tilly@...>
Dave Thomas <Dave@PragmaticProgrammer.com> wrote:
[#11595] Net::FTP — "Patrick Down" <pdown@...>
Hi, I am new to Ruby. I was trying out the Net::FTP object using
[#11633] RCR: shortcut for instance variable initialization — Dave Thomas <Dave@...>
In article <m2d7c5vxnl.fsf@zip.local.thomases.com>, Dave Thomas wrote:
r2d2@mao.acc.umu.se (Niklas Frykholm) writes:
[#11643] capturing regex matches. — "Joseph McDonald" <joe@...>
[#11647] assert() library in Ruby? — Eric Sven Ristad <ristad@...>
How can I achieve the effect of the assert() macro from C in Ruby?
Eric Sven Ristad <ristad@mnemonic.com> writes:
[#11648] Putting methods in arrays — Alex McHale <lists@...>
Hi there,
[#11652] RE: RCR: shortcut for instance variable initialization — Michael Davis <mdavis@...>
I like it!
[#11700] Starting Once Again — Ron Jeffries <ronjeffries@...>
OK, I'm starting again with Ruby. I'm just assuming that I've
> 2. So far I think running under TextPad will be better than running
On Wed, 28 Feb 2001, Aaron Hinni wrote:
"Eugene Ventimiglia" <eventi@nyic.com> writes:
One more thing:
[#11727] Re: Starting Once Again — "Conrad Schneiker" <schneik@...>
Aaron Hinni wrote:
[#11729] Interfacing with Java (sort-of) — "Conrad Schneiker" <schneik@...>
Hi,
[#11788] building n-grams — Arno Erpenbeck <aerpenbe@...>
Greetings everybody,
[#11802] list classmethods of a class — wys@... (Clemens Wyss)
I tried, but didn't find out how to get the list of classmethods of a
[ruby-talk:11544] Re: Sorting
Kevin Smith <sent@qualitycode.com> wrote:
>
>Guy N. Hurst wrote:
> >your code generates:
> >["Name 1", "Name 10", "Name 100", "Name 101",
> >"Name 11", "Name 2", "Name 200", "Name 22"]
> >
> >If I add "[1]to_i" after each split, then it does things better...
>
>Thanks for pointing this out. Of course you are
>correct.
>
>That's what I had intended to do, but I got so
>excited when the array <=> array just *worked*
>(before I looked it up in the book) that I forgot
>to continue coding until the task was done. (Now
>where did I put those unit tests again?)
It gets better. Since Array includes Enumerable,
that means that sort will just work on arrays of
arrays.
The lack of your need to write a complex sort
function for that was one of the first double-takes
that I did with Ruby (coming from Perl). :-)
> >b = strings.sort do | a, b |
> > a.split[1].to_i <=> b.split[1].to_i
> >end
>
> >Of course, this is assuming there is a second element in the array after
>the split, and
> >that it is convertible to an integer.
>
>Indeed. The original requirement was pretty
>vague. Prehaps the need was for each string to be
>sorted entirely, treating each word as a number
>where appropriate and text otherwise. In that
>case, I would write my own compare(array1,
>array2) method that did a split, and iterated
>through each word treating it appropriately.
And you would be about halfway down the same path
that followed...
>It may not be as clever as the regex based
>solutions, but I prefer clear, simple brute force
>unless there's some requirement that forces me in
>a different direction.
Apparent cleverness is often a matter of background.
I faced this exact problem in Perl a while ago.
What I realized is that the right solution is to
break the string into string, number, string, number
and then compare each piece appropriately. Once
you have that in mind, if you know about how to use
REs in /g mode, you can easily do this. It is a
little tedious, and you have boundary cases to
worry about (eg this string breaks into more pieces
than that one does) but doable.
Now what I knew is that it is generally best to move
work into pre-processing, and then extraction, so
that comparison functions can be as simple as
possible. So you extra data into a data structure,
sort, and then extract the original data out. This
pattern was named a Schwartzian sort by Tom
Christiansen while explaining an answer that Randal
Schwartz. (Randal did not originate the idea!)
The reason this is good is that the comparison
function gets called n*log(n) times, while pre/post
work only runs n times. But in Perl this is a
fairly complex hard to do because the default sort
is by string comparison. Therefore you need to
write the pre and post, and also a sort function
that knows your data structure. Also people use
function calls, so the pattern reads right to left
while each piece must be read left to right. Ick.
However in Ruby all parts of this are easier!
First of all Ruby offers the scan method of a string
that makes breaking it up into string/number pairs
easy.
Secondly Ruby already has the logic built in to
allow you to transparently sort data structures
like arrays as long as they know how to <=>
themselves.
Thirdly in Ruby map and sort are method calls, not
functions. Therefore they read left to right, and
the whole thing reads left to right everywhere.
So put it all together and you get something like
this:
# This is the preprocessing work
def sort_split (s)
pieces = s.scan(/(\D*)(\d*)/)
pieces.each {|elem|
# Case insensitive then by number
elem[0].downcase!
elem[1] = elem[1].sub(/^0*/, '').to_i
if "" != elem[0] and "-" == elem[0].slice(-1, 1)
elem[0].chop!
elem[1] *= -1
end
}
# Returning (pieces.push, s) works, but almost by
# accident. Creating a new array, [sortthing, orig]
# is a more robust pattern.
[pieces, s]
end
# Build up an unsorted example to try.
things = (-5..20).to_a.map {|i| "thing #{i}"}
things.push(
"thing ", "hello", "world", "This", "That", "This -", "this"
)
# And here is where it comes together
puts things.map {|e| sort_split(e)} .sort.map {|e| e[-1]}
#^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^ ^^^^^^^^^
# | | | | |
#show | | | |
# original list | | |
# pre-process | |
# can sort itself! |
# then extract
Clever?
If I thought this up from scratch, then I would have
to be darned clever. But this is a classic pattern
and a problem I have seen before. When I see sorting
problems O think in terms of, "pre-process, sort, then
extract" instead of comparison functions. Usually
easier, and for a bonus the pattern is more efficient
and scales to more complex problems.
BTW if you want to sort some fields in reverse,
you can do this:
class StringReverse < String
def <=> (other)
-1 * super(other)
end
end
and now you can turn strings into StringReverse with
elem[0] = StringReverse.new(elem[0])
and they are just like strings except that they will
sort in reverse.
So no cleverness on my part, just memory of a useful
pattern.
But still I am being impressed at how cleanly these
things tend to work out. If I can only figure out in
a nutshell what Matz does to make that work... :-)
Cheers,
Ben
_________________________________________________________________
Get your FREE download of MSN Explorer at http://explorer.msn.com