[#390749] Why are there so many similar/identical methods in core classes — Kassym Dorsel <k.dorsel@...>

Let's look at the Array class and start with method aliases.

14 messages 2011/12/02

[#390755] Inverse Operation of Module#include — Su Zhang <su.comp.lang.ruby@...>

Hi list,

21 messages 2011/12/02
[#390759] Re: Inverse Operation of Module#include — Ryan Davis <ryand-ruby@...> 2011/12/02

[#390764] Re: Inverse Operation of Module#include — Isaac Sanders <isaacbfsanders@...> 2011/12/02

I would suggest an Adapter pattern use here. IF there is something that has

[#390876] black magical hash element vivification — Chad Perrin <code@...>

Ruby (1.9.3p0 to be precise, installed with RVM) is not behaving as I

12 messages 2011/12/05

[#390918] WEB SURVEY about Ruby Community — Intransition <transfire@...>

Did any one else get this survey request?

14 messages 2011/12/07

[#390976] Confusing results from string multiplication — Rob Marshall <robmarshall@...>

Hi,

19 messages 2011/12/08

[#391019] How can I do h["foo"] += "bar" if h["foo"] does not exist? — "Andrew S." <andrewinfosec@...>

Hi there,

13 messages 2011/12/09

[#391027] reading from file without end-of-lines — Janko Muzykant <umrzykus@...>

hi,

20 messages 2011/12/09
[#391028] Re: reading from file without end-of-lines — Gavin Sinclair <gsinclair@...> 2011/12/09

> i'm trying to read a few text values from single file:

[#391031] Re: reading from file without end-of-lines — Robert Klemme <shortcutter@...> 2011/12/09

On Fri, Dec 9, 2011 at 9:58 AM, Gavin Sinclair <gsinclair@gmail.com> wrote:

[#391042] Re: reading from file without end-of-lines — Gavin Sinclair <gsinclair@...> 2011/12/09

On Fri, Dec 9, 2011 at 8:18 PM, Robert Klemme

[#391135] I need advice on what to do next. — Nathan Kossaeth <system_freak_2004@...>

I am new to programming. I read the ebook "Learn to Program" by Chris

23 messages 2011/12/12

[#391216] perf optimization using profile results — Chuck Remes <cremes.devlist@...>

I need some help with optimizing a set of libraries that I use. They are ffi-rzmq, zmqmachine and rzmq_brokers (all up on github).

13 messages 2011/12/13
[#391218] Re: perf optimization using profile results — Chuck Remes <cremes.devlist@...> 2011/12/13

On Dec 13, 2011, at 9:57 AM, Chuck Remes wrote:

[#391234] Re: perf optimization using profile results — Charles Oliver Nutter <headius@...> 2011/12/14

A couple quick observations.

[#391238] Re: perf optimization using profile results — Chuck Remes <cremes.devlist@...> 2011/12/14

On Dec 13, 2011, at 7:03 PM, Charles Oliver Nutter wrote:

[#391324] ruby 1.9 threading performance goes non-linear — Joel VanderWerf <joelvanderwerf@...>

12 messages 2011/12/16
[#391325] Re: ruby 1.9 threading performance goes non-linear — Eric Wong <normalperson@...> 2011/12/16

Joel VanderWerf <joelvanderwerf@gmail.com> wrote:

[#391420] Accessing class instance variables from an instance? — "Shareef J." <shareef@...>

Hi there,

26 messages 2011/12/20
[#391454] Re: Accessing class instance variables from an instance? — Khat Harr <myphatproxy@...> 2011/12/21

Actually, now that I'm thinking about it the existing behavior sort of

[#391456] Re: Accessing class instance variables from an instance? — Josh Cheek <josh.cheek@...> 2011/12/21

On Tue, Dec 20, 2011 at 9:42 PM, Khat Harr <myphatproxy@hotmail.com> wrote:

[#391545] Kernel#exit raises an exception? — Khat Harr <myphatproxy@...>

While I was working on embedding an interpreter I wrote a function to

13 messages 2011/12/24

[#391618] rvmsh: An easy installer for RVM — Bryan Dunsmore <dunsmoreb@...>

I have recently begun work on a project called [rvmsh]

12 messages 2011/12/29

[#391783] Mailspam — Gunther Diemant <g.diemant@...>

Is there a way to stop this mailspam of Luca (Mail)?

12 messages 2011/12/29

[#391790] What’s the standard way of implementing #hash for value objects in Ruby? — Nikolai Weibull <now@...>

Hi!

23 messages 2011/12/29
[#391792] Re: What’s the standard way of implementing #hash for value objects in Ruby? — Gunther Diemant <g.diemant@...> 2011/12/29

I think you can't access instance variables from a class method, so

[#391793] Re: What’s the standard way of implementing #hash for value objects in Ruby? — Nikolai Weibull <now@...> 2011/12/29

On Thu, Dec 29, 2011 at 15:52, Gunther Diemant <g.diemant@gmx.net> wrote:

[#391811] Re: What’s the standard way of implementing #hash for value objects in Ruby? — Robert Klemme <shortcutter@...> 2011/12/29

On Thu, Dec 29, 2011 at 4:06 PM, Nikolai Weibull <now@bitwi.se> wrote:

[#391812] Re: What’s the standard way of implementing #hash for value objects in Ruby? — Nikolai Weibull <now@...> 2011/12/29

On Fri, Dec 30, 2011 at 00:26, Robert Klemme <shortcutter@googlemail.com> w=

[#391816] Re: What’s the standard way of implementing #hash for value objects in Ruby? — Josh Cheek <josh.cheek@...> 2011/12/30

On Thu, Dec 29, 2011 at 5:47 PM, Nikolai Weibull <now@bitwi.se> wrote:

[#391833] Re: What’s the standard way of implementing #hash for value objects in Ruby? — Robert Klemme <shortcutter@...> 2011/12/30

On Fri, Dec 30, 2011 at 12:47 AM, Nikolai Weibull <now@bitwi.se> wrote:

Re: Fixing Net::TFTP

From: Sam Duncan <sduncan@...>
Date: 2011-12-13 05:27:17 UTC
List: ruby-talk #391194
On 13/12/11 17:05, Reid Wightman wrote:
> Hi all -
>
> I'm extremely new to Ruby programming.  Forgive me.
>
> I'm trying to develop an updated Net::TFTP library.  The existing
> library doesn't seem to work correctly with the few embedded devices
> that I've tried it with.  It's quite old and uses Timeout::timeout()
> while waiting on IO, and this never, ever seems to work (timeout
> exception is always thrown, whether I am writing or reading).
>
> I've been rewriting the library to use IO.select() in place of all of
> the old Timeout::timeout() statements.  I'm finding that its behavior is
> really weird, though.
>
> Here is my snippet of modified Net::TFTP.putbinaryfile:
>
>      def putbinary(remotefile, io,&block) # :yields: data, seq
>        s = UDPSocket.new
>        peer_ip = IPSocket.getaddress(@host)
>        puts "putting binary file to ", peer_ip
>        peer_tid = nil
>        seq = 0
>        from = nil
>        data = nil
>        while TRUE do
>          s.send(wrq_packet(remotefile, "octet"), 0, peer_ip, @port)
>          puts "(Re-)Sent fwrite request, waiting for response"
>          a = IO.select([s], nil, nil, 1)
>          if a
>            puts "."
>            packet, from = s.recvfrom(2048,0)
>            puts "."
>            puts "received packet " , packet, " from ", from
>            next unless peer_ip == from[3]
>            type, block, data = scan_packet(packet)
>            break if (type == OP_ERROR) || (type == OP_OPACK) || ((type ==
> OP_ACK)&&  (block == seq))
>          end
>        end
>
> My output is:
> <I see the write request packet go out via wireshark>
> <0.04 seconds later, I see an ACK from the tftp server>
> Sent fwrite request, waiting for response
> .
> <The program then pauses for 5 seconds>
> .
> received packet....yadda yadda yadda
>
> The same delay occurs when I actually send packets of the file (and if
> the file is big, the 5-second delays between blocks is horrifyingly
> slow).
>
> It seems that recvfrom() still blocks, even though IO.select should not
> return a non-nil response unless there is data to be read on the socket?
> Setting different maximum sizes to recvfrom() doesn't change the
> behavior.
>
> I wrote a separate program doing the exact same thing with IO.select()
> followed by recvfrom().  It then s.send()'s the data back to the client,
> basically making a UDP echo service.  Connecting to that with netcat
> yields exactly what I'd expect: the data is echo'd back to netcat
> immediately, not after a several-second delay.
>
> If it's any help, I'm running Ruby 1.8.7...
>
> I'd appreciate any help that folks can provide, even if it's just a
> pointer to some other documentation that I should read.  From what I've
> read, IO.select() should do what I want, though?
>
> Thanks,
> Reid
>
What happens if you set non-blocking on the socket and try to catch an 
exception on the recv?

require 'fcntl'
...

s = UDPSocket.new

s.fcntl(Fcntl::F_SETFL, s.fcntl(Fcntl::F_GETFL) | Fcntl::O_NONBLOCK)
...
begin

   packet, from = s.recvfrom(2048,0)

rescue StandardError => e
   puts "Waarg: #{e}"
   next
end
...


Sam



In This Thread