[#84664] CGI uses file size to distinguish between regular values and files — David Heinemeier Hansson <david@...>

I've been having a ton of problems handling file uploads with CGI.rb

23 messages 2003/11/02
[#84674] Re: CGI uses file size to distinguish between regular values and files — Simon Kitching <simon@...> 2003/11/03

Hi David,

[#84676] Re: CGI uses file size to distinguish between regular values and files — Dmitry Borodaenko <d.borodaenko@...> 2003/11/03

On Mon, Nov 03, 2003 at 02:29:08PM +0900, Simon Kitching wrote:

[#84678] Re: CGI uses file size to distinguish between regular values and files — Austin Ziegler <austin@...> 2003/11/03

On Mon, 3 Nov 2003 20:12:06 +0900, Dmitry Borodaenko wrote:

[#84692] Re: CGI uses file size to distinguish between regular values and files — Dmitry Borodaenko <d.borodaenko@...> 2003/11/03

On Mon, Nov 03, 2003 at 11:40:48PM +0900, Austin Ziegler wrote:

[#84700] Re: CGI uses file size to distinguish between regular values and files — Austin Ziegler <austin@...> 2003/11/03

On Tue, 4 Nov 2003 04:37:19 +0900, Dmitry Borodaenko wrote:

[#84701] Re: CGI uses file size to distinguish between regular values and files — Simon Kitching <simon@...> 2003/11/03

On Tue, 2003-11-04 at 10:29, Austin Ziegler wrote:

[#84703] Re: CGI uses file size to distinguish between regular values and files — Austin Ziegler <austin@...> 2003/11/03

On Tue, 4 Nov 2003 06:51:43 +0900, Simon Kitching wrote:

[#84708] Re: CGI uses file size to distinguish between regular values and files — matz@... (Yukihiro Matsumoto) 2003/11/04

Hi,

[#84735] Managing metadata about attribute types — Simon Kitching <simon@...>

Hi,

52 messages 2003/11/05
[#84740] Re: Managing metadata about attribute types — Austin Ziegler <austin@...> 2003/11/05

On Wed, 5 Nov 2003 09:38:16 +0900, Simon Kitching wrote:

[#84741] Re: Managing metadata about attribute types — Simon Kitching <simon@...> 2003/11/05

On Wed, 2003-11-05 at 17:09, Austin Ziegler wrote:

[#84762] Re: Managing metadata about attribute types — Simon Kitching <simon@...> 2003/11/06

What a vigorous discussion I seem to have triggered :-)

[#84770] Re: Managing metadata about attribute types — dblack@... 2003/11/06

Hi --

[#84780] Re: Managing metadata about attribute types — Ryan Pavlik <rpav@...> 2003/11/06

On Thu, 6 Nov 2003 12:45:39 +0900

[#84858] Re: Managing metadata about attribute types — "John W. Long" <ng@...> 2003/11/08

Ryan,

[#84847] Long-running daemon acquiring giant memory footprint — Jason DiCioccio <jd@...>

I have written a long-running daemon in ruby to handle dynamic DNS updates.

16 messages 2003/11/07

[#84900] Antwort: Re: Power of Interpreted Languages — Robert.Koepferl@...

25 messages 2003/11/10
[#84914] Re: Antwort: Re: Power of Interpreted Languages — Aredridel <aredridel@...> 2003/11/10

> But, would you implement a game with ruby?

[#84917] Re: Antwort: Re: Power of Interpreted Languages — Gregory Millam <walker@...> 2003/11/10

Received: Tue, 11 Nov 2003 01:21:15 +0900

[#84920] Re: Antwort: Re: Power of Interpreted Languages — "Sean O'Dell" <sean@...> 2003/11/10

On Monday 10 November 2003 09:28 am, Gregory Millam wrote:

[#84921] Ruby/Tk Some Basic Questions — "Zach Dennis" <zdennis@...> 2003/11/10

Hi,

[#84930] Re: Ruby/Tk Some Basic Questions — Hidetoshi NAGAI <nagai@...> 2003/11/11

Hi,

[#85097] substring: to the end of the string — KONTRA Gergely <kgergely@...>

Hi!

19 messages 2003/11/14

[#85104] Microsoft's C/C++ compiler freely available — "Nathaniel Talbott" <nathaniel@...>

Thought this might be interesting to those stuck on win32...

23 messages 2003/11/15
[#85106] Re: Microsoft's C/C++ compiler freely available — Daniel Carrera <dcarrera@...> 2003/11/15

Question:

[#85178] overload method in module_eval, how? — Simon Strandgaard <qj5nd7l02@...>

I want to overload a testcase method with debug-enabling wrapper.

13 messages 2003/11/17

[#85218] Access ftp-server through proxy — Kristian Sensen <ks@...>

14 messages 2003/11/17

[#85330] Yet Another Rite Thought: method combination — gabriele renzi <surrender_it@...1.vip.ukl.yahoo.com>

I just looked at matz' slides and I don't have a clear understanding

28 messages 2003/11/17

[#85421] Again, Rite explanation needed (keyword args and new hash syntax) — gabriele renzi <surrender_it@...1.vip.ukl.yahoo.com>

Hi gurus and nubys,

13 messages 2003/11/18

[#85488] Re: "stereotyping" (was: Re: Strong Typing (Re: Managing metadata about attribute types) )<Pine.LNX.4.44.0311171402340.1133-100000@ool-435 5dfae.dyn.optonline.net> — "Weirich, James" <James.Weirich@...>

David Black (dblack@wobblini.net) wrote:

121 messages 2003/11/18
[#85492] Re: "stereotyping" (was: Re: Strong Typing (Re: Managing metadata about attribute types) )<Pine.LNX.4.44.0311171402340.1133-100000@ool-435 5dfae.dyn.optonline.net> — Simon Kitching <simon@...> 2003/11/18

On Wed, 2003-11-19 at 10:30, Weirich, James wrote:

[#85499] Re: "stereotyping" (was: Re: Strong Typing (Re: Managing metadata about attribute types) )<Pine.LNX.4.44.0311171402340.1133-100000@ool-435 5dfae.dyn.optonline.net> — "Sean O'Dell" <sean@...> 2003/11/18

On Tuesday 18 November 2003 02:06 pm, Simon Kitching wrote:

[#85523] Re: "stereotyping" (was: Re: Strong Typing (Re: Managing metadata about attribute types) ) — Austin Ziegler <austin@...> 2003/11/19

On Wed, 19 Nov 2003 08:08:25 +0900, Sean O'Dell wrote:

[#85582] Re: "stereotyping" (was: Re: Strong Typing (Re: Managing metadata about attribute types) ) — "Sean O'Dell" <sean@...> 2003/11/19

On Tuesday 18 November 2003 10:30 pm, Austin Ziegler wrote:

[#85609] Re: "stereotyping" (was: Re: Strong Typing (Re: Managing metadata about attribute types) ) — Austin Ziegler <austin@...> 2003/11/19

On Thu, 20 Nov 2003 02:43:31 +0900, Sean O'Dell wrote:

[#85619] Re: "stereotyping" (was: Re: Strong Typing (Re: Managing metadata about attribute types) ) — "Sean O'Dell" <sean@...> 2003/11/19

On Wednesday 19 November 2003 12:04 pm, Austin Ziegler wrote:

[#85656] Re: "stereotyping" (was: Re: Strong Typing (Re: Managing metadata about attribute types) ) — Austin Ziegler <austin@...> 2003/11/19

On Thu, 20 Nov 2003 05:48:37 +0900, Sean O'Dell wrote:

[#85664] Re: "stereotyping" (was: Re: Strong Typing (Re: Managing metadata about attribute types) ) — "Sean O'Dell" <sean@...> 2003/11/19

On Wednesday 19 November 2003 03:00 pm, Austin Ziegler wrote:

[#85684] Re: "stereotyping" (was: Re: Strong Typing (Re: Managing metadata about attribute types) ) — Austin Ziegler <austin@...> 2003/11/20

On Thu, 20 Nov 2003 08:19:08 +0900, Sean O'Dell wrote:

[#85688] Re: "stereotyping" (was: Re: Strong Typing (Re: Managing metadata about attribute types) ) — Simon Kitching <simon@...> 2003/11/20

On Thu, 2003-11-20 at 14:06, Austin Ziegler wrote:

[#85734] Re: "stereotyping" (was: Re: Strong Typing (Re: Managing metadata about attribute types) ) — Thien Vuong <tvuong@...> 2003/11/20

[#85748] Re: "stereotyping" (was: Re: Strong Typing (Re: Managing metadata about attribute types) ) — Austin Ziegler <austin@...> 2003/11/20

On Thu, 20 Nov 2003 14:52:17 +0900, Thien Vuong wrote:

[#85854] Re: "stereotyping" (was: Re: Strong Typing (Re: Managing metadata about attribute types) ) — "Sean O'Dell" <sean@...> 2003/11/20

On Wednesday 19 November 2003 10:47 pm, Austin Ziegler wrote:

[#85858] Re: "stereotyping" (was: Re: Strong Typing (Re: Managing metadata about attribute types) ) — dblack@... 2003/11/20

Hi --

[#85895] Re: "stereotyping" (was: Re: Strong Typing (Re: Managing metadata about attribute types) ) — matz@... (Yukihiro Matsumoto) 2003/11/20

Hi,

[#85906] Re: "stereotyping" (was: Re: Strong Typing (Re: Managing metadata about attribute types) ) — Chad Fowler <chad@...> 2003/11/20

On Fri, 21 Nov 2003, Yukihiro Matsumoto wrote:

[#85938] Re: "stereotyping" (was: Re: Strong Typing (Re: Managing metadata about attribute types) ) — matz@... (Yukihiro Matsumoto) 2003/11/21

Hi,

[#85940] Re: "stereotyping" (was: Re: Strong Typing (Re: Managing metadata about attribute types) ) — "Sean O'Dell" <sean@...> 2003/11/21

On Thursday 20 November 2003 06:47 pm, Yukihiro Matsumoto wrote:

[#85944] Re: "stereotyping" (was: Re: Strong Typing (Re: Managing metadata about attribute types) ) — matz@... (Yukihiro Matsumoto) 2003/11/21

Hi,

[#85951] Re: "stereotyping" (was: Re: Strong Typing (Re: Managing metadata about attribute types) ) — "Sean O'Dell" <sean@...> 2003/11/21

On Thursday 20 November 2003 07:58 pm, Yukihiro Matsumoto wrote:

[#85970] Re: "stereotyping" (was: Re: Strong Typing (Re: Managing metadata about attribute types) ) — matz@... (Yukihiro Matsumoto) 2003/11/21

Hi,

[#85997] Re: "stereotyping" (was: Re: Strong Typing (Re: Managing metadata about attribute types) ) — "Sean O'Dell" <sean@...> 2003/11/21

On Friday 21 November 2003 02:20 am, Yukihiro Matsumoto wrote:

[#86046] Re: "stereotyping" (was: Re: Strong Typing (Re: Managing metadata about attribute types) ) — matz@... (Yukihiro Matsumoto) 2003/11/21

Hi,

[#86071] Method wrapper question (was "stereotyping (was ...)) — Gavin Sinclair <gsinclair@...> 2003/11/22

On Saturday, November 22, 2003, 10:53:39 AM, Yukihiro wrote:

[#86085] Re: Method wrapper question (was "stereotyping (was ...)) — ts <decoux@...> 2003/11/22

>>>>> "G" == Gavin Sinclair <gsinclair@soyabean.com.au> writes:

[#86090] Re: Method wrapper question (was "stereotyping (was ...)) — Gavin Sinclair <gsinclair@...> 2003/11/22

On Saturday, November 22, 2003, 11:47:50 PM, ts wrote:

[#86091] Re: Method wrapper question (was "stereotyping (was ...)) — ts <decoux@...> 2003/11/22

>>>>> "G" == Gavin Sinclair <gsinclair@soyabean.com.au> writes:

[#86092] Re: Method wrapper question (was "stereotyping (was ...)) — "Christoph" <chr_mail@...> 2003/11/22

ts wrote:

[#86093] Re: Method wrapper question (was "stereotyping (was ...)) — ts <decoux@...> 2003/11/22

>>>>> "C" == Christoph <chr_mail@gmx.net> writes:

[#86095] Re: Method wrapper question (was "stereotyping (was ...)) — "Christoph" <chr_mail@...> 2003/11/22

ts wrote:

[#85908] Re: "stereotyping" (was: Re: Strong Typing (Re: Managing metadata about attribute types) ) — "Sean O'Dell" <sean@...> 2003/11/20

On Thursday 20 November 2003 02:40 pm, Chad Fowler wrote:

[#85590] Re: "stereotyping" (was: Re: Strong Typing (Re: Managing metadata about attribute types) ) — "David A. Black" <dblack@...> 2003/11/19

Hi --

[#85597] Re: "stereotyping" (was: Re: Strong Typing (Re: Managing metadata about attribute types) ) — "Sean O'Dell" <sean@...> 2003/11/19

On Wednesday 19 November 2003 10:33 am, David A. Black wrote:

[#85599] Re: "stereotyping" (was: Re: Strong Typing (Re: Managing metadata about attribute types) ) — matz@... (Yukihiro Matsumoto) 2003/11/19

Hi,

[#85604] Re: "stereotyping" (was: Re: Strong Typing (Re: Managing metadata about attribute types) ) — "Sean O'Dell" <sean@...> 2003/11/19

On Wednesday 19 November 2003 11:14 am, Yukihiro Matsumoto wrote:

[#85503] String startswith/endswith in Ruby? — Dave Benjamin <ramen@...>

Hi all,

12 messages 2003/11/18

[#85518] Multi-dimensioned sparse array ? — Charles Hixson <charleshixsn@...>

Does anyone have an implementation of a multi-dimensioned sparse array?

14 messages 2003/11/19
[#85527] Re: Multi-dimensioned sparse array ? — Austin Ziegler <austin@...> 2003/11/19

On Wed, 19 Nov 2003 14:21:19 +0900, Charles Hixson wrote:

[#85526] Re: "stereotyping" (was: Re: Strong Typing (Re: Managing metadata about attribute types) )<Pine.LNX.4.44.0311171402340.1133-100000@ool-4355dfae.dyn.optonline.net> <Pine.LNX.4.44.0311181524130.2236-100000@ool-4355dfae.dyn.optonline.net> — Thien Vuong <tvuong@...>

54 messages 2003/11/19
[#85544] Re: "stereotyping" (was: Re: Strong Typing (Re: Managing metadata about attribute types) — dblack@... 2003/11/19

[Apologies to anyone whose threading is getting messed up by the

[#85583] Re: "stereotyping" (was: Re: Strong Typing (Re: Managing metadata about attribute types) — "Sean O'Dell" <sean@...> 2003/11/19

On Wednesday 19 November 2003 03:55 am, dblack@wobblini.net wrote:

[#85588] Re: "stereotyping" (was: Re: Strong Typing (Re: Managing metadata about attribute types) — "David A. Black" <dblack@...> 2003/11/19

Hi --

[#85595] Re: "stereotyping" (was: Re: Strong Typing (Re: Managing metadata about attribute types) — "Sean O'Dell" <sean@...> 2003/11/19

On Wednesday 19 November 2003 10:27 am, David A. Black wrote:

[#85598] Re: "stereotyping" (was: Re: Strong Typing (Re: Managing metadata about attribute types) — matz@... (Yukihiro Matsumoto) 2003/11/19

Hi,

[#85601] Re: "stereotyping" (was: Re: Strong Typing (Re: Managing metadata about attribute types) — "Sean O'Dell" <sean@...> 2003/11/19

On Wednesday 19 November 2003 11:05 am, Yukihiro Matsumoto wrote:

[#85605] Re: "stereotyping" (was: Re: Strong Typing (Re: Managing metadata about attribute types) — Chad Fowler <chad@...> 2003/11/19

On Thu, 20 Nov 2003, Sean O'Dell wrote:

[#85612] Re: "stereotyping" (was: Re: Strong Typing (Re: Managing metadata about attribute types) — "Sean O'Dell" <sean@...> 2003/11/19

On Wednesday 19 November 2003 11:46 am, Chad Fowler wrote:

[#85617] Re: "stereotyping" (was: Re: Strong Typing (Re: Managing metadata about attribute types) — Maik Schmidt <contact@...> 2003/11/19

Sean O'Dell wrote:

[#85629] Re: "stereotyping" (was: Re: Strong Typing (Re: Managing metadata about attribute types) — "Sean O'Dell" <sean@...> 2003/11/19

On Wednesday 19 November 2003 12:42 pm, Maik Schmidt wrote:

[#85543] Re: $& write-protected? — ts <decoux@...>

>>>>> "S" == Simon Strandgaard <none> writes:

14 messages 2003/11/19

[#85547] x.f! RCR — Greg McIntyre <greg@...>

It bugs me that some methods have a ! on the end and some don't. It

20 messages 2003/11/19

[#85698] Re: "stereotyping" — Michael Campbell <michael_s_campbell@...>

Sean O'Dell wrote:

19 messages 2003/11/20
[#85701] Re: "stereotyping" — "Sean O'Dell" <sean@...> 2003/11/20

On Wednesday 19 November 2003 07:01 pm, Michael Campbell wrote:

[#85704] Re: "stereotyping" — Michael campbell <michael_s_campbell@...> 2003/11/20

Sean O'Dell wrote:

[#85718] Re: "stereotyping" — Clifford Heath <cjh_nospam@...> 2003/11/20

Michael campbell wrote:

[#85757] Re: "stereotyping" — Julian Fitzell <julian@...4.com> 2003/11/20

Clifford Heath wrote:

[#85913] Re: "stereotyping" — Clifford Heath <cjh_nospam@...> 2003/11/20

Julian Fitzell wrote:

[#85713] Re: [ANN] win32-clipboard 0.1.0 — Daniel Berger <djberg96@...>

Oops - forgot the link:

14 messages 2003/11/20

[#85766] learning the "Ruby way" — mark.wirdnam@... (Mark Wirdnam)

**Hobby-programmer alarm**

24 messages 2003/11/20
[#85863] Re: learning the "Ruby way" — Chad Fowler <chad@...> 2003/11/20

On Thu, 20 Nov 2003, Mark Wirdnam wrote:

[#85821] iterator 0.1 — Simon Strandgaard <qj5nd7l02@...>

homepage:

22 messages 2003/11/20

[#85870] Re: "stereotyping" — Michael Campbell <michael_s_campbell@...>

Sean O'Dell wrote:

17 messages 2003/11/20

[#85886] Partial Euphoric Type Checking — "T. Onoma" <transami@...>

Greetings all Type Checkers!

16 messages 2003/11/20
[#85948] Re: Partial Euphoric Type Checking (now Ducked!) — "T. Onoma" <transami@...> 2003/11/21

quack! quack! I added duck typing capability to my euphoric type checking

[#85952] Re: Partial Euphoric Type Checking (Super Duck!?) — "T. Onoma" <transami@...> 2003/11/21

Now some for some rally crazy cross thought. First a complete interface

[#85957] Re: Partial Euphoric Type Checking (Super Duck!?) — "T. Onoma" <transami@...> 2003/11/21

for some cross rally some thought crazy. ( read: i need a type system for my

[#85981] Re: Partial Euphoric Type Checking (Super Duck!?) — Chris Morris <chrismo@...> 2003/11/21

> you see we have a problem here. it doesn't matter what methods are

[#85987] Re: Partial Euphoric Type Checking (Super Duck!?) — Peter <Peter.Vanbroekhoven@...> 2003/11/21

> > you see we have a problem here. it doesn't matter what methods are

[#85888] New Type Checking System Idea — "Sean O'Dell" <sean@...>

Taking comments into consideration, a totally new approach strikes me

22 messages 2003/11/20

[#85947] RubyConf 2003 Presentations Posted — Ryan Davis <ryand-ruby@...>

In absolute record time (5 days compared to 3 months), rubyconf 2003

11 messages 2003/11/21

[#86007] Re: "stereotyping" (was: Re: Strong Typing (Re: Managing metadata about attribute types) ) — "Weirich, James" <James.Weirich@...>

> This is a wonderful idea. Let me restate it to make sure I

13 messages 2003/11/21

[#86127] Ruby classes for MP3 de-/encoding — Dennis Oelkers <dennis@...>

Hello folks,

12 messages 2003/11/22

[#86183] "wrong argument type nil (expected String)" from Dir.chdir — Tim Kynerd <vxbrw58s02@...>

I'm running Ruby 1.6.8.

13 messages 2003/11/23

[#86202] Message "Insecure world writable dir ..." — Harry Ohlsen <harryo@...>

When File.popen() is passed an executable whose path contains a world writable directory, it produces a warning message.

19 messages 2003/11/24

[#86215] Library path relative to current .rb file — zoranlazarevic@... (Zoran Lazarevic)

One of the most irritating (missing) features of Ruby is inability to

12 messages 2003/11/24

[#86265] raise unless RUBY_VERSION[%r/^\s*\d+\.\d+/o].to_f >= 1.8 — "Ara.T.Howard" <ahoward@...>

25 messages 2003/11/24

[#86344] Re: Controlled block variables — "T. Onoma" <transami@...>

On Wednesday 26 November 2003 09:10 am, Guy Decoux wrote:

42 messages 2003/11/26
[#86369] Re: Controlled block variables — Dan Doel <djd15@...> 2003/11/26

I actually have wondered in the past why there isn't an #eval that takes

[#86390] Re: Controlled block variables — "T. Onoma" <transami@...> 2003/11/26

On Wednesday 26 November 2003 03:57 pm, Dan Doel wrote:

[#86346] Re: Controlled block variables — ts <decoux@...> 2003/11/26

>>>>> "T" == T Onoma <transami@runbox.com> writes:

[#86347] Re: Controlled block variables — "T. Onoma" <transami@...> 2003/11/26

On Wednesday 26 November 2003 09:56 am, ts wrote:

[#86360] turning a string into array of ASCII bytes — David Garamond <lists@...6.isreserved.com>

What is the shortest, most straightforward way (without temporary

17 messages 2003/11/26

[#86391] Method wrapping — Hal Fulton <hal9000@...>

I've come late into the thread on this, and I haven't read all

62 messages 2003/11/26
[#86445] Re: Method wrapping — matz@... (Yukihiro Matsumoto) 2003/11/26

Hi,

[#86457] Re: Method wrapping — Hal Fulton <hal9000@...> 2003/11/27

Yukihiro Matsumoto wrote:

[#86462] Re: Method wrapping — matz@... (Yukihiro Matsumoto) 2003/11/27

Hi,

[#86470] Re: Method wrapping — "T. Onoma" <transami@...> 2003/11/27

On Thursday 27 November 2003 07:07 am, Yukihiro Matsumoto wrote:

[#86493] Re: Method wrapping — "Christoph" <chr_mail@...> 2003/11/27

Yukihiro Matsumoto wrote:

[#86498] Re: Method wrapping — Peter <Peter.Vanbroekhoven@...> 2003/11/27

> I have asked the same this question as well and I really wish

[#86508] Re: Method wrapping — "Christoph" <chr_mail@...> 2003/11/27

From: Peter wrote:

[#86512] Re: Method wrapping — Peter <Peter.Vanbroekhoven@...> 2003/11/27

> This sound all good and well however this does not change the

[#86550] pre/post question/idea — "David A. Black" <dblack@...>

Hello --

21 messages 2003/11/28

[#86646] Underpinnings of Method Wrapping — "T. Onoma" <transami@...>

Its important that we clearly seperate the issue of "surface" syntax from the

54 messages 2003/11/28
[#86657] Re: Underpinnings of Method Wrapping — Peter <Peter.Vanbroekhoven@...> 2003/11/28

> Thoughts?

[#86692] Re: Underpinnings of Method Wrapping — "T. Onoma" <transami@...> 2003/11/29

On Saturday 29 November 2003 12:44 am, Peter wrote:

[#86707] Re: Underpinnings of Method Wrapping — Peter <Peter.Vanbroekhoven@...> 2003/11/29

> I originally had a small paragraph touching on this, but I took it out b/c I

[#86726] Re: Underpinnings of Method Wrapping — "T. Onoma" <transami@...> 2003/11/29

On Saturday 29 November 2003 04:26 pm, Peter wrote:

[#86734] Re: Underpinnings of Method Wrapping — Peter <Peter.Vanbroekhoven@...> 2003/11/30

> The join-points are the only thing required to facilitate all of this. So I

[#86747] Re: Underpinnings of Method Wrapping — "T. Onoma" <transami@...> 2003/11/30

On Sunday 30 November 2003 01:01 am, Peter wrote:

[#86794] Re: Underpinnings of Method Wrapping — Peter <Peter.Vanbroekhoven@...> 2003/11/30

> How would they know? ;-)

[#86812] Re: Underpinnings of Method Wrapping — "T. Onoma" <transami@...> 2003/11/30

On Sunday 30 November 2003 03:57 pm, Peter wrote:

[#86824] Re: Underpinnings of Method Wrapping — Peter <Peter.Vanbroekhoven@...> 2003/11/30

> > I like the proper separation, but why pre and post for extrinsic and def

[#86831] Re: Underpinnings of Method Wrapping — "T. Onoma" <transami@...> 2003/11/30

On Sunday 30 November 2003 09:39 pm, Peter wrote:

[#86835] Re: Underpinnings of Method Wrapping — Peter <Peter.Vanbroekhoven@...> 2003/11/30

> You're absolutely right. Hmm...Granted this is acting in accordance to an

[#86873] Re: Underpinnings of Method Wrapping — "T. Onoma" <transami@...> 2003/12/01

On Monday 01 December 2003 12:25 am, Peter wrote:

[#86911] Re: Underpinnings of Method Wrapping — Peter <Peter.Vanbroekhoven@...> 2003/12/01

> I was thinking about the terms. To really distinguish these two types of wraps

[#86943] Re: Underpinnings of Method Wrapping — "T. Onoma" <transami@...> 2003/12/02

On Monday 01 December 2003 06:58 pm, Peter wrote:

[#87024] Re: Underpinnings of Method Wrapping — Peter <Peter.Vanbroekhoven@...> 2003/12/02

> OK as in so-so, or OK as in yes? If just so-so we'll find something better. I

[#87034] Re: Underpinnings of Method Wrapping — "T. Onoma" <transami@...> 2003/12/02

Peter:

[#87068] Re: Underpinnings of Method Wrapping — Peter <Peter.Vanbroekhoven@...> 2003/12/03

[snip]

[#87242] Re: Underpinnings of Method Wrapping — "T. Onoma" <transami@...> 2003/12/04

On Wednesday 03 December 2003 03:21 am, Peter wrote:

[#87478] Re: Underpinnings of Method Wrapping — "T. Onoma" <transami@...> 2003/12/07

Here is an intereseting problem that I'm currently facing and which is related

[#87481] Re: Underpinnings of Method Wrapping — Peter <Peter.Vanbroekhoven@...> 2003/12/07

> As always, I may be over looking the obvious. But if anyone has a current

[#87491] Re: Underpinnings of Method Wrapping — "T. Onoma" <transami@...> 2003/12/08

On Sunday 07 December 2003 08:02 pm, Peter wrote:

[#87575] Re: Underpinnings of Method Wrapping — Peter <Peter.Vanbroekhoven@...> 2003/12/09

Hi Tom,

[#87609] Re: Underpinnings of Method Wrapping — "T. Onoma" <transami@...> 2003/12/09

On Tuesday 09 December 2003 01:05 am, Peter wrote:

[#87686] Re: Underpinnings of Method Wrapping — Peter <Peter.Vanbroekhoven@...> 2003/12/10

> QUICK SIDE NOTE: might be nice to have something for all those dang ends. How

[#87688] Re: Underpinnings of Method Wrapping — "T. Onoma" <transami@...> 2003/12/10

On Wednesday 10 December 2003 05:16 am, Peter wrote:

[#87713] Re: Underpinnings of Method Wrapping — Peter <Peter.Vanbroekhoven@...> 2003/12/10

> Mine too! But I was joking :) Well, half way. It would be nice to have a good

[#87731] Re: Underpinnings of Method Wrapping — "T. Onoma" <transami@...> 2003/12/10

On Wednesday 10 December 2003 05:55 pm, Peter wrote:

[#87747] Re: Underpinnings of Method Wrapping — Peter <Peter.Vanbroekhoven@...> 2003/12/11

> Well, I thought of using the underscores to allow one to indent as needed to

[#87761] Re: Underpinnings of Method Wrapping — "T. Onoma" <transami@...> 2003/12/11

On Thursday 11 December 2003 04:04 am, Peter wrote:

[#86655] anything disappearing from Ruby for 2.0? — "David A. Black" <dblack@...>

Hi --

62 messages 2003/11/28
[#86710] Re: anything disappearing from Ruby for 2.0? — matz@... (Yukihiro Matsumoto) 2003/11/29

Hi,

[#86737] Re: anything disappearing from Ruby for 2.0? — Michael Campbell <michael_s_campbell@...> 2003/11/30

Yukihiro Matsumoto wrote:

[#86779] Re: anything disappearing from Ruby for 2.0? — matz@... (Yukihiro Matsumoto) 2003/11/30

Hi,

[#86661] rdoc included in standard distribution? — Chad Fowler <chad@...>

I've seen various plans for this dating back more than a year. Is it

16 messages 2003/11/29

[#86669] Class-level readers and writers — Carl Youngblood <carl@...>

I've been working with the class attribute shortcuts that Hal introduced

36 messages 2003/11/29
[#86675] Re: Class-level readers and writers — "David A. Black" <dblack@...> 2003/11/29

Hi --

[#86722] Re: Class-level readers and writers — Carl Youngblood <carl@...> 2003/11/29

> (Just as a footnote, you can also use "normal" accessor shortcuts at

[#86723] Re: Class-level readers and writers — "David A. Black" <dblack@...> 2003/11/29

Hi --

[#86728] Re: Class-level readers and writers — "Christoph" <chr_mail@...> 2003/11/29

David A. Black wrote:

[#86752] Re: Class-level readers and writers — "T. Onoma" <transami@...> 2003/11/30

On Saturday 29 November 2003 10:59 pm, Christoph wrote:

[#86782] Re: Class-level readers and writers — "David A. Black" <dblack@...> 2003/11/30

Hello --

[#86801] Re: Class-level readers and writers — "T. Onoma" <transami@...> 2003/11/30

On Sunday 30 November 2003 12:11 pm, David A. Black wrote:

[#86807] Re: Class-level readers and writers — "David A. Black" <dblack@...> 2003/11/30

Hi --

[#86808] Re: Class-level readers and writers — ts <decoux@...> 2003/11/30

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

[#86815] Re: Class-level readers and writers — "David A. Black" <dblack@...> 2003/11/30

Hi --

[#86673] New to ruby--trouble with initializing arrays — vanjac12@... (Van Jacques)

I am writing a practice program; the Game of Life. Naturally I am having troubles.

11 messages 2003/11/29

[#86784] Re: anything disappearing from Ruby for 2.0? — "Gavri Savio Fernandez" <Gavri_F@...>

> From: Chris Uppal [mailto:chris.uppal@metagnostic.REMOVE-THIS.org]

21 messages 2003/11/30
[#86800] Re: anything disappearing from Ruby for 2.0? — "Chris Uppal" <chris.uppal@...> 2003/11/30

Gavri Savio Fernandez wrote:

Interface checking

From: Ben Giddings <bg-rubytalk@...>
Date: 2003-11-21 19:28:34 UTC
List: ruby-talk #86009
I've been skimming over the thousands of emails about "stereotyping" for 
the last few days, and I thought I'd step in now and say something.

First of all, please Austin and Sean, keep the personal attacks off the 
list.  There's no need for that.  You both have strong views, and that's 
great, but there's no need to expose the rest of us to your personal 
attacks.  (And Sean, that does include complaining about Austin's off-list 
personal attacks as well).  Just keep it professional on the list, please.

Now for the actual issue.

If I try to compile the following C program, I'll get some compile-time errors:

float convert(float temperature) {
   return (temperature - 32) * 0.6;
}

int main(int argc, char **argv) {
   printf("Temp is %d\n", convert(32.0));
   printf("Temp is %d\n", convert(32));
   printf("Temp is %d\n", convert("hot"));
   return 0;
}

It will tell me that "hot" is an incompatible argument to "convert".  In 
this case, that's true.  The C compiler does a great job of catching this 
error.  It is helpful because it identifies the function  If "convert" were 
declared in an external library and the documentation of it were somehow 
inaccessible this is just the sort of information you'd want, before you 
actually tried to use the program.

If you try a brain-dead simple Ruby implementation of the same thing, you 
get an error, but it isn't nearly as informative:

def convert(temp)
   (temp - 32.0) / 0.6
end

puts "Temp is " + convert(32.0).to_s
puts "Temp is " + convert(32).to_s
puts "Temp is " + convert("hot").to_s

foo.rb:2:in `convert': undefined method `-' for "hot":String (NoMethodError)
         from foo.rb:7


If you use "duck typing", in the sense that you trust whatever is passed to 
the "convert" method can be converted to a float, you get no errors.  On 
the other hand, the result probably isn't what you want.

def convert(temp)
   (temp.to_f - 32.0) / 0.6
end
...

Temp is 0.0
Temp is 0.0
Temp is -53.3333333333333


Things are actually worse if you assume whatever is passed to the program 
can be converted to farenheit:


def convert(temp)
   (temp.to_farenheit - 32.0) / 0.6
end
...

foo.rb:2:in `convert': undefined method `to_farenheit' for 32.0:Float 
(NoMethodError)
         from foo.rb:5

The problem I see with all these errors is twofold:

1) There's no way to spot them until you actually call the "convert" method
2) The error message isn't very informative compared to the C error message 
which tells you the name of the function and that you're passing an 
inappropriate type.

Now, a lot of these problems can be overcome by making a less brain-dead 
"convert" method, but IMHO that isn't the best strategy.  That approach 
requires the person writing the library method to be able to anticipate all 
the ways in which someone might misuse the methods they provide, but at the 
same time, not fail when the method is used in an unexpected way that would 
actually have worked.  Most library writers are either not smart enough 
(me) or too lazy (me) to do that.  I also don't think that testing is the 
answer either, laziness and difficulty in writing complete tests being the 
reason there too.

Obviously, for Ruby the solution isn't to implement static type checking. 
The general solution isn't to check the class of the argument inside the 
method either.  In a dynamic language like Ruby that's either too 
restrictive or prone to error.  I don't think checking "respond_to?" is a 
solution either.  Take the case above where I ended up doing "hot".to_f. 
It responds to that method, but it is unlikely that the person passing 
"hot" in as an argument wanted it interpreted as 0 farenheit.

If we want to get from Ruby what we get from static type checking in C, we 
need a way to get the two things above: the name of the method that failed 
and the reason it failed.

Consider the error message you get in the first example:

foo.rb:2:in `convert': undefined method `-' for "cold":String (NoMethodError)

The problem I have with this error message is that it isn't clear that 
"cold" is the argument to the method, and it isn't clear why exactly it 
failed.  The error message says that '-' is an undefined message, but (at 
least to me) that doesn't translate to "you passed me a String but I was 
expecting something like a number".

Now maybe it is possible to modify Ruby so that when you define a method, 
it automatically wraps it in a begin/end block that catches NoMethodErrors 
and, if it determines that the object that caused the NoMethodError is an 
argument to the method it modifies the error to say something like:

foo.rb:2:in `convert': undefined method `-' for "cold":String; Possibly a 
an illegal argument to convert?  (NoMethodError)

What would make things even more interesting is if somehow it were possible 
to find out what methods an object is expected to implement in the course 
of a method, so given a method like:

def convert(temp)
   if temp.respond_to?(:to_farenheit)
     (temp.to_farenheit - 32.0) / 0.6
   else
     (temp.to_f - 32.0) / 0.6
   end
end

It might know that temp needs to implement "respond_to?" and one of 
"to_farenheit" or "to_f".  Then you could get an error message like:

foo.rb:2:in `convert': undefined method '-' for "cold":String; Possibly a 
an illegal argument to convert?  Required methods: [:respond_to?, 
:to_farenheit] or [:respond_to?, :to_f]  (NoMethodError)

I think that would be incredibly useful, but most likely very, very 
difficult to implement.

Anyhow, there's still the other problem: C finds argument-type errors at 
compile time, Ruby finds them at runtime.  Is there a way to have Ruby find 
them immediately rather than when the method is called?  Because of the 
dynamic nature of Ruby, the only possible answer to this is 'no'.  But, 
having said that, there are other possibilities.

When you run ruby with the '-d' flag set, it prints to stderr all 
exceptions, whether caught or not.  This means that it often prints things 
to stderr that don't need to be there.  Maybe it is possible to come up 
with a similar type checking mechanism.  At "compile time" (whatever that 
means in an interpreted language) it would try to look for type 
inconsistencies, meaning arguments to methods that don't implement the 
required methods.  It could print those out as warnings, then continue, 
hoping that by the time it actually calls those methods, things will have 
been resolved.  How this would be done?  I have *no* idea.  It sure sounds 
difficult, but it would sure be useful.

Now even of all the above could be done, there would still be errors.  Just 
because a method exists doesn't mean it does the right thing.  A method 
named 'read' might be a verb telling an IO-type object to read something, 
or it might represent a boolean flag indicating a message-type object has 
been read.

Maybe the easy solution for the short term is to do like Python and emacs-lisp:

def foo(bar)
"Foo takes a 'Bar' as a parameter.  It will try to do X, Y and Z with it"
   ...
end

irb> foo("hot")
in `convert': undefined method `-' for "hot":String (NoMethodError)
irb> foo.docstring
"Foo takes a 'Bar' as a parameter.  It will try to do X, Y and Z with it"
irb> foo(25.0)
5.0
irb>

This docstring type functionality wouldn't help much when running programs 
on the commandline, but it would be really useful when debugging or poking 
at things with irb.

Comments?

Ben


In This Thread

Prev Next