[#374683] A algorithm for finding the number — zuerrong <zuerrong@...>

Hi members,

11 messages 2010/12/01

[#374721] FasterCSV parsing issues — Jeremy Woertink <jeremywoertink@...>

I'm using FasterCSV to do an import into my DB, and the CSV file

14 messages 2010/12/01

[#374765] Singleton class, metaclass, eigenclass: what do they mean? — Tony Arcieri <tony.arcieri@...>

Every time I think I have my head around what these terms mean I seem to run

29 messages 2010/12/02
[#374783] Re: Singleton class, metaclass, eigenclass: what do they mean? — Intransition <transfire@...> 2010/12/02

[#374787] Re: Singleton class, metaclass, eigenclass: what do they mean? — Gary Wright <gwtmp01@...> 2010/12/02

[#374803] Re: Singleton class, metaclass, eigenclass: what do they mean? — Intransition <transfire@...> 2010/12/02

[#374825] Re: Singleton class, metaclass, eigenclass: what do they mean? — Tony Arcieri <tony.arcieri@...> 2010/12/02

On Thu, Dec 2, 2010 at 11:50 AM, Intransition <transfire@gmail.com> wrote:

[#374830] Re: Singleton class, metaclass, eigenclass: what do they mean? — Intransition <transfire@...> 2010/12/02

[#374832] Re: Singleton class, metaclass, eigenclass: what do they mean? — Tony Arcieri <tony.arcieri@...> 2010/12/02

On Thu, Dec 2, 2010 at 4:18 PM, Intransition <transfire@gmail.com> wrote:

[#374834] Re: Singleton class, metaclass, eigenclass: what do they mean? — Gary Wright <gwtmp01@...> 2010/12/02

[#374835] Re: Singleton class, metaclass, eigenclass: what do they mean? — Tony Arcieri <tony.arcieri@...> 2010/12/02

On Thu, Dec 2, 2010 at 4:55 PM, Gary Wright <gwtmp01@mac.com> wrote:

[#374844] Re: Singleton class, metaclass, eigenclass: what do they mean? — Gary Wright <gwtmp01@...> 2010/12/03

[#374850] Re: Singleton class, metaclass, eigenclass: what do they mean? — Peter Vandenabeele <peter@...> 2010/12/03

On Fri, Dec 3, 2010 at 5:05 AM, Gary Wright <gwtmp01@mac.com> wrote:

[#374903] Re: Singleton class, metaclass, eigenclass: what do they mean? — Tony Arcieri <tony.arcieri@...> 2010/12/04

On Fri, Dec 3, 2010 at 1:17 AM, Peter Vandenabeele

[#374924] Re: Singleton class, metaclass, eigenclass: what do they mean? — Peter Vandenabeele <peter@...> 2010/12/04

On Sat, Dec 4, 2010 at 4:37 AM, Tony Arcieri <tony.arcieri@medioh.com> wrote:

[#374954] Re: Singleton class, metaclass, eigenclass: what do they mean? — Rick DeNatale <rick.denatale@...> 2010/12/05

On Sat, Dec 4, 2010 at 2:56 PM, Peter Vandenabeele

[#374786] Screen scraping an aspx site with Mechanize — Sofie Willander <sofiewil@...>

Hi,

11 messages 2010/12/02

[#374875] cast object to object — "David E." <davidreynon@...>

So I have an object of class (user defined) Dave() and Dave2()

13 messages 2010/12/03

[#374960] Q: what database would you suggest? — Diego Virasoro <diego.virasoro@...>

Hi,

18 messages 2010/12/05

[#375002] Traverse YAML node tree with non-unique values — "Martin C." <mydoghasworms@...>

I have a YAML document which I believe is valid (at least it would be

11 messages 2010/12/06

[#375018] Manual Memory Management and Automatic Garbage Collection — Tridib Bandopadhyay <tridib04@...>

Hello all

27 messages 2010/12/06

[#375118] HTTP POST request --> Ruby server — Chananya Freiman <thebluedragont@...>

I am making a tiny web server, and I am having problems with HTTP POST

17 messages 2010/12/07

[#375149] ruby book — abe <abedar2000@...>

i am looking for a good ruby book for a developer who has a c

14 messages 2010/12/08

[#375170] Consume Soap Service with Basic Authentication — Chris Gunnels <rfsllc@...>

I have been searching and trying different gems to get this to work, but

10 messages 2010/12/08

[#375192] Splitting on capital letters — Ralph Shnelvar <ralphs@...32.com>

Assume I have camelized string like

13 messages 2010/12/08

[#375213] Making a Website with Ruby (not rails?) — Jesse Jurman <e.j.jurman@...>

I have been programming in Ruby for a while and have made several

12 messages 2010/12/09

[#375270] Help with net/http — Atomic Bomb <atomicmcbomb@...>

I am trying to screen scrape a webpage and pull out the name, address,

19 messages 2010/12/09
[#375273] Re: Help with net/http — Alex Stahl <astahl@...5.com> 2010/12/09

Nokogiri provides a great interface for accessing the data trapped

[#375285] Re: Help with net/http — "A. Mcbomb" <atomicmcbomb@...> 2010/12/10

Thanks Alex.

[#375289] Re: Help with net/http — Jes俍 Gabriel y Gal疣 <jgabrielygalan@...> 2010/12/10

On Fri, Dec 10, 2010 at 6:28 AM, A. Mcbomb <atomicmcbomb@gmail.com> wrote:

[#375291] Re: Help with net/http — "A. Mcbomb" <atomicmcbomb@...> 2010/12/10

I didn't realized that, Jesus but it didn't help in my installation.

[#375292] Re: Help with net/http — Jes俍 Gabriel y Gal疣 <jgabrielygalan@...> 2010/12/10

On Fri, Dec 10, 2010 at 10:48 AM, A. Mcbomb <atomicmcbomb@gmail.com> wrote:

[#375293] Re: Help with net/http — "A. Mcbomb" <atomicmcbomb@...> 2010/12/10

That definately helped, Jesus....thanks.

[#375295] Re: Help with net/http — Jes俍 Gabriel y Gal疣 <jgabrielygalan@...> 2010/12/10

On Fri, Dec 10, 2010 at 11:39 AM, A. Mcbomb <atomicmcbomb@gmail.com> wrote:

[#375298] Re: Help with net/http — "A. Mcbomb" <atomicmcbomb@...> 2010/12/10

Here's what my server is running:

[#375424] Instiki failing to run - msvcrt-ruby18.dll not found — John Smth <blip@...>

Hi

16 messages 2010/12/14

[#375442] do your bit for my mental health - how to find the difference between two strings? — Iain Barnett <iainspeed@...>

Hi,

22 messages 2010/12/14

[#375537] Ruby and science ? — Michel Demazure <michel@...>

I am really puzzled.

56 messages 2010/12/16
[#375557] Re: Ruby and science ? — Tony Arcieri <tony.arcieri@...> 2010/12/16

On Thu, Dec 16, 2010 at 3:19 AM, Michel Demazure <michel@demazure.com>wrote:

[#375560] Re: Ruby and science ? — Michel Demazure <michel@...> 2010/12/16

Tony Arcieri wrote in post #968904:

[#375567] Re: Ruby and science ? — Colin Bartlett <colinb2r@...> 2010/12/16

On Thu, Dec 16, 2010 at 6:36 PM, Michel Demazure <michel@demazure.com>wrote:

[#375664] Re: Ruby and science ? — Charles Oliver Nutter <headius@...> 2010/12/18

On Thu, Dec 16, 2010 at 5:15 PM, Colin Bartlett <colinb2r@googlemail.com> wrote:

[#375675] Re: Ruby and science ? — "ara.t.howard" <ara.t.howard@...> 2010/12/18

[#375681] Re: Ruby and science ? — Charles Oliver Nutter <headius@...> 2010/12/19

On Sat, Dec 18, 2010 at 1:00 PM, ara.t.howard <ara.t.howard@gmail.com> wrote:

[#375687] Re: Ruby and science ? — James Edward Gray II <james@...> 2010/12/19

On Dec 18, 2010, at 6:24 PM, Charles Oliver Nutter wrote:

[#375538] Re: Ruby and science ? — Phillip Gawlowski <cmdjackryan@...> 2010/12/16

On Thu, Dec 16, 2010 at 11:19 AM, Michel Demazure <michel@demazure.com> wrote:

[#375569] Re: Ruby and science ? — Ryan Davis <ryand-ruby@...> 2010/12/16

[#375581] Re: Ruby and science ? — Michel Demazure <michel@...> 2010/12/17

Ryan Davis wrote in post #968969:

[#375582] Re: Ruby and science ? — Phillip Gawlowski <cmdjackryan@...> 2010/12/17

On Friday, December 17, 2010, Michel Demazure <michel@demazure.com> wrote:

[#375584] Re: Ruby and science ? — Michel Demazure <michel@...> 2010/12/17

Phillip Gawlowski wrote in post #969006:

[#375590] Is programming art? — Yu-Hsuan Lai <raincolee@...>

(I'm a high school student confused by this concept)

23 messages 2010/12/17

[#375706] Regexp, String, Symbol literals' object_ids — "Pavel R." <pavel.rosputko@...>

Regexp literals:

14 messages 2010/12/19

[#375725] downloading a file — Rajinder Yadav <devguy.ca@...>

hello what is the best way to download a file?

12 messages 2010/12/20

[#375787] how to know a search result is successfully displayed through its source codes — Fan Jin <jeff_yq@...>

I am working on a project where need to search a keyword by using simple

9 messages 2010/12/21
[#375805] Re: how to know a search result is successfully displayed through its source codes — Jeremy Bopp <jeremy@...> 2010/12/21

On 12/21/2010 01:24 AM, Fan Jin wrote:

[#375839] gem install ruby-debug-ide errors don't give me anything to look for. — Kedar Mhaswade <kedar.mhaswade@...>

Hope I am not missing something obvious. I have searched high and low.

11 messages 2010/12/22

[#375908] What is the the best style and theory of writing a complier in your language — small Pox <smallpox911@...>

What is the the best style and theory of writing a complier in your

8 messages 2010/12/23

[#375921] Numeric comparison with nil - Math masochists only!! — serialhex <serialhex@...>

Alright, i'm trying to do three things at once, and I'm almost succeeding.

17 messages 2010/12/24
[#375950] Re: Numeric comparison with nil - Math masochists only!! — Colin Bartlett <colinb2r@...> 2010/12/24

On Fri, Dec 24, 2010 at 3:45 AM, serialhex <serialhex@gmail.com> wrote:

[#375955] Re: Numeric comparison with nil - Math masochists only!! — serialhex <serialhex@...> 2010/12/25

Colin, your amazing insight has led me to programming greatness!!!

[#376011] Re: Numeric comparison with nil - Math masochists only!! — Robert Klemme <shortcutter@...> 2010/12/27

On Sat, Dec 25, 2010 at 2:34 AM, serialhex <serialhex@gmail.com> wrote:

[#376053] Re: Numeric comparison with nil - Math masochists only!! — serialhex <serialhex@...> 2010/12/28

hey robert, thanks for the great article, i'll keep that stuff in mind as

[#376057] Re: Numeric comparison with nil - Math masochists only!! — Everett L Williams II <rett@...> 2010/12/28

serialhex wrote:

[#376063] Re: Numeric comparison with nil - Math masochists only!! — serialhex <serialhex@...> 2010/12/28

>

[#376060] From python to ruby — AM <al.ma@...>

Hello

18 messages 2010/12/28

[#376066] Should I learn Ruby? — Din Ibbles <d.sp@...>

I am wondering whether to learn Ruby, as I would like to get a job after

21 messages 2010/12/28

[#376075] convert String "1;2;3;4;5;" to Array [1, 2, 3, 4, 5] — "Thomas T." <tthackery@...>

I'm trying to convert a String of numbers that are separated by

10 messages 2010/12/28

[#376153] Parsing the Ruby File — "Thillai S." <thillaiselvan@...>

Hai any one pls guide me...

15 messages 2010/12/30

Re: Regexp, String, Symbol literals' object_ids

From: Brian Candler <b.candler@...>
Date: 2010-12-20 11:34:21 UTC
List: ruby-talk #375747
Andrea Dallera wrote in post #969438:
> Ruby has both mutable and immutable strings. A mutable string is
> declared as "string". An immutable string is declared as :string and in
> ruby is called a 'symbol'. So, no, there is no way for "string" to
> behave as :string, since that's by design.

This is a very misleading description, so I'll bite.

Strings and Symbols are two completely different things in Ruby. In Ruby 
1.9, Symbols have gained some more string-like behaviour(*), but they're 
still fundamentally different.

Symbols are objects intended for labelling things (e.g. method names, 
hash keys). The main property of Symbols is that there only ever exists 
one Symbol object which represents the same label, i.e. the same 
sequence of characters.(**)

So when your program loads, and it uses the symbol :foo, which hasn't 
been used before, then a new symbol called :foo is created in the symbol 
table. But every other future use of :foo always returns the same 
object.

This makes symbols very cheap to test for equality, because:

* Two symbols are the same iff they have the same object_id
* Two symbols are different iff they have different object_id

So testing equality between :a_very_long_symbol_like_this and 
:another_very_long_symbol is only comparing their object_ids, basically 
two integers.

The property that any future :foo must return the same object_id means 
that the Symbol table is never garbage-collected. A Symbol is for life, 
not just for Christmas.

Strings are collections of bytes/characters. They can be mutated. There 
can be many String objects in the system which contain the same sequence 
of bytes/characters. Therefore, comparing two Strings always has to be 
done byte-by-byte.(***)

In general, what you want is a String. If you're reading data from a 
user (e.g. on STDIN or a web-page POST) then it comes in as a String. 
You can convert a String into a Symbol represented by the same set of 
characters:

   a = "foo"
   b = a.intern    # b = :foo

but this can be a dangerous thing to do if the string you are converting 
came from an untrusted source, because it can lead to a simple 
denial-of-service attack as the user floods your symbol table with 
garbage.

So to summarise, Symbols are used as method names:

  a = 1
  b = a.send(:+, 2)  # b = a + 2

and are often used as hash keys, because the lookup operations are 
cheaper.

  def doit(params)
    puts params[:foo]
    puts params[:bar]
  end

  doit(:foo=>123, :bar=>456)

If coming from a language like C, think of symbols more as enums rather 
than strings, where the programmer is using an easy-to-read label like 
:foo, but the underlying value is actually a number.

HTH,

Brian.


(*) Example from ruby 1.8:
>> :foo.size
NoMethodError: undefined method `size' for :foo:Symbol
  from (irb):2
  from :0

But:

1.9.2-p0 > :foo.size
 => 3

(**) Everything you say about Strings or Symbols in 1.9 has to be 
qualified, because it's such a complex area. Suffice to say, in 1.9 it's 
possible to have two distinct Symbols which are labelled by the same 
series of bytes but with different encodings.

Things are far simpler in ruby 1.8, where bytes are real bytes, and 
small furry creatures from Alpha Centuri are real small furry creates 
from Alpha Centuri.

(***) There are in fact some optimisations whereby two distinct string 
objects can share the same underlying data buffer, with copy-on-write. 
But in general comparing strings needs to compare the buffers.

And even though ruby 1.9 has strings of characters, the comparisons 
*are* done byte-by-byte, not character by character.

-- 
Posted via http://www.ruby-forum.com/.

In This Thread