[#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: Generating all possible combinations of a 5 digit pattern.

From: Robert Klemme <shortcutter@...>
Date: 2010-02-13 22:43:21 UTC
List: ruby-talk #357270
On 02/13/2010 09:09 PM, Seebs wrote:
> On 2010-02-13, Zach Bartels <no@spam.com> wrote:
>> that is very interesting and I hadn't even considered using bits. Know
>> any good links where I could read more about bits / using bit
>> operations ?
> 
> I learned it before "links" existed, so I don't know.
> 
>> I think what I don't understand the most, is the 2nd line 
> 
>> (val & (2 << pos)) ? 'N' : 'C
> 
> Okay.
> 
>>  (inbetween the  DEF and END)   Where is it defining the maximum
>> number of letters to use in the generated combination, for example? Or
>> perhaps the example didn't really cover all that and I'm mistaken.
> 
> This part doesn't cover that.
> 
>>> 	letter(16, 0) => 'C'
>>> 	letter(16, 1) => 'C'
>>> 	letter(16, 2) => 'C'
>>> 	letter(16, 3) => 'C'
>>> 	letter(16, 4) => 'N'
> 
> This is where you decide how many letters to use -- if you wanted to use six
> letters, you'd just add letter(x, 5).
> 
> Now, onto the core bit:
> (which, by the way, has an OBVIOUS flaw in it.  I missed it 'cuz I'm a C
> programmer.  And also a stupid typo)
> 
> 	(val & (2 << pos)) ? 'N' : 'C
> 
> You probably know about || (or) and && (and).  "a || b" is true if either a
> is true or b is true.  "a && b" is true if both a is true and b is true.
> 
> Now, imagine that you were to view a number as bits.  The first bit has the
> value 1, the second 2, the third 4, the fourth 8, and so on.  A number is the
> sum of the bits that are set in it; 16 is 0b1000, 15 is 0b0111, and so on.
> 
> There are a few handy operations to perform on bits.  Four common logical
> operations are used on bits.  One is complement, written ~ in C.  (I don't
> even know off the top of my head whether Ruby has a complement operator, but
> I include it for completeness).  Complement is also called "bitwise not",
> because just as "!true == false" and "!false == true", ~0 = 1 and ~1 = 0.
> 
> So if you had a four bit number x, and it were 16 (0b1000), ~x would be
> 0b0111, or 15.  (Actually, in many cases, the top bit has special meaning.
> I'm ignoring that for now.)
> 
> The way bitwise operations are performed is by performing them separately
> on each bit, but & and | are just like && and || otherwise.  1 & 1 is 1,
> 1 & 0, 0 & 1, and 0 & 0 are all 0.  Similarly, 1&anything is 1, 0&0 is 0.
> 
> So.
> 
> Let's say you want to find out whether a number has the fourth bit set in it.
> You can use "x & 16".  Since 16 is 0b1000, every bit other than the 16s bit
> in the result is DEFINITELY zero.  The 16s bit will be 1 if x had the 16s
> bit set, and otherwise 0, so your result will be either 16 (if x had the
> 16s bit set) or 0 (if x didn't have it set), *no matter what other bits were
> set*.
> 
> Now, in C, you could just use "x & 16" as a conditional, because 0 is false
> in C.  But in Ruby, it's not, so I should have written
> 
> 	((val & (2 << pos)) != 0) ? ...
> 
> Now, you might be wondering about <<.  <<, called "left shift", means "shift
> all the bits left some number of times".  0b0100 << 1 => 0b1000.  0b0001 << 2
> = 0b0100.  There's a corresponding right shift, which moves them the other
> way.
> 
> That means that 1 << x is the same as "the xth bit".  By contrast, "2 << x"
> is a stupid typo.  :)
> 
> So if you write
> 	val & (1 << pos)
> you get a non-zero value if val has the pos'th bit set, and otherwise zero.
> And that means that
> 	(val & (1 << pos)) != 0
> is true if val has the pos'th bit set, and otherwise false.
> And that means that
> 	((val & (1 << pos)) != 0) ? 'N' : 'C'
> is 'N' if val has the pos'th bit set, and otherwise 'C'.

I'm sorry, but this is overly complicated.  If I want to know whether 
the fourth bit is set I would use Fixnum#[]:

irb(main):002:0> 20.times {|i| printf "%3d %06b %d\n", i, i, i[4]}
   0 000000 0
   1 000001 0
   2 000010 0
   3 000011 0
   4 000100 0
   5 000101 0
   6 000110 0
   7 000111 0
   8 001000 0
   9 001001 0
  10 001010 0
  11 001011 0
  12 001100 0
  13 001101 0
  14 001110 0
  15 001111 0
  16 010000 1
  17 010001 1
  18 010010 1
  19 010011 1
=> 20
irb(main):003:0>

There is also Bignum#[] with identical semantics, so you don't need to 
worry that exceeding Fixnum's range creates problems:

irb(main):007:0> (1 << 40).class
=> Bignum
irb(main):008:0> (1 << 40)[0]
=> 0
irb(main):009:0> (1 << 40)[40]
=> 1
irb(main):010:0> (1 << 40)[41]
=> 0
irb(main):011:0>

If there are more than two alternatives things get more complicated.  We 
can use something like this to get the index value for each position 
(example assumes 3 different values):

irb(main):014:0> 20.times {|i| a=i;x=[]
irb(main):015:1> until a == 0
irb(main):016:2> a, b = a.divmod 3; x.unshift b
irb(main):017:2> end
irb(main):018:1> printf "%3d %p\n", i,x}
   0 []
   1 [1]
   2 [2]
   3 [1, 0]
   4 [1, 1]
   5 [1, 2]
   6 [2, 0]
   7 [2, 1]
   8 [2, 2]
   9 [1, 0, 0]
  10 [1, 0, 1]
  11 [1, 0, 2]
  12 [1, 1, 0]
  13 [1, 1, 1]
  14 [1, 1, 2]
  15 [1, 2, 0]
  16 [1, 2, 1]
  17 [1, 2, 2]
  18 [2, 0, 0]
  19 [2, 0, 1]
=> 20
irb(main):019:0>

Now combine that with storage of the values:

irb(main):019:0> val=%w{C N x}
=> ["C", "N", "x"]
irb(main):020:0> 20.times {|i| a=i;x=[]; until a==0;a,b=a.divmod 
3;x.unshift val[b]; end;printf "%3d %p\n", i,x.join}
   0 ""
   1 "N"
   2 "x"
   3 "NC"
   4 "NN"
   5 "Nx"
   6 "xC"
   7 "xN"
   8 "xx"
   9 "NCC"
  10 "NCN"
  11 "NCx"
  12 "NNC"
  13 "NNN"
  14 "NNx"
  15 "NxC"
  16 "NxN"
  17 "Nxx"
  18 "xCC"
  19 "xCN"
=> 20
irb(main):021:0>

A bit of adjusting needs to be done of course in order to fill leading 
"zeros".

Kind regards

	robert


-- 
remember.guy do |as, often| as.you_can - without end
http://blog.rubybestpractices.com/

In This Thread