[#104966] Why I don't use Ruby. — TLOlczyk <olczyk2002@...>

For a short period I used Ruby and found that I liked it very much,

137 messages 2004/07/01
[#105594] Re: Functional Ruby (Re: Why I don't use Ruby.) — ser@... (Sean Russell) 2004/07/08

Mikael Brockman <phubuh@phubuh.org> wrote in message news:<87llhx2hec.fsf@phubuh.org>...

[#105603] Re: Functional Ruby (Re: Why I don't use Ruby.) — James Britt <jamesUNDERBARb@...> 2004/07/08

Sean Russell wrote:

[#105607] Re: Functional Ruby (Re: Why I don't use Ruby.) — Hal Fulton <hal9000@...> 2004/07/08

James Britt wrote:

[#106115] Re: Functional Ruby (Re: Why I don't use Ruby.) — bruno modulix <onurb@...> 2004/07/12

Hal Fulton a 馗rit :

[#106121] Re: Functional Ruby (Re: Why I don't use Ruby.) — "Sean O'Dell" <sean@...> 2004/07/12

On Monday 12 July 2004 13:52, bruno modulix wrote:

[#106268] Re: Functional Ruby (Re: Why I don't use Ruby.) — bruno modulix <onurb@...> 2004/07/13

Sean O'Dell a 馗rit :

[#106278] Re: Functional Ruby (Re: Why I don't use Ruby.) — "Sean O'Dell" <sean@...> 2004/07/13

On Tuesday 13 July 2004 13:02, bruno modulix wrote:

[#105596] Re: Functional Ruby (Re: Why I don't use Ruby.) — ser@... (Sean Russell) 2004/07/08

Mikael Brockman <phubuh@phubuh.org> wrote in message news:<87llhx2hec.fsf@phubuh.org>...

[#105610] Re: Functional Ruby (Re: Why I don't use Ruby.) — "Sean O'Dell" <sean@...> 2004/07/08

On Thursday 08 July 2004 11:52, Sean Russell wrote:

[#105621] Re: Functional Ruby (Re: Why I don't use Ruby.) — zuzu <sean.zuzu@...> 2004/07/08

On Fri, 9 Jul 2004 05:03:10 +0900, Sean O'Dell <sean@celsoft.com> wrote:

[#105057] ruby-dev summary 23763-23840 — Minero Aoki <aamine@...>

Hi all,

13 messages 2004/07/02

[#105058] Exceptions list - Unix ENOENT not the name of the exception - what is? — Graham Nicholls <graham@...>

10 messages 2004/07/02

[#105081] Help with one-liner — Philip Mateescu <pmateescu@...>

Hello,

13 messages 2004/07/02

[#105134] slow method searching? — David Garamond <lists@...6.isreserved.com>

$ time ruby -e'a=(1..200000).to_a; a.classx'

17 messages 2004/07/02

[#105234] Which version of Ruby is most widely used? — Randy Lawrence <jm@...>

What version of Ruby are most of us currenting using?

14 messages 2004/07/04

[#105240] aeditor 1.0 released — Simon Strandgaard <neoneye@...>

screenshots:

24 messages 2004/07/05

[#105307] Net::SSH 0.0.2 — Jamis Buck <jgb3@...>

Net::SSH is an implementation of the SSH2 protocol in Ruby.

19 messages 2004/07/05

[#105314] Array::index and rindex operator — Hadmut Danisch <nospam@...>

Hi,

23 messages 2004/07/05
[#105364] Re: Array::index and rindex operator — "Robert Klemme" <bob.news@...> 2004/07/06

[#105373] Re: Array::index and rindex operator — "Robert Klemme" <bob.news@...> 2004/07/06

[#105384] Re: Array::index and rindex operator — "Robert Klemme" <bob.news@...> 2004/07/06

[#105330] Ruby Advocacy/Documentation/Sponsorship? — Randy Lawrence <jm@...>

Having discovered Ruby recently and falling in love with it, I'm

16 messages 2004/07/06

[#105408] Bugtracking & UnitTests == good? — martinankerl at eml dot cc <asdf@...>

Hi all! I am afraid this post is a bit offtopic. If you are not

14 messages 2004/07/06

[#105417] Secure Ruby Compiler — Randy Lawrence <jm@...>

One of the killer features lacking in most scripting languages is the

37 messages 2004/07/06
[#105463] Re: Secure Ruby Compiler — Neil Stevens <neil@...> 2004/07/07

Randy Lawrence wrote:

[#105808] Secure Ruby Compiler — tony summerfelt <snowzone5@...> 2004/07/09

On Wed, 7 Jul 2004 17:32:46 +0900, you wrote:

[#105836] Re: Secure Ruby Compiler — zuzu <sean.zuzu@...> 2004/07/09

On Sat, 10 Jul 2004 04:28:54 +0900, tony summerfelt

[#105454] Class#=== has interesting results — Charles Comstock <cc1@...>

Why does this happen?

20 messages 2004/07/07
[#105461] Re: Class#=== has interesting results — Mauricio Fern疣dez <batsman.geo@...> 2004/07/07

On Wed, Jul 07, 2004 at 04:22:36PM +0900, Charles Comstock wrote:

[#105510] Re: Class#=== has interesting results — Charles Comstock <cc1@...> 2004/07/07

Mauricio Fern疣dez wrote:

[#105560] ruby interpreter as mach kernel server (beside bsd) — zuzu <sean.zuzu@...>

ruby, starting the interactive ruby shell, but with filesystem access

21 messages 2004/07/08

[#105567] speeding ruby development — David Garamond <lists@...6.isreserved.com>

I personally would very much like Ruby development to be sped up. We

34 messages 2004/07/08

[#105597] While we're discussing 'ri'... — Hal Fulton <hal9000@...>

I have a confession. 'ri' has never worked for me, and I have never

17 messages 2004/07/08
[#105605] Re: While we're discussing 'ri'... — James Britt <jamesUNDERBARb@...> 2004/07/08

Hal Fulton wrote:

[#105651] Anomoly using pattern to remove superfluous final \, if present — "Richard Lionheart" <NoOne@...>

Hi All,

13 messages 2004/07/09

[#105660] Secure Database Systems — "Sarah Tanembaum" <sarahtanembaum@...>

I was wondering if it is possible to create a secure database system

13 messages 2004/07/09

[#105681] I love Ruby — Graham Nicholls <graham@...>

I had to say it! I teach for LearningTree, so was able to attend a perl

19 messages 2004/07/09

[#105687] Ruby-Syntax capable editors for OS X? — Michael Fivis <michael.fivis@...>

Hello, fellow OS X Ruby fans. I was wondering if there was any nice

12 messages 2004/07/09

[#105735] PickAxe 2 licensing — Dave Thomas <dave@...>

Folks:

65 messages 2004/07/09
[#105828] Re: PickAxe 2 licensing — ser@... (Sean Russell) 2004/07/09

Dave Thomas <dave@pragprog.com> wrote in message news:<DA50B6EA-D1B6-11D8-A508-000A95676A62@pragprog.com>...

[#105830] Re: PickAxe 2 licensing — Dave Thomas <dave@...> 2004/07/09

[#105886] Re: PickAxe 2 licensing — zuzu <sean.zuzu@...> 2004/07/10

On Sat, 10 Jul 2004 06:43:23 +0900, Dave Thomas <dave@pragprog.com> wrote:

[#105911] Re: PickAxe 2 licensing — Dave Thomas <dave@...> 2004/07/10

[#105929] Re: PickAxe 2 licensing — "Sean O'Dell" <sean@...> 2004/07/10

On Saturday 10 July 2004 10:21, Dave Thomas wrote:

[#105754] : RubyGems 0.7.0 Released — Jim Weirich <jim@...>

Hello all,

15 messages 2004/07/09

[#105788] My impressions about Ruby — "Sam Sungshik Kong" <ssk@...>

This post is kinda long and a personal opinion which is not meant for

12 messages 2004/07/09

[#105942] Business application building with Ruby — Alexey Verkhovsky <alex@...>

I am contemplating a project, and I have a question:

28 messages 2004/07/10
[#105950] Re: Business application building with Ruby — "Kirk Haines" <khaines@...> 2004/07/10

On Sun, 11 Jul 2004 07:27:23 +0900, Alexey Verkhovsky wrote

[#105959] A little algorithmic help requested... — Hal Fulton <hal9000@...>

Here's a problem my tired brain is having trouble with.

23 messages 2004/07/11

[#106011] Net::SSH 0.0.3 — Jamis Buck <jgb3@...>

Net::SSH is a Ruby implementation of the SSH2 client protocol.

20 messages 2004/07/11

[#106022] SQLite-Ruby 1.3.0 — Jamis Buck <jgb3@...>

Looks like there were no problems found in the SQLite-Ruby release

15 messages 2004/07/11
[#106064] Re: [ANN] SQLite-Ruby 1.3.0 — Meino Christian Cramer <Meino.Cramer@...> 2004/07/12

From: Jamis Buck <jgb3@email.byu.edu>

[#106135] Re: [ANN] SQLite-Ruby 1.3.0 — Jamis Buck <jgb3@...> 2004/07/12

Meino Christian Cramer wrote:

[#106028] Ruby quickies and useful idioms — Sam Stephenson <sstephenson@...>

There's a few trivial but useful "extensions" to Ruby's standard

30 messages 2004/07/11

[#106052] Ruby Module Naming Convention vs Java Namespaces — Randy Lawrence <jm@...>

How do we manage namespaces in Ruby to avoid collisions with 3rd parties?

15 messages 2004/07/12

[#106215] Printing contents of a method — Nate Smith <nsmith5@...>

Hello all,

16 messages 2004/07/13
[#106221] Re: Printing contents of a method — "Robert Klemme" <bob.news@...> 2004/07/13

[#106227] qtruby compilation error — Jochen Immendfer <jochen.i@...>

Hi,

20 messages 2004/07/13
[#106231] Re: qtruby compilation error — Paul Brannan <pbrannan@...> 2004/07/13

On Wed, Jul 14, 2004 at 01:40:23AM +0900, Jochen Immendfer wrote:

[#106233] Re: qtruby compilation error — Jochen Immendfer <jochen.i@...> 2004/07/13

Thank you two for answering.

[#106366] — Jesse van den Kieboom <troplosti@...>

Hi,

28 messages 2004/07/14
[#106371] — ts <decoux@...> 2004/07/14

>>>>> "J" == Jesse van den Kieboom <troplosti@orcaweb.cjb.net> writes:

[#106374] Re: No Subject — Jesse van den Kieboom <troplosti@...> 2004/07/14

On Wed, 2004-07-14 at 14:41, ts wrote:

[#106377] Re: No Subject — ts <decoux@...> 2004/07/14

>>>>> "J" == Jesse van den Kieboom <troplosti@orcaweb.cjb.net> writes:

[#106380] Re: No Subject — Jesse van den Kieboom <troplosti@...> 2004/07/14

Okay, I understand the idea now. Problem is that I register two global

[#106382] Re: No Subject — ts <decoux@...> 2004/07/14

>>>>> "J" == Jesse van den Kieboom <troplosti@orcaweb.cjb.net> writes:

[#106445] Newbie: Pointers for Ruby compatible DBase engine — xdblade@... (Xeon)

Hi,

13 messages 2004/07/14

[#106471] Free Ruby "Cookbook" (48.71% done) — Randy Lawrence <jm@...>

Anyone know if this is moving along or stalled?

12 messages 2004/07/15

[#106480] my ruby code won't go as fast as my perl code — "Dave Burt" <burtdav@...>

I realise I'm doing this a perlish way, but my question is, is it possible

12 messages 2004/07/15

[#106493] Writing games in Ruby? — winnocence@... (Innocence)

Hey

15 messages 2004/07/15

[#106512] Problem using Ruby as script language, which limits its distribution speed — "Christian Kaiser" <bchk@...>

I am (or was) a big fan of ruby (except some unexpected function names, but

12 messages 2004/07/15

[#106519] Hiding app.run in begin-rescue block: pros & cons? — "Richard Lionheart" <NoOne@...>

Hi All,

16 messages 2004/07/15

[#106530] scripting language (fwd) — "Ara.T.Howard" <Ara.T.Howard@...>

28 messages 2004/07/15
[#106552] Re: scripting language (fwd) — Jamis Buck <jgb3@...> 2004/07/15

Ara.T.Howard wrote:

[#106546] Anyone tried Arachno Ruby? — "Robert Oschler" <no_replies@..._email_address.invalid>

I'm considering taking a look at Arachno Ruby but I'd like to hear from some

20 messages 2004/07/15
[#106687] Re: Anyone tried Arachno Ruby? — Lothar Scholz <mailinglists@...> 2004/07/16

Hello Keith,

[#106694] Re: Anyone tried Arachno Ruby? — Wirianto Djunaidi <wirianto.djunaidi@...> 2004/07/17

Saw this mentioned here, so I tried it out. Looks very need and the

[#106675] Dynamically replacing methods for efficiency — Hal Fulton <hal9000@...>

I have an idea here, but I'm afraid of crossing the line from

14 messages 2004/07/16

[#106735] : about class method — "Kurk Lord" <kurk_lord@...>

Hi all,

17 messages 2004/07/17

[#106819] Which compiled language is closest to Ruby? — Gully Foyle <nospam@...>

I am currently using C++ as my compiled language but fell in love with

37 messages 2004/07/19

[#106823] Ruby Specification — David Ross <drossruby@...>

Request. Can someone create a ruby specification? I

27 messages 2004/07/19
[#106845] Re: Ruby Specification — gabriele renzi <surrender_it@...1.vip.ukl.yahoo.com> 2004/07/19

il Mon, 19 Jul 2004 15:38:31 +0900, David Ross <drossruby@yahoo.com>

[#106837] Compiling Ruby code — Nospam <news.home.nl-1@...>

Hi,

29 messages 2004/07/19

[#106908] Onigurama — Harry Ohlsen <harryo@...>

I've just started reading "Mastering Regular Expressions" because, while

32 messages 2004/07/19
[#107163] Re: [OT] FreeBSD <-> Debian — Michael Mueller <muellerix@...> 2004/07/22

> HI Michael,

[#106979] thread safe? — tony summerfelt <snowzone5@...>

i see that a number of modules are declared 'thread safe?'

16 messages 2004/07/20

[#106988] VB(ish) replacement — Dave Boland <NOSPAMdboland9@...>

The other day I was asked if there is an open source replacement for VB6

17 messages 2004/07/20

[#107001] openssl not getting built — Hal Fulton <hal9000@...>

I'm building the July 20 snapshot on Fedora 1.

15 messages 2004/07/20
[#107004] Re: openssl not getting built — Jamis Buck <jgb3@...> 2004/07/20

Hal Fulton wrote:

[#107051] sysread and buffered I/O — Hal Fulton <hal9000@...>

I've been playing with telnet (and ssh) and I've been

40 messages 2004/07/21
[#107052] Re: sysread and buffered I/O — Tanaka Akira <akr@...17n.org> 2004/07/21

In article <40FE101D.90603@hypermetrics.com>,

[#107053] Re: sysread and buffered I/O — Hal Fulton <hal9000@...> 2004/07/21

Tanaka Akira wrote:

[#107054] Re: sysread and buffered I/O — Tanaka Akira <akr@...17n.org> 2004/07/21

In article <40FE1A4C.9080403@hypermetrics.com>,

[#107055] Re: sysread and buffered I/O — Hal Fulton <hal9000@...> 2004/07/21

Tanaka Akira wrote:

[#107057] Re: sysread and buffered I/O — Tanaka Akira <akr@...17n.org> 2004/07/21

In article <40FE1F86.6030005@hypermetrics.com>,

[#107062] Re: sysread and buffered I/O — Gavin Sinclair <gsinclair@...> 2004/07/21

On Wednesday, July 21, 2004, 6:22:19 PM, Tanaka wrote:

[#107065] Re: sysread and buffered I/O — Tanaka Akira <akr@...17n.org> 2004/07/21

In article <189-1205065002.20040721185353@soyabean.com.au>,

[#107118] Ruby Installer for Windows 1.8.2-14_RC5 (from Ruby 1.8.2 preview1) — "Curt Hibbs" <curt@...>

Today Matz released the official preview1 for Ruby 1.8.2. This release

56 messages 2004/07/21
[#107162] Re: [ANN] Ruby Installer for Windows 1.8.2-14_RC5 (from Ruby 1.8.2 preview1) — David Espada <davinciSINSPAM@...> 2004/07/22

El mi駻coles 21 de julio, Curt Hibbs escribi鷓

[#107184] Re: [ANN] Ruby Installer for Windows 1.8.2-14_RC5 (from Ruby 1.8.2 preview1) — "Curt Hibbs" <curt@...> 2004/07/22

David Espada wrote:

[#107185] Re: [ANN] Ruby Installer for Windows 1.8.2-14_RC5 (from Ruby 1.8.2 preview1) — Lothar Scholz <mailinglists@...> 2004/07/22

Hello Curt,

[#107819] **RC6** Ruby Installer for Windows 1.8.2-14 — "Curt Hibbs" <curt@...> 2004/07/29

This release candidate of the Ruby Installer for Windows

[#107128] Re: substring by range parameter (bug?) — "D T" <email55555@...>

Correct to my previous conclusion.

12 messages 2004/07/21
[#107130] was - Re: substring by range parameter (bug?) — "Ara.T.Howard" <ahoward@...> 2004/07/21

On Thu, 22 Jul 2004, D T wrote:

[#107278] Active Record 0.9.0: Thread safety, speed, naturalness — David Heinemeier Hansson <david@...>

What's new in Active Record 0.9.0?

15 messages 2004/07/23
[#107556] Re: [ANN] Active Record 0.9.0: Thread safety, speed, naturalness — Carl Youngblood <carl.youngblood@...> 2004/07/27

I'm still new to ActiveRecord, so forgive me if this is obvious, but

[#107580] Re: [ANN] Active Record 0.9.0: Thread safety, speed, naturalness — Gavin Sinclair <gsinclair@...> 2004/07/27

On Tuesday, July 27, 2004, 8:59:26 PM, Carl wrote:

[#107583] Re: [ANN] Active Record 0.9.0: Thread safety, speed, naturalness — David Heinemeier Hansson <david@...> 2004/07/27

> I'm pretty confident that David would ensure ActiveRecord works just

[#107621] Re: [ANN] Active Record 0.9.0: Thread safety, speed, naturalness — Carl Youngblood <carl.youngblood@...> 2004/07/27

This stuff should probably be documented better, since it is not very

[#107627] Re: [ANN] Active Record 0.9.0: Thread safety, speed, naturalness — David Morton <mortonda@...> 2004/07/27

Carl Youngblood wrote:

[#107370] Rails 0.5.0: The end of vaporware! — David Heinemeier Hansson <david@...>

I致e been talking (and hyping) Rails for so long that it痴 all wierd to

22 messages 2004/07/24
[#107404] Re: [ANN] Rails 0.5.0: The end of vaporware! — Andreas Schwarz <usenet@...> 2004/07/25

David Heinemeier Hansson wrote:

[#107405] Re: [ANN] Rails 0.5.0: The end of vaporware! — David Heinemeier Hansson <david@...> 2004/07/25

> The 10 minute video is really impressive. But after browsing through

[#107407] Re: [ANN] Rails 0.5.0: The end of vaporware! — Andreas Schwarz <usenet@...> 2004/07/25

David Heinemeier Hansson wrote:

[#107409] Re: [ANN] Rails 0.5.0: The end of vaporware! — David Heinemeier Hansson <david@...> 2004/07/25

>>> The 10 minute video is really impressive. But after browsing through

[#107410] Re: [ANN] Rails 0.5.0: The end of vaporware! — Andreas Schwarz <usenet@...> 2004/07/25

David Heinemeier Hansson wrote:

[#107387] rubyonrails and cgikit comparison — Gully Foyle <nospam@...>

There seems to be a lot of excitement about rubyonrails even before the

50 messages 2004/07/25
[#107397] Re: rubyonrails and cgikit comparison — Bauduin Raphael <rb@...> 2004/07/25

Gully Foyle wrote:

[#107448] Re: rubyonrails and cgikit comparison — gabriele renzi <surrender_it@...1.vip.ukl.yahoo.com> 2004/07/25

il Mon, 26 Jul 2004 03:48:30 +0900, Florian Weber

[#107485] Re: rubyonrails and cgikit comparison — Florian Weber <csshsh@...> 2004/07/26

> He's saying that he does not want to have 'foo' referencing something

[#107490] Re: rubyonrails and cgikit comparison — Raphael Bauduin <raphael.bauduin@...> 2004/07/26

Florian Weber wrote:

[#107495] Re: rubyonrails and cgikit comparison — Florian Weber <csshsh@...> 2004/07/26

[#107555] Why's (Poignant) Guide to Ruby: Expansion Pak I: The Tiger's Vest (with a Basic Introduction to Irb) — why the lucky stiff <ruby-talk@...>

Yes, I've been taking forever. Well, what can I say? Answering threats

27 messages 2004/07/27
[#107661] Re: [ANN] Why's (Poignant) Guide to Ruby: Expansion Pak I: The Tiger's Vest (with a Basic Introduction to Irb) — Raphael Bauduin <raphael.bauduin@...> 2004/07/28

why the lucky stiff wrote:

[#107662] Re: [ANN] Why's (Poignant) Guide to Ruby: Expansion Pak I: The Tiger's Vest (with a Basic Introduction to Irb) — "Curt Hibbs" <curt@...> 2004/07/28

Raphael Bauduin wrote:

[#107675] Re: [ANN] Why's (Poignant) Guide to Ruby: Expansion Pak I: The Tiger's Vest (with a Basic Introduction to Irb) — why the lucky stiff <ruby-talk@...> 2004/07/28

Curt Hibbs wrote:

[#107681] Re: [ANN] Why's (Poignant) Guide to Ruby: Expansion Pak I: The Tiger's Vest (with a Basic Introduction to Irb) — "Curt Hibbs" <curt@...> 2004/07/28

why the lucky stiff wrote:

[#107594] DBI: connecting 'local' database — Ralf Mler <r_mueller@...>

Hi,

13 messages 2004/07/27
[#107595] Re: DBI: connecting 'local' database — Michael Neumann <mneumann@...> 2004/07/27

Ralf Mler wrote:

[#107715] Stupid ODBC! — Lennon Day-Reynolds <rcoder@...>

So, in response to David's call for contributions of adapters for

33 messages 2004/07/28
[#107738] Re: Stupid ODBC! — "Sean O'Dell" <sean@...> 2004/07/29

On Wednesday 28 July 2004 15:04, Lennon Day-Reynolds wrote:

[#107741] Re: Stupid ODBC! — Lennon Day-Reynolds <rcoder@...> 2004/07/29

Sean,

[#107740] Rails 0.5.5: Windows, WEBrick, lots! — David Heinemeier Hansson <david@...>

What's new in Rails 0.5.5?

10 messages 2004/07/29

[#107832] C ext: GC claiming objects early — Tilman Sauerbeck <tilman@...>

Hi,

17 messages 2004/07/29
[#107885] Re: C ext: GC claiming objects early — ts <decoux@...> 2004/07/30

>>>>> "T" == Tilman Sauerbeck <tilman@code-monkey.de> writes:

[#107906] Forward references? — Lloyd Zusman <ljz@...>

Is there a way to define forward references to functions? Due to my own

27 messages 2004/07/30

[#107916] AllInOneRuby — "Erik Veenstra" <pan@...>

I'm pleased to announce the birth of AllInOneRuby.

15 messages 2004/07/30

[#107984] Free(real Free) GUI toolkits — David Ross <drossruby@...>

Has anyone tried using the WideStudio libraries with

82 messages 2004/07/31
[#107985] Re: Free(real Free) GUI toolkits — Hal Fulton <hal9000@...> 2004/07/31

David Ross wrote:

[#107986] Re: Free(real Free) GUI toolkits — David Ross <drossruby@...> 2004/07/31

> I haven't tried this (or even heard of it before),

[#107989] Re: Free(real Free) GUI toolkits — Lothar Scholz <mailinglists@...> 2004/07/31

Hello David,

[#107990] Re: Free(real Free) GUI toolkits — David Ross <drossruby@...> 2004/08/01

> I hate myself for asking this question:

[#107991] Re: Free(real Free) GUI toolkits — David Ross <drossruby@...> 2004/08/01

Oh a correction, by binary, I meant statically linked

[#107994] Re: Free(real Free) GUI toolkits — David Ross <drossruby@...> 2004/08/01

Hmm.. does anyone have a MacOSX computer they can try

[#108000] Re: Free(real Free) GUI toolkits — Lothar Scholz <mailinglists@...> 2004/08/01

Hello David,

[#108008] Re: Free(real Free) GUI toolkits — David Ross <drossruby@...> 2004/08/01

"Truth is important, knock down the trolls on thier

[#108017] Re: Free(real Free) GUI toolkits — Rando Christensen <eyez@...> 2004/08/01

David Ross wrote:

[#108657] Re: Free(real Free) GUI toolkits — Florian Gross <flgr@...> 2004/08/09

David Ross wrote:

[#108660] Re: Free(real Free) GUI toolkits — David Ross <drossruby@...> 2004/08/09

>> And i must say i don't understand your attitude,

[#108690] Re: Free(real Free) GUI toolkits — Lothar Scholz <mailinglists@...> 2004/08/09

Hello David,

[#108752] Re: Free(real Free) GUI toolkits — David Ross <drossruby@...> 2004/08/10

>

[#108816] Re: Free(real Free) GUI toolkits — Carl Youngblood <carl.youngblood@...> 2004/08/10

It's amazing to see how much one bad apple can spoil the barrel.

[#108818] Re: Free(real Free) GUI toolkits — David Ross <drossruby@...> 2004/08/10

> It's amazing to see how much one bad apple can spoil

[#108634] Re: Free(real Free) GUI toolkits — Reinder Verlinde <reinder@...> 2004/08/08

In article <410CAD5B.8030405@illuzionz.org>,

[ANN] Active Record 0.9.0: Thread safety, speed, naturalness

From: David Heinemeier Hansson <david@...>
Date: 2004-07-23 11:15:55 UTC
List: ruby-talk #107278
What's new in Active Record 0.9.0?
==================================

It痴 been a while, but the wait will be worth it. This massive update  
includes thread safety, 400% speed increase (on a 100 objects loop),  
better callback definitions, natural association assignment, hashes and  
arrays in YAML storage, and much, much more.

Download from http://activerecord.rubyonrails.org, talk on #rubyonrails  
(FreeNet).


* Active Record is now thread safe! (So you can use it with Cerise and  
WEBrick
   applications) [Implementation idea by Michael Neumann, debugging  
assistance
   by Jamis Buck]

* Improved performance by roughly 400% on a basic test case of pulling  
100
   records and querying one attribute. This brings the tax for using  
Active
   Record instead of "riding on the metal" (using MySQL-ruby C-driver  
directly)
   down to ~50%. Done by doing lazy type conversions and caching column
   information on the class-level.

* Added callback objects and procs as options for implementing the  
target for
   callback macros.

* Added "counter_cache" option to belongs_to that automates the usage of
   increment_counter and decrement_counter. Consider:

     class Post < ActiveRecord::Base
       has_many :comments
     end

     class Comment < ActiveRecord::Base
       belongs_to :post
     end

   Iterating over 100 posts like this:

     <% for post in @posts %>
       <%= post.title %> has <%= post.comments_count %> comments
     <% end %>

   Will generate 100 SQL count queries -- one for each call to
   post.comments_count. If you instead add a "comments_count" int column
   to the posts table and rewrite the comments association macro with:

     class Comment < ActiveRecord::Base
       belongs_to :post, :counter_cache => true
     end

   Those 100 SQL count queries will be reduced to zero. Beware that  
counter
   caching is only appropriate for objects that begin life
   with the object it's specified to belong with and is destroyed like  
that as
   well. Typically objects where you would also specify :dependent =>  
true. If
   your objects switch from one belonging to another (like a post that  
can be
   move from one category to another), you'll have to manage the counter
   yourself.

* Added natural object-style assignment for has_one and belongs_to
   associations. Consider the following model:

     class Project < ActiveRecord::Base
       has_one :manager
     end

     class Manager < ActiveRecord::Base
       belongs_to :project
     end

   Earlier, assignments would work like following regardless of which  
way the
   assignment told the best story:

     active_record.manager_id = david.id

   Now you can do it either from the belonging side:

     david.project = active_record

   ...or from the having side:

     active_record.manager = david

   If the assignment happens from the having side, the assigned object is
   automatically saved. So in the example above, the project_id  
attribute on
   david would be set to the id of active_record, then david would be  
saved.

* Added natural object-style assignment for has_many associations  
[Florian
   Weber]. Consider the following model:

     class Project < ActiveRecord::Base
       has_many :milestones
     end

     class Milestone < ActiveRecord::Base
       belongs_to :project
     end

   Earlier, assignments would work like following regardless of which  
way the
   assignment told the best story:

     deadline.project_id = active_record.id

   Now you can do it either from the belonging side:

     deadline.project = active_record

   ...or from the having side:

     active_record.milestones << deadline

   The milestone is automatically saved with the new foreign key.

* API CHANGE: Attributes for text (or blob or similar) columns will now  
have
   unknown classes stored using YAML instead of using to_s. (Known  
classes that
   won't be yamelized are: String, NilClass, TrueClass, FalseClass,  
Fixnum,
   Date, and Time). Likewise, data pulled out of text-based attributes  
will be
   attempted converged using Yaml if they have the "--- " header. This  
was
   primarily done to be enable the storage of hashes and arrays without
   wrapping them in aggregations, so now you can do:

     user = User.find(1)
     user.preferences = { "background" => "black", "display" => large }
     user.save

     User.find(1).preferences # => { "background"=>"black",  
"display"=>large }

   Please note that this method should only be used when you don't care  
about
   representing the object in proper columns in the database. A money  
object
   consisting of an amount and a currency is still a much better fit for  
a
   value object done through aggregations than this new option.

* POSSIBLE CODE BREAKAGE: As a consequence of the lazy type  
conversions, it's
   a bad idea to reference the @attributes hash directly (it always was,  
but
   now it's paramount that you don't). If you do, you won't get the type
   conversion. So to implement new accessors for existing attributes, use
   read_attribute(attr_name) and write_attribute(attr_name, value)  
instead.
   Like this:

     class Song < ActiveRecord::Base
       # Uses an integer of seconds to hold the length of the song

       def length=(minutes)
         write_attribute("length", minutes * 60)
       end

       def length
         read_attribute("length") / 60
       end
     end

   The clever kid will notice that this opens a door to sidestep the  
automated
   type conversion by using @attributes directly. This is not  
recommended as
   read/write_attribute may be granted additional responsibilities in the
   future, but if you think you know what you're doing and aren't afraid  
of
   future consequences, this is an option.

* Applied a few minor bug fixes reported by Daniel Von Fange.


What about Active Record 1.0.0?
==================================

Active Record will be moving to promised land of 1.0.0 within a  
reasonably short time frame. So if you have any wishes, comments, or  
complaints, you'll want to voice them sooner rather than later. 1.0.0  
won't mean the end of developement, of course, but it would be nice to  
have a really solid release. So do speak forth.


Call for help!
==============

Do you have working knowledge with and access to either Oracle, ODBC,  
Sybase, or DB2, I'd be really grateful if you would consider writing an  
adapter for Active Record. Adapters are usually just around 100 lines  
of code. You'll have three examples to look at, a well-specified  
interface[1], and almost 100 test cases to make it real easy. Luke  
Holden reports that he spent just a few hours getting SQLite and  
PostgreSQL adapters working.

[1]  
http://ar.rubyonrails.org/classes/ActiveRecord/ConnectionAdapters/ 
AbstractAdapter.html


Active Record -- Object-relation mapping put on rails
=====================================================

Active Record connects business objects and database tables to create a  
persistable
domain model where logic and data is presented in one wrapping. It's an  
implementation of the object-relational mapping (ORM) pattern by the  
same name as described by Martin Fowler:

   "An object that wraps a row in a database table or view, encapsulates
        the database access, and adds domain logic on that data."

Active Records main contribution to the pattern is to relieve the  
original of two stunting problems: lack of associations and  
inheritance. By adding a simple domain language-like set of macros to  
describe the former and integrating the Single Table Inheritance  
pattern for the latter, Active Record narrows the gap of functionality  
between the data mapper and active record approach.

A short rundown of the major features:

* Automated mapping between classes and tables, attributes and columns.
    class Product < ActiveRecord::Base; end

    ...is automatically mapped to the table named "products", such as:

    CREATE TABLE products (
      id int(11) NOT NULL auto_increment,
      name varchar(255),
      PRIMARY KEY  (id)
    );

    ...which again gives Product#name and Product#name=(new_name)


* Associations between objects controlled by simple meta-programming  
macros.
    class Firm < ActiveRecord::Base
      has_many  :clients
      has_one   :account
      belong_to :conglomorate
    end


* Aggregations of value objects controlled by simple meta-programming  
macros.
    class Account < ActiveRecord::Base
      composed_of :balance, :class_name => "Money",
                  :mapping => %w(balance amount)
      composed_of :address,
                  :mapping => [%w(address_street street),  
%w(address_city city)]
    end


* Validation rules that can differ for new or existing objects.
    class Post < ActiveRecord::Base
      def validate # validates on both creates and updates
        errors.add_on_empty "title"
      end

      def validate_on_update
        errors.add_on_empty "password"
      end
    end


* Callbacks as methods or ques on the entire lifecycle
   (instantiation, saving, destroying, validating, etc).

    class Person < ActiveRecord::Base
      def before_destroy # is called just before Person#destroy
        CreditCard.find(credit_card_id).destroy
      end
    end

    class Account < ActiveRecord::Base
      after_find :eager_load, 'self.class.announce(#{id})'
    end

   Learn more in link:classes/ActiveRecord/Callbacks.html


* Observers for the entire lifecycle
    class CommentObserver < ActiveRecord::Observer
      def after_create(comment) # is called just after Comment#save
        NotificationService.send_email("david@loudthinking.com", comment)
      end
    end


* Inheritance hierarchies
    class Company < ActiveRecord::Base; end
    class Firm < Company; end
    class Client < Company; end
    class PriorityClient < Client; end


* Transaction support on both a database and object level. The latter  
is implemented
   by using Transaction::Simple

     # Just database transaction
     Account.transaction do
       david.withdrawal(100)
       mary.deposit(100)
     end

     # Database and object transaction
     Account.transaction(david, mary) do
       david.withdrawal(100)
       mary.deposit(100)
     end


* Direct manipulation (instead of service invocation)

   So instead of (Hibernate example):

      long pkId = 1234;
      DomesticCat pk = (DomesticCat) sess.load( Cat.class, new  
Long(pkId) );
      // something interesting involving a cat...
      sess.save(cat);
      sess.flush(); // force the SQL INSERT

   Active Record lets you:

      pkId = 1234
      cat = Cat.find(pkId)
      # something even more interesting involving a the same cat...
      cat.save


* Database abstraction through simple adapters (~100 lines) with a  
shared connector

    ActiveRecord::Base.establish_connection(:adapter => "sqlite",  
:dbfile => "dbfile")

    ActiveRecord::Base.establish_connection(
      :adapter  => "mysql",
      :host     => "localhost",
      :username => "me",
      :password => "secret",
      :database => "activerecord"
    )


* Logging support for Log4r and Logger

     ActiveRecord::Base.logger = Logger.new(STDOUT)
     ActiveRecord::Base.logger = Log4r::Logger.new("Application Log")


Philosophy
==========

Active Record attempts to provide a coherent wrapping for the  
inconvenience that is object-relational mapping. The prime directive  
for this mapping has been to minimize the amount of code needed to  
built a real-world domain model. This is made possible by relying on a  
number of conventions that make it easy for Active Record to infer  
complex relations and structures from a minimal amount of explicit  
direction.

Convention over Configuration:
* No XML-files!
* Lots of reflection and run-time extension
* Magic is not inherently a bad word

Admit the Database:
* Lets you drop down to SQL for odd cases and performance
* Doesn't attempt to duplicate or replace data definitions

--
David Heinemeier Hansson,
http://www.instiki.org/      -- A No-Step-Three Wiki in Ruby
http://www.basecamphq.com/   -- Web-based Project Management
http://www.loudthinking.com/ -- Broadcasting Brain
http://www.nextangle.com/    -- Development & Consulting Services


In This Thread

Prev Next