[#150244] Defining regexp's and variables set by them — Garance A Drosehn <drosihn@...>

Sometimes I get in a situation where I have a case statement

13 messages 2005/08/01

[#150361] algorithm help — "Ara.T.Howard" <Ara.T.Howard@...>

14 messages 2005/08/02

[#150371] Style question: when to use underscores — "francisrammeloo@..." <francisrammeloo@...>

When should you use underscores to

14 messages 2005/08/02

[#150385] different order of parameters... — JZ <usenet@...>

I'm trying to understand how to call methods in Ruby. Is it possible to

13 messages 2005/08/02
[#150387] Re: different order of parameters... — Yukihiro Matsumoto <matz@...> 2005/08/02

Hi,

[#150439] enum collection of constant values — Garance A Drosehn <drosihn@...>

I'd like to have a set of constants for a class, where their values

18 messages 2005/08/02

[#150451] setting up ruby on os x 10.2 — Julian Leviston <julian@...>

Hi All!

12 messages 2005/08/02

[#150495] array or with non-array — Simon Strandgaard <neoneye@...>

Sometimes wish that [3, 5, 13] | [8] can be written as [3, 5, 13] | 8

30 messages 2005/08/02
[#150502] Re: [RCR] array or with non-array — Eric Mahurin <eric_mahurin@...> 2005/08/02

--- Simon Strandgaard <neoneye@gmail.com> wrote:

[#150506] Re: [RCR] array or with non-array — Yukihiro Matsumoto <matz@...> 2005/08/02

Hi,

[#150519] Re: [RCR] array or with non-array — Eric Mahurin <eric_mahurin@...> 2005/08/03

--- Yukihiro Matsumoto <matz@ruby-lang.org> wrote:

[#150581] ruby-dev summary 26468-26661 — Takaaki Tateishi <ttate@...>

Here are recent ruby-dev summaries.

52 messages 2005/08/03
[#150710] Re: ruby-dev summary 26468-26661 — "David A. Black" <dblack@...> 2005/08/04

Hi --

[#150715] Re: ruby-dev summary 26468-26661 — Jamis Buck <jamis@37signals.com> 2005/08/04

On Aug 4, 2005, at 7:31 AM, David A. Black wrote:

[#150717] Re: ruby-dev summary 26468-26661 — Brian Schrer <ruby.brian@...> 2005/08/04

On 04/08/05, Jamis Buck <jamis@37signals.com> wrote:

[#150740] Re: ruby-dev summary 26468-26661 — Christian Neukirchen <chneukirchen@...> 2005/08/04

Jamis Buck <jamis@37signals.com> writes:

[#150742] Re: ruby-dev summary 26468-26661 — Yukihiro Matsumoto <matz@...> 2005/08/04

Hi,

[#150608] interesting test tool... looking for opinions. — Jeff Wood <jeff.darklight@...>

There is wonderful java-based testing unit framework called TestNG.

24 messages 2005/08/03
[#150646] Re: interesting test tool... looking for opinions. — "Ryan Leavengood" <mrcode@...> 2005/08/03

Jeff Wood said:

[#150648] Re: interesting test tool... looking for opinions. — Austin Ziegler <halostatue@...> 2005/08/03

On 8/3/05, Ryan Leavengood <mrcode@netrox.net> wrote:

[#150653] Re: interesting test tool... looking for opinions. — Alexandru Popescu <the_mindstorm@...> 2005/08/04

#: Austin Ziegler changed the world a bit at a time by saying on 8/4/2005 1:16 AM :#

[#150659] Re: interesting test tool... looking for opinions. — Jeff Wood <jeff.darklight@...> 2005/08/04

well, first we'll need to get matz input on adding attributes @ the

[#150662] Re: interesting test tool... looking for opinions. — Austin Ziegler <halostatue@...> 2005/08/04

On 8/3/05, Jeff Wood <jeff.darklight@gmail.com> wrote:

[#150666] Re: interesting test tool... looking for opinions. — Jeff Wood <jeff.darklight@...> 2005/08/04

I like your second one better ... my only question would then be your

[#150674] Re: interesting test tool... looking for opinions. — Austin Ziegler <halostatue@...> 2005/08/04

On 8/3/05, Jeff Wood <jeff.darklight@gmail.com> wrote:

[#150709] new block notation (was: Re: ruby-dev summary 26468-26661) — "Martin Elzen" <martinelzen@...>

>Now ruby(HEAD) accepts the notation '->(...){...}'

155 messages 2005/08/04
[#150767] Re: new block notation (was: Re: ruby-dev summary 26468-26661) — Brian Wisti <brian.wisti@...> 2005/08/04

On 8/4/05, Martin Elzen <martinelzen@hotmail.com> wrote:

[#150799] Re: new block notation (was: Re: ruby-dev summary 26468-26661) — Yukihiro Matsumoto <matz@...> 2005/08/04

Hi,

[#150801] Re: new block notation (was: Re: ruby-dev summary 26468-26661) — Eric Mahurin <eric_mahurin@...> 2005/08/04

--- Yukihiro Matsumoto <matz@ruby-lang.org> wrote:

[#150802] Re: new block notation (was: Re: ruby-dev summary 26468-26661) — Yukihiro Matsumoto <matz@...> 2005/08/04

Hi,

[#150817] Re: new block notation (was: Re: ruby-dev summary 26468-26661) — Florian Gro<florgro@...> 2005/08/05

Yukihiro Matsumoto wrote about new lambda syntaxes:

[#150822] Re: new block notation (was: Re: ruby-dev summary 26468-26661) — Yukihiro Matsumoto <matz@...> 2005/08/05

Hi,

[#150836] Re: new block notation (was: Re: ruby-dev summary 26468-26661) — Florian Groß <florgro@...> 2005/08/05

Yukihiro Matsumoto wrote:

[#150843] Re: new block notation (was: Re: ruby-dev summary 26468-26661) — Yukihiro Matsumoto <matz@...> 2005/08/05

Hi,

[#150872] Re: new block notation (was: Re: ruby-dev summary 26468-26661) — Gavin Kistner <gavin@...> 2005/08/05

On Aug 4, 2005, at 11:58 PM, Yukihiro Matsumoto wrote:

[#150978] Re: new block notation (was: Re: ruby-dev summary 26468-26661) — Yukihiro Matsumoto <matz@...> 2005/08/06

Hi,

[#150995] Re: new block notation (was: Re: ruby-dev summary 26468-26661) — Gavin Kistner <gavin@...> 2005/08/06

On Aug 6, 2005, at 1:57 AM, Yukihiro Matsumoto wrote:

[#150901] Re: new block notation (was: Re: ruby-dev summary 26468-26661) — Florian Gro<florgro@...> 2005/08/05

Yukihiro Matsumoto wrote:

[#150980] Re: new block notation (was: Re: ruby-dev summary 26468-26661) — Yukihiro Matsumoto <matz@...> 2005/08/06

Hi,

[#151018] Re: new block notation (was: Re: ruby-dev summary 26468-26661) — Florian Gro<florgro@...> 2005/08/06

Yukihiro Matsumoto wrote:

[#150866] Re: new block notation (was: Re: ruby-dev summary 26468-26661) — "James F. Hranicky" <jfh@...> 2005/08/05

On Fri, 5 Aug 2005 09:49:28 +0900

[#150870] Re: new block notation (was: Re: ruby-dev summary 26468-26661) — Jason Foreman <threeve.org@...> 2005/08/05

I hadn't seen this particular variant posted in this thread yet.

[#150842] Re: new block notation — Martin DeMello <martindemello@...> 2005/08/05

Eric Mahurin <eric_mahurin@yahoo.com> wrote:

[#150855] Re: new block notation — "Trans" <transfire@...> 2005/08/05

> That's rather drastic. All it needs is a new symbol for literal hashes.

[#151008] Re: new block notation — Daniel Brockman <daniel@...> 2005/08/06

"David A. Black" <dblack@wobblini.net> writes:

[#150881] Please help make CodeZoo truly useful — Curt Hibbs <curt@...>

I just posted this on my blog (http://blog.curthibbs.us/), but I thought

14 messages 2005/08/05

[#151017] OSCON videos, medias — why the lucky stiff <ruby-talk@...>

My friends, I've got my act together now and a BitTorrent tracker up

18 messages 2005/08/06

[#151080] cartesian product — "walter a kehowski" <wkehowski@...>

Hello,

26 messages 2005/08/07

[#151096] Adding yet another Array.new form — Nikolai Weibull <mailing-lists.ruby-talk@...>

How about adding a fifth way of constructing new arrays?:

18 messages 2005/08/07

[#151147] sending an email with an attachment in ruby — Matthew Margolis <mrmargolis@...>

I would like to send email from a server running FreeBSD(TextDrive) to

12 messages 2005/08/07

[#151162] String#to_ary and Test::Unit — "Trans" <transfire@...>

In Facets I offer:

14 messages 2005/08/08

[#151202] FXRuby or wxRuby? — baalbek <rcs@...>

I know wxWindows for C++ rather well, and have started to use wxRuby.

29 messages 2005/08/08

[#151224] Re: polymorphism and/or named parameters: the ruby way? — "Berger, Daniel" <Daniel.Berger@...>

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

14 messages 2005/08/08
[#151235] Re: polymorphism and/or named parameters: the ruby way? — Eric Mahurin <eric_mahurin@...> 2005/08/08

--- "Berger, Daniel" <Daniel.Berger@qwest.com> wrote:

[#151377] event driven framework for ruby — snacktime <snacktime@...>

Is there an event driven framework for ruby? Something similar to POE

30 messages 2005/08/09
[#151381] Re: event driven framework for ruby — zedshaw@... 2005/08/09

Actually, yes. I'm working on the Ruby/Event library. It's a C extension

[#151384] Re: event driven framework for ruby — James Edward Gray II <james@...> 2005/08/09

On Aug 9, 2005, at 12:23 PM, zedshaw@zedshaw.com wrote:

[#151389] Re: event driven framework for ruby — Yohanes Santoso <ysantoso-rubytalk@...> 2005/08/09

James Edward Gray II <james@grayproductions.net> writes:

[#151394] Re: event driven framework for ruby — James Edward Gray II <james@...> 2005/08/09

On Aug 9, 2005, at 12:57 PM, Yohanes Santoso wrote:

[#151400] Re: event driven framework for ruby — Yohanes Santoso <ysantoso-rubytalk@...> 2005/08/09

James Edward Gray II <james@grayproductions.net> writes:

[#151405] Re: event driven framework for ruby — James Edward Gray II <james@...> 2005/08/09

On Aug 9, 2005, at 2:22 PM, Yohanes Santoso wrote:

[#151445] Re: event driven framework for ruby — Tanaka Akira <akr@...17n.org> 2005/08/10

In article <84D5D729-3674-4084-A092-2359932E2FF4@grayproductions.net>,

[#151414] NitroHQ been vandalised? — John Carter <john.carter@...>

I went looking for the Nitro homepage to give it a mention to our

13 messages 2005/08/09

[#151441] NEWBIE QUESTION: pattern with nil — "basi" <basi_lio@...>

Hello,

33 messages 2005/08/10
[#151465] Re: NEWBIE QUESTION: pattern with nil — BearItAll <bearitall@...> 2005/08/10

On Wed, 10 Aug 2005 14:44:15 +0900, John Carter wrote:

[#151480] Re: NEWBIE QUESTION: pattern with nil — Austin Ziegler <halostatue@...> 2005/08/10

On 8/10/05, BearItAll <bearitall@rassler.co.uk> wrote:

[#151605] Re: NEWBIE QUESTION: pattern with nil — John Carter <john.carter@...> 2005/08/10

On Wed, 10 Aug 2005, Austin Ziegler wrote:

[#151517] Threading on Win32 - at an impasse — Bill Atkins <batkins57@...>

I'm working on a project that would have to run several TCPServer's in

15 messages 2005/08/10
[#151526] Re: Threading on Win32 - at an impasse — david@... 2005/08/10

Cit疸 Bill Atkins <batkins57@gmail.com>:

[#151627] Ruby report generation tool — "Greg Brown" <greg7224@...>

For as long as I can remember the end of the summer meant slaving over

20 messages 2005/08/11

[#151653] cartesian product - next to last version — "walter a kehowski" <wkehowski@...>

Hello,

12 messages 2005/08/11

[#151657] Performance Ruby — "Goel" <spam@...>

Hi,

26 messages 2005/08/11

[#151692] Re: Ruby report generation tool — "Berger, Daniel" <Daniel.Berger@...>

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

14 messages 2005/08/11

[#151723] Problems with Net::HTTP.get — Marek Kubica <pythonmailing@...>

Hello!

13 messages 2005/08/11

[#151735] Dear RubyGems: Perhaps a better way to override require... — "Trans" <transfire@...>

I may have found a much better way to override Kernel#require. Here's

16 messages 2005/08/11
[#151743] Re: Dear RubyGems: Perhaps a better way to override require... — Chad Fowler <chadfowler@...> 2005/08/11

On 8/11/05, Trans <transfire@gmail.com> wrote:

[#151768] Re: Dear RubyGems: Perhaps a better way to override require... — "Trans" <transfire@...> 2005/08/11

Hi Chad,

[#151774] Re: Dear RubyGems: Perhaps a better way to override require... — Chad Fowler <chadfowler@...> 2005/08/11

On 8/11/05, Trans <transfire@gmail.com> wrote:

[#151783] Re: Dear RubyGems: Perhaps a better way to override require... — "Ryan Leavengood" <mrcode@...> 2005/08/11

Chad Fowler said:

[#151758] Setting up Eclipse for Ruby — "francisrammeloo@..." <francisrammeloo@...>

Hi all,

14 messages 2005/08/11

[#151877] Another newbie question — "len" <lsumnler@...>

I am trying to write a small little program that will currently run in

20 messages 2005/08/12

[#151897] Ruby Performance — Bradley Kite <bradley.kite@...>

Hi all,

88 messages 2005/08/12
[#151909] Re: Ruby Performance — "Robert Klemme" <bob.news@...> 2005/08/12

Bradley Kite wrote:

[#151914] Re: Ruby Performance — Bradley Kite <bradley.kite@...> 2005/08/12

Those idioms are around 21 seconds each in Ruby.

[#152316] Re: Ruby Performance — "Isaac Gouy" <igouy@...> 2005/08/16

Austin Ziegler wrote:

[#152149] RubyGems or any HTTP on XP NOT working — mycallidus@...

I tried to start learning Ruby by installing Ruby & Rails on XP, and it

13 messages 2005/08/14

[#152151] hacker logo — "walter a kehowski" <wkehowski@...>

http://paulgraham.com/index.html -> http://reddit.com/ ->

15 messages 2005/08/14
[#152155] Re: hacker logo — Nikolai Weibull <mailing-lists.ruby-talk@...> 2005/08/15

walter a kehowski wrote:

[#152186] Troubles with the installation of RAILS — Jan Meskens <janmeskens@...>

Hello,

16 messages 2005/08/15

[#152208] Building a REPL for Ruby — Shalev NessAiver <shalev@...>

Yes, I know ruby already has irb, but I have a friend who keeps

19 messages 2005/08/15

[#152290] New site built using Ruby on Rails — David Teare <dteare@...>

Hi all,

23 messages 2005/08/15

[#152375] Ruby for my new business? — Jared Nuzzolillo <onceuponapriori@...>

Hello list. I am in the process of starting a new business venture in South=

30 messages 2005/08/16

[#152434] Ruby on Unix vs. Windows — Rick Nooner <rick@...>

Yesterday at work we took an analysis program written in ruby that we had been

13 messages 2005/08/16

[#152451] Generic Parsing Library — "Adam Sanderson" <netghost@...>

I was wondering if anyone would be interested in, or knows of a generic

16 messages 2005/08/16

[#152535] Newbie question — "len" <lsumnler@...>

Is there some difference in the code I'm not seeing or is one better

18 messages 2005/08/17

[#152556] Prototype-based / Ruby question — "zimba.tm@..." <zimba.tm@...>

I just stumbled across this page[1] on RubyGarden. The writer tells

20 messages 2005/08/17
[#152578] Re: Prototype-based / Ruby question — Gavin Kistner <gavin@...> 2005/08/17

On Aug 17, 2005, at 2:21 AM, zimba.tm@gmail.com wrote:

[#152585] Re: Prototype-based / Ruby question — Lyndon Samson <lyndon.samson@...> 2005/08/17

I'd say prototype means no classes, that is create an Object from another (=

[#152666] Novice Q: What's the difference between /\s*/ and /(\s)*/? — "Mike Meng" <meng.yan@...>

Hi,

13 messages 2005/08/18

[#152723] Idiomatic ruby version of this code? — Brock Weaver <brockweaver@...>

Showing off ruby to a coworker, and I want to emphasize how succinct yet

17 messages 2005/08/18

[#152740] Ruby Specifications — Brian Mitchell <binary42@...>

Over the past few days I've been working on implementing my own (yet

14 messages 2005/08/18

[#152772] Protecting commercial ruby code with public/private key encryption — "John Wells" <lists@...>

I was speaking with a co-worker today about the disappointment we feel

30 messages 2005/08/18

[#152776] Python vs Ruby! — Joe Van Dyk <joevandyk@...>

Which is better, Python or Ruby?

45 messages 2005/08/18
[#152828] Re: Python vs Ruby! — Jamey Cribbs <jcribbs@...> 2005/08/19

Joe Van Dyk wrote:

[#152777] New to Ruby! — Seth Thomas Rasmussen <sethrasmussen@...>

Hi all,

16 messages 2005/08/18

[#152780] AIX and Ruby issues (still) — ober <ober@...>

I know this is a thorn to bring up every so often.

15 messages 2005/08/18

[#152843] RedCloth .... PILES of warnings when I require it ... — Jeff Wood <jeff.darklight@...>

I've downloaded and have the Gem for RedCloth 3.0.3 installed.

11 messages 2005/08/19

[#152892] Sodoku Solver (#43) — Ruby Quiz <james@...>

The three rules of Ruby Quiz:

43 messages 2005/08/19
[#153016] Re: [QUIZ] Sodoku Solver (#43) — Karl von Laudermann <karlvonl@...> 2005/08/20

In article

[#153292] Re: [QUIZ] Sodoku Solver (#43) — Adam Shelly <adam.shelly@...> 2005/08/23

Hi. This is my first attempt at a ruby quiz, and my first post to ruby-talk=

[#153297] Re: [QUIZ] Sodoku Solver (#43) — James Edward Gray II <james@...> 2005/08/23

On Aug 22, 2005, at 9:08 PM, Adam Shelly wrote:

[#153314] Re: [QUIZ] Sodoku Solver (#43) — Adam Shelly <adam.shelly@...> 2005/08/23

Ok, I've updated my version to resort to guessing when it can't deduce

[#153348] Re: [QUIZ] Sodoku Solver (#43) — "Dominik Bathon" <dbatml@...> 2005/08/23

On Tue, 23 Aug 2005 13:54:25 +0200, Adam Shelly <adam.shelly@gmail.com>

[#153353] Re: [QUIZ] Sodoku Solver (#43) — Adam Shelly <adam.shelly@...> 2005/08/23

On 8/23/05, Dominik Bathon <dbatml@gmx.de> wrote:

[#153374] Re: [QUIZ] Sodoku Solver (#43) — David Brady <ruby_talk@...> 2005/08/24

Adam Shelly wrote:

[#153067] Still looking for a Ruby MUD client — Sy <sy1234@...>

I'm still looking for a Ruby-scriptable Telnet/MUD client. Does

52 messages 2005/08/20
[#154216] Re: Still looking for a Ruby MUD client — "Dave Burt" <dave@...> 2005/08/30

Jon wrote:

[#154219] Re: Still looking for a Ruby MUD client — Reyn Vlietstra <reyn.vlietstra@...> 2005/08/30

Have a look at my mud,=20

[#154246] Re: Still looking for a Ruby MUD client — Sy <sy1234@...> 2005/08/30

I look for months for a ruby mud client or at least something that can

[#154258] Re: Still looking for a Ruby MUD client — James Edward Gray II <james@...> 2005/08/30

On Aug 30, 2005, at 7:47 AM, Sy wrote:

[#154293] Re: Still looking for a Ruby MUD client — Sy <sy1234@...> 2005/08/30

On 8/30/05, James Edward Gray II <james@grayproductions.net> wrote:

[#154514] Re: Still looking for a Ruby MUD client — <agemoagemo@...> 2005/08/31

--- Sy <sy1234@gmail.com> wrote:

[#154535] Re: Still looking for a Ruby MUD client — Sy <sy1234@...> 2005/08/31

On 8/31/05, agemoagemo@yahoo.com <agemoagemo@yahoo.com> wrote:

[#154541] Re: Still looking for a Ruby MUD client — Greg Millam <ruby-talk@...> 2005/08/31

> > The main reason that I, at least, am using net/telnet

[#154579] Re: Still looking for a Ruby MUD client — <agemoagemo@...> 2005/09/01

--- Greg Millam <ruby-talk@lethalcode.net> wrote:

[#153101] www.ruby.net — Daniel Schierbeck <daniel.schierbeck@...>

I don't know if this has been discussed before (didn't find any messages

46 messages 2005/08/21
[#153110] Re: www.ruby.net — nobu.nokada@... 2005/08/21

Hi,

[#153112] Re: www.ruby.net — Daniel Schierbeck <daniel.schierbeck@...> 2005/08/21

nobu.nokada@softhome.net wrote:

[#153113] Re: www.ruby.net — Paul van Tilburg <paul@...> 2005/08/21

On Sun, Aug 21, 2005 at 09:36:17PM +0900, Daniel Schierbeck wrote:

[#153380] The Chainsaw Infanticide Logger Manuever — "Zed A. Shaw" <zedshaw@...>

One of the things that's really great about agile languages is they give you the power to do anything. One of the most horrible things about agile languages is they give every other idiot the same power to stab you in the back with a rusty pitchfork.

37 messages 2005/08/24
[#153439] Re: The Chainsaw Infanticide Logger Manuever — "Bill Kelly" <billk@...> 2005/08/24

From: "Zed A. Shaw" <zedshaw@zedshaw.com>

[#153445] Re: The Chainsaw Infanticide Logger Manuever — Jeff Wood <jeff.darklight@...> 2005/08/24

My feelings are in-line with the review of Dave's session as OSCON @

[#153414] determining the attribute names of an object — Mark Volkmann <r.mark.volkmann@...>

The way to determine the names of the attributes of objects created

16 messages 2005/08/24
[#153417] Re: determining the attribute names of an object — "David A. Black" <dblack@...> 2005/08/24

Hi --

[#153419] Re: determining the attribute names of an object — Mark Volkmann <r.mark.volkmann@...> 2005/08/24

On 8/24/05, David A. Black <dblack@wobblini.net> wrote:

[#153422] Good cross-platform IDE / multiple document text editor for ruby / rails? — Brock Weaver <brockweaver@...>

I apologize for the cross-post, but I thought it would spur a good

55 messages 2005/08/24
[#153426] Re: Good cross-platform IDE / multiple document text editor for ruby / rails? — Aaron Kulbe <akulbe@...> 2005/08/24

What about vim?

[#153548] Re: Good cross-platform IDE / multiple document text editor for ruby / rails? — tony summerfelt <snowzone5@...> 2005/08/25

Brock Weaver wrote on 8/24/2005 10:51 AM:

[#153570] Re: Good cross-platform IDE / multiple document text editor for ruby / rails? — Randy Kramer <rhkramer@...> 2005/08/25

On Thursday 25 August 2005 08:15 am, tony summerfelt wrote:

[#153793] Re: Good cross-platform IDE / multiple document text editor for ruby / rails? — Lothar Scholz <mailinglists@...> 2005/08/26

Hello Randy,

[#153842] Re: Good cross-platform IDE / multiple document text editor for ruby / rails? — Randy Kramer <rhkramer@...> 2005/08/27

On Friday 26 August 2005 07:56 pm, Lothar Scholz wrote:

[#153869] Re: Good cross-platform IDE / multiple document text editor for ruby / rails? — Lothar Scholz <mailinglists@...> 2005/08/28

Hello Randy,

[#153456] ruby way for piece of code — Alexandru Popescu <the.mindstorm.mailinglist@...>

Hi!

10 messages 2005/08/24

[#153513] Bokeo 0.25 - The initial release of an FXRuby interface to RubyGems — Richard Lyman <lymans@...>

I'm pleased to announce the initial release of Bokeo, an FXRuby

9 messages 2005/08/24

[#153562] idea: klass.from_s(str) — Eric Mahurin <eric_mahurin@...>

I was thinking how in seems a little asymmetric that many

18 messages 2005/08/25
[#153574] Re: idea: klass.from_s(str) — "David A. Black" <dblack@...> 2005/08/25

Hi --

[#153566] EventLoop 0.0.20050825.1600 — Daniel Brockman <daniel@...>

Hi list,

40 messages 2005/08/25

[#153656] rmagick question — Joe Van Dyk <joevandyk@...>

I'm trying to set the pixels of an image:

31 messages 2005/08/26
[#153673] Re: rmagick question — Brian Schrer <ruby.brian@...> 2005/08/26

On 26/08/05, Joe Van Dyk <joevandyk@gmail.com> wrote:

[#153714] Re: rmagick question — Joe Van Dyk <joevandyk@...> 2005/08/26

On 8/26/05, Brian Schrer <ruby.brian@gmail.com> wrote:

[#153746] Re: rmagick question — Joe Van Dyk <joevandyk@...> 2005/08/26

On 8/26/05, Joe Van Dyk <joevandyk@gmail.com> wrote:

[#153747] Re: rmagick question — Joe Van Dyk <joevandyk@...> 2005/08/26

On 8/26/05, Joe Van Dyk <joevandyk@gmail.com> wrote:

[#153750] Re: rmagick question — "Ara.T.Howard" <Ara.T.Howard@...> 2005/08/26

On Sat, 27 Aug 2005, Joe Van Dyk wrote:

[#153752] Re: rmagick question — Joe Van Dyk <joevandyk@...> 2005/08/26

On 8/26/05, Ara.T.Howard <Ara.T.Howard@noaa.gov> wrote:

[#153942] Re: rmagick question — Timothy Hunter <cyclists@...> 2005/08/28

Joe Van Dyk wrote:

[#153947] Re: rmagick question — Joe Van Dyk <joevandyk@...> 2005/08/28

On 8/28/05, Timothy Hunter <cyclists@nc.rr.com> wrote:

[#153971] Re: rmagick question — Timothy Hunter <cyclists@...> 2005/08/29

Joe Van Dyk wrote:

[#154011] Re: rmagick question — Joe Van Dyk <joevandyk@...> 2005/08/29

On 8/28/05, Timothy Hunter <cyclists@nc.rr.com> wrote:

[#154034] Re: rmagick question — Timothy Hunter <cyclists@...> 2005/08/29

Joe Van Dyk wrote:

[#154163] Re: rmagick question — Joe Van Dyk <joevandyk@...> 2005/08/29

On 8/29/05, Timothy Hunter <cyclists@nc.rr.com> wrote:

[#153662] DRb functions disappearing? — Kevin Brown <blargity@...>

I will start by admitting I'm new to Ruby, but am generally a quick learner.

18 messages 2005/08/26
[#153667] Re: DRb functions disappearing? — Eric Hodel <drbrain@...7.net> 2005/08/26

On 25 Aug 2005, at 21:49, Kevin Brown wrote:

[#153668] Re: DRb functions disappearing? — Kevin Brown <blargity@...> 2005/08/26

On Friday 26 August 2005 01:14, Eric Hodel wrote:

[#153670] Re: DRb functions disappearing? — Eric Hodel <drbrain@...7.net> 2005/08/26

On 26 Aug 2005, at 00:32, Kevin Brown wrote:

[#153671] Re: DRb functions disappearing? — Kevin Brown <blargity@...> 2005/08/26

On Friday 26 August 2005 02:08, Eric Hodel wrote:

[#153672] Method behaves differently when called using #send — Ron M <rm_rails@...>

I'm having difficulty using #send to call methods in

117 messages 2005/08/26
[#153723] Re: Method behaves differently when called using #send — calamitas@... 2005/08/26

On Fri, 26 Aug 2005, Ron M wrote:

[#153828] Re: Method behaves differently when called using #send — Yukihiro Matsumoto <matz@...> 2005/08/27

Hi,

[#153833] Re: Method behaves differently when called using #send — "David A. Black" <dblack@...> 2005/08/27

Hi --

[#153938] Re: Method behaves differently when called using #send — "daz" <dooby@...10.karoo.co.uk> 2005/08/28

[#153963] Re: Method behaves differently when called using #send — "David A. Black" <dblack@...> 2005/08/28

Hi --

[#154105] Re: Method behaves differently when called using #send — Yukihiro Matsumoto <matz@...> 2005/08/29

Hi,

[#154107] Re: Method behaves differently when called using #send — "David A. Black" <dblack@...> 2005/08/29

Hi --

[#154110] Re: Method behaves differently when called using #send — Yukihiro Matsumoto <matz@...> 2005/08/29

Hi,

[#154204] Re: Method behaves differently when called using #send — Yukihiro Matsumoto <matz@...> 2005/08/30

Hi,

[#154210] Re: Method behaves differently when called using #send — "Trans" <transfire@...> 2005/08/30

[#154213] Re: Method behaves differently when called using #send — Yukihiro Matsumoto <matz@...> 2005/08/30

Hi,

[#154247] Re: Method behaves differently when called using #send — Eric Mahurin <eric_mahurin@...> 2005/08/30

--- Yukihiro Matsumoto <matz@ruby-lang.org> wrote:

[#154151] Re: Method behaves differently when called using #send — Daryl Richter <daryl@...> 2005/08/29

Yukihiro Matsumoto wrote:

[#154161] Re: Method behaves differently when called using #send — "David A. Black" <dblack@...> 2005/08/29

Hi --

[#153695] Word Chains (#44) — Ruby Quiz <james@...>

The three rules of Ruby Quiz:

40 messages 2005/08/26

[#153722] vim user switch to emacs? — Joe Van Dyk <joevandyk@...>

Hi,

38 messages 2005/08/26

[#153780] Introducing ruSH — Reyn Vlietstra <reyn.vlietstra@...>

Hi,

15 messages 2005/08/26
[#153788] Re: Introducing ruSH — Sy <sy1234@...> 2005/08/26

I've been waiting for something like this to come along.. but I'm

[#153789] Re: Introducing ruSH — Reyn Vlietstra <reyn.vlietstra@...> 2005/08/26

You have to have

[#153863] how do you describe '#!' in written english? — "SHIGETOMI, Takuhiko" <tshiget1@...>

quick question.

16 messages 2005/08/28

[#153927] Help needed with rexml — Michael <invalid@...>

I've been struggling to properly parse some XML with rexml. I will fully

15 messages 2005/08/28

[#153979] catching segmentation faults from Ruby — Iain Dooley <idoo4002@...>

hello, i've got ruby embedded into an application, and i've built a code

14 messages 2005/08/29
[#154028] Re: catching segmentation faults from Ruby — ts <decoux@...> 2005/08/29

>>>>> "I" == Iain Dooley <idoo4002@mail.usyd.edu.au> writes:

[#153980] how to unflatten a flat-array — "SHIGETOMI, Takuhiko" <tshiget1@...>

dear guys,

38 messages 2005/08/29
[#154014] Re: [Q] how to unflatten a flat-array — Robert Klemme <shortcutter@...> 2005/08/29

2005/8/29, SHIGETOMI, Takuhiko <tshiget1@gw.nsw.co.jp>:

[#154025] Re: [Q] how to unflatten a flat-array — "SHIGETOMI, Takuhiko" <tshiget1@...> 2005/08/29

greetings, Robert. thank you, it does make sense to me.

[#154056] Re: [Q] how to unflatten a flat-array — "Robert Klemme" <bob.news@...> 2005/08/29

SHIGETOMI, Takuhiko wrote:

[#154013] I think that French verb conjugation is as simple as, if not simpler than, that of English (no kidding!) - see www.sixpourcent.com — pan6pourcent@163.com

Dear friends,

11 messages 2005/08/29

[#154108] Thread.list confusion — "Andrew S. Townley" <andrew.townley@...>

12 messages 2005/08/29
[#154132] Re: Thread.list confusion — Eric Hodel <drbrain@...7.net> 2005/08/29

On 29 Aug 2005, at 08:57, Andrew S. Townley wrote:

[#154238] ThreadPool (was: Re: Thread.list confusion) — "Andrew S. Townley" <andrew.townley@...> 2005/08/30

[#154143] New to Ruby — "Steve" <sdouglas949@...>

I'm new to ruby and programming (although I did dabble in BASIC with my

15 messages 2005/08/29

[#154188] Aesthetics of while ... do ... end versus while ...: ... end — Nikolai Weibull <mailing-lists.ruby-talk@...>

OK, this is really quite lame, but what do you people prefer:

10 messages 2005/08/29

[#154344] MInimal Ruby Distribution with app — bww00amdahl@...

I'm looking for a minimal distribution of Ruby to distribute my app

12 messages 2005/08/30

[#154363] Nano Methods & Mega Modules — "Trans" <transfire@...>

19 messages 2005/08/30

[#154380] Ruby on Linux & Windows — Tim Ferrell <Tim.Ferrell@...0nspark.com>

I'm not trying to start anything here but I'd like some feedback from those of

18 messages 2005/08/30

[#154542] nano & mega — Jeff Wood <jeff.darklight@...>

What's up with the funky names ... AND, is there an easy way to just requir=

30 messages 2005/08/31
[#154592] Re: nano & mega — "Dave Burt" <dave@...> 2005/09/01

Jeff Wood wrote:

[#154624] Re: nano & mega — =?ISO-8859-15?Q?Florian_Gro=DF?= <florgro@...> 2005/09/01

Dave Burt wrote:

[#154626] Re: nano & mega — James Edward Gray II <james@...> 2005/09/01

On Sep 1, 2005, at 8:59 AM, Florian Growrote:

[SUMMARY] Scheduling (#42)

From: Ruby Quiz <james@...>
Date: 2005-08-18 14:11:30 UTC
List: ruby-talk #152707
The problem space of scheduling is vast and complicated, but it's not too hard
to get some form of working solution.  The real trick is the quality of the
schedule generated.

I took a very easy approach, to keep the problem manageable.  My initial thought
when reading the problem was to use a "Hill Climbing" algorithm.  I planned to
start by just assigning every shift (ignoring availability and preference), and
then swap shifts until I had a corrected schedule.  That process changed a bit
when I was actually coding it up though.  More on that later.

The first thing I needed was some notion of time.  I did consider using the
built-in Time class, but I really wanted something simple.  My approach only
considers time in hour slices and the main functionality I needed was support
for use in a Range object.  Here's what I settled on:

	#!/usr/local/bin/ruby -w

	require "yaml"

	# A representation of a single hour.  Usable in Ranges.
	class Hour
		def initialize( text )
			@hour = case text
			when "12 AM"
				0
			when "12 PM"
				12
			when /(\d+) PM/
				$1.to_i + 12
			else
				text[/\d+/].to_i
			end
		end

		include Comparable

		def <=>( other )
			@hour <=> other.instance_eval { @hour }
		end

		def succ
			next_hour = Hour.new("12 AM")

			next_time = (@hour + 1) % 24
			next_hour.instance_eval { @hour = next_time }

			next_hour
		end

		def to_s
			str = case @hour
			when 0
				"12 AM"
			when 12
				"12 PM"
			when 13..23
				"#{@hour - 12} PM"
			else
				"#{@hour} AM"
			end
			"%5s" % str
		end
	end
	
	# ...

The easiest way to get a unique and comparable representation of an hour I could
think of was to use military time.  That's exactly what the constructor does.  I
parse the string representation of a time and store the military hour (0-23)
internally.

If you glance down, you'll see that to_s() is simply the reverse of this
process.  I use it in printing results.

The other two methods are simple.  The documentation for Range say that you can
use any object that supports <=>() and succ(), so that's what we have here.  The
<=>() method just compares the military hours.  succ() builds a new Hour object
then sets it to one hour ahead of the current object and returns the new Hour.

You can see that I'm using instance_eval() in both of these methods to read and
adjust the internal representation in other Hour objects.  That felt more
correct than exposing the internal representation with an accessor and I think
it's great that Ruby lets me make this choice.

The other helper class I felt need for was something to represent a worker.  I
wanted to be able to feed it the worker's requested schedule and then query it
as needed.  Here's the code:

	# ...

	# An object for tracking a worker's availability and preferences.
	class Worker
		def initialize( name )
			@name  = name

			@avail   = Hash.new
			@prefers = Hash.new
		end

		attr_reader :name

		def can_work( day, times )
			@avail[day] = parse_times(times)

			@prefers[day] = if times =~ /\((?:prefers )?([^)]+)\s*\)/
				parse_times($1)
			else
				Hour.new("12 AM")..Hour.new("11 PM")
			end
		end

		def available?( day, hour )
			if @avail[day].nil?
				false
			else
				@avail[day].include?(hour)
			end
		end

		def prefers?( day, hour )
			return false unless available? day, hour

			if @prefers[day].nil?
				false
			else
				@prefers[day].include?(hour)
			end
		end

		def ==( other )
			@name == other.name
		end

		def to_s
			@name.to_s
		end

		private

		def parse_times( times )
			case times
			when /^\s*any\b/i
				Hour.new("12 AM")..Hour.new("11 PM")
			when /^\s*before (\d+ [AP]M)\b/i
				Hour.new("12 AM")..Hour.new($1)
			when /^\s*after (\d+ [AP]M)\b/i
				Hour.new($1)..Hour.new("11 PM")
			when /^\s*(\d+ [AP]M) to (\d+ [AP]M)\b/i
				Hour.new($1)..Hour.new($2)
			when /^\s*not available\b/i
				nil
			else
				raise "Unexpected availability format."
			end
		end
	end
	
	# ...

The constructor just makes note of the name for this Worker, then sets up two
Hash objects to hold availability and preferred schedule.  The Hashes will use a
day of the week as a key and a Range of Hour objects as the value.  An
availability of "any" can be represented as a Range of all the Hours in a day. 
This is easy to work with, but it can't handle split-shift style availabilities.
You could fix this by making the values Arrays of Ranges.

The next three methods are all closely related.  First, can_work() takes a day
String and a String representation of available times and uses those to set the
previously mentioned Hashes.  The actual parsing is delegated to the private
parse_time() method, which just uses Regexps to break down the input.  Once a
schedule has been loaded, you can check availability for a given day and hour
with available?().  The prefers?() method takes the same input but returns a
preference instead.  A Worker must be available to work a given time to have a
preference about it.

Those are the only helper classes I built.  The rest is application code:

	# ...
	
	if __FILE__ == $0
		unless ARGV.size == 1 and File.exists?(ARGV.first)
			puts "Usage:  #{File.basename($0)} SCHEDULE_FILE"
			exit
		end

		# load the data
		data = File.open(ARGV.shift) { |file| YAML.load(file) }

		# build worker list
		workers = Array.new
		data["Workers"].each do |name, avail|
			worker = Worker.new(name)
			avail.each { |day, times| worker.can_work(day, times) }
			workers << worker
		end
		
		# ...

That's all pretty basic.  Check and display usage, if needed; load the YAML
representation of workers and schedule hours to be filled; anf finally, build an
Array of Worker objects that are aware of their availability and preferences. 
Here's the YAML file I'm using:

	--- 
	Schedule: 
	  Wed: 9 AM to 6 PM
	  Sun: 9 AM to 10 PM
	  Thu: 9 AM to 8 PM
	  Mon: 9 AM to 6 PM
	  Tue: 9 AM to 6 PM
	  Sat: 9 AM to 10 PM
	  Fri: 9 AM to 6 PM
	Workers: 
	  James: 
	    Wed: any
	    Sun: any (prefers before 5 PM)
	    Thu: 12 PM to 3 PM
	    Mon: before 3 PM (prefers before 12 PM)
	    Tue: any
	    Sat: not available
	    Fri: 12 PM to 3 PM
	  Brian: 
	    Wed: not available
	    Sun: after 1 PM
	    Thu: any (prefers 8 AM to 5 PM)
	    Mon: any (prefers 8 AM to 5 PM)
	    Tue: any (prefers 8 AM to 5 PM)
	    Sat: any
	    Fri: any (prefers 8 AM to 5 PM)

The next step is to build a schedule.  Here's where I deviated from my original
plan.  I realized that if I limit myself to just worrying about availability at
first, I can build a correct schedule in those terms as I load it.  Here's how
that turns out:

		# ...

		# create a legal schedule, respecting availability
		schedule = Hash.new
		data["Schedule"].each do |day, times|
			schedule[day] = Array.new
			if times =~ /^\s*(\d+ [AP]M) to (\d+ [AP]M)\b/i
				start, finish = Hour.new($1), Hour.new($2)
			else
				raise "Unexpected schedule format."
			end

			(start..finish).each do |hour|
				started_with = workers.first
				loop do
					if workers.first.available? day, hour
						schedule[day] << [hour, workers.first]
						break
					else
						workers << workers.shift
						if workers.first == started_with
							schedule[day] << [hour, "No workers available!"]
							break
						end
					end
				end
			end
			workers << workers.shift
		end
		
		# ...

A schedule is a Hash that stores day names paired with Arrays of Arrays.  The
Arrays are a collection of Hour and Worker pairs, showing who is scheduled to
work at that time.

The second half of that code is what assembles the initial schedule.  It just
walks every hour of every day assigning a worker.  It starts with the first
worker in the list and keeps assigning them until them end of the day or until
the worker has a schedule conflict.  Anytime either of those conditions happens,
the worker list is rotated and we try the next worker.

If we make it all the way through the list of workers without finding a person
who could work at that time, we just set the Worker slot to a warning message
and rely on the user to fix the problem.  Blowing up with an exception here
seemed too drastic for what is likely a fairly common snag that I doubt software
is qualified to resolve.

The main issue with the above system is that it can assign people very long or
very short shifts.  I think a good way to correct this would be to set minimum
and maximum shift lengths and adjust the software to honor them.  Of course,
this will create more conflicts so you either have to accept that or make them
soft limitations.

Now, my code does make a second pass adjusting shifts, but now the focus turns
from availability to preference.  Let's examine that:

		# ...
		
		# make schedule swaps for preferred times
		schedule.each do |day, hours|
			hours.each_with_index do |(hour, worker), index|
				next unless worker.is_a?(Worker)
				unless worker.prefers?(day, hour)
					alternate = workers.find { |w| w.prefers?(day, hour) }
					hours[index][-1] = alternate unless alternate.nil?
				end
			end
		end
		
		# ...

Here I'm just searching for people working hours they didn't prefer.  When
found, I try to swap them out for someone who did prefer the time, if I can find
such a person.  Otherwise, they have to stay.

Again, this can create some odd schedules.  Mainly, people are traded on an
hourly basis and this can cause scheduling of one hour shifts.  Again, I think
the answer is minimum shift lengths as I mentioned above, but in practice this
wasn't a chronic problem with availabilities like the ones in the YAML file. 
When someone passed out of the times they preferred, it would generally cause
the rest of their shift to be replaced with someone that did want to work the
time.

All that remains is to print the schedule:

		# ...

		# print schedule
		%w{Mon Tue Wed Thu Fri Sat Sun}.each do |day|
			puts "#{day}:"
			schedule[day].each do |hour, worker|
				puts "  #{hour}:  #{worker}"
			end
		end
	end

That's as easy as it looks.  Walk the days, printing hours and who's working at
that time.

All-in-all it's an imperfect solution, but I think you could keep tuning it
until you get what you need.  It works, but can certainly be made better.

Next week's Ruby Quiz is the number game that's been requested of me twice now,
so I really hope I'm not the only guy working that one...

In This Thread

Prev Next