[#140667] Thinking of creating a small mini-language-interpreter using Ruby — Glenn Smith <glenn.ruby@...>

Always something I've wanted to write - an interpreter of my own. Now

12 messages 2005/05/01

[#140714] Ruby, Rails and now og — "Andrew Ballantine" <andrew.ballantine@...>

Hi,

16 messages 2005/05/02

[#140808] Re: "Bounty" approach for small pieces of code? — Hal Fulton <hal9000@...>

Molitor, Stephen L wrote:

12 messages 2005/05/03
[#140810] Re: "Bounty" approach for small pieces of code? — Richard Lyman <lymans@...> 2005/05/03

On 5/2/05, Hal Fulton <hal9000@hypermetrics.com> wrote:

[#140856] Bug Tracker — Andy Stone <xsltguru@...>

Hello all,

28 messages 2005/05/03

[#140910] Typo-checking instead of static typing — Ben Giddings <bg-rubytalk@...>

Once again, static typing reared its head on the mailing list, and once

31 messages 2005/05/03

[#140928] Re: [ANN] traits-0.0.0 — "Berger, Daniel" <Daniel.Berger@...>

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

16 messages 2005/05/03

[#141015] writing to a file with gsub! — Ralf Mler <r_mueller@...>

Hi,

12 messages 2005/05/04

[#141023] Object#inside_metaclass? — "Ara.T.Howard" <Ara.T.Howard@...>

56 messages 2005/05/04
[#141045] Re: [RCR] Object#inside_metaclass? — "David A. Black" <dblack@...> 2005/05/04

On Wed, 4 May 2005, Ara.T.Howard wrote:

[#141050] Re: [RCR] Object#inside_metaclass? — Ilias Lazaridis <ilias@...> 2005/05/04

David A. Black wrote:

[#141522] Re: [RCR] Object#inside_metaclass? — Yukihiro Matsumoto <matz@...> 2005/05/07

Hi,

[#141533] Re: [RCR] Object#inside_metaclass? — Ilias Lazaridis <ilias@...> 2005/05/07

Yukihiro Matsumoto wrote:

[#141548] Re: [RCR] Object#inside_metaclass? — Yukihiro Matsumoto <matz@...> 2005/05/07

In message "Re: [RCR] Object#inside_metaclass?"

[#141550] Re: [RCR] Object#inside_metaclass? — Ilias Lazaridis <ilias@...> 2005/05/07

Yukihiro Matsumoto wrote:

[#141575] Re: [RCR] Object#inside_metaclass? — Yukihiro Matsumoto <matz@...> 2005/05/07

[#141057] Fixnum's binary representation — camsight@...

Hi, people!

13 messages 2005/05/04

[#141143] Re: object reference handle (like perl's reference to scalar) — Eric Mahurin <eric_mahurin@...>

> > In ruby, is there a way to get a handle of an object

17 messages 2005/05/04

[#141165] Ruby Editor Plugin for jEdit 0.6 - method completion release — "Rob ." <rob.02004@...>

Version 0.6 of jEdit's Ruby Editor Plugin has been released and is

21 messages 2005/05/05
[#141176] Re: [ANN] Ruby Editor Plugin for jEdit 0.6 - method completion release — Alexandru Popescu <the_mindstorm@...> 2005/05/05

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

[#141186] Re: [ANN] Ruby Editor Plugin for jEdit 0.6 - method completion release — "Rob ." <rob.02004@...> 2005/05/05

Alexandru Popescu wrote:> Rob . said:> > Version 0.6 of jEdit's Ruby Editor Plugin has been released and is> > available for download!> >> > http://www.jedit.org/ruby/> > Great job Rob!Mulmesc!

[#141205] Re: [ANN] Ruby Editor Plugin for jEdit 0.6 - method completion release — Tom Copeland <tom@...> 2005/05/05

On Thu, 2005-05-05 at 18:38 +0900, Rob . wrote:

[#141219] Re: [ANN] Ruby Editor Plugin for jEdit 0.6 - method completion release — Alexandru Popescu <the_mindstorm@...> 2005/05/05

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

[#141225] Re: [ANN] Ruby Editor Plugin for jEdit 0.6 - method completion release — "Rob ." <rob.02004@...> 2005/05/05

Alex, I don't get an exception in this case, but I see what you mean.

[#141196] Whats so different about a Hash? — Andrew Walrond <andrew@...>

Consider:

15 messages 2005/05/05
[#141197] Re: Whats so different about a Hash? — Brian Schrer <ruby.brian@...> 2005/05/05

On 05/05/05, Andrew Walrond <andrew@walrond.org> wrote:

[#141199] Re: Whats so different about a Hash? — Andrew Walrond <andrew@...> 2005/05/05

Hi Brian,

[#141299] another Tk question — Joe Van Dyk <joevandyk@...>

In Tk, what's the best way to show a large table of data that gets

15 messages 2005/05/05
[#141326] Re: another Tk question — Hidetoshi NAGAI <nagai@...> 2005/05/06

From: Joe Van Dyk <joevandyk@gmail.com>

[#141307] String Manipulation Nuby Question — Chris Roos <chris@...>

I have a Person with title, forename and surname (all of which are

13 messages 2005/05/05

[#141311] Ruby Editor Plugin for jEdit 0.6.1 - method completion release II — "Rob ." <rob.02004@...>

Version 0.6.1 of jEdit's Ruby Editor Plugin has been released and is

12 messages 2005/05/05

[#141334] RCR 303: nil should accept missing methods and return nil — John Carter <john.carter@...>

A very simple and generic way of improving the reliability of Ruby

66 messages 2005/05/06
[#141338] Re: RCR 303: nil should accept missing methods and return nil — Luke Graham <spoooq@...> 2005/05/06

On 5/6/05, John Carter <john.carter@tait.co.nz> wrote:

[#141339] Re: RCR 303: nil should accept missing methods and return nil — Hal Fulton <hal9000@...> 2005/05/06

Luke Graham wrote:

[#141345] Re: RCR 303: nil should accept missing methods and return nil — John Carter <john.carter@...> 2005/05/06

On Fri, 6 May 2005, Hal Fulton wrote:

[#141340] Prove me Wrong! Re: RCR 303: nil should accept missing methods — John Carter <john.carter@...> 2005/05/06

On Fri, 6 May 2005, Alexey Verkhovsky wrote:

[#141349] What sound does no duck make? — John Carter <john.carter@...>

Imagine a flock of ducks in the sky. Listen.

13 messages 2005/05/06

[#141368] Re: compiler error: argument of type "VALUE *" is incompatible with parameter of type "VALUE" — me2faster@...

On May 5, 2005, at 2:44 PM, me2faster@excite.com wrote:

10 messages 2005/05/06

[#141529] [NITRO] - Mr. George Moschovitis applies Censorship on Public Project Forum — Ilias Lazaridis <ilias@...>

To understand further the _real_ difference between Nitro/Og and

25 messages 2005/05/07

[#141530] [NITRO] - Mr. Moschovitis Revolutionary Redefinition of an Open Source Project — Ilias Lazaridis <ilias@...>

George Moschovitis wrote

15 messages 2005/05/07

[#141576] HighLine 0.4.0 — James Edward Gray II <james@...>

HighLine 0.4.0 Released

29 messages 2005/05/07
[#141616] Re: HighLine 0.4.0 — "Vincent Foley" <vfoley@...> 2005/05/07

Hello James,

[#141618] Re: HighLine 0.4.0 — James Edward Gray II <james@...> 2005/05/07

On May 7, 2005, at 4:19 PM, Vincent Foley wrote:

[#141598] Vacation - email me when Ilias is gone or people FINALLY stop responding to him — Ryan Davis <ryand-ruby@...>

The signal:noise ratio on this list is terrible. I'm taking a

12 messages 2005/05/07
[#141647] Re: Vacation - email me when I. is gone or people FINALLY stop responding to him — Bertram Scharpf <lists@...> 2005/05/08

Hi,

[#141615] - Sterile Classes / Sterile Meta Classes — Ilias Lazaridis <ilias@...>

Another suggestion for the "Ruby Singleton Classes" or "Exclusive Classes":

72 messages 2005/05/07
[#141681] Re: [ETYMOLOGY] - Sterile Classes / Sterile Meta Classes — Yukihiro Matsumoto <matz@...> 2005/05/08

In message "Re: [ETYMOLOGY] - Sterile Classes / Sterile Meta Classes"

[#141709] Re: [ETYMOLOGY] - Sterile Classes / Sterile Meta Classes — Carlos <angus@...> 2005/05/08

[Yukihiro Matsumoto <matz@ruby-lang.org>, 2005-05-08 17.13 CEST]

[#141710] Re: [ETYMOLOGY] - Sterile Classes / Sterile Meta Classes — Hal Fulton <hal9000@...> 2005/05/08

Carlos wrote:

[#141715] Re: [ETYMOLOGY] - Sterile Classes / Sterile Meta Classes — Yukihiro Matsumoto <matz@...> 2005/05/08

Hi,

[#141719] Re: [ETYMOLOGY] - Sterile Classes / Sterile Meta Classes — "David A. Black" <dblack@...> 2005/05/08

Hi --

[#141748] Re: [ETYMOLOGY] - Sterile Classes / Sterile Meta Classes — Yukihiro Matsumoto <matz@...> 2005/05/08

Hi,

[#141810] Re: [ETYMOLOGY] - Sterile Classes / Sterile Meta Classes — Yukihiro Matsumoto <matz@...> 2005/05/09

Hi,

[#141655] No Thing Here vs Uninitialized and RCR 303 — Cyent <cyent@...>

I'm observing a general trend in the responses to RCR 303.

26 messages 2005/05/08
[#141745] Re: No Thing Here vs Uninitialized and RCR 303 — Lionel Thiry <lthiryidontwantspam@...> 2005/05/08

Cyent a 馗rit :

[#141746] Re: No Thing Here vs Uninitialized and RCR 303 — Bill Atkins <batkins57@...> 2005/05/08

This isn't about changing programming habits. Having nil return nil

[#141707] Singleton class terminology — Hal Fulton <hal9000@...>

Just expressing my opinion here.

16 messages 2005/05/08

[#141776] Stats comp.lang.ruby (last 7 days) — Balwinder Singh Dheeman <bsd.SANSPAM@...>

Stats comp.lang.ruby (last 7 days)

15 messages 2005/05/09

[#141875] How to extract texts from html source? — "Sam Kong" <sam.s.kong@...>

Hi, all!

14 messages 2005/05/09

[#141900] Still umlauts — Bertram Scharpf <lists@...>

Hi,

8 messages 2005/05/09
[#142448] Re: Still umlauts — "Josef 'Jupp' SCHUGT" <jupp@...> 2005/05/12

Hi!

[#142507] Re: Still umlauts — Bertram Scharpf <lists@...> 2005/05/13

Hi,

[#142514] Re: Still umlauts — Jonas Hartmann <Mail@...> 2005/05/13

Bertram Scharpf wrote:

[#142527] Re: Still umlauts — =?WINDOWS-1252?Q?Brian_Schr=F6der?= <ruby.brian@...> 2005/05/13

On 13/05/05, Jonas Hartmann <Mail@jonas-hartmann.com> wrote:> Bertram Scharpf wrote:> > Hi,> >> > Am Freitag, 13. Mai 2005, 04:34:00 +0900 schrieb Josef 'Jupp' SCHUGT:> >> >>At Tue, 10 May 2005 06:58:30 +0900, Bertram Scharpf wrote:> >>> >>>does this no longer work?> >>> >>You forgot to define the meaning of 'no longer works':> >>> >> - What precisely do you mean by 'it works'?> >> >> > Sorry, that was not actually elaborate. Now I think it> > never worked at all.> >> >> >>>--------------------> >>>#!/usr/bin/env ruby> >>># -*- coding: UTF-8 -*-> >>>> >>>puts $KCODE> >>>puts "蔕ヨワ゜"> >>>--------------------> >>>> >>>I tried it with Ruby 1.8.2 and 1.9, Debian Linux.> >>>What do I miss?> >> >> > In the meantime I received an answer in ruby-core and it> > seems Matz just _planned_ to implement it but didn't have> > the time yet.> >> > The problem arises when my program is run on SuSE Linux> > where the default encoding is UTF-8.> >> > A better way to test in which encoding you reside is:> >> > "テ =~ /./> > puts $&.length> >> > This gives 1 in `None' and 2 in `UTF-8'.> >> >> >>When in doubt *set* $KCODE explicitly.> >> >> > This has no influence on how the source code is read. The> > string " produces an error when `ruby -Ku' is called.> >> > Of course I should have written "\xc3\xa4" and "\xc3".> > Is this the only way to handle strings UTF-8 in ruby?> > >> > Sorry again for the noise.> >> > Bertram> >> >> > regards> jonas> >

[#141958] Redesign 2005, Round Two — why the lucky stiff <ruby-talk@...>

I'm happy to say that our little redesign team has come to accord on a

80 messages 2005/05/10
[#142020] Re: [ANN] Redesign 2005, Round Two — gabriele renzi <surrender_it@...> 2005/05/10

why the lucky stiff ha scritto:

[#142033] Re: [ANN] Redesign 2005, Round Two — Ilias Lazaridis <ilias@...> 2005/05/10

why the lucky stiff wrote:

[#142041] Re: [ANN] Redesign 2005, Round Two — Mark Hubbart <discordantus@...> 2005/05/10

On 5/10/05, Ilias Lazaridis <ilias@lazaridis.com> wrote:

[#142057] Re: [ANN] Redesign 2005, Round Two — Nikolai Weibull <mailing-lists.ruby-talk@...> 2005/05/10

Mark Hubbart, May 11:

[#142196] Re: Redesign 2005, Round Two — "Karl von Laudermann" <doodpants@...> 2005/05/11

[#142219] Re: Redesign 2005, Round Two — "David A. Black" <dblack@...> 2005/05/11

Hi --

[#142221] Re: Redesign 2005, Round Two — James Britt <james_b@...> 2005/05/11

David A. Black wrote:

[#142237] Re: Redesign 2005, Round Two — "Ryan Leavengood" <mrcode@...> 2005/05/11

James Britt wrote:

[#142252] Re: Redesign 2005, Round Two — "David A. Black" <dblack@...> 2005/05/11

Hi --

[#142267] Re: Redesign 2005, Round Two — James Britt <james_b@...> 2005/05/11

David A. Black wrote:

[#142274] Re: Redesign 2005, Round Two — "John W. Long" <ng@...> 2005/05/11

James Britt wrote:

[#142302] Re: Redesign 2005, Round Two — Yukihiro Matsumoto <matz@...> 2005/05/12

[#142054] String Hashing Algorithms — "Phrogz" <gavin@...>

Summary

16 messages 2005/05/10

[#142129] options parsing: required and conflict — Kirill Shutemov <k.shutemov@...>

Can I define options dependencies using OptionParser?

13 messages 2005/05/11
[#142130] Re: options parsing: required and conflict — "Robert Klemme" <bob.news@...> 2005/05/11

Kirill Shutemov wrote:

[#142133] ruby vs. java? — "Franz Hartmann" <porschefranz@...>

Hello all,

61 messages 2005/05/11
[#142136] Re: ruby vs. java? — Michael Ulm <michael.ulm@...> 2005/05/11

Franz Hartmann wrote:

[#142141] Re: ruby vs. java? — "Franz Hartmann" <porschefranz@...> 2005/05/11

Hello Michael and all of you,

[#142149] Re: ruby vs. java? — Logan Capaldo <logancapaldo@...> 2005/05/11

On 5/11/05, Franz Hartmann <porschefranz@hotmail.com> wrote:

[#142155] Re: ruby vs. java? — "Franz Hartmann" <porschefranz@...> 2005/05/11

Hello Logan,

[#142166] Re: ruby vs. java? — Ralf Mler <r_mueller@...> 2005/05/11

[#142171] Re: ruby vs. java? — "Franz Hartmann" <porschefranz@...> 2005/05/11

Ralf,

[#142176] Re: ruby vs. java? — Ralf Mler <r_mueller@...> 2005/05/11

> (physician = Arzt, physicist = Physiker) :-)))

[#142224] alternatives to ? : contruct — "John-Mason P. Shackelford" <jpshack@...>

As an alternative to:

21 messages 2005/05/11

[#142260] Re: object loops and what they return — Eric Mahurin <eric_mahurin@...>

That sure looks ugly. I don't see any advantage of this over:

33 messages 2005/05/11
[#142359] Re: {} vs begin/end [was Re: object loops and what they return] — "Robert Klemme" <bob.news@...> 2005/05/12

Brian Schrer wrote:

[#142379] Re: {} vs begin/end [was Re: object loops and what they return] — "Jim Weirich" <jim@...> 2005/05/12

[#142268] Request for advice on applying a license — Nikolai Weibull <mailing-lists.ruby-talk@...>

Hi!

14 messages 2005/05/11
[#142276] Re: [OT] Request for advice on applying a license — Ben Giddings <bg-rubytalk@...> 2005/05/11

On Wednesday 11 May 2005 18:59, Nikolai Weibull wrote:

[#142370] Re: [OT] Request for advice on applying a license — Christian Neukirchen <chneukirchen@...> 2005/05/12

Ben Giddings <bg-rubytalk@infofiend.com> writes:

[#142342] Go through directories recursively — Jens Riedel <JensRie@...>

Hello,

17 messages 2005/05/12

[#142378] Amazing Mazes (#31) — Ruby Quiz <james@...>

Wow, these solutions are great fun to play with. I think next week's quiz needs

16 messages 2005/05/12

[#142404] We need a comprehensive test suite — Daniel Berger <djberge@...>

All,

12 messages 2005/05/12

[#142462] Get back data from a child (with exec) — Lawrence Oluyede <raims@...>

13 messages 2005/05/12

[#142620] ruby in WinXP as an automation tool — "kevin.gc@..." <kevin.gc@...>

Can anyone tell me if it can be done?

19 messages 2005/05/14

[#142671] infinite number of singleton_classes — Lionel Thiry <lthiryidontwantspam@...>

Hello!

37 messages 2005/05/15
[#142710] Re: infinite number of singleton_classes — Ara.T.Howard@... 2005/05/15

On Sun, 15 May 2005, Lionel Thiry wrote:

[#142745] Re: infinite number of singleton_classes — Lionel Thiry <lthiryidontwantspam@...> 2005/05/15

Ara.T.Howard@noaa.gov a 馗rit :

[#142746] Re: infinite number of singleton_classes — Hal Fulton <hal9000@...> 2005/05/15

Lionel Thiry wrote:

[#142711] Re: infinite number of singleton_classes — "David A. Black" <dblack@...> 2005/05/15

Hi --

[#142806] IRB, Mac OS X, command-line require via "-r" and Bus Errors — "James Adam" <james.adam@...>

Hey All,

22 messages 2005/05/16

[#142808] Ruby Weekly News 2nd - 15th May 2005 — timsuth@... (Tim Sutherland)

http://www.rubyweeklynews.org/20050515.html

15 messages 2005/05/16
[#143444] Array.=== Bug, Rails Bug, or brain failure? — Markus <markus@...> 2005/05/23

I've got some rails code that is failing in a very strange way. It is

[#143447] Re: Array.=== Bug, Rails Bug, or brain failure? — Jamis Buck <jamis@37signals.com> 2005/05/23

Markus,

[#143449] Re: Array.=== Bug, Rails Bug, or brain failure? — Markus <markus@...> 2005/05/23

[#142894] Google API, Soap and windows XP — ruby talk <rubytalk@...>

Hello,I am playing with the google api and soap. I have the newest versionof soap and i think ruby 1.8. I created my code on a laptop withmandrake 10.2 with the same version of ruby and soap. On my laptop itworks fine. On my windows computer it give me an error."F:\Documents and Settings\iv\Desktop\googlerip>ruby googled.rbmonkey filetype:pdfLoading compatibility library...c:/ruby/lib/ruby/1.8/xsd/datatypes.rb:172:in `_set': {http://www.w3.org/2001/XMLSchema}string: cannot accept '<b>...</b> Tibetan year of the <b>monkey</b>. These instructions are traditionally given <b>...</b><br> thus will give the rare ΓÇÖ<b>Monkey</b>-Year-TeachingsΓÇÖ after the inauguration in <b>...</b>'. (XSD::ValueSpaceError) from c:/ruby/lib/ruby/1.8/xsd/datatypes.rb:114:in `set' from c:/ruby/lib/ruby/1.8/soap/encodingstyle/soapHandler.rb:453:in `decode_textbuf' from c:/ruby/lib/ruby/1.8/soap/encodingstyle/soapHandler.rb:214:in `decode_tag_end' from c:/ruby/lib/ruby/1.8/soap/parser.rb:185:in `decode_tag_end' from c:/ruby/lib/ruby/1.8/soap/parser.rb:146:in `end_element' from c:/ruby/lib/ruby/1.8/xsd/xmlparser/parser.rb:75:in `end_element' from c:/ruby/lib/ruby/1.8/xsd/xmlparser/xmlparser.rb:36:in `do_parse' from c:/ruby/lib/ruby/1.8/xsd/xmlparser/xmlparser.rb:31:in `parse' ... 7 levels... from (eval):2:in `doGoogleSearch' from googled.rb:16 from googled.rb:15:in `each' from googled.rb:15"

2 messages 2005/05/17

[#142901] Help regarding def wrapper — Nikolai Weibull <mailing-lists.ruby-talk@...>

I窶囘 like to have a def that I can scope in one go, i.e.,

17 messages 2005/05/17

[#143041] Compiling MySQL-Ruby on Tiger — "pat allan" <pat.allan@...>

Hi all

21 messages 2005/05/18

[#143087] (newbie Q) opposite of inspect for strings — "Basile Starynkevitch [news]" <basile-news@...>

14 messages 2005/05/18

[#143225] Re: Multiple return and parallel assignement — Eric Mahurin <eric_mahurin@...>

25 messages 2005/05/20

[#143229] Web services and Ruby — Luke Kanies <luke@...>

Hi all,

17 messages 2005/05/20

[#143252] HighLine 0.6.0 -- Now with menus! — James Edward Gray II <james@...>

HighLine 0.6.0 Released

18 messages 2005/05/20

[#143305] join not in Enumerable — Logan Capaldo <logancapaldo@...>

Just a few minutes ago I was playing with irb as I am wont to do, and

14 messages 2005/05/21

[#143328] Vim's Ruby indenting — "Vincent Foley" <vfoley@...>

Hi to all the vim users,

17 messages 2005/05/22

[#143337] Uniform vector class, inheriting from Array: How to make sure that methods return a Vector and not an Array? — Thomas <sanobast-2005a@...>

Hi folks,

8 messages 2005/05/22
[#143342] Re: Uniform vector class, inheriting from Array: How to make sure that methods return a Vector and not an Array? — Brian Schrer <ruby.brian@...> 2005/05/22

On 22/05/05, Thomas <sanobast-2005a@yahoo.de> wrote:

[#143366] Stats comp.lang.ruby (last 7 days) — Balwinder Singh Dheeman <bsd.SANSPAM@...>

Stats comp.lang.ruby (last 7 days)

11 messages 2005/05/23

[#143375] sciTe editor IRB window getting double characters — "soxinbox" <faker@...>

Has any one had a problem with the latest release of Ruby and the included

10 messages 2005/05/23

[#143515] if __FILE_ == $0 executed twice — Han Holl <han.holl@...>

Hello,

21 messages 2005/05/24

[#143550] new article — pat eyler <pat.eyler@...>

Sorry for posting about my own article, but I'm interested in feedback,

24 messages 2005/05/24

[#143655] A different perspective on Ruby. — ES <ruby-ml@...>

47 messages 2005/05/26
[#143681] Re: A different perspective on Ruby. — "gsinclair@..." <gsinclair@...> 2005/05/26

ES wrote:

[#143683] Re: A different perspective on Ruby. — Brian Schrer <ruby.brian@...> 2005/05/26

On 26/05/05, gsinclair@gmail.com <gsinclair@gmail.com> wrote:

[#143705] Intellisense and the psychology of typing — andrew.queisser@...

Yesterday I typed in some C++ code that called a function with two

50 messages 2005/05/26
[#143710] Re: Intellisense and the psychology of typing — Thomas Adam <thomas@...> 2005/05/26

On Fri, May 27, 2005 at 01:35:19AM +0900, andrew.queisser@hp.com wrote:

[#143716] Re: Intellisense and the psychology of typing — Lothar Scholz <mailinglists@...> 2005/05/26

Hello Thomas,

[#144032] Re: Intellisense and the psychology of typing — Richard Cole <rcole@...> 2005/05/30

Lothar Scholz wrote:

[#144040] Re: Intellisense and the psychology of typing — Austin Ziegler <halostatue@...> 2005/05/30

On 5/30/05, Richard Cole <rcole@itee.uq.edu.au> wrote:

[#144080] Re: Intellisense and the psychology of typing — Lothar Scholz <mailinglists@...> 2005/05/31

Hello Austin,

[#144088] Re: Intellisense and the psychology of typing — Austin Ziegler <halostatue@...> 2005/05/31

On 5/31/05, Lothar Scholz <mailinglists@scriptolutions.com> wrote:

[#144109] Re: Intellisense and the psychology of typing — Caleb Clausen <vikkous@...> 2005/05/31

Austin Ziegler wrote:

[#144114] Re: Intellisense and the psychology of typing — Austin Ziegler <halostatue@...> 2005/05/31

On 5/31/05, Caleb Clausen <vikkous@gmail.com> wrote:

[#144124] Re: Intellisense and the psychology of typing — Eric Mahurin <eric_mahurin@...> 2005/05/31

--- Austin Ziegler <halostatue@gmail.com> wrote:

[#143799] Plz comment — Dr Balwinder S Dheeman <bsd.SANSPAM@...>

Dear Rubiest!

22 messages 2005/05/27

[#143812] Ruby on Rails interest in comp.lang.python — Stephen Kellett <snail@...>

A heads up to the Rails folks.

14 messages 2005/05/27

[#143825] How to build an index of phrases in a phrase/sentence? — Dan Fitzpatrick <dan@...>

I am trying to build an indexing structure on some phrases. Most phrases

11 messages 2005/05/27

[#143884] preventing Object#send from dispatching to a global method? — Francis Hwang <sera@...>

Is there a way to prevent Object#send from dispatching to a global

17 messages 2005/05/28
[#143908] Re: preventing Object#send from dispatching to a global method? — Jim Weirich <jim@...> 2005/05/29

[#143975] Ruby-VTK-0.2.0 was released — Seiya Nishizawa <seiya@...>

Hi everyone,

11 messages 2005/05/30

[#143976] Stats comp.lang.ruby (last 7 days) — Balwinder Singh Dheeman <bsd.SANSPAM@...>

Stats comp.lang.ruby (last 7 days)

26 messages 2005/05/30
[#144084] Re: Stats comp.lang.ruby (last 7 days) — "David A. Black" <dblack@...> 2005/05/31

On Mon, 30 May 2005, Balwinder Singh Dheeman wrote:

[#144107] Re: Stats comp.lang.ruby (last 7 days) — pat eyler <pat.eyler@...> 2005/05/31

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

[#144113] Re: Stats comp.lang.ruby (last 7 days) — James Britt <james_b@...> 2005/05/31

pat eyler wrote:

[#144144] Re: Stats comp.lang.ruby (last 7 days) — Dr Balwinder S Dheeman <bsd.SANSPAM@...> 2005/05/31

On 05/31/2005 11:44 PM, James Britt wrote:

[#144145] Re: Stats comp.lang.ruby (last 7 days) — James Edward Gray II <james@...> 2005/05/31

On May 31, 2005, at 6:15 PM, Dr Balwinder S Dheeman wrote:

[#144004] creating variable with eval — "Geert Fannes" <Geert.Fannes@...>

Hello, what is the scope of a variable created inside an eval()

14 messages 2005/05/30

[#144096] parseargs-0.0.0 — "Ara.T.Howard" <Ara.T.Howard@...>

23 messages 2005/05/31
[#144170] binding, ObjectSpace._id2ref [WAS] Re: [ANN] parseargs-0.0.0 — "Zev Blut" <rubyzbibd@...> 2005/06/01

Hello,

[#144254] Re: binding, ObjectSpace._id2ref [WAS] Re: [ANN] parseargs-0.0.0 — "Ara.T.Howard" <Ara.T.Howard@...> 2005/06/01

On Wed, 1 Jun 2005, Zev Blut wrote:

[#144306] Re: binding, ObjectSpace._id2ref [WAS] Re: [ANN] parseargs-0.0.0 — "Zev Blut" <rubyzbibd@...> 2005/06/02

Hello,

[SOLUTION] Barrel of Monkeys (#30)

From: Gavin Kistner <gavin@...>
Date: 2005-05-02 01:55:27 UTC
List: ruby-talk #140692
Following is my solution to the Barrel of Monkeys quiz. I got the  
'extra credit' for short playlists, but didn't have time to try out  
the only solution I came up with for the 'specific duration' extra  
credit.

(There is a bug exposed by the test case, where (for reasons I  
haven't figured out) it doesn't always find the absolutely shortest  
playlist.)

I'll discuss some of the lessons I learned when I write up the  
Summary on Wednesday.


A sample of the output:

[Sliver:~/Desktop/Barrel of Monkeys] gkistner$ ruby barrel.rb
Stopwatch started at Sun May 01 19:20:21 MDT 2005
+0.1s to load marshalled library from file

Looking for a path between 'Moab' and 'I'm On My Way'
#0 - Jamie Janover :: Moab :: 9:05
#1 - Shamwari :: Babmudiki :: 5:26
#2 - The Proclaimers :: I'm On My Way :: 3:44
+0.1s to create playlist

Looking for a path between 'My Girl' and 'I'm A Rainbow Too'
#0 - The Mamas & The Papas :: My Girl :: 3:30
#1 - Creedence Clearwater Revival :: Lodi :: 3:11
#2 - Bob Marley & Fatboy Slim :: I'm A Rainbow Too :: 8:00
+0.1s to create playlist

Looking for a path between 'Sand in My Shoes' and 'Bug City'
#0 - Dido :: Sand in My Shoes :: 5:00
#1 - Isao Tomita :: Syncopated Clock :: 2:31
#2 - Fats Waller :: Keepin' Out of Mischief Now :: 3:16
#3 - The Offspring :: Why Don't You Get A Job? :: 2:52
#4 - The Presidents of the United States of America :: Bug City :: 3:05
+0.0s to create playlist


What I found surprising is how often (given the supplied library)  
there is a single 3-song playlist that connects just about any two  
end songs.


There are six files:
barrel.rb  --  loads the SongLibrary.xml file and picks two songs at  
random and tries to find a playlist.
barrel_of_classes.rb  --  all the classes used in the solution
barrel_of_tests.rb  --  some limited unit tests (which helped my find  
some bugs, yay testing!)
stopwatch.rb  --  an unrelated class just for my own trivial timing  
tests
arabicnumerals.rb  -- (not included here) The solution to quiz number  
25 by Eliah Hecht





==================================================
barrel.rb
==================================================
require 'rexml/document'
require 'rexml/xpath'
require 'barrel_of_classes'
require 'stopwatch'

$library_file = 'library.marshal'

Stopwatch.start

if File.exist?( $library_file )
     library = Marshal.load( File.new( $library_file, 'r+' ) )
     Stopwatch.mark( 'load marshalled library from file')
else
     include REXML

     xml = Document.new( File.new( 'SongLibrary.xml' ) )
     Stopwatch.mark( 'load XML')

     song_nodes = XPath.match( xml, '//Song' )
     Stopwatch.mark( 'find songs in xml' )

     library = SongLibrary.new( song_nodes.inject( [] ) do |lib,  
song_node|
         lib << Song.new( song_node.attributes['name'],  
song_node.attributes['duration'].to_i, song_node.parent.attributes 
['name'] )
     end )

     Stopwatch.mark( 'fill library' )


     # Get rid of songs with useless names
     library.songs.delete_if{ |song| song.clean_name.length < 2 }
     puts "Deleted #{song_nodes.length - library.songs.length} songs"
     Stopwatch.mark( 'clean library' )

     # Save the library just to save time for future runs.
     Marshal.dump( library, File.new( $library_file, 'w+' ) )
     Stopwatch.mark( 'save library to file' )
end

all_songs = library.songs

100.times{
     start_index = rand( library.songs.length )
     end_index   = rand( library.songs.length )

     start_song = all_songs[ start_index ]
     end_song   = all_songs[ end_index ]

     puts "\nLooking for a path between '#{start_song.name}' and '# 
{end_song.name}'"

     pl = Playlist::BarrelOfMonkeys.new( library.songs, start_song,  
end_song )
     puts pl
     Stopwatch.mark( 'create playlist' )
}

Stopwatch.stop





==================================================
barrel_of_classes.rb
==================================================
require 'arabicnumerals'

class Song
     attr_reader :artist, :name, :duration

     # The song name made turned into only [a-z ], with no leading or  
trailing spaces
     attr_reader :clean_name

     # The first and last letters of the song name (after 'cleaning')
     attr_reader :first, :last

     def initialize( name, duration=0, artist='' )
         @artist = artist
         @duration = duration
         @name = name
         @clean_name = name.downcase

         # "forever young (dune remix)"  =>  "forever young"
         @clean_name.gsub!( /\s*\([^)]*mix[^)]*\)/, '' )

         # "voulez-vous [extended remix, 1979 us promo]"  =>  "voulez- 
vous"
         @clean_name.gsub!( /\s*\[[^\]]*mix[^\]]*\]/, '' )

         # "hava nagila (live)"  =>  "hava nagila"
         @clean_name.gsub!( /\s*\([^)]*\blive\b[^)]*\)/, '' )

         # "everything in its own time [live]"  =>  "everything in  
its own time"
         @clean_name.gsub!( /\s*\[[^\]]*\blive\b[^\]]*\]/, '' )

         # "it's a fine day (radio edit)"  =>  "it's a fine day"
         @clean_name.gsub!( /\s*\([^)]*\bedit\b[^)]*\)/, '' )

         # "pearl's girl [7" edit]"  =>  "pearl's girl"
         @clean_name.gsub!( /\s*\[[^\]]*\bedit\b[^\]]*\]/, '' )

         # "can't stop raving - remix"  =>  "can't stop raving -"
         @clean_name.gsub!( /\s*remix\s*$/, '' )

         # "50,000 watts"  =>  "50000 watts"
         @clean_name.gsub!( /,/, '' )

         # "50000 watts"  =>  "fifty thousand watts"
         @clean_name.gsub!( /\b\d+\b/ ){ |match| match.to_i.to_en }

         @clean_name.gsub!( /[^a-z ]/, '' )
         @clean_name.strip!

         @first = @clean_name[ 0..0 ]
         @last = @clean_name [ -1..-1 ]
     end

     def to_s
         self.artist + ' :: ' + self.name + ' :: ' +  
self.duration.as_time_from_ms
     end
end

class Numeric
     # Treat the number as a number of milliseconds and return a  
formatted version
     # Produces "0:07" for 7124
     # Produces "8:17" for 497000
     # Produces "1:07:43" for 4063000
     # Produces "59:27:44" for 214063999
     # (Only handles units of time up to hours)
     def as_time_from_ms
         minutes = 0
         seconds = (self / 1000.0).round
         if seconds >= 60
             minutes = seconds / 60
             seconds %= 60
             if minutes >= 60
                 hours = minutes / 60
                 minutes %= 60
             end
         end
         seconds = seconds.to_s
         seconds = '0' + seconds unless seconds.length > 1

         minutes = minutes.to_s
         minutes = '0' + minutes unless minutes.length > 1 or not hours
         "#{hours}#{hours ? ':' : ''}#{minutes}:#{seconds}"
     end
end

class Array
     def random
         self[ rand( self.length ) ]
     end
end

class SongLibrary
     attr_accessor :songs
     def initialize( array_of_songs = [] )
         @songs = array_of_songs
     end
end

class Playlist
     attr_reader :songs
     def initialize( *songs )
         @songs = songs
         @current_song_number = 0
     end

     def to_s
         out = ''
         songs.each_with_index{ |song,i| out << "##{i} - #{song}\n" }  
if songs
         out
     end

     class BarrelOfMonkeys < Playlist
         # Given an array of Song items and songs to start with and  
end with
         # produce a playlist where each song begins with the same  
letter as
         # the previous song ended with
         def initialize( songs, start_song, end_song, options={} )

             # Create a map to each song, by first letter and then  
last letter
             @song_links = {}
             songs.each do |song|
                 first_map = @song_links[ song.first ] ||= {}
                 ( first_map[ song.last ] ||= [] ) << song
             end

             # For speed, pick only one song for each unique  
first_last pair
             @song_links.each_pair do | first_letter,  
songs_by_last_letters |
                 songs_by_last_letters.each_key do |last_letter|
                     songs_by_last_letters[ last_letter ] =  
songs_by_last_letters[ last_letter ].random
                 end
             end

             # Get rid of any songs which start and end with the same  
letter
             @song_links.each_pair do | first_letter,  
songs_by_last_letters |
                 songs_by_last_letters.delete( first_letter )
             end

             @songs = shortest_path( start_song, end_song )
             unless @songs
                 warn "There is no path to make a Barrel of Monkeys  
playlist between '#{start_song.name}' and '#{end_song.name}' with the  
supplied library."
             end
         end

         private
             def shortest_path( start_song, end_song,  
start_letters_seen='', d=0 )
                 # Bail out if a shorter solution was already found
                 return nil if @best_depth and ( @best_depth <= d )

                 #puts( ( "." * d ) + start_song.name )
                 path = [ start_song ]

                 if start_song.last == end_song.first
                     best_path = [ end_song ]
                     @best_depth = d
                 else
                     best_length = nil

                     songs_by_last_letters = @song_links 
[ start_song.last ]
                     if songs_by_last_letters
                         songs_by_last_letters.each_pair do | 
last_letter, song|
                             if start_letters_seen.include? 
( song.first ) || ( start_letters_seen.include?( song.last ) &&  
( song.last != end_song.first ) )
                                 next
                             end
                             start_letters_seen += start_song.first
                             trial_path = shortest_path( song,  
end_song, start_letters_seen, d+1 )
                             if trial_path && ( !best_length ||  
( trial_path.length < best_length ) )
                                 best_path = trial_path
                             end
                         end
                     end
                 end

                 if best_path
                     path << best_path
                     path.flatten!
                 else
                     nil
                 end

             end
     end
end





==================================================
barrel_of_tests.rb
==================================================
require 'test/unit'
require 'barrel_of_classes.rb'

class SongTest < Test::Unit::TestCase
     def test_cleaning
         song_name = 'Hello World'
         clean_name = song_name.downcase
         s1 = Song.new( song_name )
         assert_equal( clean_name, s1.clean_name )

         song_name = 'Hello World (remix)'
         s1 = Song.new( song_name )
         assert_equal( clean_name, s1.clean_name )

         song_name = ' Hello World - remix'
         s1 = Song.new( song_name )
         assert_equal( clean_name, s1.clean_name )

         song_name = ' Hello World Remix '
         s1 = Song.new( song_name )
         assert_equal( clean_name, s1.clean_name )

         song_name = "'74 - '75"
         s1 = Song.new( song_name )
         assert_equal( 's', s1.first )
         assert_equal( 'e', s1.last )

         song_name = 'As Lovers Go [Ron Fair Remix]'
         clean_name = 'as lovers go'
         s1 = Song.new( song_name )
         assert_equal( clean_name, s1.clean_name )
     end
end

class BarrelTest < Test::Unit::TestCase
     def setup
         @lib = SongLibrary.new

         ('A'..'H').each{ |x| @lib.songs << Song.new( 'Alpha ' + x ) }
         @lib.songs << Song.new( 'Beta F' )
         ('A'..'I').each{ |x| @lib.songs << Song.new( 'Foo ' + x ) }
         @lib.songs << Song.new( 'Icarus X' )
         ('A'..'H').each{ |x| @lib.songs << Song.new( 'Jim ' + x ) }

         @links = { }
         @lib.songs.each{ |song|
             link = song.first + song.last
             @links[ link ] = song
         }
     end

     def test1_valid
         af = @links[ 'af' ]
         fg = @links[ 'fg' ]
         pl = Playlist::BarrelOfMonkeys.new( @lib.songs, af, fg )
         desired_playlist = [ af, fg ]
         assert_equal( desired_playlist, pl.songs )

         ab = @links[ 'ab' ]
         bf = @links[ 'bf' ]
         fi = @links[ 'fi' ]
         pl = Playlist::BarrelOfMonkeys.new( @lib.songs, ab, fi)
         desired_playlist = [ ab, bf, fi ]
         assert_equal( desired_playlist, pl.songs )

         ix = @links[ 'ix' ]
         pl = Playlist::BarrelOfMonkeys.new( @lib.songs, ab, ix )
         desired_playlist << ix
         assert_equal( desired_playlist, pl.songs )

         aa = @links[ 'aa' ]
         pl = Playlist::BarrelOfMonkeys.new( @lib.songs, aa, ix )
         desired_playlist = [ aa, af, fi, ix ]
         assert_equal( desired_playlist, pl.songs )
     end

     def test3_broken
         aa = @links[ 'aa' ]
         ab = @links[ 'ab' ]
         jh = @links[ 'jh' ]
         pl = Playlist::BarrelOfMonkeys.new( @lib.songs, aa, jh )
         assert_nil( pl.songs )

         pl = Playlist::BarrelOfMonkeys.new( @lib.songs, ab, jh )
         assert_nil( pl.songs )
     end

end






=============================================
stopwatch.rb
=============================================
module Stopwatch
     class Lap
         attr_reader :name, :time
         def initialize( name )
             @name = name
             @time = Time.new
         end
     end

     def self.start
         @laps = [ ]
         self.mark :start
     end

     def self.mark( lap_name )
         lap = Lap.new( lap_name )
         if @laps.empty?
             puts "Stopwatch started at #{lap.time}"
         else
             last_lap = @laps.last
             elapsed = lap.time - last_lap.time
             puts "+#{(elapsed*10).round/10.0}s to #{lap_name}" # +  
" (since #{last_lap.name})"
         end
         @laps << lap
     end

     def self.time( lap_name )
         yield
         self.mark lap_name
     end

     def self.stop
         now = Time.new
         elapsed = now - @laps.first.time
         puts "Stopwatch stopped at #{now}; #{(elapsed*10).round/10.0} 
s elapsed"
     end
end

In This Thread