[#356209] Workaround for "conflict" between ARGV and gets? — RichardOnRails <RichardDummyMailbox58407@...>

gets looks to ARGV, if populated, for its source of data. That is its

9 messages 2010/02/01

[#356306] UTF8 hell — Xavier No謖le <xavier.noelle@...>

Hello,

15 messages 2010/02/02
[#356309] Re: [ENCODING] UTF8 hell — David Palm <dvdplm@...> 2010/02/02

> I fetch rows from an UTF8 database and try to work with the string. To

[#356317] Why Ruby? — Jim Maher <jdmaher@...>

I've asked several friends and associates (application developers) what

52 messages 2010/02/02

[#356433] Hashes versus Arrays — Jerome David Sallinger <imran.nazir@...>

Hello,

11 messages 2010/02/03

[#356439] rdoc_osx_dictionary 1.2.0 Released — Ryan Davis <ryand-ruby@...>

rdoc_osx_dictionary version 1.2.0 has been released!

14 messages 2010/02/03

[#356451] Error: uninitialized constant Mysql::Protocol::UNIXSocket — Shahab Qadeer <shahab_qadeer@...>

/!\ FAILSAFE /!\ Wed Feb 03 23:02:50 +0500 2010

15 messages 2010/02/03

[#356459] hooking subscript operations in a hash — Ralph Shnelvar <ralphs@...32.com>

In order to help debug something, I'd like to hook the hash subscript operation.

17 messages 2010/02/04
[#356461] Re: hooking subscript operations in a hash — Rick DeNatale <rick.denatale@...> 2010/02/04

On Wed, Feb 3, 2010 at 9:38 PM, Ralph Shnelvar <ralphs@dos32.com> wrote:

[#356462] Re: hooking subscript operations in a hash — Ralph Shnelvar <ralphs@...32.com> 2010/02/04

RD> On Wed, Feb 3, 2010 at 9:38 PM, Ralph Shnelvar <ralphs@dos32.com> wrote:

[#356489] Some noob questions — John Ydil <john.gendrot@...>

Hello Ruby friends!

29 messages 2010/02/04
[#356494] Re: Some noob questions — Robert Klemme <shortcutter@...> 2010/02/04

On 02/04/2010 11:58 AM, John Ydil wrote:

[#356568] Re: Some noob questions — Albert Schlef <albertschlef@...> 2010/02/04

Robert Klemme wrote:

[#356605] Re: Some noob questions — Robert Klemme <shortcutter@...> 2010/02/05

On 05.02.2010 00:10, Albert Schlef wrote:

[#356624] Re: Some noob questions — Albert Schlef <albertschlef@...> 2010/02/05

Robert Klemme wrote:

[#356626] Re: Some noob questions — Robert Klemme <shortcutter@...> 2010/02/05

On 02/05/2010 12:50 PM, Albert Schlef wrote:

[#356628] Re: Some noob questions — Albert Schlef <albertschlef@...> 2010/02/05

Robert Klemme wrote:

[#356665] Re: Some noob questions — Robert Klemme <shortcutter@...> 2010/02/05

On 02/05/2010 02:01 PM, Albert Schlef wrote:

[#356811] Re: Some noob questions — Aldric Giacomoni <aldric@...> 2010/02/08

Robert Klemme wrote:

[#356814] Re: Some noob questions — Robert Klemme <shortcutter@...> 2010/02/08

2010/2/8 Aldric Giacomoni <aldric@trevoke.net>:

[#356531] Finding duplicate records before creating using FasterCSV — John Mcleod <john.mcleod@...>

Hello all,

11 messages 2010/02/04

[#356563] Can Ruby Do This? — Mr Bubb <jcabraham@...>

In Perl, you can create a hash of arbitrary depth like so:

14 messages 2010/02/04

[#356685] Google AI Challenge at U of Waterloo — Forthminder <mentifex@...>

Contest runs from 4 February to 26 February 2010.

11 messages 2010/02/06

[#356716] match/scan does not return multiple matches — Michal Suchanek <hramrach@...>

Hello

12 messages 2010/02/06

[#356744] Honest opinion needed... — Schala Zeal <schalaalexiazeal@...>

I've been trying to find a scripting language to integrate into a game

15 messages 2010/02/07

[#356769] C embed assistance — Schala Zeal <schalaalexiazeal@...>

I was wondering if there was a site with reliable documentation covering

15 messages 2010/02/07

[#356792] Why no ++ and --? — Sonja Elen Kisa <sonja@...>

"foo += 1" somehow seems less elegant or pretty as "foo++".

27 messages 2010/02/08

[#356882] "Code must be Chunkable" — Intransition <transfire@...>

I watched Part 1 of this great lecture, and I just had to share:

46 messages 2010/02/08
[#356943] Re: "Code must be Chunkable" — Brian Candler <b.candler@...> 2010/02/09

Thomas Sawyer wrote:

[#357074] Re: "Code must be Chunkable" — Intransition <transfire@...> 2010/02/11

On Feb 9, 11:40 am, Brian Candler <b.cand...@pobox.com> wrote:

[#356944] Need Code to Create Directory Picking Dialog Box — Alex DeCaria <alex.decaria@...>

I have a Ruby program and want to be able to pick a directory using a

14 messages 2010/02/09

[#357030] Exit method? — Charlie Ca <artemisc360@...>

Hello World,

23 messages 2010/02/10
[#357033] Re: Exit method? — Marnen Laibow-Koser <marnen@...> 2010/02/10

Charlie Ca wrote:

[#357103] Can SWIN CommonDialog.openFilename() select multiple files? — Alex DeCaria <alex.decaria@...>

12 messages 2010/02/11

[#357170] how to detect used protocol (SOAP, JSON, XML etc.) — jeljer te Wies <jeljer@...>

Hi guys!.

15 messages 2010/02/12

[#357187] Is there a way to get a method to always run at the end of any descendent's initialize method? — Xeno Campanoli <xeno.campanoli@...>

I have an initialize method I want to run at the end of any daughter or

11 messages 2010/02/12

[#357249] Generating all possible combinations of a 5 digit pattern. — Zach Bartels <no@...>

This is probably childs play for most of you.. But I lack the

17 messages 2010/02/13

[#357446] Dia 1.1 released! — Robert Gleeson <rob@...>

Hey

17 messages 2010/02/16
[#357451] Re: Dia 1.1 released! — Daniel Berger <djberg96@...> 2010/02/16

[#357453] Re: Dia 1.1 released! — Robert Gleeson <rob@...> 2010/02/16

Dan --

[#357909] Re: Dia 1.1 released! — Robert Gleeson <rob@...> 2010/02/23

I'm just leaving an update:

[#357485] Tk on Windows and Mac OS X 10.6 — Eric Christopherson <echristopherson@...>

Is it possible to install Ruby Tk bindings on Windows with

37 messages 2010/02/16
[#357491] Re: Tk on Windows and Mac OS X 10.6 — Albert Schlef <albertschlef@...> 2010/02/16

Eric Christopherson wrote:

[#357492] Re: Tk on Windows and Mac OS X 10.6 — Eric Christopherson <echristopherson@...> 2010/02/17

On Tue, Feb 16, 2010 at 5:57 PM, Albert Schlef <albertschlef@gmail.com> wro=

[#357496] Re: Tk on Windows and Mac OS X 10.6 — Albert Schlef <albertschlef@...> 2010/02/17

Eric Christopherson wrote:

[#357548] Where is Ruby 1.9 'TK' library? — Alex DeCaria <alex.decaria@...>

Just installed Ruby 1.9 and tried to run one of my TK applications that

31 messages 2010/02/17
[#357559] Re: Where is Ruby 1.9 'TK' library? — Luis Lavena <luislavena@...> 2010/02/17

On Feb 17, 7:36=A0pm, Alex DeCaria <alex.deca...@millersville.edu>

[#357567] Re: Where is Ruby 1.9 'TK' library? — Eric Christopherson <echristopherson@...> 2010/02/17

On Wed, Feb 17, 2010 at 3:10 PM, Luis Lavena <luislavena@gmail.com> wrote:

[#357570] Re: Where is Ruby 1.9 'TK' library? — Roger Pack <rogerpack2005@...> 2010/02/17

> Luis, is it possible at all to *add* Tk bindings to a copy of Ruby

[#357572] Re: Where is Ruby 1.9 'TK' library? — Eric Christopherson <echristopherson@...> 2010/02/18

On Wed, Feb 17, 2010 at 5:40 PM, Roger Pack <rogerpack2005@gmail.com> wrote:

[#357577] Re: Where is Ruby 1.9 'TK' library? — Alex DeCaria <alex.decaria@...> 2010/02/18

Roger Pack wrote:

[#357583] Re: Where is Ruby 1.9 'TK' library? — Roger Pack <rogerpack2005@...> 2010/02/18

[#358598] Re: Where is Ruby 1.9 'TK' library? — Alex DeCaria <alex.decaria@...> 2010/03/05

Roger Pack wrote:

[#357617] strings combine — Roger Pack <rogerpack2005@...>

Shouldn't the following be a syntax error?

24 messages 2010/02/18
[#357618] Re: strings combine — Gary Wright <gwtmp01@...> 2010/02/18

[#357637] Re: strings combine — Roger Pack <rogerpack2005@...> 2010/02/18

[#357658] Re: strings combine — Robert Klemme <shortcutter@...> 2010/02/19

On 02/18/2010 11:32 PM, Roger Pack wrote:

[#357681] Re: strings combine — Raul Jara <raul.c.jara@...> 2010/02/19

This doesn't work if you assign the strings to variables though:

[#357683] Re: strings combine — Robert Klemme <shortcutter@...> 2010/02/19

2010/2/19 Raul Jara <raul.c.jara@gmail.com>:

[#357697] Re: strings combine — Raul Jara <raul.c.jara@...> 2010/02/19

Robert Klemme wrote:

[#357707] Re: strings combine — Robert Klemme <shortcutter@...> 2010/02/19

On 19.02.2010 17:40, Raul Jara wrote:

[#357716] Re: strings combine — Raul Jara <raul.c.jara@...> 2010/02/19

> Robert@babelfish ~

[#357621] RTranslate Gem (Open-URI) and Encoding — The Chromag <brent@...>

I'm using the rtranslate gem (sishen-rtranslate) to handle translating

12 messages 2010/02/18

[#357622] Ruby conditionals subtlety? — Farhad Farzaneh <ff@...>

Hi,

18 messages 2010/02/18
[#357630] Re: Ruby conditionals subtlety? — Ryan Davis <ryand-ruby@...> 2010/02/18

[#357632] Re: Ruby conditionals subtlety? — Farhad Farzaneh <ff@...> 2010/02/18

Ryan Davis wrote:

[#357641] Re: Ruby conditionals subtlety? — Ryan Davis <ryand-ruby@...> 2010/02/18

[#357642] Re: Ruby conditionals subtlety? — Farhad Farzaneh <ff@...> 2010/02/19

Ryan Davis wrote:

[#357678] Get Goolge Result — Sajjad Seyyed <treep_ir@...>

Hi

15 messages 2010/02/19

[#357878] Speed sprint — Benedikt Müller <benemue@...>

Hi

23 messages 2010/02/22

[#357899] Test::Unit Newbie Question regarding loops — Yotta Meter <spam@...>

With the following example:

13 messages 2010/02/23
[#357936] Re: Test::Unit Newbie Question regarding loops — Brian Candler <b.candler@...> 2010/02/23

Yotta Meter wrote:

[#357939] Re: Test::Unit Newbie Question regarding loops — Yotta Meter <spam@...> 2010/02/23

This is really the great idea I was looking for, thanks. Obviously I'm

[#357940] How do I set the encoding on a regexp ? — Perry Smith <pedzsan@...>

Title pretty much says it all. Here is a small sample program:

20 messages 2010/02/23
[#358010] Re: How do I set the encoding on a regexp ? — David Springer <dnspringer@...> 2010/02/24

Perry,

[#358060] Array index question — John Smith <ks1911shooter@...>

Question about an array. Say I have the following array...

12 messages 2010/02/25

[#358108] Installing Pg gem for PostGreSQL 8.4 — Saeed Bhuta <saeed.bhuta@...>

Hi All,

35 messages 2010/02/26
[#358114] Re: Installing Pg gem for PostGreSQL 8.4 — Shashank Tiwari <tshanky@...> 2010/02/26

Are you installing this on a mac, windows or a linux environment? You may

[#358116] Re: Installing Pg gem for PostGreSQL 8.4 — Saeed Bhuta <saeed.bhuta@...> 2010/02/26

Shashank Tiwari wrote:

[#358256] Re: Installing Pg gem for PostGreSQL 8.4 — Saeed Bhuta <saeed.bhuta@...> 2010/03/01

Saeed Bhuta wrote:

[#358269] Re: Installing Pg gem for PostGreSQL 8.4 — Reid Thompson <reid.thompson@...> 2010/03/01

On Mon, 2010-03-01 at 17:56 +0900, Saeed Bhuta wrote:

[#358278] Re: Installing Pg gem for PostGreSQL 8.4 — Saeed Bhuta <saeed.bhuta@...> 2010/03/01

Here is the result of the '$ dpkg --get-selections' command;

[#358288] Re: Installing Pg gem for PostGreSQL 8.4 — Reid Thompson <reid.thompson@...> 2010/03/01

On Mon, 2010-03-01 at 23:19 +0900, Saeed Bhuta wrote:

[#358289] Re: Installing Pg gem for PostGreSQL 8.4 — Saeed Bhuta <saeed.bhuta@...> 2010/03/01

Reid Thompson wrote:

[#358330] Re: Installing Pg gem for PostGreSQL 8.4 — Reid Thompson <reid.thompson@...> 2010/03/01

On Tue, 2010-03-02 at 00:58 +0900, Saeed Bhuta wrote:

[#358370] Re: Installing Pg gem for PostGreSQL 8.4 — Saeed Bhuta <saeed.bhuta@...> 2010/03/02

Reid Thompson wrote:

[#358386] Re: Installing Pg gem for PostGreSQL 8.4 — Reid Thompson <reid.thompson@...> 2010/03/02

On Tue, 2010-03-02 at 17:24 +0900, Saeed Bhuta wrote:

[#358387] Re: Installing Pg gem for PostGreSQL 8.4 — Saeed Bhuta <saeed.bhuta@...> 2010/03/02

Reid Thompson wrote:

[#358399] Re: Installing Pg gem for PostGreSQL 8.4 — Reid Thompson <reid.thompson@...> 2010/03/02

On Tue, 2010-03-02 at 23:09 +0900, Saeed Bhuta wrote:

[#358402] Re: Installing Pg gem for PostGreSQL 8.4 — Reid Thompson <reid.thompson@...> 2010/03/02

On Tue, 2010-03-02 at 11:23 -0500, Reid Thompson wrote:

[#358117] Music Theory (#229) — Daniel Moore <yahivin@...>

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

29 messages 2010/02/26
[#358430] Re: Music Theory (#229) — Ben Rho <dearbenj@...> 2010/03/03

Daniel X Moore wrote:

[#358444] Re: Music Theory (#229) — Daniel Moore <yahivin@...> 2010/03/03

Wow, this is some great discussion! Both piano and guitar chords are

[#358467] Re: Music Theory (#229) — Ben Rho <dearbenj@...> 2010/03/03

Daniel X Moore wrote:

[#358141] running a file — John Pasqa <jasello098@...>

ok, i'm writing a ruby program that interprets some text and does stuff

14 messages 2010/02/27

[#358204] Shoes? — Kurtis Rainbolt-greene <thinkwritemute@...>

Ok, so I'm getting back into GUI development and I want to use Ruby.

23 messages 2010/02/28
[#358205] Re: Shoes? — Howard Roberts <howardroberts@...> 2010/02/28

Kurtis Rainbolt-greene wrote:

[#358208] Re: Shoes? — Kurtis Rainbolt-greene <thinkwritemute@...> 2010/02/28

Howard Roberts wrote:

[#358228] Re: Shoes? — Ryan Davis <ryand-ruby@...> 2010/02/28

Re: Hashes versus Arrays

From: Josh Cheek <josh.cheek@...>
Date: 2010-02-04 05:57:05 UTC
List: ruby-talk #356473
On Wed, Feb 3, 2010 at 12:27 PM, Jerome David Sallinger <
imran.nazir@yahoo.co.uk> wrote:

> Can someone please explain how you would go about deciding whether to
> use a Hash or and Array for a given requirement. Can someone give an
> idiot proof simple explanation including any pros versus cons.
>

Understanding what happens under the covers will help you know what is right
for your situation, so first a quick explanation of arrays and hashes.

An array is a section of consecutive memory (Ruby's array class is more
abstract, but generally you can expect something like this). Since the array
doesn't actually store the object, but instead stores the reference to the
object, and all references are the same size, the array can always know
where the nth item is (for some number n). It also means that the items are
inherently ordered, ie the first element you put in will be at index zero,
the second will be at index 1, and so on. If you want to see that order
again, you look at index 0, then index 1, and so on. So if you want order,
then an array makes sense. If you want to be able to call the sixth item,
then you know right were it is, it is in index 5 (not 5, because we start
counting at zero). And we know where index 5 is, because the references to
the objects have a fixed width. So it's in memory location:
location_of_array + size_of_reference * desired_index, and bam, we are
there. So it is very efficient.

But what happens if you don't know where the item you are interested in is
located? Well, then you have to search through the whole array (there are
also searching algorithms, if you can guarantee certain properties about the
array)

However, sometimes you are not so interested in the order things went in, as
you are with relating two pieces of information together.

Enter the hash table. A hash table has a "key" and a "value" it uses the key
in the same way that an array uses an index, to retrieve the value.
Underneath the hash table, is an array, and every key is mapped to an array
index. To do this, it looks at the object's contents, and comes up with a
number (the algorithm used will depend on the object, and how the creator
decided to implement it). That index is then likely to be where the object
is within the array. The key implies an index, but within the array, there
is no ordering of the contents.

You figure out what index it should be located at by deriving some number
from the object, then translating that number onto the array holding the
items. Perhaps the array has ten indexes, and six items in it, then when it
is asked to look for the index containing some object, it figures out that
object's hash number, and translates it to an array index (probably mods it
by ten).

You can see these hash numbers by calling #hash on them here is an example:

x = "abc"
y = "abc"
z = "def"

x.object_id # => 75900
y.object_id # => 75890

x.hash # => 833038373
y.hash # => 833038373

z.hash # => 858800354

x.hash % 10 # => 3
y.hash % 10 # => 3
z.hash % 10 # => 4

Notice that x and y are both different objects (they have different object
IDs), but they contain the same information, two different strings of "abc"
and look at their hash values, they are the same. When String defines #hash,
it somehow looks at the character array underneath the string, and comes up
with a number (in this case, 833038373). This is why two different objects
with the same contents have the same hash value, and if we assume an array
of size ten, then we would expect the string "abc" to be in index number 3.
The string "def" has different contents, and thus a different hash value,
and it maps to a different index.

So by looking at a key, we determine which index the object will map to, and
go see if it is there (though there can be some complications when things
collide).


So, generally, if you are interested simply storing a bunch of items, or in
storing a bunch of items with an ordering, then an array makes sense. If you
are interested in mapping one object to another, then a hash makes sense.
(note that in 1.9, hashes have ordering also, but you still can't say "give
me the 8th item"). If you have ten strings and I just want to keep them
somewhere for later, use an array. If you have four database records, and
want to display them in order, use an array. If you want to pass a bunch of
fields from a form that was submitted, where the form input will be accessed
based on the name of the field, use an array.

These are not hard rules, you need to think about what you are doing, and
which data structure fits your needs. Also, depending on what you do, arrays
can ultimately be most other data structures, you saw underneath of it, a
hash table holds an array, it just defines different rules for how to access
elements. There are lots of examples like this, as thunk pointed out, using
the array methods push and pop will give you a stack (place an item into the
array, and remove it again, where the first one you put in is the last one
you get back out, think of a stack of plates, they put newly cleaned plates
on top of the stack, and you pull the plate you want from the top of the
stack). Using push and shift will give you a queue (same as a stack, except
the first one you put in will be the first one you get out, think of a line
of people waiting for food in a caffeteria). But what I said earlier should
probably give you a fairly good idea which of the two you should be
considering first.

On Wed, Feb 3, 2010 at 6:00 PM, thunk <gmkoller@gmail.com> wrote:

> I think that the Hash container (may I use that term?)


I think the common terms are "hash" or "hash table".

On Wed, Feb 3, 2010 at 9:44 PM, Marnen Laibow-Koser <marnen@marnen.org>wrote:

> BTW, camelCase is considered poor style in Ruby; use underscore_case
> instead.
>

I've always heard underscore_case called snake_case, Textmate, for example,
calls them: camelCase / snake_case / PascalCase
(you can toggle between the three with ^_ as defined in the "Source" bundle)

In This Thread