←2014-01-03 2014-01-04 2014-01-05→ ↑2014 ↑all
00:03:27 <nooodl> oooh ioccc results
00:04:26 <Bike> "Finally, if you lost track of how many misaka.c you have stacked together, you can feed the source to a brainfuck interpreter to get a overview of how the programs are stacked" help
00:08:28 <kmc> Bike: yeah recursively calling main() is an old trick
00:09:07 <nooodl> "Nevertheless, the program was too big to meet the IOCCC’s size rule. So I created a smaller bootstrap program that generates the main program. prog.c contains fragments of the main program as a comment which iocccsize -i does not count."
00:09:07 <kmc> and C++ forbids it!!! those bastards
00:09:08 <nooodl> :D
00:09:55 <myname> lol
00:10:16 <Bike> kmc: weird, why?
00:10:22 <myname> are there videos about them presentating their code?
00:10:25 <myname> i'd love that
00:10:46 <myname> -ta
00:11:26 <kmc> Bike: i'm not really sure why. http://stackoverflow.com/questions/4518598/is-it-legal-to-recurse-into-main-in-c/4519407#4519407 says a little about it
00:11:27 <mauke> Bike: main isn't really a function in C++
00:11:39 <kmc> it has implementation-defined linkage
00:11:39 <mauke> it doesn't follow the usual language rules
00:11:55 <kmc> I guess on many platforms it is effectively extern "C" implicitly?
00:12:00 <Bike> ah, hm
00:12:00 <mauke> no name mangling, two possible implementations (but no overloading)
00:12:01 <kmc> you can't take its address either
00:12:08 <kmc> ah yeah that too
00:12:27 <kmc> ah the lengths to which we go to make C++ sort of a superset of C
00:12:54 <kmc> clearly they should have gone the Java route and required you to implement a class Main with an int operator()(int argc, char **argv)
00:12:57 <mauke> C++ is a superset of a subset of C
00:13:09 <kmc> `addquote <mauke> C++ is a superset of a subset of C
00:13:13 <HackEgo> 1157) <mauke> C++ is a superset of a subset of C
00:13:18 <mauke> or rather: the intersection of C++ and C is non-empty
00:13:55 <myname> mauke: only if the named subset of C is non-empty
00:14:30 <mauke> it is, hence the strengthening
00:15:37 <nooodl> http://ioccc.org/2013/misaka/hint.html ok this one is just amazing
00:15:42 <nooodl> it's "quite a ride"
00:16:29 <Bike> yes
00:16:46 <Bike> don't forget to look at thea ctual program
00:17:04 <nooodl> this might be my fav entry and i haven't even seen them all
00:17:09 <Bike> v. anime
00:17:14 <kmc> ow my brain
00:17:26 * LinearInterpol dies.
00:17:51 <Bike> also i'm glad i wasn't the only one who imagined horizontal cat, lol
00:18:15 <mauke> "Getting the code down to <= 4096 characters to meet the IOCCC rule 2 overall size limit required a good deal of effort (and appreciable risk of divorce)"
00:18:56 <nooodl> mauke: which one's that from?
00:19:00 <LinearInterpol> appreciable risk of divorce eh.
00:19:05 <mauke> cable3
00:19:48 <nooodl> i love when you're wondering "gosh what does this program even DO?" and then you see something like
00:19:51 <nooodl> I n t,e,l[80186],*E,m,u,L,a,T,o,r[1<<21],
00:21:22 <quintopia> Int,? what?
00:21:57 <LinearInterpol> nooodl: it's like frosting on a cake.
00:22:13 <LinearInterpol> delicious, delicious frosting.
00:22:16 <myname> not Int,; I n t,
00:22:28 <nooodl> wow this is an 8086 emulator in 8086 nibbles of C
00:22:57 <FireFly> At least the variable declarations are descriptive
00:23:01 <FireFly> as in, they describe the program
00:23:26 <kmc> nooodl: actually it's a full PC emulator
00:26:50 <Jafet> Is Don Yang just going to submit one of the programs on his website every year
00:26:55 <mauke> for(my $i = 0; $i <= $#d; $i++)
00:26:57 <mauke> goddammit
00:27:05 <mauke> why do we let these people write perl
00:27:24 <mauke> open my $file, "<$opt"
00:27:33 <mauke> $expected = join '', <$file>; AAAARGH
00:33:27 <nooodl> mauke: i don't know any perl; what's wrong with those
00:33:49 <mauke> first one should be: for my $i (0 .. $#d)
00:34:05 <mauke> basically, you don't use C-style for loops in perl unless you have a very good reason
00:34:36 <nooodl> ah yeah. ruby's like that too
00:34:41 <mauke> and the <= in the condition isn't idiomatic C either
00:35:17 <mauke> second, I noticed that the author used -w instead of 'use warnings'
00:35:18 <nooodl> i guess $#d is the length of @d? it looks a lot like an off-by-one error
00:35:28 <kmc> $#d is the last index in @d because Perl
00:35:36 <kmc> but @d used as a scalar is the length of @d
00:35:43 <nooodl> i... perl
00:35:47 <mauke> which is kind of OK if you want to stay compatible with perls before 5.6.0, released in 2000
00:36:03 <mauke> but then they use 'open my $file', which requires at least 5.6.0
00:36:15 <nooodl> let me guess. @foo[$#foo] is a perl idiom
00:36:34 <mauke> but then they use 2-arg open, which you have no business using because starting from 5.6.0 perl supports 3-arg open
00:36:35 -!- conehead has quit (Quit: Computer has gone to sleep.).
00:36:38 <mauke> so the whole thing is a clusterfuck
00:36:52 <mauke> join '', <$file> is a really inefficient way to read the whole file into a string
00:36:56 <kmc> note that the last index in @d could be anything, because you can globally change the starting index for arrays, using $[
00:37:00 <mauke> nooodl: no, that's terrible
00:37:04 <mauke> nooodl: the idiom is $foo[-1]
00:37:09 <mauke> kmc: wrong
00:37:12 <nooodl> whew
00:37:12 <mauke> $[ isn't global
00:37:25 <mauke> also, deprecated
00:37:34 <kmc> lol well that's fine then
00:37:54 <olsner> not only can the starting index be anything, it can be different in different places? this is great
00:37:59 <mauke> assignment to $[ is treated as a compiler pragma and has been since 5.0
00:38:20 <mauke> and it's lexically scoped so other modules can't fuck up your script
00:38:34 <myname> olsner: wondering what happens if you pass such arrays around
00:38:36 <mauke> (officially deprecated since 5.12)
00:39:00 <mauke> myname: nothing. $[ affects indexing operations, not the data structure
00:39:07 <myname> ah
00:39:15 <olsner> myname: perl, that's what happens
00:39:21 <myname> but... why?
00:39:35 <myname> could you make arrays starting at -1?
00:39:40 <mauke> sadly, yes
00:39:46 <myname> hahaha
00:39:47 <nooodl> i swear perl is like a 20-something-year-old regularly looking back at its teens, thinking, "god. why did i do all of these dumb things. now i gotta deal with that"
00:39:55 <myname> so a[-2] is the last element?
00:40:06 <mauke> myname: yes
00:40:17 <myname> hilarious
00:40:20 <mauke> it's crazy, but in a sane way
00:40:35 <olsner> does $[ have to be an integer?
00:40:36 <nooodl> oh if you set $[ to 1, a[0] is the last element?
00:40:39 <mauke> olsner: yes
00:40:40 -!- pikhq has joined.
00:40:49 <myname> hahahaha
00:40:52 <olsner> ok :(
00:41:03 <mauke> ooh, I didn't know this: if you 'use v5.16' explicitly, $[ simply stops working
00:41:09 <myname> fantastic to toggle between two values
00:41:13 <mauke> because WTF are you even doing, touching $[
00:41:20 <nooodl> $[ = 2147483647;
00:41:20 <myname> make an array with both, change $[, access a[0]
00:41:57 <nooodl> god. i need an obfuscated perl code contest in my life
00:42:18 <nooodl> does that ex--ah. of course it exists
00:42:37 <mauke> you'll probably get more "oh god please no" out of golf contests
00:44:02 <mauke> myname: re: "why", it's probably to make awk programmers feel at home
00:44:09 <mauke> and I wouldn't be surprised if a2p uses it
00:45:39 <mauke> IIRC there was a popular algorithms book that used int foo_[20]; int *foo = &foo_[-1]; to be able to use foo as a 1-based array in C
00:46:00 <mauke> (this code has undefined behavior)
00:46:28 <Bike> fizzie mentioned some code he dealt with that did that (plus typedefs)
00:54:41 -!- tromp has quit (Read error: Operation timed out).
00:55:09 -!- tromp has joined.
01:01:05 -!- FreeFull has quit (Ping timeout: 246 seconds).
01:03:09 -!- FreeFull has joined.
01:04:44 -!- Sorella has quit (Quit: It is tiem!).
01:05:39 -!- Sprocklem has joined.
01:05:58 <zzo38> mauke: I have used something like that once I think, but (foo_-1) instead of like that, and a macro rather than another variable.
01:06:12 <mauke> still not valid
01:06:28 <zzo38> Yes, I know it is still undefined on some computers
01:06:41 <mauke> s/on some computers//
01:06:52 <zzo38> Which have hardware pointer datatypes, for example, and maybe some VMs as well
01:07:00 <mauke> computers are irrelevant
01:07:06 <mauke> you're not writing computer code, you're writing C
01:07:47 <zzo38> But even in such a case, hopefully the compiler should optimize out the -1 or move it around, since it can be more efficient that way anyways.
01:07:51 <LinearInterpol> c0mpUt3r.
01:08:17 <zzo38> I don't normally do that though (I think I only did once), and yes I know it is undefined.
01:08:46 <mauke> no, in such a case the compiler should optimize out the whole statement
01:09:05 <mauke> because it has no semantics
01:09:19 <mauke> and no code runs faster than some code
01:09:30 <zzo38> Yes, that would be a valid thing for it to do and agree with the C specification, I suppose.
01:09:51 <LinearInterpol> http://ideone.com/uFM1D4
01:10:36 <zzo38> But it doesn't seem very sensible to do that automatically without being able to change it with an option (at least for targets where it is defined)
01:10:54 <mauke> I don't know what you're thinking in but it's not C
01:11:26 <zzo38> Yes, I know in C it isn't defined.
01:12:09 <zzo38> But in some targets it is defined in the reasonable way, because of the way the CPU instruction set works, the pointers are just treated as numbers.
01:12:23 <mauke> http://mauke.hopto.org/stuff/c/ubfun-1.c
01:14:33 <zzo38> What does %hd mean?
01:15:07 <mauke> short int in decimal format
01:15:38 <olsner> do you have to use h when sending shorts? don't they get expanded to ints?
01:15:59 -!- Sprocklem has quit (Ping timeout: 252 seconds).
01:16:22 <mauke> I'm not sure, actually
01:16:37 <olsner> `? varargs
01:16:38 <HackEgo> varargs? ¯\(°​_o)/¯
01:17:05 <mauke> anyway, the code has undefined behavior
01:17:16 <mauke> it behaves differently under gcc -O0 and gcc -O2
01:19:20 * oerjan discovers that walter pinkus's middle name is haskell
01:19:41 <zzo38> mauke: How does it behave?
01:20:00 <olsner> it behaves undefinedly :)
01:20:17 <mauke> zzo38: try it and see :-)
01:20:31 <zzo38> What does it do on your computer?
01:20:38 <Jafet> mauke: what if he gets the same behaviour
01:20:41 <Jafet> !!
01:20:55 <mauke> then that would be interesting
01:21:36 <Jafet> Advanced compiler optimizations: we remove code that you intended to run
01:22:25 <zzo38> Shouldn't it print negative numbers? Or is the proper thing to do, something else?
01:23:30 <Sgeo> Are there any maill systems out there that still can't handle high 8 bits?
01:23:30 -!- tromp_ has quit (Read error: Connection reset by peer).
01:23:43 <Jafet> yes
01:23:57 -!- tromp_ has joined.
01:24:05 -!- conehead has joined.
01:24:56 <Jafet> (“Are there still systems that...” “Yes”)
01:30:13 <int-e> mauke: Hmm, I get the same behaviour (with gcc 4.8.2), even with -fstrict-overflow
01:30:53 <int-e> (in particular, no infinite loop)
01:30:58 <mauke> ooh, this seems to be new in 4.8
01:31:14 <mauke> older versions generated an infinite loop
01:33:25 -!- oerjan has quit (Quit: nyx).
01:36:17 <Jafet> It could be argued that creating an infinite loop is a pessimization
02:00:12 <int-e> Well, that's not what was happening. The compiler removed a test that it could prove would always succeed unless the program invoked some sort of undefined behaviour (in this case, signed integer arithmetic underflow).
02:06:59 -!- Sprocklem has joined.
02:16:50 <FireFly> http://regex.alf.nu/
02:17:58 <myname> sounds awesome
02:20:45 <Bike> oh, fun.
02:21:32 <myname> there should be more regex games
02:21:55 <olsner> some of the later ones require loads of perl extensions to the regexpes
02:22:11 <myname> oh :(
02:22:11 <olsner> well, more than 0
02:23:02 <Bike> "This doesn't really work as a tutorial. Not really clear what you're supposed to do here."
02:23:06 <Bike> is there backtracking required
02:23:30 <Bike> allochirally, good word
02:23:39 <FireFly> olsner: well, it uses JS' engine, so it can't use too many Perl extensions
02:23:51 <FireFly> JS regexp doesn't even support lookbehinds
02:24:18 <Bike> oh. this one is titled 'backrefs'.
02:24:28 <Bike> page closed, unfollowed, detweeted, called the cops
02:25:22 <myname> lol
02:25:39 <mauke> it says "regex", not "regular expression"
02:26:27 <Bike> do i have to call the cops on yout too
02:26:45 <mauke> come at me bro
02:27:01 <mauke> /.*/cops
02:27:15 <myname> 4 is pretty simple, though
02:29:29 -!- yorick has quit (Remote host closed the connection).
02:30:36 <myname> 5 would be easy if you could change the columns
02:32:55 <mauke> 5 is easy but my solution is inelegant
02:33:06 <myname> huh
02:33:24 <myname> ooooh
02:33:29 <myname> oh, no
02:33:58 <mauke> oh god, 6 is worse
02:34:24 <FireFly> I'm kinda stuck at 6
02:34:33 <mauke> brute force again, I guess
02:34:42 <myname> i am kinda stuck at 5 :(
02:34:52 <FireFly> er
02:34:54 <myname> i could do negative lookahead or the like
02:34:54 <FireFly> 7 I mean
02:35:07 <myname> but i never ever recall what they look like
02:35:33 <mauke> oh god, the prime thing
02:35:35 <FireFly> I know I've seen a regex for 7, but I can't remember how it worked
02:35:39 <mauke> fortunately it's easy
02:35:43 <FireFly> :(
02:35:48 <myname> i assume the prime thing should be easy
02:35:52 <mauke> call me if they're looking for fibonacci sequences
02:36:15 <myname> lol
02:36:55 <myname> does this even support negative lookahead?
02:37:19 <FireFly> <FireFly> JS regexp doesn't even support lookbehinds
02:37:21 <Bike> can i get a regex to recognize fibonacci sequences like abccdddeeeeeffffffff of any length, and with any characters
02:37:28 <FireFly> Oh, you mean as in (?!)? yes, that's supported
02:37:28 <myname> lookbehind does not matter
02:37:44 <myname> why doesn't my sollution work, then
02:37:54 <mauke> Bike: I can recognize "x x xx xxx xxxxx" etc
02:38:07 <Bike> too easy
02:38:27 <mauke> show me
02:39:06 <myname> apparently, i'm too stupid for lookahead assertions
02:39:23 <myname> oh
02:39:47 <myname> what the
02:41:10 <Bike> i don't know, that's why i'm asking!
02:41:38 <myname> i am pretty sure, there has to be a ?! at number 5
02:41:45 <myname> i just can't assemble it
02:43:06 <mauke> myname: http://p3rl.org/perlretut
02:45:54 <myname> mauke: i know how they work, i think
02:58:48 <myname> so... [^\2] does not work`
02:58:49 <myname> ?
03:02:46 <FireFly> Nope
03:12:20 <myname> i don't get it
03:14:23 <myname> maybe i'm too tired
03:18:50 <myname> great, it seems to not knot conditions
03:59:07 -!- qlkzy has quit (Quit: ZNC - http://znc.sourceforge.net).
03:59:15 -!- qlkzy has joined.
04:00:00 -!- ineiros has quit (Ping timeout: 245 seconds).
04:00:39 -!- ineiros has joined.
04:01:37 <augur> Slereah: since those are supposed to be anubis things
04:01:42 <augur> they're technically not jackals at all
04:02:09 <augur> or at least they're not depicting jackals!
04:02:10 <kmc> well jacktually,
04:02:12 <augur> or are they
04:02:15 <augur> this is very pomo
04:11:26 <kmc> can i just start adding ##crypto quotes here
04:11:37 <Bike> why not
04:11:57 <kmc> they don't have a crypto quote bot and it's sad
04:12:14 <kmc> although lambdabot is there so maybe it's more appropriate
04:18:51 <mauke> preflex: quote
04:18:52 <preflex> <lament> and facing a choice between perl and mircscript, i'd gladly shoot myself
04:22:23 <FireFly> Good choice
04:22:40 <mauke> preflex: quote
04:22:41 <preflex> <vec|code> scroll lock is a letter in the canadian language
04:25:14 <zzo38> Are there 2D and 3D implementations of PADsynth?
04:28:09 <zzo38> The description of PADsynth is: 1. Add together several bell curves with differing mean, variance, and amplitude (specified as parameters to the algorithm), to fill up the amplitude table. 2. Fill up the phase table with random data. 3. Make the inverse Fourier transform.
04:29:04 <zzo38> What other synthesis algorithms are there with a kind of relative simplicity?
04:34:15 -!- copumpkin has joined.
04:36:06 <Sgeo> http://moviecode.tumblr.com/image/72105358714
04:36:20 <Sgeo> Sample code? That seems a bit monotonous
04:39:12 -!- preflex has quit (Read error: Operation timed out).
04:39:12 -!- mauke has quit (Read error: Operation timed out).
04:40:01 -!- mauke has joined.
04:41:13 -!- FreeFull has quit (Ping timeout: 246 seconds).
04:41:35 <Bike> http://moviecode.tumblr.com/ finally
04:41:44 -!- preflex has joined.
04:43:08 -!- FreeFull has joined.
04:48:47 -!- FreeFull has quit (Ping timeout: 260 seconds).
04:56:05 <kmc> "In the film Elysium the space station is rebooted using code taken directly from the Intel Architecture Software Developer’s Manual Volume 3: System Development"
04:56:08 <kmc> seems accurate
04:58:12 <Sgeo> I'm kind of shocked that Uplink has gotten any kind of update
04:59:11 <Sgeo> (There's now an iPad version)
05:13:13 -!- FreeFull has joined.
05:15:01 -!- nooodl has quit (Ping timeout: 272 seconds).
05:32:12 <Sgeo> wtf
05:32:13 <Sgeo> "I drank a chemistry experiment in class once. I forget the exact nature of the experiment, but I do remember that if we did it
05:32:14 <Sgeo> correctly, we ended up with plain old salt water. We must have done it mostly correct, because other than a mild burning for
05:32:14 <Sgeo> about an hour after, I was fine. Teacher flipped her shiat though. My lab partners threw me under the bus. All through the
05:32:14 <Sgeo> experiment, they were like , "C'mon...drink it...DRINK IT! I dare ya!" and then when the teacher got mad, they did a 180 and
05:32:15 <Sgeo> were all like, "She did it man, it was HER idea!". I got an F on that particular lab assignment."
05:32:50 <Bike> student does dumb thing
05:33:04 -!- FreeFull has quit (Ping timeout: 260 seconds).
05:34:40 <Sgeo> I had homeroom in a science classroom, and someone spit in the teacher's drink, so I told the teacher not to drink it. Later was told what a good thing I did, especially since it could have been anything in there, and asked me if I knew what it was. Spit.
05:35:10 <Sgeo> Which I guess is a thing to avoid consuming, but probably not as ... dangerous as they were thinking
05:35:31 <coppro> could be worse
05:35:37 <coppro> it's a biohazard
05:38:52 <zzo38> It was almost the timestamp 1388813888 according to some computers. It repeating in twice
05:43:10 -!- FreeFull has joined.
05:50:26 -!- FreeFull has quit (Ping timeout: 252 seconds).
05:50:52 -!- conehead has quit (Quit: Computer has gone to sleep.).
05:58:16 -!- LinearInterpol has quit (Ping timeout: 260 seconds).
06:13:13 -!- FreeFull has joined.
06:17:45 -!- tromp_ has quit (Read error: Connection reset by peer).
06:24:30 -!- tromp_ has joined.
06:30:06 -!- tromp_ has quit (Read error: Connection reset by peer).
06:43:16 -!- FreeFull_ has joined.
06:43:41 -!- FreeFull has quit (Ping timeout: 272 seconds).
07:26:28 -!- tertu has joined.
07:34:49 -!- FreeFull has joined.
07:35:51 -!- FreeFull_ has quit (Ping timeout: 260 seconds).
08:00:51 -!- ter2 has joined.
08:01:35 -!- ter2 has quit (Read error: Connection reset by peer).
08:01:52 -!- ter2 has joined.
08:04:23 -!- tertu has quit (Ping timeout: 272 seconds).
08:10:20 <kmc> zzo38: nice
08:10:54 <kmc> zzo38: have you seen https://twitter.com/megasecond
08:13:21 <coppro> I just upgraded my libc to sid apparently
08:13:23 <coppro> fun
08:13:46 <coppro> on the plus side, the thing I was trying to get working is
08:14:36 <kmc> too bad there's no way to run daemons or cronjobs on HackEgo
08:14:51 <kmc> because i think megaseconds should be announced in here
08:16:05 <kmc> in big rainbow ascii art perhaps
08:18:35 -!- Bike has quit (Ping timeout: 272 seconds).
08:21:28 <Sgeo> Is there any correlation between a game being difficult for computers and being fun for humans.
08:21:38 <Sgeo> I guess a lot of unfun for humans games are easy for computers
08:21:51 <Sgeo> But I mean, like chess and go, computers have more difficulty with Go
08:22:12 <Sgeo> I guess I'm imagining 'computers are good at it' to indicate 'semi-trivial strategy'
08:22:15 <kmc> yeah although they're pretty good at go now as well
08:22:19 <Sgeo> Althouhg that's obviously false for chess
08:22:31 <Sgeo> Although iiuc chess strategy does have some trivial parts
08:22:34 <Sgeo> memorized openings
08:22:51 <shachaf> trivial means there exists a computer program to do it
08:22:58 <shachaf> or we can imagine one
08:24:16 <zzo38> kmc: I have not seen.
08:24:49 <zzo38> Make up your own megaseconds announcement if you prefer to
08:25:26 <kmc> Sgeo: do you think that go is more fun than chess?
08:25:41 <Sgeo> It's been a very long time since I tried chess
08:25:51 <Sgeo> I kind of don't want to try it again, not sure why
08:26:04 <Sgeo> So I don't really think I can compare too well
08:27:40 <zzo38> There are games other than chess and go, such as shogi.
08:27:59 <zzo38> And there is Fischerandom chess
08:29:23 -!- FreeFull has quit (Ping timeout: 252 seconds).
08:31:18 <kmc> well you can appeal to some idea that tree pruning heuristics are more fun than exhaustive search, but a game can exceed the human ability for exhaustive search and still be easy for computers
08:31:55 <kmc> it's not clear that additional computer-hardness past that point changes a human player's subjective experience that the game has deep strategy
08:40:47 <mroman> apparantely chess has lots of memorizing positions
08:40:56 <mroman> there's a sirlin article on that I think
08:43:04 <coppro> http://codegolf.stackexchange.com/questions/17005/produce-the-number-2014-without-any-numbers-in-your-source-code
08:43:17 <mroman> boring.
08:45:37 <mroman> `python "print int(`len('aaaaaaa')`+'de',len('bbbbbbbbbbbbbbbb'))"
08:45:41 <HackEgo> python: can't open file '"print int(`len('aaaaaaa')`+'de',len('bbbbbbbbbbbbbbbb'))"': [Errno 2] No such file or directory
08:45:47 <mroman> `python run "print int(`len('aaaaaaa')`+'de',len('bbbbbbbbbbbbbbbb'))"
08:45:48 <HackEgo> python: can't open file 'run "print int(`len('aaaaaaa')`+'de',len('bbbbbbbbbbbbbbbb'))"': [Errno 2] No such file or directory
08:45:56 <mroman> oh. golf
08:46:03 <mroman> Golfing is always interesting.
08:46:59 <shachaf> `olist (936)
08:47:00 <HackEgo> olist (936): shachaf oerjan Sgeo FireFly
08:51:23 <kmc> `run python -c "print sum(ord(c) for c in 'Happy new year to you!')"
08:51:24 <HackEgo> 2014
08:52:06 <kmc> nice
08:52:20 <mroman> print ord('ߞ')
08:52:28 <mroman> ^- there you go
08:52:49 <mroman> Who's gonna beat that?
08:55:07 <kmc> `run python -c "print sum(map('Happy new year to you!'))"
08:55:09 <HackEgo> Traceback (most recent call last): \ File "<string>", line 1, in <module> \ TypeError: map() requires at least two args
08:55:13 <kmc> `run python -c "print sum(map(ord, 'Happy new year to you!'))"
08:55:14 <HackEgo> 2014
08:55:29 <shachaf> imo > sum . map ord $ "..."
08:55:59 <kmc> > sum$map ord"Happy new year to you!"
08:56:00 <lambdabot> 2014
08:56:23 <kmc> > ord<$>"Happy new year to you!"
08:56:25 <lambdabot> [72,97,112,112,121,32,110,101,119,32,121,101,97,114,32,116,111,32,121,111,11...
09:01:47 -!- qlkzy has quit (*.net *.split).
09:01:47 -!- pikhq has quit (*.net *.split).
09:01:48 -!- Gregor has quit (*.net *.split).
09:01:48 -!- ggherdov has quit (*.net *.split).
09:01:49 -!- tromp has quit (*.net *.split).
09:01:49 -!- augur has quit (*.net *.split).
09:01:49 -!- yiyus has quit (*.net *.split).
09:01:51 -!- Deewiant has quit (*.net *.split).
09:01:52 -!- Jafet has quit (*.net *.split).
09:01:52 -!- coppro has quit (*.net *.split).
09:01:52 -!- JZTech101 has quit (*.net *.split).
09:01:52 -!- int-e has quit (*.net *.split).
09:01:53 -!- drlemon has quit (*.net *.split).
09:01:54 -!- lambdabot has quit (*.net *.split).
09:01:54 -!- trout has quit (*.net *.split).
09:01:54 -!- rntz^2 has quit (*.net *.split).
09:01:54 -!- rodgort has quit (*.net *.split).
09:01:54 -!- jix_ has quit (*.net *.split).
09:01:54 -!- sebbu has quit (*.net *.split).
09:01:55 -!- CADD has quit (*.net *.split).
09:01:55 -!- _46bit_ has quit (*.net *.split).
09:01:55 -!- upgrayeddd has quit (*.net *.split).
09:01:55 -!- myndzi has quit (*.net *.split).
09:01:55 -!- preflex has quit (*.net *.split).
09:01:55 -!- Sprocklem has quit (*.net *.split).
09:01:55 -!- glogbackup has quit (*.net *.split).
09:01:55 -!- jconn has quit (*.net *.split).
09:01:55 -!- Gracenotes has quit (*.net *.split).
09:01:56 -!- b_jonas has quit (*.net *.split).
09:01:56 -!- mauke has quit (*.net *.split).
09:01:56 -!- carado has quit (*.net *.split).
09:01:56 -!- realzies has quit (*.net *.split).
09:01:57 -!- FireFly has quit (*.net *.split).
09:01:57 -!- Sellyme has quit (*.net *.split).
09:01:57 -!- copumpkin has quit (*.net *.split).
09:01:57 -!- lifthrasiir has quit (*.net *.split).
09:01:57 -!- Slereah has quit (*.net *.split).
09:01:58 -!- ineiros has quit (*.net *.split).
09:01:58 -!- Sgeo has quit (*.net *.split).
09:01:58 -!- ski_ has quit (*.net *.split).
09:01:58 -!- aloril has quit (*.net *.split).
09:01:58 -!- Taneb has quit (*.net *.split).
09:01:58 -!- heroux has quit (*.net *.split).
09:01:59 -!- Fiora has quit (*.net *.split).
09:01:59 -!- elliott has quit (*.net *.split).
09:01:59 -!- quintopia has quit (*.net *.split).
09:01:59 -!- ion has quit (*.net *.split).
09:02:00 -!- ter2 has quit (*.net *.split).
09:02:01 -!- olsner has quit (*.net *.split).
09:02:01 -!- fungot has quit (*.net *.split).
09:02:01 -!- kmc has quit (*.net *.split).
09:02:01 -!- myname has quit (*.net *.split).
09:02:01 -!- TodPunk has quit (*.net *.split).
09:02:01 -!- atehwa has quit (*.net *.split).
09:02:01 -!- EgoBot has quit (*.net *.split).
09:02:01 -!- HackEgo has quit (*.net *.split).
09:02:01 -!- oklopol has quit (*.net *.split).
09:02:02 -!- zzo38 has quit (*.net *.split).
09:02:02 -!- Froox has quit (*.net *.split).
09:02:02 -!- shachaf has quit (*.net *.split).
09:02:02 -!- SirCmpwn has quit (*.net *.split).
09:02:02 -!- iamcal has quit (*.net *.split).
09:02:02 -!- nortti has quit (*.net *.split).
09:02:02 -!- douglass_ has quit (*.net *.split).
09:02:03 -!- fizzie has quit (*.net *.split).
09:02:03 -!- Zuu has quit (*.net *.split).
09:02:03 -!- Vorpal has quit (*.net *.split).
09:02:04 -!- nisstyre has quit (*.net *.split).
09:02:04 -!- mroman has quit (*.net *.split).
09:02:04 -!- clog has quit (*.net *.split).
09:35:39 -!- SirCmpwn has joined.
09:35:39 -!- nortti has joined.
09:35:39 -!- iamcal has joined.
09:35:39 -!- Froox has joined.
09:35:39 -!- zzo38 has joined.
09:35:39 -!- oklopol has joined.
09:35:39 -!- Gregor has joined.
09:35:39 -!- trout has joined.
09:35:39 -!- rntz^2 has joined.
09:35:39 -!- lambdabot has joined.
09:35:39 -!- drlemon has joined.
09:35:39 -!- shachaf has joined.
09:35:39 -!- b_jonas has joined.
09:35:39 -!- FireFly has joined.
09:35:39 -!- Gracenotes has joined.
09:35:39 -!- jconn has joined.
09:35:39 -!- realzies has joined.
09:35:39 -!- Sellyme has joined.
09:35:39 -!- sebbu has joined.
09:35:39 -!- myndzi has joined.
09:35:39 -!- rodgort has joined.
09:35:39 -!- upgrayeddd has joined.
09:35:39 -!- _46bit_ has joined.
09:35:39 -!- CADD has joined.
09:35:39 -!- carado has joined.
09:35:39 -!- Sprocklem has joined.
09:35:39 -!- mauke has joined.
09:35:39 -!- preflex has joined.
09:35:39 -!- Deewiant_ has joined.
09:35:39 -!- jix has joined.
09:35:39 -!- int-e_ has joined.
09:35:39 -!- ggherdov has joined.
09:35:39 -!- 23LAATJIN has joined.
09:35:39 -!- pikhq has joined.
09:35:39 -!- qlkzy has joined.
09:35:39 -!- ion has joined.
09:35:39 -!- quintopia has joined.
09:35:39 -!- Fiora has joined.
09:35:39 -!- elliott has joined.
09:35:39 -!- heroux has joined.
09:35:39 -!- Taneb has joined.
09:35:39 -!- aloril has joined.
09:35:39 -!- ski_ has joined.
09:35:39 -!- Sgeo has joined.
09:35:39 -!- ineiros has joined.
09:35:39 -!- mroman has joined.
09:35:39 -!- Vorpal has joined.
09:35:39 -!- Zuu has joined.
09:35:39 -!- fizzie has joined.
09:35:39 -!- douglass_ has joined.
09:35:39 -!- Bike has joined.
09:35:39 -!- yiyus has joined.
09:35:39 -!- augur has joined.
09:35:39 -!- tromp has joined.
09:35:39 -!- nisstyre has joined.
09:35:39 -!- clog has joined.
09:35:39 -!- coppro has joined.
09:40:05 -!- AnotherTest has joined.
09:44:10 -!- JZTech101 has joined.
09:44:10 -!- copumpkin has joined.
09:44:10 -!- lifthrasiir has joined.
09:44:10 -!- Slereah has joined.
09:47:49 <mroman> hm.
09:48:02 <mroman> How many modulos does one need to reconstruct the original number?
09:48:18 <mroman> starting from 2
09:48:25 <Bike> What?
09:48:44 <mroman> i.e 2014 % 2 = 0, 2014 % 3 = 1; 2014 % 4 = 2; 2014 % 5 = 4 and so on
09:49:02 <mroman> which gives you the numbers 0,1,2,4,...
09:49:17 <Bike> And you want to know how many of those numbers you need to reconstruct 2014 uniquely?
09:49:23 <mroman> exactly
09:49:48 <shachaf> you just need one, as long as it's bigger than 2014
09:49:51 <Bike> If your moduli are coprime, you can uniquely reconstruct a count of numbers that is the product of the moduli.
09:50:08 <Bike> For instance if your moduli are 2, 3, and 5, you can have 2*3*5 = 30 unique numbers.
09:50:13 <Bike> (after that they'll start repeating)
09:50:41 <Bike> (0 mod 2 = 0, 0 mod 3 = 0, 0 mod 5 = 0; 30 mod 2 = 0, 30 mod 3 = 0, 30 mod 5 = 0)
09:50:57 <Bike> Is that what you mean?
09:51:05 <mroman> Yeah, that helps.
09:51:20 <mroman> a little.
09:51:37 <Bike> what else do you want to know
09:52:07 <mroman> How many numbers do I need to reconstruct (uniquely) any given number
09:52:14 <mroman> ;)
09:52:20 <Bike> infinite.
09:52:27 <Bike> seeing as how there are infinitely many numbers.
09:52:29 <Bike> such is life.
09:52:34 <mroman> what
09:52:49 <mroman> s/any/a certain given
09:53:14 <Bike> doesn't matter. if you're not specifying an upper range you're out of luck.
09:53:39 -!- ter2 has joined.
09:53:39 -!- olsner has joined.
09:53:39 -!- fungot has joined.
09:53:39 -!- kmc has joined.
09:53:39 -!- myname has joined.
09:53:39 -!- TodPunk has joined.
09:53:39 -!- atehwa has joined.
09:53:39 -!- EgoBot has joined.
09:53:39 -!- HackEgo has joined.
09:53:47 <mroman> what?
09:53:51 <mroman> I want f(x)
09:53:56 <Bike> try writing out the integers mod certain numbers. 2: 0, 1, 0, 1... 3: 0, 1, 2, 0, 1, 2, 0, 1, 2, ... 4: 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3,...
09:54:01 <Bike> they repeat.
09:54:06 <mroman> where f is a function that tells me how many numbers I'd need to reconstruct x
09:54:37 <mroman> oh
09:54:37 <mroman> I see your point
09:54:47 <mroman> The upper bound is x
09:55:01 -!- JZTech101 has quit (Changing host).
09:55:01 -!- JZTech101 has joined.
09:55:04 -!- SirCmpwn has changed nick to Guest37212.
09:55:06 <Bike> then shachaf knows the answer.
09:55:37 <mroman> he cheated with "as long as it's bigger"
09:55:58 <Bike> cheated? you didn't say anything bout the moduli
09:56:22 <Bike> do you want to have the moduli be contiguous and starting at 2?
09:56:29 <mroman> Of course.
09:56:36 <Bike> "of course", he says
09:56:43 <mroman> That's the whole point
09:56:52 <Bike> they're not coprime so it's some bullshit. look up the chinese remainder theorem.
09:56:59 <Bike> it would be much more sensible to use only prime moduli.
09:57:51 <Bike> in which case you need, let's see, five.
09:58:06 <Bike> > 2 * 3 * 5 * 7 * 11
09:58:07 <lambdabot> 2310
09:58:43 <Bike> > (2014 `mod` 2, 2014 `mod` 3, 2014 `mod` 5, 2014 `mod` 7, 2014 `mod` 11)
09:58:44 <lambdabot> (0,1,4,5,1)
10:06:10 -!- Deewiant_ has changed nick to Deewiant.
10:32:31 -!- FreeFull has joined.
10:40:14 <mroman> Bike: Yep.
10:42:01 <Bike> that's about 11.1 bits if you're wondering, very ehhhhh
10:42:17 <mroman> now I need to be convinced that mod 4 does not provide more information than mod 2
10:42:26 <mroman> which I assume it does not
10:42:42 <Bike> well, it does.
10:42:53 <Bike> i mean, obviously 3 and 1 are distinct under mod 4 and not under mod 2.
10:43:20 <mroman> Yeah
10:43:33 <mroman> but can it reduce the required numbers to 4 instead of 5 for 2014
10:43:34 <Bike> it's when you use them at the same time that things get redundant.
10:43:37 <mroman> given that you don't start at 2
10:43:46 <mroman> but can choose 4 moduli you like < 2014
10:43:59 <Bike> oh, well sure i guess. 3, 4, 5, 7, and 11 are still coprime
10:44:23 <mroman> is coprime gdt(a,b) = 1?
10:44:28 <mroman> eh wait
10:44:31 <mroman> gcd(a,b)
10:44:34 <Bike> yes
10:44:36 <mroman> Ok
10:44:46 <mroman> so Teilerfremd in German :)
10:44:47 <Bike> just means they don't share any factors; primes are coprime with everything
10:46:10 <mroman> > 8 * 11 * 13
10:46:12 <lambdabot> 1144
10:46:15 <mroman> > 8 * 11 * 13 * 17
10:46:16 <lambdabot> 19448
10:46:57 <mroman> that should let me uniquely reconstruct 2014 with 4 numbers?
10:47:40 <mroman> hm
10:48:00 <mroman> > 2014 `mod` 1008
10:48:01 <lambdabot> 1006
10:48:07 <mroman> > 1008 + 1006
10:48:08 <lambdabot> 2014
10:48:17 <mroman> Man am I stupid.
10:48:52 <mroman> If the moduli is > x/2 it's pretty obvious you only need one
10:49:11 <Bike> how cruel
10:49:14 <mroman> yeah
10:49:27 <mroman> for the "pick yourself a moduli" case
10:49:28 <Bike> what?
10:49:38 <mroman> or modulo
10:49:53 <Bike> if you have one modulus of 1008 you can't distinguish 1006 and 2014
10:50:19 <mroman> aw. yeah
10:50:54 <mroman> I'll stop trying.
10:51:10 <Bike> basically you're not going to represent 2014 in any useful sense without being able to represent at least 2015 distinct numbers :p
10:51:35 <mroman> Yeah.
10:51:54 <mroman> I'm experimenting with "probabilistic compression algorithms" or whatever you call them
10:52:10 <Bike> lossy compression?
10:52:19 <mroman> In a sense, yes.
10:52:35 <mroman> It's basically an "underdefined" equation
10:53:09 <mroman> I.e. you can't reconstruct the data uniquely
10:53:32 <mroman> but you can construct all possible solutions
10:53:39 <mroman> one of them then is the actual original data
10:54:19 <mroman> given that it is english text
10:54:28 <mroman> you can do an text-analysis on all solutions
10:54:38 -!- MindlessDrone has joined.
10:54:42 <mroman> and reconstruct the original data pretty well
10:56:13 <mroman> You may tell me now how stupid that is ;)
10:57:04 <mroman> another approach is to predict the future
10:57:22 <mroman> and then only transmit information if the actual outcome wasn't the same as the prediction
10:57:37 <mroman> so you actually transmit a "difference" of the actual data to the "prediction"
10:58:37 <mroman> but you might as well use something more sane like huffman or lz or whatever
11:00:19 <mroman> (underdefined == not well enough defined)
11:00:25 <mroman> Not sure if that's an actual english word
11:01:39 <Bike> it's well enough defined :p
11:02:47 -!- mauke has quit (Remote host closed the connection).
11:03:10 -!- mauke has joined.
11:09:53 <mroman> hm
11:10:28 <mroman> `run "echo 2014 | python -c 'print input()'"
11:10:30 <HackEgo> bash: echo 2014 | python -c 'print input()': command not found
11:14:28 -!- FreeFull_ has joined.
11:15:23 -!- FreeFull has quit (Ping timeout: 272 seconds).
11:24:17 -!- FreeFull_ has quit (Ping timeout: 252 seconds).
11:38:11 -!- Phantom_Hoover has joined.
11:44:31 -!- FreeFull has joined.
11:54:46 -!- ter2 has quit (Read error: Connection reset by peer).
11:55:01 -!- ter2 has joined.
11:57:56 -!- ter2 has quit (Read error: Connection reset by peer).
11:58:21 -!- tertu has joined.
11:59:33 -!- tertu has quit (Read error: Connection reset by peer).
11:59:56 -!- tertu has joined.
12:03:11 -!- tertu has quit (Read error: Connection reset by peer).
12:03:34 -!- tertu has joined.
12:03:39 -!- FreeFull has quit (Ping timeout: 260 seconds).
12:04:32 -!- tertu has quit (Read error: Connection reset by peer).
12:05:00 -!- tertu has joined.
12:06:32 -!- ter2 has joined.
12:06:38 -!- coppro has quit (Ping timeout: 252 seconds).
12:06:48 -!- coppro has joined.
12:07:57 -!- ter2 has quit (Read error: Connection reset by peer).
12:08:18 -!- ter2 has joined.
12:10:38 -!- tertu has quit (Ping timeout: 246 seconds).
12:11:39 -!- ter2 has quit (Read error: Connection reset by peer).
12:11:55 -!- ter2 has joined.
12:14:31 -!- FreeFull has joined.
12:15:15 -!- tertu has joined.
12:16:36 -!- tertu has quit (Read error: Connection reset by peer).
12:16:55 -!- tertu has joined.
12:18:11 -!- ter2 has quit (Ping timeout: 252 seconds).
12:20:07 -!- tertu has quit (Read error: Connection reset by peer).
12:20:21 -!- tertu has joined.
12:21:41 -!- tertu has quit (Read error: Connection reset by peer).
12:21:56 -!- tertu has joined.
12:26:01 -!- tertu has quit (Read error: Connection reset by peer).
12:26:19 -!- tertu has joined.
12:27:56 -!- ter2 has joined.
12:29:08 -!- ter2 has quit (Read error: Connection reset by peer).
12:29:25 -!- ter2 has joined.
12:30:14 -!- qlkzy has quit (Quit: ZNC - http://znc.sourceforge.net).
12:30:32 -!- ter2 has quit (Read error: Connection reset by peer).
12:30:37 -!- qlkzy has joined.
12:30:59 -!- ter2 has joined.
12:31:17 -!- tertu has quit (Ping timeout: 272 seconds).
12:32:14 -!- tertu3 has joined.
12:35:55 -!- ter2 has quit (Ping timeout: 260 seconds).
12:36:00 -!- tertu has joined.
12:37:22 -!- tertu3 has quit (Ping timeout: 245 seconds).
12:37:22 -!- AnotherTest has quit (Ping timeout: 245 seconds).
12:37:38 -!- ter2 has joined.
12:39:20 -!- tertu3 has joined.
12:41:03 -!- tertu3 has quit (Read error: Connection reset by peer).
12:41:20 -!- tertu3 has joined.
12:41:31 -!- FreeFull has quit (Ping timeout: 260 seconds).
12:41:38 -!- tertu has quit (Ping timeout: 265 seconds).
12:43:20 -!- ter2 has quit (Ping timeout: 245 seconds).
12:44:37 -!- FreeFull has joined.
12:45:21 -!- tertu has joined.
12:46:40 -!- FreeFull has quit (Read error: Connection reset by peer).
12:48:24 -!- tertu3 has quit (Ping timeout: 265 seconds).
12:49:21 -!- augur has quit (Remote host closed the connection).
12:49:24 -!- ter2 has joined.
12:49:57 -!- augur has joined.
12:53:15 -!- ter2 has quit (Read error: No route to host).
12:53:32 -!- ter2 has joined.
12:54:10 -!- augur has quit (Ping timeout: 245 seconds).
12:54:11 -!- tertu has quit (Ping timeout: 272 seconds).
12:55:05 -!- ter2 has quit (Read error: Connection reset by peer).
12:55:30 -!- ter2 has joined.
12:57:14 -!- ter2 has quit (Read error: Connection reset by peer).
12:57:25 -!- augur has joined.
12:57:29 -!- ter2 has joined.
12:59:17 -!- tertu3 has joined.
13:02:28 -!- tertu has joined.
13:03:27 -!- nooodl has joined.
13:03:57 -!- ter2 has quit (Ping timeout: 272 seconds).
13:05:29 -!- tertu3 has quit (Ping timeout: 272 seconds).
13:05:35 -!- oerjan has joined.
13:05:42 -!- tertu has quit (Read error: Connection reset by peer).
13:05:59 -!- tertu has joined.
13:07:25 -!- ter2 has joined.
13:09:00 -!- tertu3 has joined.
13:10:00 -!- carado has quit (Ping timeout: 245 seconds).
13:10:14 -!- yorick has joined.
13:10:26 -!- tertu3 has quit (Read error: Connection reset by peer).
13:10:50 -!- tertu3 has joined.
13:11:16 <Phantom_Hoover> tertu3, fix your connection plx
13:11:43 <mroman> `unicode ٩
13:11:45 <HackEgo> Unknown character.
13:11:49 <mroman> `unidecode ٩
13:11:50 <HackEgo> ​[U+0669 ARABIC-INDIC DIGIT NINE]
13:11:55 -!- tertu has quit (Ping timeout: 272 seconds).
13:12:18 <mroman> `unicode ARABIC-INDIC DIGIT EIGHT
13:12:20 <HackEgo> ​٨
13:13:02 -!- tertu3 has quit (Read error: Connection reset by peer).
13:13:15 -!- ter2 has quit (Ping timeout: 260 seconds).
13:13:18 -!- tertu3 has joined.
13:14:31 <fizzie> `run for d in one two three four five six seven eight nine; do unicode "$(echo arabic-indic digit $d | tr a-z A-Z)"; done | tr -d '\n'
13:14:37 <HackEgo> ​١٢٣٤٥٦٧٨٩
13:16:01 <fizzie> ٦ looks more like a 7 to me. Such foolishness.
13:16:15 -!- tertu3 has quit (Read error: Connection reset by peer).
13:16:30 -!- tertu3 has joined.
13:17:37 <fizzie> `unicode arabic-INDIC digit ZERO
13:17:38 <HackEgo> ​٠
13:17:43 <fizzie> I guess it wasn't case-sensitive after all.
13:18:20 -!- ter2 has joined.
13:21:40 -!- tertu3 has quit (Ping timeout: 260 seconds).
13:24:21 -!- ter2 has quit (Quit: Leaving).
13:33:04 -!- conehead has joined.
13:41:54 <FireFly> `wget ftp://ftp.unicode.org/Public/UNIDATA/UnicodeData.txt
13:41:55 <HackEgo> ​--2014-01-04 13:41:55-- ftp://ftp.unicode.org/Public/UNIDATA/UnicodeData.txt \ => `UnicodeData.txt' \ Resolving ftp.unicode.org... failed: Name or service not known. \ wget: unable to resolve host address `ftp.unicode.org'
13:49:31 <fizzie> ITYM "fetch"
13:49:45 <fizzie> I think someone might've done that already, also.
13:50:26 -!- Sorella has joined.
13:52:35 -!- FreeFull has joined.
13:55:58 -!- conehead has quit (Ping timeout: 246 seconds).
13:57:02 -!- conehead has joined.
14:04:35 -!- conehead has quit (Quit: Textual IRC Client: www.textualapp.com).
14:05:58 <FireFly> Oh
14:12:44 <fizzie> Possibly not, I can't find any traces of it.
14:26:58 <myname> is there a certain bound subset of bf known to be turing complete?
14:27:43 <myname> finite registers would be nicest, but i really doubt thst
14:27:50 <mauke> yeah, if you have bigints
14:27:56 <mauke> you only need like 6 cells or something
14:28:10 <Taneb> mauke, oerjan proved 3 cells with bigint
14:28:22 <mauke> oh wow
14:28:35 <Taneb> You can do it with 1-bit cells if you have infinite cells, I think
14:29:08 <Slereah> 1-bit cells are in bitchanger and boolfuck
14:29:09 <oerjan> Taneb: yes that's boolfuck
14:29:28 <Taneb> Those are the two extremes
14:29:51 <Taneb> Is it proven that two unbounded cells is sub-TC?
14:30:32 <oerjan> well i never wrote up a proof
14:31:18 <oerjan> but the fact ending a loop forces one cell to be zero means you have not very much more than a single cell to use
14:32:08 <oerjan> or maybe we _did_ get a proof during previous discussions of the issue here, i don't quite remember
14:34:27 <oerjan> mauke: the 3-cell proof is in the "Collatz function" article of the wiki (because it's like, a corollary of those)
14:34:58 <myname> mauke: could you elborte
14:35:26 <mauke> how?
14:35:47 <myname> is there an actual proof of that bigint part
14:36:11 <oerjan> `wiki Collatz function
14:36:12 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: wiki: not found
14:36:17 <oerjan> ^wiki Collatz function
14:36:18 <fungot> http://esolangs.org/wiki/Collatz function
14:36:46 <oerjan> not very escaping that command
14:37:11 <myname> reduction from fractrn
14:37:14 <myname> oh boy
14:37:20 <myname> would love reading about that
14:38:09 <oerjan> myname: the function for the reduction is in the haskell code further down
14:38:19 <myname> that 3-cell-thing might be handy for proofs
14:39:05 <myname> it should be possible to compile from 3-cell-bf to wolfgang
14:40:56 <myname> have to think on how to handle loops...
14:41:23 <myname> wait, should actually be pretty easy
14:41:35 <myname> i will take a look at it later
14:41:41 <oerjan> myname: if wolfgang can embed state machines, then a 2-register minsky machine or fractran might fit better. 3-cell bf is nice if you only have precisely bf's control flow.
14:42:29 <myname> oerjan: well, i agree, but i have no approach in mind on how to compile fractran to wolfgang
14:42:45 <oerjan> ok 2-register minsky machine then.
14:42:52 <myname> i may have a look at it
14:43:04 <oerjan> it's like the member of the family which has full state machine control
14:45:58 <myname> okay, so i have to proof a) i can resemble a fsa and b) i can increment and decrement on at least 2 registers?
14:46:02 <oerjan> apropos state machines, this regex game y'all linked to is starting to get awkward, i think i need to convert a state machine to solve this triples level
14:46:42 <oerjan> myname: yeah. and also branch on registers reaching zero.
14:46:57 <mauke> finite sets are technically boring
14:47:19 <myname> oerjan: you have to cheat for triples
14:47:28 <oerjan> oh?
14:47:41 <oerjan> because i know in _principle_ how to do the conversion.
14:47:56 <myname> huh?
14:48:08 <oerjan> it's just looking to be large, is all.
14:48:20 <myname> i only know it's possible for binary numbers
14:49:08 <oerjan> myname: calculating modulus wrt any base can be done with an fsa.
14:49:25 <oerjan> and it's particularly easy for 3.
14:49:35 <oerjan> that doesn't mean the regex is nice.
14:49:50 <oerjan> (well i guess binary is even easier.)
14:50:23 <oerjan> it's just the digital root algorithm, really.
14:50:42 <myname> binary can easily be done with 3 states
14:51:07 <oerjan> you mean checking triples in binary?
14:51:16 <myname> yes
14:51:19 <oerjan> you only need 3 states regardless of base, anyway.
14:51:24 <myname> huh?
14:51:30 <myname> how do you do that?
14:51:36 <myname> oh
14:51:44 <myname> nvmd
14:52:52 -!- LinearInterpol has joined.
14:57:18 <myname> how does a minsky machine actually use the registers?
14:57:47 <myname> is there something like an "increment r1" state?
14:59:20 <oerjan> each state has like a command attached, which is either increment a register, or decrement a register and branch.
14:59:24 <oerjan> and maybe halt.
14:59:51 <myname> or nop, i assume
15:00:02 <myname> (well, you can simulate nop at least)
15:00:04 <oerjan> nop is sort of useless.
15:01:35 <oerjan> if a state uses nop, you can just remove it and skip directly to its target instead.
15:02:06 <myname> it will still read a char from it's input
15:02:26 <oerjan> um you're thinking of ordinary fsas.
15:02:33 <myname> oh
15:02:54 <oerjan> minsky machines don't have i/o other than the initial and final register values.
15:03:00 <myname> ah
15:03:05 <myname> that does make sense
15:06:29 <FreeFull> http://i.imgur.com/vwbKqAK.png Any way to simplify this using only these kinds of gates? Transistors would be fine
15:06:47 <FreeFull> Or is this the simplest design possible (using NOT, NOR and AND)
15:08:17 * oerjan managed to get the conversion for triples working
15:19:29 * oerjan tweaks it up to 519 points with cheating
15:20:53 <myname> i had 555
15:21:02 <oerjan> :(
15:21:05 <myname> someone told me, 630 are possible
15:21:42 <myname> okay, maybe not
15:21:56 <myname> 630 should be all the words
15:23:54 <oerjan> oh wtf blob
15:23:57 * oerjan gives up
15:24:14 <oerjan> er glob
15:26:29 <myname> yeah
15:26:35 <myname> i am stuck at it, too
15:29:40 <Taneb> myname, oerjan what are you talking about?
15:31:17 <olsner> the regexp thingy?
15:32:52 <oerjan> regex.alf.nu
15:33:32 <fizzie> FreeFull: Is that just a full adder?
15:36:32 <FreeFull> fizzie: Yeah
15:37:59 <fizzie> Google pops up an arXiv paper of "Single bit full adder design using 8 transistors with novel 3 transistors XNOR gate", if that's what your "transistors would be fine" means.
15:42:30 <FreeFull> Thanks
15:52:25 <FreeFull> That design involves a multiplexer
16:00:46 -!- FreeFull has quit (Read error: Operation timed out).
16:03:14 <fizzie> Yes, made out of two transistors.
16:03:16 <int-e_> https://gist.github.com/jonathanmorley/8058871 has many regex.alf.nu spoilers (with total score 4069. I had 3850 or so)
16:03:39 -!- int-e_ has changed nick to int-e.
16:04:49 <int-e> In the end I was annoyed by the fact that cheating wins in almost all cases.
16:04:57 <oerjan> 09:57:51:<Bike> in which case you need, let's see, five.
16:04:58 <oerjan> 09:58:06:<Bike> > 2 * 3 * 5 * 7 * 11
16:05:22 <oerjan> > foldl1' lcm [5,7,8,9]
16:05:23 <lambdabot> 2520
16:06:02 <int-e> @localtime oerjan
16:06:03 <lambdabot> Local time for oerjan is Sat Jan 4 17:06:03 2014
16:06:51 <oerjan> @tell mroman 5, 7, 8, 9 are enough.
16:06:51 <lambdabot> Consider it noted.
16:07:18 <oerjan> > foldl1' lcm [5,6,7,8]
16:07:20 <lambdabot> 840
16:07:43 <oerjan> > foldl1' lcm [1..9]
16:07:44 <lambdabot> 2520
16:09:18 <int-e> oh. there was a netsplit around that time, tsk.
16:10:05 <oerjan> int-e: i'm pretty sure this was after that netsplit
16:10:26 <oerjan> tunes.org wasn't loading.
16:10:52 <oerjan> still isn't.
16:11:36 <int-e> Ah I failed at applying time zones correctly. Ok.
16:12:06 <oerjan> int-e: the paste is from codu, so utc, anyway.
16:13:45 <int-e> Yes, I figured it out. The @localtime was my mistake.
16:14:27 -!- Guest37212 has quit (Changing host).
16:14:28 -!- Guest37212 has joined.
16:14:54 -!- Guest37212 has changed nick to SirCmpwn.
16:14:57 <oerjan> @tell mroman the clue is that if you start with a range [1..n], you can throw away all numbers that aren't the largest power of a prime.
16:14:58 <lambdabot> Consider it noted.
16:16:32 <oerjan> @tell mroman hm i'm not entirely sure that always gives the smallest number of numbers. probably, though.
16:16:33 <lambdabot> Consider it noted.
16:16:55 <nooodl> why wouldn't it
16:17:34 <nooodl> > foldl1' lcm [1..20]
16:17:35 <int-e> > scanl lcm 1 [1..]
16:17:35 <lambdabot> 232792560
16:17:36 <lambdabot> [1,1,2,6,12,60,60,420,840,2520,2520,27720,27720,360360,360360,360360,720720,...
16:17:45 <nooodl> oh no euler spoilers!!!!!!!!
16:18:08 <oerjan> nooodl: actually it doesn't. e.g. 5,6 is better than 2,3,5.
16:18:35 <nooodl> oh, like that
16:18:48 <nooodl> well, 30 is better than 5,6
16:19:19 <nooodl> i guess you have that [1..n] range you need to stay in
16:19:28 <oerjan> nooodl: yes but we also want to minimize the largest number, i think.
16:19:55 <oerjan> otherwise it's trivial to take just the bound you want.
16:20:29 <int-e> Right, let's just compute modulo 2^64 like everybody else does.
16:20:54 <oerjan> 420 is best got with 7*6*5.
16:21:30 <oerjan> @tell mroman actually not always, e.g. for x=420 you get the best by using 5,6,7.
16:21:30 <lambdabot> Consider it noted.
16:22:56 <oerjan> i suspect 2*3 = 6 might be one of the few replacements that can work.
16:38:33 -!- 23LAATJIN has quit (Read error: Connection reset by peer).
16:38:53 -!- tromp_ has joined.
16:45:25 <int-e> oerjan: for 4084080 (= lcm [1..17]/3) the best possible seems to be 7*11*13*15*16*17.
16:47:35 <int-e> oerjan: note that you did the same thing; 7*6*5 equals 210
16:49:41 <int-e> And by "the same" I mean that you also have a prime power factor that isn't maximal below a chosen n. In your case, 2 <= 7 instead of 4 <= 7.
17:00:19 <oerjan> oops
17:00:45 <oerjan> @tell mroman scratch that last one, i missed the 4
17:00:45 <lambdabot> Consider it noted.
17:01:09 <oerjan> @tell mroman or well, it works for x=210.
17:01:09 <lambdabot> Consider it noted.
17:05:29 <oerjan> int-e: hm well, to get all of the lcm [1..n] you obviously need to include all the prime powers as factors somewhere.
17:07:40 <oerjan> if you have p^i*q^j as factors where p < q, then p^(i+j) must also be a factor somewhere, which means including it with q is redundant. so you never save anything by including non-prime-powers.
17:07:58 <int-e> oerjan: yes. but that lcm [1..n] sequence is very coarse.
17:08:25 <oerjan> yeah especially if n is prime.
17:20:52 -!- Slereah_ has joined.
17:22:55 -!- Slereah has quit (Ping timeout: 265 seconds).
17:28:48 <int-e> Oh good. If the cipher mode for dm-crypt is given as <cipher>-plain, the kernel translates that to <cipher>-cbc-plain. I wish that fact was properly documented (I expected a hint in Documentation/device-mapper/dm-crypto.txt).
17:31:30 <int-e> (man cryptsetup has such a hint: "--cipher, -c: set cipher specification string. Usually, this is "aes-cbc-plain". For pre-2.6.10 kernels, use "aes-plain" as they don’t understand the new cipher spec strings. [...]". However, I only found that after reading the kernel sources...)
17:32:55 <mroman> hm
17:33:01 <mroman> @messages
17:34:32 -!- boily has joined.
17:39:36 <mroman> `factors 65536
17:39:38 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: factors: not found
17:39:51 <mroman> how did that work again?
17:40:14 <fizzie> `factor 65536
17:40:15 <HackEgo> 65536: 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
17:40:20 <fizzie> (It's a relatively standard utility.)
17:41:09 <fizzie> (Not quite POSIXly standard, but part of GNU coreutils at least.)
17:41:44 -!- oerjan has quit (Quit: leaving).
17:45:05 <mroman> `factors 65535
17:45:06 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: factors: not found
17:45:08 <mroman> `factor 65535
17:45:10 <HackEgo> 65535: 3 5 17 257
17:47:38 <int-e> `factor `echo 1`
17:47:39 <HackEgo> factor: ``echo 1`' is not a valid positive integer
17:47:45 <int-e> `eval factor `echo 1`
17:47:46 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: eval: not found
17:48:06 <int-e> run? hmm.
17:48:26 <int-e> `run factor `dc <<<'2 64^1+p'`
17:48:28 <HackEgo> factor: `18446744073709551617' is too large
17:48:33 <int-e> wimp.
17:51:00 <fizzie> Sadly, I don't think HackEgo comes with PARI/GP installed.
17:52:33 <int-e> > let n=2^64+1;r x y|f>1&&f<n = (f,n`div`f)|otherwise=r(s x)(s(s y))where{f=gcd(x-y)n};s x=(x^2+1)`mod`n in r 3 3
17:52:34 <lambdabot> (274177,67280421310721)
17:52:48 <int-e> > 274177*67280421310721
17:52:49 <lambdabot> 18446744073709551617
17:53:40 <int-e> `run factor 67280421310721; factor 274177
17:53:41 <HackEgo> 67280421310721: 67280421310721 \ 274177: 274177
17:54:07 <fizzie> I have this strangest feeling we just factored 2^64+1 the other day, on-channel.
17:57:13 <int-e> Ah, the smallest prime factor of 2^128+1 is a bit too big for Pollard's rho method to be effective. Pity.
17:59:06 <boily> > (2 ** 1 + 1) * (2 ** 2 + 1) * (2 ** 4 + 1) * (2 ** 8 + 1)
17:59:07 <lambdabot> 65535.0
17:59:32 <boily> > (2 ** 1 + 1) * (2 ** 2 + 1) * (2 ** 4 + 1) * (2 ** 8 + 1) * (2 ** 16 + 1)
17:59:33 <lambdabot> 4.294967295e9
17:59:45 -!- metasepia has joined.
17:59:57 <int-e> if you'd use ^ rather than ** you'd get integer results.
18:00:21 <int-e> > product [2^(2^i)+1 | i <- [0..4]]
18:00:22 <lambdabot> 4294967295
18:00:45 <boily> my Python's slipping, I can't remember which exponentiation operator to use, and I'm eating leftover coleslaw.
18:01:19 <int-e> oh. it's ** in Python.
18:01:29 <mroman> ^ is xor in Python
18:01:54 <int-e> `run python -c 'print (2 ** 1 + 1) * (2 ** 2 + 1) * (2 ** 4 + 1) * (2 ** 8 + 1) * (2 ** 16 + 1)'
18:01:55 <HackEgo> 4294967295
18:04:17 <int-e> It's Haskell that needs three operators to harness the power of exponentiation.
18:04:54 <Bike> the power... or curse (flips hair dramatically)
18:05:28 <int-e> I only said it for the pun.
18:05:43 <Bike> oh. uh. me too
18:05:54 <boily> all I want is to exponiate, not to get mired in the Cursed Swamp of Mathematically Correct Operators.
18:06:22 <int-e> > let x = 0/0 in x == x
18:06:23 <lambdabot> False
18:07:30 <int-e> > let x = 0; y = -0 in (x == y, 1/x == 1/y)
18:07:31 <lambdabot> (True,False)
18:07:49 <int-e> But to be fair, the Haskell designers didn't make up those rules.
18:07:53 <mroman> Does math say -0 == 0?
18:08:04 <int-e> IEEE 754 does.
18:08:24 <mroman> or probably like it's with math -0 == 0 for some math and -0 <> 0 for some other math .
18:08:29 <int-e> But yes, math does, too, because 0+0 = 0, so 0 is the additive inverse of 0.
18:09:45 <int-e> Well, "math". This is true for any group (the neutral element is its own inverse), and in particular for the additive group in rings.
18:09:50 <boily> ~eval 0 / 0
18:09:51 <metasepia> NaN
18:10:07 <boily> ~eval (1 / 0, -1 / 0)
18:10:08 <metasepia> (Infinity,-Infinity)
18:10:58 <boily> ~eval let x = 0; y = -0 in ((x :: Int) == (y :: Int), (x :: Double) == (y :: Double))
18:10:59 <metasepia> (True,True)
18:11:05 <int-e> x = y -> f(x) = f(y) is something mathematicians tend to expect from equality. So that failure (= not being a congruence relation) is pretty bad.
18:11:43 <boily> equality is hard. let's do something different!
18:11:56 <Bike> > 0/0 < 0
18:11:57 <lambdabot> False
18:12:01 <Bike> Eh.
18:13:21 <fizzie> > let x = 0/0 in (x > 1, x == 1, x < 1)
18:13:22 <lambdabot> (False,False,False)
18:13:30 <int-e> Of course dividing by 0 is also generally frowned upon, because you will necessarily lose the ring structure :)
18:15:55 <int-e> @tell oerjan Btw, re-reading GG is totally worth it. There are so many small details to rediscover, not to mention some significant plot developments that I have forgotten over the years.
18:15:55 <lambdabot> Consider it noted.
18:22:57 <myname> what's GG?
18:23:14 <boily> myname: it may be Girl Genius. hth.
18:23:32 <coppro> boily: hth
18:24:08 <boily> coppro: hth.
18:24:21 <myname> > let x = 1 / 0; y = - 1 / 0 in (x > y, x < y, x == y)
18:24:23 <lambdabot> (True,False,False)
18:32:03 <int-e> boily is right as usual.
18:34:46 <boily> ~metar CYQB
18:34:47 <metasepia> CYQB 041800Z 03008KT 30SM FEW022 BKN080 BKN095 M18/M23 A3018 RMK SC2AC3AS2 SLP230
18:34:56 <boily> today is a hot day. -18 °C!
18:36:34 <Bike> ergh
18:41:18 <myname> boily: in norway?
18:41:25 -!- AnotherTest has joined.
18:41:32 <boily> myname: in CANADA!
18:41:41 <boily> norway is warmer this time of the year.
18:41:42 <myname> h
18:42:00 <myname> "come to canada. we have great summers. last year, it was a tuesday"
18:42:21 <boily> ~metar ENGM
18:42:23 <metasepia> ENGM 041820Z 21007KT 9999 -DZ FEW012 SCT016 BKN025 04/04 Q0997 NOSIG
18:42:42 <myname> ~metar YMCA
18:42:43 <metasepia> --- Station not found!
18:43:12 <olsner> ~metar KFUM
18:43:12 <metasepia> --- Station not found!
18:43:26 <LinearInterpol> ~metar KBGR
18:43:27 <metasepia> KBGR 041753Z 19006KT 10SM BKN110 M13/M18 A3031 RMK AO2 SLP273 4/024 60000 T11281183 11128 21289 56039
18:43:29 <olsner> ~metar SPAM
18:43:30 <metasepia> --- Station not found!
18:45:32 <FireFly> Still above zero, I suppose?
18:45:35 <FireFly> ~metar ESSA
18:45:35 <metasepia> ESSA 041820Z 23009KT 9999 SCT007 BKN010 05/04 Q1002 R01L/29//95 R08/29//95 R01R/29//95 TEMPO BKN015
18:45:52 <boily> you wimps with above-zero wintemperatures...
18:47:09 <FireFly> Almost all of december has been considerably warmer than average
18:47:29 <FireFly> http://www.smhi.se/klimatdata/meteorologi/2.1353/dailyTable.php?par=tmpAvvDay&yr=2013&mon=12
18:49:17 <olsner> wow, 10 degrees warmer than normal in almost all of norrland
18:50:13 <FireFly> Yeah..
18:56:41 <fizzie> It's very strange.
18:56:44 <fizzie> ~metar EFHK
18:56:47 <metasepia> EFHK 041850Z 13008KT 6000 -RASN BKN003 01/01 Q1004 NOSIG
18:57:13 <fizzie> The newspaper said Russian tourists (of which there are many this time of year) have been very disappointed with the mild weather.
18:57:49 <olsner> ~metar IKEA
18:57:50 <metasepia> --- Station not found!
19:01:29 <int-e> ~metar ETLA
19:01:30 <metasepia> --- Station not found!
19:09:27 -!- Zuu has quit (Ping timeout: 245 seconds).
19:11:51 -!- Zuu has joined.
19:13:35 -!- FreeFull has joined.
19:19:31 -!- FreeFull has quit (Ping timeout: 272 seconds).
19:23:16 -!- MindlessDrone has quit (Quit: MindlessDrone).
19:29:47 <myname> ~metar ZERO
19:29:47 <metasepia> --- Station not found!
19:29:55 -!- FreeFull has joined.
19:33:53 -!- FreeFull has quit (Read error: Connection reset by peer).
19:41:05 -!- doesthiswork has joined.
19:41:23 <doesthiswork> the most recent oots was most excellent
19:42:14 -!- impomatic has quit (Ping timeout: 264 seconds).
20:07:11 <boily> IOCCC! → http://ioccc.org/years.html?a=123
20:07:29 * Bike glances meaningfully at topic
20:11:17 * boily glances at himself...
20:11:29 <boily> /clear! /clear! /abort! /time-travel!
20:32:38 <boily> meanwhile, my mind is completely twisted by misaka.
20:33:13 <Bike> fair enough
20:34:51 <boily> holy. horizontal. tiling.
20:36:31 -!- jconn has quit (Ping timeout: 272 seconds).
21:08:16 -!- jconn has joined.
21:23:04 <shachaf> kmc: i like the haskell variation where main :: String and all the rts does is evaluate it and print it to stdout
21:23:12 <kmc> lol
21:23:36 <shachaf> i think that clarifies the "execution vs. evaluation" thing out of existence
21:24:08 -!- nisstyre has quit (Quit: Leaving).
21:40:31 -!- shachaf has quit (Changing host).
21:40:31 -!- shachaf has joined.
21:46:09 -!- AnotherTest has quit (Ping timeout: 252 seconds).
22:08:24 -!- boily has quit (Quit: CRYPTIC CHICKEN).
22:08:26 -!- metasepia has quit (Remote host closed the connection).
22:14:23 -!- LinearInterpol has quit (Read error: Connection timed out).
22:15:30 -!- LinearInterpol has joined.
22:19:33 -!- FreeFull has joined.
22:19:54 -!- ^v has joined.
22:20:11 -!- TodPunk has quit (Quit: This is me, signing off. Probably rebooting or something.).
22:26:34 -!- ^v has quit (Remote host closed the connection).
22:34:02 -!- LinearInterpol has quit (Read error: Connection timed out).
22:35:16 -!- LinearInterpol has joined.
22:36:41 -!- Jafet has joined.
22:36:53 -!- FreeFull_ has joined.
22:37:28 -!- FreeFull has quit (Ping timeout: 246 seconds).
22:41:48 -!- TodPunk has joined.
23:10:42 -!- carado has joined.
23:20:56 -!- doesthiswork has quit (Quit: Leaving.).
23:38:12 -!- Bike has quit (Ping timeout: 245 seconds).
23:43:49 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
23:48:05 -!- LinearInterpol has quit (Read error: Connection timed out).
23:49:07 -!- LinearInterpol has joined.
23:51:23 -!- oerjan has joined.
23:52:17 <oerjan> @messages-gouda
23:52:18 <lambdabot> int-e said 5h 36m 22s ago: Btw, re-reading GG is totally worth it. There are so many small details to rediscover, not to mention some significant plot developments that I have forgotten over the years.
23:53:24 -!- Bike has joined.
←2014-01-03 2014-01-04 2014-01-05→ ↑2014 ↑all