Time |
S |
Nick |
Message |
00:14 |
|
aditsu |
pdurbin: the clip doesn't say anything about supercomputing or parallelization, it just presents it as a $99 raspberry pi that runs ubuntu |
00:15 |
|
aditsu |
(the first clip) |
00:24 |
|
aditsu |
hmm 64 cores sound interesting though |
00:31 |
|
aditsu |
lol "The answer is 42 !!!" |
00:33 |
|
pdurbin |
oh, I didn't watch the clip |
00:55 |
|
aditsu |
the other clips are different though |
00:55 |
|
aditsu |
well, anyway, looking forward to general availability :) |
01:58 |
|
pdurbin |
:) |
02:03 |
|
codex |
any ruby people still here? :) |
02:04 |
|
pdurbin |
agoddard: you're a ruby person |
02:05 |
|
codex |
does ruby not have a scope? |
02:06 |
|
codex |
translation: is everything in the same scope? |
02:07 |
|
pdurbin |
I sure hope ruby has scope :) |
02:08 |
|
codex |
pdurbin: http://pastebin.com/k7biLGvb |
02:09 |
|
codex |
solving this: http://programmingpraxis.com -- MindCipher - #2 (1978) |
02:10 |
|
codex |
figured it's a good way to learn ruby |
02:10 |
|
codex |
:) |
02:11 |
|
codex |
there is something quite elegant about it |
02:14 |
|
pdurbin |
elegant about ruby? |
02:14 |
|
codex |
yea |
02:14 |
|
codex |
it feels minimalistic which is nice |
02:14 |
|
codex |
and it seems to combine everything i like about perl and python |
02:14 |
|
pdurbin |
I hear that a lot |
02:16 |
|
codex |
http://pastebin.com/5i6JJr6f |
02:16 |
|
codex |
^ here's a cleaned up version. so the 'r' array seems to have the last # that many times |
02:16 |
|
codex |
and i don't know why |
02:30 |
|
pdurbin |
don't know why all the 9999's at the end? |
02:34 |
|
agoddard |
heyooo! |
02:35 |
|
codex |
agoddard: great timing! |
02:35 |
|
codex |
pdurbin: exactly |
02:35 |
|
agoddard |
before the end of the while block, throw a puts "r is now #{r}" and it'll give you a hint about what's join on |
02:35 |
|
codex |
it's definitely a scope issue |
02:35 |
|
agoddard |
s/join/goin |
02:35 |
|
codex |
agoddard: i did, so noticing that it looks like a local var |
02:35 |
|
codex |
but it's putting it that many times |
02:35 |
|
codex |
(based on the loop) |
02:35 |
|
codex |
so guessing local to IF |
02:37 |
|
codex |
oh, scope is shared from if to local |
02:37 |
|
codex |
well that's annoying |
02:38 |
|
agoddard |
yep |
02:38 |
|
codex |
it looks like if blocks do not introduce a scope? |
02:38 |
|
codex |
is this new? I could've sworn in older versions of ruby they did |
02:39 |
|
agoddard |
I think it is, post 1.9 |
02:39 |
|
codex |
so how do you get around it? :) |
02:41 |
|
agoddard |
brb phone :( |
02:41 |
|
agoddard |
actually.. "FactTime" 0_o |
02:42 |
|
agoddard |
s/Fact/Face |
02:49 |
|
pdurbin |
I'm definitely surprised by the "r is now #{r}" output just before the end of the while block |
03:01 |
|
codex |
i can't believe this either. I am reading up on it and the two "excuses" are migrating to 2.0 and being able to use stuff declared in local if blocks |
03:01 |
|
codex |
if you want to use it, don't declare it in an if block |
03:01 |
|
codex |
but i guess this goes against the whole "don't use global vars" ruby mentality |
03:02 |
|
agoddard |
back |
03:04 |
|
agoddard |
that code is the same in ruby 2 |
03:04 |
|
agoddard |
lmao, just do this ;) r.push("#{year}") |
03:08 |
|
pdurbin |
agoddard: that works but it's weird |
03:09 |
|
pdurbin |
I get that "#{year}" is a string |
03:09 |
|
pdurbin |
dunno what r.push(year) is doing |
03:13 |
|
agoddard |
the bit that's confusing me is that year is a string anyway |
03:21 |
|
agoddard |
pretty sure the internet just stopped working #massiveThunderStorm |
03:25 |
|
pdurbin |
heh |
03:35 |
|
codex |
neighbor has a ham radio antenna like 50ft above his house |
03:35 |
|
codex |
it was insane when a lightning bolt hit it |
03:35 |
|
codex |
everything in our house shook and we are 2-3 houses away |
03:36 |
|
codex |
agoddard: so explain why i need to do #{year} |
03:36 |
|
codex |
pdurbin: it's a string so i can slice it |
03:37 |
|
codex |
it made more sense since the "math" operation is only done after the pieces have been assembled |
03:45 |
|
agoddard |
w00t it's back! |
03:46 |
|
codex |
heh |
03:47 |
|
codex |
so yea, is it that i am passing a reference by default? |
03:47 |
|
codex |
and as the variable increases -- my passed ref. increases? |
03:47 |
|
agoddard |
codex: the #{year} thing puzzles me, I assume it's 'cause another method, like next! isn't affecting it, but I don't know why, when they're both strings |
03:48 |
|
agoddard |
right, when year increases, so does the thing you're putting in the array |
03:50 |
|
codex |
i found sometging that might explain it |
03:50 |
|
codex |
i think my assumption is correct |
03:50 |
|
codex |
http://www.tutorialspoint.com/ruby/ruby_variables.htm |
03:50 |
|
codex |
"You can substitute the value of any Ruby expression into a string using the sequence #{ expr }. Here expr could be any ruby expression." |
03:50 |
|
codex |
it looks like #{ ... } puts the VALUE |
03:50 |
|
codex |
so the other one must pass the object, and because it's not a local scope, the definition of that object in the IF block is later modified by the incrementor |
03:52 |
|
agoddard |
nice, that makes sense |
03:52 |
|
codex |
then again, 'year = year.next' makes it work the other way...so something is happening there |
03:52 |
|
codex |
very weird |
03:52 |
|
agoddard |
oh, then that means this would work ;) r.push("#{year}".to_i) |
03:53 |
|
agoddard |
then, so would year.to_i |
03:57 |
|
codex |
I am actually looking at shortening it now -- was able to cut it down by 30%...ruby is a sick language |
04:00 |
|
agoddard |
sick as in sick or sick as in siq? :/ |
04:01 |
|
agoddard |
sick == siq ? sick : sick |
04:01 |
|
agoddard |
alright I gotta bounce, little grizzly baby doesn't want to sleep |
04:02 |
|
agoddard |
thanks for the fun, I learned something new! I should hang out in sourcefu more :D |
04:12 |
|
codex |
agoddard: sick as in i turned that 1-page code into this: http://pastebin.com/AVbnUZUG |
04:12 |
|
codex |
pdurbin: ^ |
04:15 |
|
codex |
or to be even fancier: |
04:15 |
|
codex |
r = []; 1978.upto(9999) { |y| y=y.to_s; (("#{y[0]}#{y[1]}".to_i + |
04:15 |
|
codex |
"#{y[2]}#{y[3]}".to_i) == ("#{y[1]}#{y[2]}".to_i))?r.push(y):''; }; puts r.to_s |
04:15 |
|
codex |
that's it :) |
06:44 |
|
aditsu |
I'd like to bring up the 100 prisoners puzzle again |
06:45 |
|
aditsu |
so far nobody solved it (from the people I told it to) |
06:46 |
|
aditsu |
it's a pity, as the solution is so cool |
09:52 |
|
pdurbin |
aditsu: I give up. just tell us :) |
09:53 |
|
aditsu |
oh alright :) it's rather simple actually |
09:54 |
|
aditsu |
we can assume each prisoner has a number from 1 to 100 |
09:55 |
|
aditsu |
and either each photo has the corresponding number on it, or the prisoners can memorize the number association |
09:55 |
|
aditsu |
now each prisoner opens to box corresponding to his own number |
09:55 |
|
aditsu |
e.g. prisoner with number 20 opens the 20th box |
09:56 |
|
aditsu |
then if he finds a picture of prisoner number 53, he next opens the 53rd box |
09:56 |
|
aditsu |
and so on, until he finds his own picture or fails after 50 boxes |
09:56 |
|
aditsu |
this strategy is successful if the permutation of pictures in boxes has no cycle longer than 50 |
09:57 |
|
aditsu |
if you do the math, you find that the probability of that is about 0.312 |
09:58 |
|
aditsu |
so 31.2% chance of success :) |
09:58 |
|
pdurbin |
if the first guy doesn't find his own picture in the first 50 tries he will be a prisoner forever. only a 31.2% chance of success? |
09:59 |
|
aditsu |
well, if they try randomly, the chance is about 1/2^100 |
10:00 |
|
aditsu |
this is better than 1/4 |
10:01 |
|
aditsu |
it's realistic, even though not probable |
10:02 |
|
pdurbin |
(1/2.0)**100 = 7.8886090522101181e-31 ? |
10:03 |
|
aditsu |
yeah, something like that |
10:05 |
|
pdurbin |
it's interesting |
10:06 |
|
aditsu |
obviously you can't get better than 50% chances because the first guy can't get better than that |
10:06 |
|
pdurbin |
right. makes sense |
10:07 |
|
pdurbin |
poor prisoners |
10:07 |
|
aditsu |
well, with this strategy, they actually have a shot |
10:08 |
|
aditsu |
they just need a bit of luck |
10:17 |
|
aditsu |
also this strategy works with any number of prisoners, the limit (n->∞) is 1-ln(2) ≈ 0.307 |
10:18 |
|
pdurbin |
is there a nice write up of it somewhere? |
10:18 |
|
aditsu |
probably, let me see |
10:20 |
|
aditsu |
pdurbin: ah, there it is: http://www.mast.queensu.ca/~peter/inprocess/prisoners.pdf |
10:26 |
|
aditsu |
also http://forums.xkcd.com/viewtopic.php?f=3&t=7211 |
10:30 |
|
pdurbin |
ah, that pdf is great |
10:31 |
|
pdurbin |
here's something to think about: |
10:31 |
|
pdurbin |
given 100 documents, if you put them in various piles, how many combinations can you come up with? |
10:32 |
|
pdurbin |
one combination could be paper #1 by itself and papers #2-100 in a separate pile |
10:33 |
|
pdurbin |
you could have 2 even piles of 50 papers but of course you can have many variations on this |
10:33 |
|
pdurbin |
sorry, I switched from documents to papers. same thing |
10:34 |
|
pdurbin |
if you want the answer google for "bell number" |
10:40 |
|
pdurbin |
our director was recently issued a patent for work along these lines: http://gking.harvard.edu/publications/method-and-apparatus-selecting-clusterings-classify-predetermined-data-set |
16:36 |
|
agoddard |
probably a moot point, but when I looked at it again being less tired this morning, year = year.next would create the new object as well so it wouldn't end up changing the value in the array (but I think you're already well past it by the sounds of it) ;) |
16:36 |
|
agoddard |
codex: ^ |
17:01 |
|
agoddard |
codex: pdurbin http://pastebin.com/6b5aQgtB |
17:30 |
|
codex |
agoddard: yea, that's what I did |
17:30 |
|
agoddard |
codex: awnice |
17:31 |
|
codex |
but what's strange is that the "bang" modfier ends up impating it |
17:31 |
|
codex |
i am not understanding why when passing a variable it passes the reference instead of a clone of it |
17:31 |
|
codex |
it seems to defeat the whole point of scoping -- which is what's happening. the "define in if being global" is just obnoxious imo |
17:38 |
|
pdurbin |
crimsonfubot: lucky impate |
17:38 |
|
crimsonfubot |
pdurbin: http://www.youtube.com/watch?v=E7H0zebDdO8 |
17:39 |
|
pdurbin |
:/ |
21:17 |
|
|
sivoais joined #sourcefu |
21:27 |
|
|
sivoais joined #sourcefu |
21:37 |
|
|
sivoais joined #sourcefu |
21:47 |
|
|
sivoais joined #sourcefu |
21:57 |
|
|
sivoais joined #sourcefu |
22:07 |
|
|
sivoais joined #sourcefu |
22:17 |
|
|
sivoais joined #sourcefu |
22:27 |
|
|
sivoais joined #sourcefu |