[#80776] prerelease of Guis-1.3pre1 (a GTK widget server) for Ruby — Basile STARYNKEVITCH <basile@...>

Dear All,

11 messages 2003/09/01

[#80849] Simple question(s) — Michael Campbell <michael_s_campbell@...>

(I think...)

16 messages 2003/09/02

[#80870] show me the ruby way — nord ehacedod <nordehacedod@...>

This works, but there must be a more natural way to do

18 messages 2003/09/02
[#80916] Re: show me the ruby way — aero6dof@... (Alan Chen) 2003/09/02

ts <decoux@moulon.inra.fr> wrote in message news:<200309021525.h82FPkM17085@moulon.inra.fr>...

[#80918] Re: show me the ruby way — "Warren Brown" <wkb@...> 2003/09/02

alan,

[#80873] RDoc: how to turn off automatic linking for a word? — leikind@... (Yuri Leikind)

Hello all,

12 messages 2003/09/02
[#80962] Re: RDoc: how to turn off automatic linking for a word? — William Webber <wew@...> 2003/09/03

On Wed, Sep 03, 2003 at 12:32:23AM +0900, Yuri Leikind wrote:

[#81014] unknown node type 0 — Hal Fulton <hal9000@...>

Hello, all.

15 messages 2003/09/03

[#81028] webrick and ruby — ahoward <ahoward@...>

12 messages 2003/09/03

[#81057] WEBrick and mod_ruby performance — quixoticsycophant@... (Jeff Mitchell)

I've been scoping out ruby for an upcoming server project.

16 messages 2003/09/03

[#81075] Unit Tests and Encapsulation — Scott Thompson <easco@...>

This may be off-topic in a Ruby list, although I have noticed that a

18 messages 2003/09/04

[#81167] Difference between .. and ... in boolean ranges — Oliver Dain <odain2@...>

I'm a bit confused by some Ruby behavior I'm seeing with ranges. As I

12 messages 2003/09/04

[#81234] Correction: "religious" — Daniel Carrera <dcarrera@...>

It has come to my attention that the word religious can, indeed, be

12 messages 2003/09/05

[#81239] rcalc 2.0 (Ruby Calculator) — "Josef 'Jupp' Schugt" <jupp@...>

Saluton!

14 messages 2003/09/05

[#81345] ANN: MetaTags 1.0 — Ryan Pavlik <rpav@...>

MetaTags 1.0

73 messages 2003/09/08
[#81361] Re: ANN: MetaTags 1.0 — Tobias Peters <tpeters@...> 2003/09/08

Ryan Pavlik wrote:

[#81371] Re: ANN: MetaTags 1.0 — why the lucky stiff <ruby-talk@...> 2003/09/08

On Monday 08 September 2003 06:58 am, Tobias Peters wrote:

[#81384] Re: ANN: MetaTags 1.0 — Chad Fowler <chad@...> 2003/09/08

On Tue, 9 Sep 2003, why the lucky stiff wrote:

[#81386] Re: ANN: MetaTags 1.0 — dblack@... 2003/09/08

Hi --

[#81394] Re: ANN: MetaTags 1.0 — why the lucky stiff <ruby-talk@...> 2003/09/08

On Monday 08 September 2003 12:08 pm, dblack@superlink.net wrote:

[#81396] Re: ANN: MetaTags 1.0 — Hal Fulton <hal9000@...> 2003/09/08

why the lucky stiff wrote:

[#81452] Re: ANN: MetaTags 1.0 — matz@... (Yukihiro Matsumoto) 2003/09/09

Hi,

[#81454] Re: ANN: MetaTags 1.0 — Dave Thomas <Dave@...> 2003/09/09

[#81615] Re: ANN: MetaTags 1.0 — Richard Kilmer <rich@...> 2003/09/10

On Monday, September 8, 2003, at 11:59 PM, Dave Thomas wrote:

[#81374] problem with Module#append_features — Ferenc Engard <ferenc@...>

Hi all,

24 messages 2003/09/08

[#81503] Memory consumption of Ruby/mod_ruby combo on Apache — David Heinemeier Hansson <david@...>

I'm seeing memory consumption in the area of 30-35mb per Apache process

12 messages 2003/09/09
[#81504] Re: Memory consumption of Ruby/mod_ruby combo on Apache — mgarriss <mgarriss@...> 2003/09/09

David Heinemeier Hansson wrote:

[#81535] using a filter inside Ruby — Eric Schwartz <emschwar@...>

I've the contents of a raw log file in memory, and a program that will

12 messages 2003/09/09

[#81587] Fwd: Calling fun taking struct and not pointer to struct? — Robert Feldt <feldt@...>

Related to the recent thread about nested structs

16 messages 2003/09/10
[#81590] Re: Calling fun taking struct and not pointer to struct? — "Nathaniel Talbott" <nathaniel@...> 2003/09/10

Robert Feldt [mailto:feldt@ce.chalmers.se] wrote:

[#81594] Re: Calling fun taking struct and not pointer to struct? — Robert Feldt <feldt@...> 2003/09/10

Nathaniel Talbott <nathaniel@NOSPAMtalbott.ws> skrev den Wed, 10 Sep 2003 22:42:24 +0900:

[#81596] Re: Calling fun taking struct and not pointer to struct? — "Nathaniel Talbott" <nathaniel@...> 2003/09/10

Robert Feldt [mailto:feldt@ce.chalmers.se] wrote:

[#81597] Re: Calling fun taking struct and not pointer to struct? — Robert Feldt <feldt@...> 2003/09/10

Nathaniel Talbott <nathaniel@NOSPAMtalbott.ws> skrev den Thu, 11 Sep 2003 00:06:18 +0900:

[#81612] What *are* variables? Which are nil now? — Hugh Sasse Staff Elec Eng <hgs@...>

Reading about reflection, ObjectSpace will give you the objects in

22 messages 2003/09/10
[#81632] Re: What *are* variables? Which are nil now? — Austin Ziegler <austin@...> 2003/09/10

> raise "@b1 is nil" if @b1.nil

[#81623] Chasing a garbage collection bug — "Thomas Sondergaard" <thomas@...>

I just discovered that I have a GC related bug, or that is to say it doesn't

17 messages 2003/09/10

[#81755] Passing an Object Class from a method to a caller — "RLMuller" <RLMuller@...>

Hi All,

14 messages 2003/09/11

[#81840] Re: Dir.foreach not with patterns? — "Weirich, James" <James.Weirich@...>

I like the Dir[] form (or its "glob" alternative). I used to write

14 messages 2003/09/12
[#82500] Re: Dir.foreach not with patterns? — Jason Creighton <androflux@...> 2003/09/19

On Thu, 18 Sep 2003 15:59:25 +0100

[#81871] Duck Typing — Jim Weirich <jweirich@...>

In the Method Redefinition thread, this explanation of Duck Typing is

38 messages 2003/09/13
[#81884] Re: Duck Typing — dblack@... 2003/09/13

Hi --

[#81929] actual debian ruby packages are unuseable with tk — Ferenc Engard <ferenc@...>

Dear debian ruby package maintainers,

12 messages 2003/09/13

[#81960] Dot versus double-colon — Hal Fulton <hal9000@...>

OK, I've been thinking (always dangerous after 11 pm).

18 messages 2003/09/14

[#82012] performance and style advice requested — Alex Martelli <aleaxit@...>

I'm trying to learn some Ruby, so I want to write some Ruby code, starting

53 messages 2003/09/14
[#82028] Re: performance and style advice requested — Ben Giddings <bg-rubytalk@...> 2003/09/14

Some style advice:

[#82029] Linguistics 0.02 — Michael Granger <ged@...>

Hi fellow Rubyists,

19 messages 2003/09/14

[#82056] Test::Unit -- multiple errors in test method ??? — Johan Holmberg <holmberg@...>

14 messages 2003/09/15

[#82166] scrambler one-liner — Xavier Noria <fxn@...>

I just came across this interesting article at Slashdot that explains that

27 messages 2003/09/16

[#82206] #{} and \" don't like each other — Peter <Peter.Vanbroekhoven@...>

From the Programming Ruby book:

32 messages 2003/09/16

[#82419] wiki reccomendations — ahoward <ahoward@...>

15 messages 2003/09/18

[#82448] closing stderr — Michael Garriss <mgarriss@...>

I would like to prevent some output that is going to stderr during a

15 messages 2003/09/18

[#82547] fork not available? — walter@...

I am running windows 2000 using the PragProgs install.

14 messages 2003/09/19

[#82561] Trouble with binary files? — <agemoagemo@...>

I'm trying to write a program that will read a binary

24 messages 2003/09/19
[#82562] Re: Trouble with binary files? — Heinz Werntges <werntges@...> 2003/09/19

agemoagemo@yahoo.com wrote:

[#82583] Re: Trouble with binary files? — Tim Hammerquist <tim@...> 2003/09/19

<agemoagemo@yahoo.com> graced us by uttering:

[#82575] Article on oreilly.net on how to build Unix tools with Ruby — Xavier <NOSPAM@...>

Thought you'd like to know about this article

24 messages 2003/09/19
[#82829] Re: Article on oreilly.net on how to build Unix tools with Ruby — Paul Brannan <pbrannan@...> 2003/09/23

On Sat, Sep 20, 2003 at 06:00:21AM +0900, Xavier wrote:

[#82589] POP3Filter for SoBig.F Virus: — Austin Ziegler <austin@...>

Here's an updated version of the Ruby pop3filter that was written. This

32 messages 2003/09/20
[#82592] Re: POP3Filter for SoBig.F Virus: — Austin Ziegler <austin@...> 2003/09/20

I've made more updates. Rather than just putting them here, I've created a

[#82609] Re: POP3Filter for SoBig.F Virus: — Austin Ziegler <austin@...> 2003/09/20

On Sat, 20 Sep 2003 10:14:39 +0900, Austin Ziegler wrote:

[#82617] Re: POP3Filter for SoBig.F Virus: — "Shashank Date" <sdate@...> 2003/09/20

[#82618] Re: POP3Filter for SoBig.F Virus: — Gavin Sinclair <gsinclair@...> 2003/09/20

On Saturday, September 20, 2003, 9:03:18 PM, Shashank wrote:

[#82621] Re: POP3Filter for SoBig.F Virus: — Austin Ziegler <austin@...> 2003/09/20

On Sat, 20 Sep 2003 22:15:40 +0900, Gavin Sinclair wrote:

[#82623] Re: POP3Filter for SoBig.F Virus: — Jose Quesada <quesadaj@...> 2003/09/20

On Sat, 20 Sep 2003 23:52:39 +0900, Austin Ziegler <austin@halostatue.ca>

[#82624] Re: POP3Filter for SoBig.F Virus: — Xavier Noria <fxn@...> 2003/09/20

On Saturday 20 September 2003 18:56, Jose Quesada wrote:

[#82632] Real emails on newsgroup version (was Re: POP3Filter) — Ben Giddings <bg-rubytalk@...> 2003/09/20

This whole worm thing brings up a question:

[#82683] Re: Real emails on newsgroup version (was Re: POP3Filter) — Dave Thomas <Dave@...> 2003/09/22

[#82661] Performance: Ruby vs Java — lalit_pant@... (Lalit Pant)

I'm a newcomer to Ruby, and thought I would write a little

18 messages 2003/09/22

[#82715] Ruby package for Linux — Jim Freeze <jim@...>

Ok, I know nothing about linux packages.

22 messages 2003/09/22

[#82832] upper to lower first letter of a word — yvon.thoravallist@... (Yvon Thoraval)

Recently, i get a vintage list (more than 500 items) with poor typo, for

30 messages 2003/09/23

[#82884] When threads block — Hans Fugal <fugalh@...>

It's difficult to do any serious multi-threaded network programming when

13 messages 2003/09/24

[#82964] Re: Prove internet package for Microsoft Internet Explorer — "Anthony Neville" <anthony.neville@...>

13 messages 2003/09/25

[#83002] TCPSocket.gethostbyname difficulties — "Nathaniel Talbott" <nathaniel@...>

I'm trying to use TCPSocket.gethostbyname to verify that a given domain

35 messages 2003/09/25
[#83006] Re: TCPSocket.gethostbyname difficulties — Peter <Peter.Vanbroekhoven@...> 2003/09/25

> I can browse to either of those hosts, so what's different about them? Any

[#83014] Re: TCPSocket.gethostbyname difficulties — "Nathaniel Talbott" <nathaniel@...> 2003/09/26

Peter [mailto:Peter.Vanbroekhoven@cs.kuleuven.ac.be] wrote:

[#83030] Re: TCPSocket.gethostbyname difficulties — ts <decoux@...> 2003/09/26

>>>>> "N" == Nathaniel Talbott <nathaniel@NOSPAMtalbott.ws> writes:

[#83035] Re: TCPSocket.gethostbyname difficulties — "Nathaniel Talbott" <nathaniel@...> 2003/09/26

ts [mailto:decoux@moulon.inra.fr] wrote:

[#83036] Re: TCPSocket.gethostbyname difficulties — ts <decoux@...> 2003/09/26

>>>>> "N" == Nathaniel Talbott <nathaniel@NOSPAMtalbott.ws> writes:

[#83037] Re: TCPSocket.gethostbyname difficulties — "Nathaniel Talbott" <nathaniel@...> 2003/09/26

ts [mailto:decoux@moulon.inra.fr] wrote:

[#83011] Adding, removing and redefining features at runtime — "Thomas Sondergaard" <thomas@...>

I am working on an article on the subject of implementing dynamically typed

23 messages 2003/09/26

[#83105] Fwd: FW: Porting Suggestions: Lucene to Ruby; Perl Text::Balanced — Erik Hatcher <erik@...>

I was alerted about me being mentioned on ruby-talk, as I was not

12 messages 2003/09/27
[#83117] OT: alerts - was Re: Fwd: FW: Porting Suggestions: Lucene to Ruby; Perl Text::Balanced — Hal Fulton <hal9000@...> 2003/09/27

Erik Hatcher wrote:

[#83140] Thoughts on yield — nolan_d@... (Nolan J. Darilek)

I've begun working on a music-related ruby project, and recently I've

17 messages 2003/09/28

[#83223] Article on ARTIMA — Peter Hickman <peter@...>

There is the start of a series of articles on ARTIMA with Matz.

21 messages 2003/09/29

[#83310] Making == symmetric? — elbows@... (Nathan Weston)

It has always bothered me that == is not symmetric in ruby:

22 messages 2003/09/30

Re: performance and style advice requested

From: Austin Ziegler <austin@...>
Date: 2003-09-15 19:38:35 UTC
List: ruby-talk #82106
On Tue, 16 Sep 2003 02:07:53 +0900, Alex Martelli wrote:
> Ben Giddings wrote:
>> Some style advice:
>> On Sunday, September 14, 2003, at 12:44 PM, Alex Martelli wrote:
>>> # factorial, memoized via an Array
>>> $_fact_memo=3D[1,1,2,6,24,120,720]
>> Ugh. This is what really bothers me about python programs. Ugly
>> underscores.
> Heh -- matter of taste, I guess; what _I_ personally find ugly is
> that leading $, and I left the underscores in to try to ameliorate
> that. Of course, nothing stops you from moving to a camelCaseish
> $factMemo -- however, not only do I personally find that less
> readable, but I'd also like to leave a hint that the memo is an
> internal implementation detail, not a feature meant for external
> consumption, and I like the convention of a leading _ for that.
> (Of course, I _could_ wrap up the fact function and its memo in a
> single package in any of various ways, I'm sure, so the "hint"
> aspect is quite secondary).

Why not use a constant? In my unrolled implementation, that's what I
do. It's is a bit slower (but, as far as I can tell, not in the
unrolled implementations), but doesn't take advantage of the
algorithmic shortcut hinted at in earlier messages.

  FACT_MEMO =3D [1, 1, 2, 6, 24, 120, 720]

  def fact!(x)
    return 0 if x < 0
    result =3D FACT_MEMO[x]

    unless result
      ((FACT_MEMO.size)..x).each do |i|
        FACT_MEMO[i] =3D i * FACT_MEMO[i - 1]
      end
      result =3D FACT_MEMO[x]
    end

    result
  end

I'm sure there's other improvements that can be done; I went for
Ruby-idiom readability.

If it's not meant to be public at all, then since I'm using a class
here, I can use an instance variable (e.g., @fact_memo or
@__fact_memo__).

I'd much rather use a constant (FACT_MEMO) than a global
($_fact_memo). (This does point out a problem with the VIM syntax
highlighting for Ruby, in that it doesn't properly highlight
$_fact_memo because it finds $_.)

I don't think that I've used a single global variable in my Ruby
programming.

I'm attaching my version to this message.

-austin
--
austin ziegler    * austin@halostatue.ca * Toronto, ON, Canada
software designer * pragmatic programmer * 2003.09.15
                                         * 15.28.27

Attachments (1)

pointcount.rb (2.55 KB, text/x-ruby)
require 'pp'
require 'fixnum_format'

class PointCount
  module HonorsSubset
      # A recursive iterator over honor-subsets.
      #
      # An honor is represented by its point value (1 .. 4); an honor-subset is
      # a pair (total pointcount, number of honors).
    def each_subset(from = 0)
        # End of array, so, return 2 only possible subsets remaining: empty set,
        # or singleton set with the last element in it
      if from == size - 1
        yield [0, 0]
        yield [self[from], 1]
      else
          # 2+ elements remaining, so, loop iteratively, extracting the current
          # element and getting all possible subsets of all later ones -- for
          # each of those, return 2 possible subsets, i.e., either without or
          # with the current element
        thispoints = self[from]
        self.each_subset(from + 1) do |subpoints, sublength|
          yield [subpoints, sublength]
          yield [thispoints + subpoints, 1 + sublength]
        end
      end
    end
  end

  FACT_MEMO = [1, 1, 2, 6, 24, 120, 720]
  COMB_MEMO = {}

  def fact!(x)
    return 0 if x < 0
    result = PointCount::FACT_MEMO[x]

    unless result
      ((FACT_MEMO.size)..x).each do |i|
        FACT_MEMO[i] = i * FACT_MEMO[i - 1]
      end
      result = FACT_MEMO[x]
    end

    result
  end

    # Combinations of x things y at a time (0 if x < 0, y < 0, or y > x)
    # Memoized via a Hash.
  def comb(x, y)
    return 0 if y > x or x < 0 or y < 0
    result = PointCount::COMB_MEMO[[x, y]]
    result = PointCount::COMB_MEMO[[x, y]] = fact!(x) / (fact!(y) * fact!(x - y)) unless result
    result
  end

  def pointcount
    histogram = Hash.new { |h, k| h[k] = 0 }
    total = 0
    honors = Array(1..4) * 4
    honors.extend(PointCount::HonorsSubset)
    honors.each_subset do |pt, nh|
        # receive number of honors and pointcount for this honorset, then
        # compute number of possible occurrences of this honorset
      nc = comb(36, (13 - nh))
        # update histogram and total
      histogram[pt] += nc
      total += nc
    end

      # print total and eyeball-check it
    puts "#{total.format_s} #{comb(52, 13).format_s}\n\n"
      # sort histogram by decreasing frequency
    aux = histogram.sort { |a, b| b[1] <=> a[1] }

      # compute frequencies as relative percentages
    divis = total / 100.0

      # give top 10 possibilities
    aux[0...10].each do |pt, nc|
      puts "%5d %15s (%5.2f)" % [pt, nc.format_s, nc / divis]
    end
  end
end

pc = PointCount.new
start = Time.now
pc.pointcount
pp PointCount::COMB_MEMO
puts "Time: #{Time.now - start}"

In This Thread