last day (202 days later) » 

6:00 PM
ND>eval 2+2
...
 
wut?
ND>eval 2+2
... it's dead
:(
 
Okay, FINALLY should be fixed
 
famous last words
;P
 
lol
ND>eval 1+1
oops
didn't mean to hit enter
 
Bot initialized. Type ND>help for help.
 
6:01 PM
ND>eval 1+1
 
ND>eval 1+1
 
Eval result: 2
 
ND>eval 2+2
 
 
6:02 PM
Now on to freezing your computer again
 
It never froze, bot.rb just took up 25% CPU (I have a 4-threaded system) :P
errr, quad-core? I've never been good with the fancy hardware terms
 
It used 100% out of 400% because you use a quad-core (probably 8 threaded?) system.
 
Bot initialized. Type ND>help for help.
 
ND>eval 1+1
 
ND>eval 1+1
 
6:06 PM
Eval result: Thread
 
LOL
 
... what???
ND>eval 2+2
 
...
 
uhmmmm
 
Bot killed manually
 
6:07 PM
Heh, those last messages were my bot mimicking.
 
Bot initialized. Type ND>help for help.
 
ND>eval 1+1
 
Eval result: 2
 
ND>eval 2+2
 
Eval result: 4
 
6:08 PM
yay!
 
...
 
:D :D :D
 
\o/
 
ND>eval Thread
 
Eval result: Error in eval: uninitialized constant Thread
 
6:08 PM
Ha! Try borking it now! :P
 
ND>eval Thread.list.size
ND>eval 1+1
 
ND>eval 1+1
 
Eval result: 2
 
Eval result: 2
 
... wat
 
6:09 PM
ND>eval Thread.list.size
 
Eval result: Error in eval: uninitialized constant Thread
 
... now it can't handle eval conflicts? :(
 
noooooooooo
 
Better than being borkable, I guess
@ProgramFOX >:D
 
D-:
 
6:09 PM
How do you access threads now?
ND>eval loop{}
 
ND>eval 1+1
 
Eval result: 2
 
Is it stuck in an infinite loop? Ha! :P
ND>eval 2*2
It's dead, @Doorknob冰
 
Bot killed manually
 
6:10 PM
fixing...
 
That was easier than expected
 
It was; I should have thought of that
 
Bot initialized. Type ND>help for help.
 
ND>eval 1+1
 
Eval result: 2
 
6:11 PM
ND>eval 2+2
 
Eval result: 4
 
ND>eval loop{}
 
ND>eval 3*3
 
ND>eval 1+1
 
Eval result: 2
 
6:12 PM
...
ND>eval 'borked?'
 
Bot killed manually
 
So that didn't work
 
Bot initialized. Type ND>help for help.
 
ND>eval 1+1
 
Eval result: 2
 
6:14 PM
ND>eval 2+2
 
Eval result: 4
 
ND>eval loop{}
 
ND>eval Thread
 
Eval result:
 
HA! :D
 
6:14 PM
Eval result: Error in eval: uninitialized constant Thread
 
(rate-limiting)
ND>eval [*?a..?z]
 
Eval result: ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"]
 
ND>eval loop{}
 
Eval result:
 
ND>eval 10*10
 
6:15 PM
Eval result: 100
 
The bot can use threads... so I can use threads too! Must. Find. Out. o_o
 
I suppose there shouldn't be any danger in sending the fixified code:
eval: ->a{
    code = a
    def safeEval code
        _Thread = Object::Thread
        _Thread.kill $mthread
        _Thread.new { sleep 3; _Thread.kill $mthread }
        $mthread = _Thread.new {
            tc = _Thread.current
            result = begin
                         Object.send :remove_const, :Thread
                         $SAFE = 4
                         eval code
                     rescue Exception => e
                         "Error in eval: #{e}"
                     end
Specifically:
Object.send :remove_const, :Thread
>:D
 
ND>eval _Thread
 
Eval result: Thread
 
6:16 PM
...
 
ND>eval _Thread.list.size
 
Eval result: 4
Bot killed manually
 
ND>eval loop{}
 
hahahahahahahaha!
 
WHY DOES THAT WORK THAT'S NOT SUPPOSED TO WORK
 
6:17 PM
>:D
 
okay, have to eat lunch. I'll be back in a few minutes so you can try borking it again. :P
 
My bot is posting a lot of crap here.
 
>>alive
 
@ProgramFOX Yes, I'm alive.
 
6:23 PM
lolwat
 
>>alive
 
@anorton Yes, I'm alive.
 
@Doorknob冰 It's... my bot :P
 
Okay, I'm back. I'm just going to go for a security-by-obscurity approach here: Rename the variable to something weird and not tell you! (until I can figure out something better) :P
 
:P
Good luck with that! >:D
 
6:24 PM
Hiya rene.
 
!!milk
 
~ I'm milking the cow ....
 
Sure there's a method to list the local variables...
 
!!milk
 
~ The cow kicked the bucket... try later
 
6:25 PM
@KennyBOT lol
 
Bot initialized. Type ND>help for help.
 
ND>eval 1+1
 
ND>eval 1+1
 
Eval result: 2
 
ND>eval 2+2
 
6:25 PM
Eval result: 4
 
ND>eval loop{}
 
ND>eval _Thread
 
Eval result:
 
those bots should learn each others commands
 
Eval result: Error in eval: undefined local variable or method `_Thread' for main:Object
 
6:25 PM
ND>eval local_variables
 
Eval result: [:tc, :result, :e, :code, :woeinfiuwg_Thread]
 
ahhhhh
lol
 
hahahahaha!
 
Bot killed manually
 
:-D
 
6:26 PM
@rene oooooooh
 
haha
 
You cannot hide for us!
 
Okay, so that wasn't the best approach...
 
Never rely on security through obscurity
Ruby is a self-documenting language.
 
> (until I can figure out something better) :P
Apparently it lasted... about 6 seconds
 
6:27 PM
We are fast
Now I'm curious what are the other variables
 
ND>eval d
oops
ND>eval tc
 
@anorton It's rebooting
 
oh.
 
Hmm... I'm curious about his next approach...
 
Scope shenanigans
 
6:30 PM
Bot initialized. Type ND>help for help.
 
ND>eval 1+1
 
Eval result: 2
 
He dropped everything and used jQuery
3
 
ND>eval local_variables
 
Eval result: [:tc, :result, :e, :code, :_Thread]
 
6:30 PM
ND>eval _Thread
 
Eval result: OMGWTFHAX
 
ND>eval global_variables
 
Eval result: [:$;, :$-F, :$@, :$!, :$SAFE, :$~, :$&, :$`, :$', :$+, :$=, :$KCODE, :$-K, :$,, :$/, :$-0, :$\, :$_, :$stdin, :$stdout, :$stderr, :$>, :$<, :$., :$FILENAME, :$-i, :$*, :$?, :$$, :$:, :$-I, :$LOAD_PATH, :$", :$LOADED_FEATURES, :$VERBOSE, :$-v, :$-w, :$-W, :$DEBUG, :$-d, :$0, :$PROGRAM_NAME, :$mthread, :$-p, :$-l, :$-a, :$fileutils_rb_have_lchmod, :$fileutils_rb_have_lchown, :$CGI_ENV, :$1, :$2, :$3, :$4, :$5, :$6, :$7, :$8, :$9]
 
ND>eval instance_variables
 
6:30 PM
Eval result: []
 
there we go
 
Everything is star-worthy...
 
ND>eval $stdout.print "test"
 
Eval result: Error in eval: Insecure operation `write' at level 4
 
Everything is star-worthy...
 
6:31 PM
ND>eval _Thread.list.size
 
Eval result: Error in eval: undefined method `list' for "OMGWTFHAX":String
 
was still worth trying
ND>eval OMGWTFHAX.list.size
 
Eval result: Error in eval: uninitialized constant OMGWTFHAX
 
ND>eval abort
 
6:32 PM
Eval result: Error in eval: Insecure operation `abort' at level 4
 
ND>eval Thread
 
Eval result: Error in eval: uninitialized constant Thread
 
ND>eval tc
 
Eval result: #<Thread:0x00000002737a10>
 
ND>eval tc.kill
 
6:33 PM
Eval result:
 
ND>eval tc.class.list.size
 
Eval result: 4
 
ND>eval tc.class.start { loop { tc.class.start { sleep(100000) } } }
 
Eval result: #<Thread:0x00000002b23ef8>
 
... uh oh
ahhh
 
6:34 PM
Bot killed manually
 
@JanDvorak ^
 
@ProgramFOX nice!
 
>:D
 
Okay, so I have tc = _Thread.current
So that I can return a thing from the thread
Apparently... uhh, well, yeah.
 
Unfixable?
 
6:35 PM
Further testing is required...
irb(main):007:0> t = Thread.new { r = Thread.current[:evalResult]; r = 10; }; t.join; t[:evalResult]
=> nil
okay, hmm, that doesn't work
Whoops, I just undef'd Thread in my IRB session. :P
irb(main):011:0> Thread
NameError: uninitialized constant Thread
	from (irb):11
	from /usr/bin/irb:12:in `<main>'
 
Cya Unihedro.
 
grr, the bot's taking a long time to reboot
 
You found a way to fix it?
 
... I think
 
6:42 PM
Bot initialized. Type ND>help for help.
 
ND>eval 1+1
 
Eval result: 2
 
ND>eval local_variables
 
Eval result: [:rtn, :result, :e, :code, :_Thread]
 
ND>eval _Thread
 
6:42 PM
Eval result: OMGWTFHAX
 
ND>eval rtn
 
Eval result: #<Method: Thread#[]=>
 
err...
 
ND>eval rtn()
 
Eval result: Error in eval: undefined method `rtn' for main:Object
 
6:42 PM
ND>eval rtn.class
 
Eval result: Method
 
hmm...
 
ND> eval rtn[]
 
Eval result: Error in eval: wrong number of arguments(0 for 2)
 
ND>eval rtn[1, 2]
 
6:43 PM
Eval result: Error in eval: 1 is not a symbol
 
ND>eval rtn[:a,:b]
 
Eval result: b
 
ND>eval loop{}
 
You call procs (lambdas, methods) with square brackets...
 
ND>eval 'alive?"
 
6:43 PM
oh, ok
@Doorknob冰 lol, seems not :P
 
... did the infinite loop really just break it again? -_-
 
Bot killed manually
 
@Doorknob冰 gg
 
Okay, should be fixed
(key word: should)
y u no reboot faster
 
Bot initialized. Type ND>help for help.
 
6:45 PM
ND>eval 1+1
 
Eval result: 2
 
ND>eval loop{}
ND>eval "alive?"
 
... wat
 
@Doorknob冰 ^
 
Bot killed manually
 
6:49 PM
!do test
ND>eval loop{}
ND>eval "alive?"
!do test
ND>eval loop{}
ND>eval "alive?"
 
lol
 
Now my bot is programmed to test when you tell it to !do test.
 
!do test
 
ND>eval loop{}
 
hm. nice.
 
6:51 PM
Hm… why didn't it do the second message?
 
because reasons
 
Oh, of course, the antiloop measure.
 
Bot initialized. Type ND>help for help.
 
ND>eval 1+1
 
Eval result: 2
 
6:51 PM
ND>eval loop{}
 
ND>eval "alive?"
 
Eval result:
Eval result: alive?
 
:D
fixed
 
ND>eval local_variables
 
Eval result: [:rtn, :result, :e, :code, :_Thread]
 
6:52 PM
ND>eval rtn.call(:a, :b).class
 
Eval result: Symbol
 
meh
ND>eval rtn
 
Eval result: #<Method: Thread#[]=>
 
ND>eval rtn.super_method
 
Eval result: Error in eval: undefined method `super_method' for #<Method: Thread#[]=>
 
6:53 PM
ND>eval rtn.call(:list, :list).inspect
 
Eval result: :list
 
argh
ND>eval rtn.unwrap
 
Eval result: Error in eval: undefined method `unwrap' for #<Method: Thread#[]=>
 
ND>eval rtn.unbind
 
Eval result: #<UnboundMethod: Thread#[]=>
 
6:53 PM
ND>eval rtn.source_location
 
Eval result:
 
ND>eval rtn.owner
 
Eval result: Thread
 
Bot killed manually
 
6:54 PM
lol
I doubt you'll ever find a completely secure method :P
 
I can try! :P
 
@JanDvorak New approach also borked! ;)
 
Bot initialized. Type ND>help for help.
 
y u no reboot faster
 
ND>eval 1+1
 
6:57 PM
oh lol
 
ND>eval 1+1
 
Eval result: 2
 
wat, it crashed
 
lol
 
Whoops, tried to call a proc like a method
 
6:58 PM
:P
 
Typo bug strikes again!
 
At least you don't have to debug your bot a month for a typo, as I had to do for a Firefox patch...
 
Bot initialized. Type ND>help for help.
 
6:59 PM
ND>eval 1+1
 
Okay, don'tcrashdon'tcrashdon'tcrash
 
Eval result: 2
 
ND>eval loop{}
 
Eval result:
 
woohoo!
 
6:59 PM
ND>eval local_variables
 
Eval result: [:rtn, :result, :e, :code, :_Thread]
 
Eval result: [:rtn, :result, :e, :code, :_Thread]
 
ND>eval rtn.owner
 
Eval result: Error in eval: undefined method `owner' for #<Proc:0x00000001337fd8@./se-chatty.rb:140 (lambda)>
 
ND>eval rtn
 
6:59 PM
Eval result: #<Proc:0x00000001390b88@./se-chatty.rb:140 (lambda)>
 
hmm...
 

  last day (202 days later) »