[#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] Stock Portfolios (#41)

From: Ruby Quiz <james@...>
Date: 2005-08-11 12:59:20 UTC
List: ruby-talk #151669
The first thing this quiz requires is a source of stock data.  The only
essential piece of data for the program shown in the quiz is a current share
price.  Jeffrey Moss shows what is probably the easiest way to get exactly that:

	require 'soap/rpc/driver'

	driver = SOAP::RPC::Driver.new( 'http://services.xmethods.com/soap',
	                                'urn:xmethods-delayed-quotes' )
	driver.add_method( 'getQuote', 'a_string' )
	driver.getQuote('GOOG')

That code fetches a current quote for Google (symbol "GOOG"), though it doesn't
do anything with it.  It uses the standard SOAP library to retrieve the quote
from a web service provider.

There are, of course, other ways to fetch stock data.  You could always scrape
it from any of the numerous provider sites across the web.  Peter Verhage gave
us another interesting option with a link posted to Ruby Talk:

	http://www.gummy-stuff.org/Yahoo-data.htm

The page describes how to feed Yahoo! custom URL's to which it will respond with
and impressive array of stock data in Comma Separated Value (CSV) format.  A
couple of solutions put this to use.

Let's examine Adam Sanderson's code below:

	require 'open-uri'
	require 'ostruct'
	require 'csv'
	require 'yaml'

	# I used the methods outlined at http://www.gummy-stuff.org/Yahoo-data.htm
	# to fetch and manage data, it works quite well.
	#
	# StockData encapsulates Yahoo's service and generates OpenStructs 
	# which have the requested fields. A StockTransaction records the 
	# purchase or sale of stocks with a timestamp.  StockHistory aggregates
	# StockTransactions. The StockPortfolio manages a user's stocks.  Finaly
	# the StockApp provides a text UI.  StockApp isn't very polished, but it
	# does the trick.
	#
	# Usage:
	# ruby stocks.rb [filename]
	#
	# .adam sanderson
	# netghost@gmail.com

	# To make things easier. overide the way Time is printed.
	class Time
	    def to_s
	        strftime("%m/%d/%Y %I:%M%p")
	    end
	end
	
	# ...

You can see that the code starts by requesting four standard libraries be
loaded.  The open-uri library makes it trivially easy to read from a URL,
ostruct gives us an objectified Hash interface, csv can parse/write CSV data,
and YAML is an easy and powerful data language for persistent storage.  Learning
about the various libraries Ruby ships with can put a lot of powerful tools at
your finger tips.

The rest of the above snippet is mostly a comment that describes the code to
follow.  The Time class is also altered to print date and time information as
this code prefers.  (I'm not sure how much value the Time hack has, since the
user code could just call strftime() instead.  You be the judge.)

Here's the first class used in the solution:

	# http://www.gummy-stuff.org/Yahoo-data.htm
	class StockData
	    include Enumerable

	    SOURCE_URL = "http://finance.yahoo.com/d/quotes.csv"

	    #These are the symbols I understand, which are limited
	    OPTIONS = {
	        :symbol=>"s",
	        :name=>"n",
	        :last_trade=>"l1",
	        :last_trade_date=>"d1",
	        :last_trade_time=>"t1",
	        :open=>"o",
	        :high=>"h",
	        :low=>"g",
	        :high_52_week=>"k",
	        :low_52_week=>"j"
	    }

	    def initialize(symbols, options = [:symbol, :name,
	                                       :last_trade, :last_trade_date,
	                                       :last_trade_time])
	        @symbols = symbols
	        @options = options
	        @data = nil
	    end

	    def each
	        data.each do |row|
	            struct = OpenStruct.new(Hash[*(@options.zip(row).flatten)])
	            yield struct 
	        end
	    end

	    def each_hash
	        data.each do |row|
	            hash = Hash[*(@options.zip(row).flatten)]
	            yield hash
	        end
	    end

	    def refresh
	        symbol_fragment = @symbols.join "+"
	        option_fragment = @options.map{|s| OPTIONS[s] }.join ""
	        url = SOURCE_URL + "?s=#{symbol_fragment}&f=#{option_fragment}"
	        @data = []
	        CSV.parse open(url).read do |row|
	            @data << row
	        end
	    end

	    def data
	        refresh unless @data
	        @data
	    end
	end

This StockData class is a wrapper for the Yahoo! service I described earlier. 
It begins by initializing a few constants for the URL of the service and some of
the options provided by the service.  The constructor takes an Array of stock
ticker symbols you want to fetch data for and an Array of options indicating the
data you wish to fetch.

Skip down now to the refresh() method, which actually does the data fetching. 
This methods just does what the previously mentioned link tells you to:  join()
all the symbols with "+", string the options together, form a URL of all that,
and read the CSV data from it.  Note that data is loaded into @data, row by row.

The other three methods are how you get the data.  Let's start with data(),
because the other two rely on it.  I like it when people remember that you don't
have to write an accessor with the attr_... methods, and you can do clever
tricks when you code them yourself.  For example, this method makes sure the
data is refresh()ed, if the instance variable is still empty.  I think that's
handy.

The other two methods allow you to iterate over the rows of data.  You can use
each_hash(), to receive each row as a Hash pairing the requested option name and
the fetched value.  Note the smooth use of zip() and flatten() there to rapidly
build the Hash.  The each() method works exactly the same, same that it yields
OpenStruct objects instead of Hashes.  In other words, you can choose to access
your data with row[:last_trade] or row.last_trade, as you prefer.  (OpenStruct
seems to be the preferred choice here though since all the Enumerable methods
use it.)

On to the next class:

	# ...
	
	class StockTransaction
	    attr_reader :shares, :price, :date

	    def initialize(shares, price)
	        @shares = shares
	        @price = price
	        @date = Time.now
	    end

	    def cost
	        @price * @shares
	    end

	    def to_s
	        ((@shares > 0) ? "Bought":"Sold") +
	        " #{shares.abs} on #{date} for #{cost.abs}, at #{price}"
	    end
	end
	
	# ...

This is a simple data class.  It takes a number of shares (maybe negative, for
sale transactions) and a price.  It also records the creation time.  Given that,
you can ask it for the total cost() or a pretty String describing the
transaction.

Next class:

	# ...
	
	class StockHistory
	    attr_reader :symbol, :name, :history

	    def initialize(symbol, name)
	        @symbol = symbol
	        @name = name
	        @history = []
	    end

	    def net_shares
	        history.inject(0){|shares, transaction|
	            shares + transaction.shares
	        }
	    end

	    def net_balance
	        history.inject(0){|balance, transaction|
	            balance + transaction.cost
	        }
	    end

	    def started
	        history.first.date unless history.empty?
	    end

	    def buy(shares, price)
	        if(shares > 0 and price > 0)
	            history << StockTransaction.new(shares.abs, price)
	        else
	            puts "Could not buy #{shares} of #{name || symbol}, " + 
	                 "you only have #{net_shares} shares."
	        end
	    end

	    def sell(shares, price)
	        if(net_shares >= shares and shares > 0 and price > 0)
	            history << StockTransaction.new(shares.abs*-1, price)
	        else
	            puts "Could not sell #{shares} of #{name || symbol}, " + 
	                 "you only have #{net_shares} shares."
	        end
	    end

	    def to_s
	        lines = []
	        lines << "#{name}(#{symbol})"
	        history.each do |t|
	            lines << t.to_s
	        end
	        lines.join "\n"
	    end

	end
	
	# ...

This class is just a collection of the StockTransactions we just examined.  You
initialize() it with a symbol and name, then add transactions with buy() and
sell().  Those methods construct StockTransaction objects and add them to the
internal history Array.  Once you have a StockHistory started, you can query it
for net_shares(), net_balance(), and a started() date.  Finally, to_s() will
build a human readable summary using StockTransaction's to_s() to build each
line.

Last stock data class, coming up:

	# ...
	
	class StockPortfolio
	    DEFAULT_INFO = [:symbol, :name, :last_trade]
	    attr :stocks

	    def initialize()
	        @stocks = {}    #stocks by symbol
	    end

	    # Takes a hash of symbols to shares, yields history, price, 
	    # quantity requested
	    def transaction(purchases, &block)
	        data = StockData.new(purchases.keys, DEFAULT_INFO)
	        data.each do |stock|
	            price = stock.last_trade.to_f
	            if not price == 0
	                history = @stocks[ stock.symbol ] ||=
	                          StockHistory.new(stock.symbol, stock.name)
	                yield [history, purchases[stock.symbol],
	                       stock.last_trade.to_f]
	            else
	                puts "Couldn't find #{stock.symbol}."
	            end
	        end
	    end

	    def buy(purchases)
	        transaction(purchases){|history, shares, price|
	            history.buy(shares, price)
	        }
	    end

	    def sell(purchases)
	        transaction(purchases){|history, shares, price|
	            history.sell(shares, price)
	        }
	    end

	    def history(symbol=nil)
	        if (symbol)
	            puts stocks[symbol]
	        else
	            stocks.keys.each{|s| history s unless s.nil?}
	        end
	    end

	    def report()
	        data = StockData.new(stocks.keys, DEFAULT_INFO)

	        data.each do |stock|
	            history = stocks[stock.symbol]
	            if (history)
	                gain = (history.net_shares * stock.last_trade.to_f) -
	                       history.net_balance
	                puts "#{stock.name}(#{stock.symbol}), " + 
	                     "Started #{history.started}"
	                puts " Gain = Shares x Price - Balance:"
	                puts " $#{gain} = #{history.net_shares} x " +
	                     "$#{stock.last_trade.to_f} - $#{history.net_balance}"
	                puts ""
	            end
	        end
	    end
	end
	
	# ...

This class manages a portfolio, which is basically a collection of StockHistory
objects.  The buy() and sell() methods are the primary interface here, but they
both just delegate to transaction().

That method, which might be better as a private instance method, takes a Hash of
symbol keys and shares to buy or sell values.  It also requires a block, though
it doesn't use its "block" parameter.  First, transaction() uses a StockData
object (with the hardcoded DEFAULT_INFO selection of options) to lookup a
current price for each of the symbols passed in.  From that, it constructs price
data and a matching StockHistory object, either by looking it up or creating a
new one.  The history, passed in share count, and price are then yielded to the
block, which buy() and sell() use to add the transactions to the history.

The other two methods report on the data.  The history() method will print a
single transaction history for a requested symbol or all known histories by
symbol.  To see how all the owned stocks are holding up, you can call report(). 
It fetches current prices, again using StockData, then outputs gain/loss
information for each symbol in the portfolio.  Note that these methods print
data directly to STDOUT and thus wouldn't play too nice with non-console
interfaces.

Finally, here's the application itself:

	# ...
	
	class StockApp
	    QUIT    = /^exit|^quit/
	    BUY     = /^buy\s+((\d+\s+\w+)(\,\s*\d+\s+\w+)*)\s*$/
	    SELL    = /^sell\s+((\d+\s+\w+)(\,\s*\d+\s+\w+)*)\s*$/
	    HISTORY = /^history\s*(\w+)?\s*$/
	    REPORT  = /^report\s*$/
	    VIEW    = /^view\s+((\w+)(\,\s*\w+)*)\s*$/
	    HELP    = /^help|^\?/

	    def initialize(path="stock_data.yaml")
	        if File.exist? path
	            puts "Loading Portfolio from #{path}"
	            @portfolio = YAML.load( open(path).read )
	            @portfolio.report
	        else
	            puts "Starting a new portfolio..."
	            @portfolio = StockPortfolio.new()
	        end
	        @path = path
	    end

	    def run
	        command = nil

	        while(STDOUT << ">"; command = gets.chomp)

	            case command
	                when QUIT
	                    puts "Saving data..."
	                    open(@path,"w"){|f| f << @portfolio.to_yaml}
	                    puts "Good bye"
	                    break

	                when REPORT
	                    @portfolio.report

	                when BUY
	                    purchases = parse_purchases($1)
	                    @portfolio.buy purchases
	                    @portfolio.report

	                when SELL
	                    purchases = parse_purchases($1)
	                    @portfolio.sell purchases
	                    @portfolio.report

	                when VIEW
	                    symbols = ($1).split
	                    options = [:symbol, :name, :last_trade]
	                    data = StockData.new(symbols, options)
	                    data.each do |stock|
	                        puts "#{stock.name} (#{stock.symbol} " +
	                             "$#{stock.last_trade})"
	                    end

	                when HISTORY
	                    symbol = $1 ? ($1).upcase : nil
	                    @portfolio.history(symbol)

	                when HELP
	                   help() 

	                else
	                    puts "Enter: 'help' for help, or 'exit' to quit."
	            end

	        end
	    end

	    def parse_purchases(str)
	        purchases = {}
	        str.scan(/(\d+)\s+(\w+)/){|pair| purchases[$2.upcase] = $1.to_i}
	        purchases
	    end

	    def help
	        puts <<END_OF_HELP
	Commands:
	[buy]: Purchase Stocks
	    buy Shares Symbol[, Shares Symbol...]
	    example: buy 30 GOOG, 10 MSFT

	[sell]: Sell Stocks
	    sell Shares Symbol[, Shares Symbol...]
	    example: sell 30 GOOG, 10 MSFT

	[history]: View your transaction history
	    history [Symbol]
	    example: history GOOG

	[report]: View a report of your current stocks
	    report

	[view]: View the current price of a stock
	    view Symbol[, Symbol...]
	    example: view GOOG, MSFT

	[exit]: Quit the stock application (also quit)

	END_OF_HELP

	    end

	end
	
	# ...

While that looks like a lot of code, there's really not a lot of fancy stuff
going on.

The constructor just opens an existing portfolio file, using YAML, if one
exists.  You can point it at a file, or it will default.  The path of this file
is saved, so the file can be updated on exit.

The two biggest methods are run() and help().  The run() method just read
commands from STDIN, parses them using Regexps (you can see these at the top of
the class) in a large case statement, and executes the proper methods on the
classes we've been looking at in response.  If you need more details on how any
of these work, glance at the other big method, help(), which is just a heredoc
String.

The parse_purchase() method is a helper for the BUY and SELL commands that
extracts all the symbols and shares entered by the user.

Here's the last little chunk of code that creates and runs the application:

	# ...
	
	if __FILE__ == $0
	    app = if ARGV.length > 0
	        StockApp.new(ARGV.pop)
	    else
	        StockApp.new()
	    end
	    app.run
	end

My thanks to those who delved into the land of Wall Street and made some trades.
Hopefully you're now well on your way to a balanced portfolio.

Tomorrow we will try a submitted problem from Hans Fugal that should be plenty
of fun for all you algorithm junkies out there...

In This Thread

Prev Next