00:02:43 -!- AndoDaan has quit (Ping timeout: 250 seconds). 00:06:40 -!- boily has joined. 00:22:37 -!- AndoDaan_ has quit (Quit: Going, going, gone.). 00:26:21 -!- ProofTechnique has joined. 00:28:54 -!- Lymee has quit (Ping timeout: 265 seconds). 00:30:22 quintopia: QUINTHELLOPIA! *krssshhht* the cookies are home *khkhhhssshhh* over *rrkrhhshttt* 00:43:39 -!- Phantom__Hoover has quit (Read error: Connection reset by peer). 01:01:40 -!- idris-bot has quit (Quit: Terminated). 01:01:57 -!- idris-bot has joined. 01:03:52 -!- mroman has quit (Ping timeout: 256 seconds). 01:06:16 -!- mroman has joined. 01:11:51 -!- idris-bot has quit (Quit: Terminated). 01:12:04 -!- idris-bot has joined. 01:13:08 -!- Lymia has joined. 01:18:29 -!- boily has quit (Quit: REPORTED CHICKEN). 01:23:05 -!- hjulle has quit (Ping timeout: 272 seconds). 01:42:04 -!- PinealGlandOptic has quit (Quit: leaving). 02:36:09 -!- shikhin_ has quit (Ping timeout: 244 seconds). 02:43:38 -!- bb010g has joined. 02:50:41 -!- Phantom_Hoover has quit (Remote host closed the connection). 03:45:39 -!- olsner has quit (Ping timeout: 246 seconds). 03:47:35 -!- olsner has joined. 03:54:43 https://www.youtube.com/watch?v=djG0j3bpCLQ 03:56:58 -!- L8D has joined. 03:59:42 -!- CADD has joined. 04:27:01 -!- GeekDude has quit (Quit: {{{}}{{{}}{{}}}{{}}} (www.adiirc.com)). 05:03:30 https://github.com/clarus/falso 05:12:09 -!- CADD has quit (Remote host closed the connection). 05:12:21 Well, I'll have to get a dissertation out the door at once. 05:16:32 -!- L8D has quit (Ping timeout: 248 seconds). 05:22:23 -!- gde33 has quit. 05:26:10 -!- vodkode_ has quit (Ping timeout: 250 seconds). 05:26:27 J_Arcane: I was disappointed to find out that Coq's trusted kernel core is much more code than I thought it was (30,000+ lines). 05:26:49 (Agda is even less stable though.) 05:26:58 (I guess HOL Light or Metamath or whatever are the only options if you want a core you can actually trust.) 05:29:29 -!- L8D has joined. 05:54:12 -!- CADD has joined. 06:19:42 -!- qwertyo has joined. 06:19:44 -!- zadock has quit (Quit: Leaving). 06:24:31 -!- oerjan has joined. 07:20:40 -!- L8D has quit (Ping timeout: 252 seconds). 07:24:06 -!- Novtopro_ has joined. 07:26:40 -!- vodkode has quit (Remote host closed the connection). 07:27:10 -!- L8D has joined. 07:28:33 -!- Novtopro_ has quit (Max SendQ exceeded). 07:29:57 -!- Novtopro_ has joined. 07:37:59 -!- Novtopro_ has quit (Quit: Textual IRC Client: www.textualapp.com). 07:38:31 so is there only one ring over the rationals? <-- argh of course not 07:38:37 and he's not here 07:39:01 -!- Patashu has joined. 07:40:58 @tell cpressey what about where a|b = 2*a*b <-- that is indeed a ring, but almost trivially so: \x -> 2*x is an isomorphism between that and the ordinary ring of rationals. 07:40:58 Consider it noted. 07:42:42 @tell cpressey hm it may be that all nontrivial rings that share the same addition as the rationals have to be like that. 07:42:42 Consider it noted. 07:44:56 oerjan: no, of course not. the zero ring isn't like that, for one. 07:45:24 well that's the only one, and me just the value of 2 = 0 :P 07:45:43 and in fact that was the ring i tried to exclude with "nontrivial" 07:45:51 oh 07:45:55 then... maybe 07:46:04 but wait 07:46:11 i think it's fairly simply actually 07:46:28 hmm yeah, I guess 07:46:45 you use the distributive law to show that n|x = n*(1|x) 07:46:51 for an integer 07:47:10 if the ring has a unit (but not necessarily 1 as the unit) then I think it has to be the same 07:47:43 a|b = (1|1)*a*b 07:47:54 is what you end up with, i think 07:50:15 q*((p/q)|a) = (p/1)|a = p*(1|a) by distributive law, so ((p/q)|a) = p/q*(1|a) 07:50:29 (p,q integers) 07:53:07 You can define an operation o(x,y) = log(e^x + e^y) 07:53:40 @tell cpressey for p,q integers, q*((p/q)|a) = (p/1)|a = p*(1|a) by splitting p and q into sums of 1 and using the distributive law, so ((p/q)|a) = p/q*(1|a), i.e. b|a = b*(1|a) and by mirror argument = b*a*(1|1) 07:53:40 Consider it noted. 07:54:07 FreeFull: that's not within the rationals 07:54:20 Well, no 07:54:33 I was just thinking about the relation between addition and multiplication 07:55:21 That operation with addition should form a ring over reals, I think 07:55:23 s/me just the value/is the special case& 07:55:31 Actually, reals + negative infinity 07:55:57 You need to adjoin the negative infinity as the identity element 07:56:17 yes, because addition and multiplication aren't groups with the exact elements 07:56:33 so shifting must compensate 07:56:52 I'm not actually a mathematician 07:57:29 basically, f(x) = e^x is a monoid homomorphism from addition to multiplication 07:57:42 oh and of course it's also missing all the negative numbers 07:59:33 Yeah, unless you go into the complex numbers 08:00:06 you don't get a ring but maybe a semiring 08:00:19 because o doesn't have inverses 08:00:55 Oh, good point 08:01:07 complexes doesn't really help, you get a multivalued mess 08:03:22 problem is, i*i*i*i = 1 or even just (-1)*(-1) = 1 means complex multiplication cannot be isomorphic to addition 08:03:37 actually the latter applies to reals too 08:04:38 Wait, is x^(log(y)) = y^(log(x)) if x and y are positive? 08:05:03 hm they're both e^(log(x)log(y)) 08:05:05 . o O ( no, of course not ... err, yes it is. ) 08:06:00 Does exp(log(x)log(y)) have any useful properties if we restrict ourselves to positive reals? 08:06:25 (This was my spontaneous reaction, followed by the same rewriting that oerjan demonstrated.) 08:06:26 sure, then it _is_ isomorphic to ordinary addition on all the reals 08:06:35 or wait 08:06:57 * oerjan is having trouble keeping the directions straight in his head 08:07:30 multiplication on the positive reals is isomorphic to addition on the reals 08:07:39 ^ 08:08:01 FreeFull: what you wrote is "obviously" isomorphic to _multiplication_ on all the reals 08:09:08 and so it's a ring together with ordinary multiplication on the positive reals, by int-e's comment 08:09:17 (in fact a field) 08:10:20 Ah, right. We're solving "If addition were ordinary multiplication on the positive reals, what would multiplication look like?" 08:10:47 MAYBE 08:10:57 Just trying to clarify by confusion. 08:11:01 What's the inverse? 08:11:19 (It rarely works, but it's often a lot of fun.) 08:11:40 FreeFull: exp(1/log(x)) i assume 08:12:19 Ah, yeah, that would fit the bill 08:14:10 -!- Patashu has quit (Remote host closed the connection). 08:14:20 -!- Patashu has joined. 08:14:42 -!- hjulle has joined. 08:16:19 That reminds me that in a first year course I once proved that f(x,y) = (x + y) / (1 - x y) (on R + { oo })) is a group operation by pointing out the homomorphism to R / 2piZ... that wasn't the expected solution :P 08:17:06 Sorry, R / (piZ) of course. 08:17:18 Why not write inf rather than oo? 08:17:30 -!- v4s has quit (Ping timeout: 252 seconds). 08:17:34 did you get credit 08:17:36 because oo is cuter. 08:18:00 Or ∞ 08:18:28 I did, together with a comment along the lines of "that's a nifty solution but you need a lot more theory to show that property of arctan than is required for solving this problem." 08:18:48 FreeFull: ∞ is ugly here. 08:18:58 oh arctan right 08:19:37 -!- v4s has joined. 08:19:42 int-e: did you know arctanh gives a homomorphism between ordinary addition and the special relativistic velocity addition formula? 08:20:10 oerjan: That's rather cool 08:20:14 that formula is the same as your, except with + instead of - 08:20:18 *yours 08:20:44 oerjan: I knew the latter, but not the velocity addition formula. 08:21:30 (I may have seen it, but then it would've been obscured by some extra speeds of light (c)) 08:21:38 well naturally 08:22:22 Something involving 1/(1 - v^2/c^2) 08:22:39 + not -, i say 08:22:39 ? 08:22:45 thank you edirc 08:22:55 http://codepad.org/HnoU7WuO 08:23:05 verbose burlesque :D 08:23:31 a bit more bots and we _all_ need to add the HackEgo zero-width space 08:26:42 is that a Basic/Pascal/Forth hybrid 08:27:19 it like rings 3 different nostalgia bells 08:29:15 and gives me the feeling i'm missing more 08:29:43 especially that D5.0 D-1.1+(5(+:@ line 08:29:48 it's supposed to be a nostalgia hybrid yes 08:29:57 Line 18 must be an ed reference. 08:30:16 http://codepad.org/OASg3VqQ <- that's MATH.LIB btw 08:30:20 not much in there yet though :) 08:38:44 [wiki] [[Taworvor]] http://esolangs.org/w/index.php?diff=42182&oldid=40160 * 160.85.232.153 * (-423) 08:40:30 [wiki] [[Taworvor]] http://esolangs.org/w/index.php?diff=42183&oldid=42182 * 160.85.232.153 * (+320) /* Example */ 08:50:13 -!- L8D has quit (Ping timeout: 272 seconds). 08:50:59 -!- L8D has joined. 08:54:01 -!- hjulle has quit (Ping timeout: 264 seconds). 09:03:20 -!- zadock has joined. 09:15:29 oerjan: D is just the prefix for doubles. 09:15:35 which is required :) 09:16:02 ok 09:17:49 oerjan, I need to get that bot I was writing in Agda working 09:17:54 + is addition, or concat for lists. 09:17:54 ? 09:18:01 ( takes an element and puts it into a list 09:18:01 +help 09:18:01 ? 09:18:02 No such variable takes 09:18:08 :D 09:18:14 : is revrse for list 09:18:20 and @ is print 09:19:05 +,p 09:19:05 lighter 09:19:18 +c 09:19:24 +,p 09:19:28 +. 09:19:36 hm... 09:19:39 +,p 09:19:39 ,p 09:19:54 +%d 09:19:57 +,p 09:19:57 ? 09:20:03 +i 09:20:06 heavier 09:20:07 . 09:20:08 +,p 09:20:23 +%p 09:20:28 +1p 09:20:37 oh duh 09:20:38 +. 09:20:42 +%d 09:20:43 +i 09:20:46 +heavier 09:20:48 +. 09:20:50 +%p 09:20:50 heavier 09:25:11 -!- qwertyo has quit (Quit: Leaving). 09:31:17 but this time not that many builtin as burlesque ;) 09:31:35 because I want people to be able to write interpreters/compilers for it :) 09:31:47 int-e: looks like gil is finally showing up 09:33:00 -!- AnotherTest has joined. 09:43:50 Who wants to hear a useless fact? 09:44:05 yay! 09:44:45 There are 8 different pedestrian bridges in the British Isles called the Millennium Bridge 09:45:49 clearly that's because of too many overlapping timelines 09:46:02 i suggesting calling a Doctor 09:58:34 [wiki] [[Taworvor]] http://esolangs.org/w/index.php?diff=42184&oldid=42183 * 160.85.232.153 * (+114) /* Language Reference */ + draft. 09:59:05 so. 09:59:12 started working on the ESOSC draft for it :D 10:05:30 -!- L8D has quit (Ping timeout: 250 seconds). 10:05:32 -!- CADD has quit (Remote host closed the connection). 10:06:23 -!- qwertyo has joined. 10:16:05 Taneb, nortti: http://esolangs.org/wiki/Taworvor#Language_Reference 10:16:09 no hurry though :) 10:20:31 -!- L8D has joined. 10:21:40 [wiki] [[Special:Log/newusers]] create * Vriskanon * New user account 10:23:37 -!- boily has joined. 10:24:56 -!- shikhin has joined. 10:27:27 -!- Sgeo_ has joined. 10:31:15 -!- Sgeo has quit (Ping timeout: 250 seconds). 10:43:25 -!- L8D has quit (Ping timeout: 256 seconds). 10:46:32 -!- L8D has joined. 11:25:11 -!- boily has quit (Quit: TWIN CHICKEN). 11:32:30 -!- oerjan has quit (Quit: leaving). 11:41:05 -!- Patashu has quit (Ping timeout: 248 seconds). 11:43:28 -!- dianne has quit (Quit: byeannes). 11:49:17 -!- vodkode_ has joined. 11:55:14 -!- vodkode_ has quit (Ping timeout: 255 seconds). 11:55:53 [wiki] [[Duck Duck Goose]] N http://esolangs.org/w/index.php?oldid=42185 * Vriskanon * (+6129) Rough tutorial and example code for the Programming Language "Duck Duck Goose" 11:56:37 mroman: what is the meaning of nss? afaiu it is one char that is not ^, then whiespace? 11:57:47 [wiki] [[Language list]] M http://esolangs.org/w/index.php?diff=42186&oldid=42170 * Vriskanon * (+22) /* D */ 12:00:41 nortti: True. 12:00:44 That's an error. 12:01:30 [wiki] [[Duck Duck Goose]] http://esolangs.org/w/index.php?diff=42187&oldid=42185 * Vriskanon * (+302) 12:01:37 I think that should've been nss = { n }, ss; 12:02:07 or even just { n } 12:02:41 [wiki] [[Duck Duck Goose]] M http://esolangs.org/w/index.php?diff=42188&oldid=42187 * Vriskanon * (+11) 12:03:10 hm 12:03:14 nss = n, { n }, ss; 12:03:30 but the ss can be dropped 12:03:31 -!- cpressey has joined. 12:03:33 n includes spaces anyway 12:08:18 [wiki] [[Duck Duck Goose]] M http://esolangs.org/w/index.php?diff=42189&oldid=42188 * Vriskanon * (+40) Included credit where it's due 12:08:31 lambdabot: give me my messages 12:11:06 https://github.com/FMNSSun/Taworvor/blob/master/TESTS.PROG should cover pretty much everything now. 12:11:10 except I/O stuff. 12:11:21 [wiki] [[Duck Duck Goose]] http://esolangs.org/w/index.php?diff=42190&oldid=42189 * 91.231.90.102 * (+7) He wants me to put his surname on 12:12:49 nortti: nss should eat everything between e.g. ^DESC and ^IS 12:12:57 so ^DESC(.*)^ 12:13:02 ah 12:13:15 @tell oerjan so there's more than one ring over the rationals; that's what i suspected/all i wanted to know. thanks. 12:13:16 Consider it noted. 12:13:21 so nss = n, { n }; should do that 12:14:07 although I think we could go with nss = { n } even 12:14:17 makes no sense to force one character DESCs :D 12:15:34 k. pushed with nss = { n}; 12:19:37 `` { echo 'elliott ' ; printf '%s\n' {a..z} ; } > random_elliott; shuf --random-source /dev/zero random_elliott | tr -d '\n' 12:19:39 elliott abcdefghijklmnopqrstuvwxyz 12:23:11 -!- qwertyo has quit (Quit: Leaving). 12:27:46 @tell oerjan in your monad-over-finite-lists, is that "finite and fixed length" or "finite but unbounded length"? because if the latter, that would count, in strict/eager functional programming (I don't see why not anyway) 12:27:46 Consider it noted. 12:30:07 not sure how "proof that there is only one (or none) possible algebraic structure y of Y over set X" proofs generally go, if it all. quantifying over operations, nasty business 12:36:01 -!- ProofTechnique has quit (Ping timeout: 264 seconds). 12:42:44 -!- Phantom_Hoover has joined. 12:47:35 especially when X is infinite. if X is finite, you can probably enumerate the possibilities. e.g. the boolean ring, I wouldn't be surprised if it was unique 12:48:14 or maybe it and a topsy-turvy dual of it where true is false and false is true 13:00:26 -!- ProofTechnique has joined. 13:02:58 -!- L8D has quit (Ping timeout: 252 seconds). 13:19:09 -!- L8D has joined. 13:34:58 -!- Phantom_Hoover has quit (Read error: Connection reset by peer). 13:39:42 -!- Phantom_Hoover has joined. 13:42:48 -!- ais523 has joined. 13:46:45 ok n/m "the boolean ring", doesn't mean what i thought it meant. instead, "the possible rings over the set {0, 1}". 13:55:36 -!- ais523 has quit (Ping timeout: 265 seconds). 13:55:57 -!- GeekDude has joined. 14:05:55 -!- L8D has quit (Ping timeout: 244 seconds). 14:09:44 -!- `^_^v has joined. 14:11:01 cpressey, does the ring's 0 have to be 0? 14:14:18 the ring's 0 has to satisfy 0*x = 0 and 0+x = x, for all x, i believe. (i guess "be zero" is kind of a fuzzy way of saying just that :) 14:15:02 I mean, does it have to be the one you have assigned the symbol "0" to when defining the set {0,1}? 14:19:17 -!- shikhin_ has joined. 14:19:37 -!- shikhin has quit (Disconnected by services). 14:19:39 -!- shikhin_ has changed nick to shikhin. 14:25:53 Taneb: no. this would apply equally to any two-element set. 14:26:01 Ah :) 14:35:42 searching for "ring with two elements" gets lots of hits saying "all rings with two elements are isomorphic" and "there is one ring with two elements" (in which i imagine is implied "up to isomorphism") 14:36:17 but i have yet to see anything saying "every set with 2 elements has exactly two rings" 14:36:45 because ring theorists don't care about the concrete bits. they care about the isomorphisms 14:41:28 this whole thing may encourage me to learn to use quickcheck 14:41:38 as a way to search for counterexamples 14:56:42 [wiki] [[Talk:JSFuck]] N http://esolangs.org/w/index.php?oldid=42191 * Esowiki201529A * (+41) Created page with "new Array().filter(callbackfn[, thisArg])" 14:57:34 but of course, because the concrete bits are boring 14:57:38 fwiw http://mroman.ch/burlesque/lref.html is back online. 14:58:02 you take the symmetry group of the set, mod out by the automorphisms of the ring, and then you get all the different rings on the set 15:01:33 simple like monoids 15:02:49 -!- L8D has joined. 15:07:22 -!- L8D has quit (Ping timeout: 255 seconds). 15:07:55 -!- L8D has joined. 15:08:05 mitchs: https://github.com/FMNSSun/Burlesque 15:09:25 However, I can see 47 new built-ins that were added (but are not yet on anagol) and are utterly not documented at all 15:10:36 :o 15:11:52 https://github.com/FMNSSun/Burlesque/blob/master/Burlesque/Eval.hs#L532 15:11:57 built-ins after L532 are new 15:12:10 and not documented, not on anagol. 15:13:34 fyi i have a few more ones that i want to work on in whitespace, and after that i'll try to get better at burlesque 15:13:49 -!- GeekDude has quit (Quit: {{{}}{{{}}{{}}}{{}}} (www.adiirc.com)). 15:13:56 idk how i'll do with it, there are a lot of built ins and i'm only superficially familiar with haskell 15:14:15 yeah... :) 15:14:50 coppro: my greater point with all this (if you care) is that the concrete bits are boring to mathematicians (as they should be) but not to programmers (who, alas, must get their hands dirty) 15:15:37 fair 15:21:53 coppro: also, I'm interested to know if "the list monad" means "the usual list monad" or "the unique list monad" -- in case you care about that 15:22:23 I have yet to see examples of other list monads; I have yet to see a proof that there are no others 15:29:36 -!- L8D has quit (Ping timeout: 256 seconds). 15:33:32 -!- L8D has joined. 15:59:14 -!- bb010g has quit (Quit: Connection closed for inactivity). 15:59:53 -!- Phantom_Hoover has quit (Ping timeout: 252 seconds). 16:08:11 -!- GeekDude has joined. 16:08:24 -!- L8D has quit (Ping timeout: 264 seconds). 16:23:21 -!- zadock has quit (Quit: Leaving). 16:29:17 -!- L8D has joined. 16:35:17 what's this new paper about in-memory vs. disk 16:35:20 I mean 16:35:39 using += to concat strings in Java is stupid as hell from the start. 16:36:53 and what does it have to do with computing? 16:40:37 also 16:40:38 flushing 16:40:51 does not block until all data is written out, does it? 16:41:02 I thought it just means "well... the OS has it now" 16:41:09 doesn't mean that it's on disk actually just yet. 16:43:39 also.. if the computation is concatenation 16:43:47 then to get the result you'd have to read it back into memory? 16:44:04 which probably works faster because what you just have written out is still in some memory buffer so the disk isn't even actually used? 16:44:47 -!- L8D has quit (Ping timeout: 250 seconds). 16:44:53 given that you just want it to have concatenated on file then yes, probably just writing it has less overhead than concating it in memory first 16:45:11 also... if you write every piece immediately to file you'll probably have a better memory footprint as well. 16:47:00 but... essentially it means that doing a shitload of memcpy because you have to realloc and memcpy all the time because strings are imutable I guess isn't very fast anyway 16:47:25 I want the same benchmark with linked strings! 16:47:38 anyway it's a stupid benchmark. 16:48:14 flushing... need not block until all data is written out afaiu; that's fsync's job, isn't it? 16:49:07 -!- heroux has quit (Ping timeout: 265 seconds). 16:49:42 I thought flush just means that you flushed your "internal buffer" and have given all the data to the OS somehow 16:49:50 but it might still be in a write buffer of the OS 16:50:09 "We also see that immutable strings are not inherently a problem, as evidenced by Python’s much better performance with the modified code. 16:50:12 " 16:50:14 ^- that's just plain bullshit? 16:50:26 Note that fflush() only flushes the user-space buffers provided by the C library. To ensure that the data is 16:50:27 If you want to do concatenation then immutable strings ARE the problem. 16:50:29 physically stored on disk the kernel buffers must be flushed too, for example, with sync(2) or fsync(2). 16:50:36 excuse the indent, but, yeah 16:50:50 (from `man fflush`) 16:51:20 "Java performance numbers did not change when the concatenation order was reversed in the code in Appendix 1. However, using a mutable data type such as StringBuilder or StringBuffer dramatically improved the results." 16:51:35 -!- heroux has joined. 16:51:37 pretty obvious. 16:51:37 umm 16:51:44 That's what StringBuilders are for :D 16:51:56 cpressey: Did you read the paper? 16:52:04 a paper that says that immutable strings are not the problem, then describes improvement when using mutable strings ok 16:52:11 no, i don't even know what this is 16:52:14 They do string concatenation and measure how long it takes 16:52:17 not sure i want to know, frankly 16:52:25 then instead of string concatenation they just write it to file 16:52:26 like 16:52:27 uhm 16:52:33 loop: string += someData 16:52:34 vs 16:52:41 loop: fwrite(fhandle, someData) 16:52:56 fantastic, let's abuse the file buffers as string buffers 16:53:03 they just do repeated string concatenations 16:53:15 cpressey: they don't read the file back anyway 16:53:27 mroman: where did you find this thing? 16:53:30 the paper, i mean 16:53:41 http://arxiv.org/ftp/arxiv/papers/1503/1503.02678.pdf 16:54:02 arxiv gonna arxiv 16:54:08 I'm no IT expert 16:54:17 but I call TOTAL ABSOLUTE BULLSHIT on this paper. 16:55:01 well, you know what they *don't* say... "Publish non-bullshit or perish." 16:56:26 It was linked on slashdot 16:56:32 and the comments there pretty much support my view :D 16:57:43 and it was written by a biology guy? 16:57:46 wtf 16:58:28 "In this paper we use code inspired by real, production software" yeah right... 16:58:36 "naive string concatenation is a quadratic time operation" 16:59:21 also 16:59:26 there are so many details missing 16:59:34 what type of RAM, what type of Disk was used 16:59:40 what processor 17:00:01 "Java 8 was used to compile the test code 17:00:03 " 17:00:06 Java 8 can compile things? 17:01:29 "In the examples of inefficient code that inspired this paper, and we suspect is many other similar cases, the developers have done what they have been trained to do, carefully reducing disk access, but the approach is obviously failing." 17:01:52 ... 17:01:52 mroman: It doesn't matter. An O(n^2) algorithm will be slower than an O(n) one if you pick n large enough. 17:02:07 But from that perspective, you can condens the "paper" into one paragraph. 17:02:12 *condense 17:02:21 what the hell does this have to do with web applications o_O 17:02:33 -!- SopaXorzTaker has joined. 17:02:35 I'm not going to write to a temp file and then read it for string concatenation o_O 17:02:39 i mean 17:02:47 it probably won't even spin up the disk due to buffers 17:02:49 but... 17:02:53 still 17:03:03 A lot, assembling strings by concatenating small parts is *very* common. 17:03:41 And streaming helps to relieve some memory pressure (now there would be another paragraph for the "paper", but they do not touch upon that part of the problem). 17:04:07 small string concat is indeed very common yes 17:04:17 but since you need to deliver the "end result" to the client 17:04:28 Don't get me wrong, it's an awful paper all around. It's overselling a trivial problem and to top it off, it's drawing the wrong conclusions. 17:04:34 I mean 17:04:40 php already does streaming anyway? 17:04:42 heh. slashdot still exists? 17:04:43 I think 17:05:01 of course just writing to a network socket is probably better than concating it in memory and then write it to the socket 17:05:22 especially using immutable strings 17:05:38 but they don't even get to that point 17:06:07 but but but StringBuilder 17:06:20 it's not like the java architects haven't thought about this problem 17:06:45 tl;dr i share your facepalm mroman 17:07:06 I think we all agree on that. 17:08:18 hm. 17:08:19 (I'm just defending the point that the observed problem is real.) 17:08:21 Seems php doesn't do streaming? 17:08:39 there's ob_flush at least hm. 17:08:45 (I don't know PHP at all) 17:09:16 "Why do you want to use a StringBuilder? Strings in php are mutable. Therefore performance is not an issue." - because mutability solves all performance issues! 17:10:40 php has mutable strings? 17:14:46 You sound surprised, don't youb know that PHP implements all bad ideas found in other programming languages ;) 17:17:45 well 17:17:53 I'm surprised you can publish something like this :) 17:18:35 and what I know about PHP is that uhm... 17:18:40 it has these weird things like register_globals? 17:18:43 magic_quotes 17:18:44 and 17:19:18 which I think works like that that it automatically manipulates the input from the user 17:19:33 so you don't get the actual user input 17:19:47 in php, == isn't transitive 17:19:48 and then doing some string concat for buildin an SQL query 17:19:49 wtf. They're using concatString = addString + concatString ....... 17:20:02 int-e: of course! 17:20:13 You have to check if a = a + b is faster than a = b + a or not 17:20:18 but then their "disk writing" code is not even equivalent. 17:20:22 mroman: well, it is! 17:20:24 e.g. false == 0 && 0 == "0" && false != "0" 17:20:44 looks like javascript 17:20:46 =,==,=== 17:20:52 My newest esolang will have ==== 17:21:02 great! 17:21:06 Yes. 17:21:11 "0" == 0 will be true 17:21:20 because == tries some automatic conversions 17:21:28 "0" === 0 will be false because not same type 17:21:33 0 === 0 is obviously true 17:21:40 but!!! 17:21:51 $a = 0; $b = 0; $a === $b; will be true 17:21:58 however, $a ==== $b; won't 17:22:09 more equal signs should mean that it tries harder to make things equal, so that e.g. 0 ================== 1 17:22:17 because ==== checks if both are the same variables! 17:22:18 so 17:22:23 $a ==== $a is in fact true 17:22:24 mroman: how is thaz any useful? 17:22:30 but $a ==== $b is not 17:22:41 myname: well it's probably useful when call by reference is used? 17:22:43 -!- Phantom_Hoover has joined. 17:22:44 like uhm 17:22:52 func foo($a, $b) { return $a ==== $b; } 17:23:08 foo($a, $a); will be true but foo($a, $b); won't? 17:23:23 but in foo they are different variable 17:23:29 yeah 17:23:33 but the same reference! 17:23:40 so ==== would essentially compare references 17:24:02 like java's == does 17:24:24 i thought about using = as a unary symbol and making prime numbers variables 17:24:45 and! 17:24:47 ===== 17:24:57 like ======7 would set the var 5 to the value 7 17:24:59 only compares constants 17:25:30 or literals 17:25:30 hm 17:25:41 =======7 would compare var 5 with value 7 17:25:55 5 ==== 5 would probably not be true since it's probably treated as new Integer(5) == new Integer(5)? 17:26:03 whatever 17:26:06 :p 17:26:08 I'm going home. 17:27:17 Do NOT try to reason about PHP. 17:27:26 Just, NO. 17:29:12 next you'll tell us not to do surgery with a tea spoon 17:51:54 i'm only trying to save your souls 17:53:11 -!- Koen_ has joined. 18:17:10 -!- zadock has joined. 18:26:22 -!- vodkode_ has joined. 18:43:34 -!- cpressey has quit (Quit: leaving). 18:56:50 php is basically built so that copypaste programs can work 19:03:00 -!- qlkzy has quit (Ping timeout: 246 seconds). 19:05:58 -!- SopaXorzTaker has quit (Remote host closed the connection). 19:11:55 -!- dianne has joined. 19:13:09 -!- qlkzy has joined. 19:14:24 -!- elliott has quit (Ping timeout: 264 seconds). 19:14:41 -!- elliott has joined. 19:15:04 -!- elliott has changed nick to Guest90077. 19:22:01 @metar LOWI 19:22:02 LOWI 251850Z VRB02KT 9999 FEW050 SCT065 BKN080 11/04 Q1001 NOSIG 19:22:16 -!- Guest90077 has quit (Changing host). 19:22:16 -!- Guest90077 has joined. 19:22:20 -!- Guest90077 has changed nick to elliott. 19:23:03 izabera: I was about to ask what the intended purpose of random_elliott was 19:23:11 it was very confusing thanks to just having woken up 19:24:16 -!- vodkode_ has quit (Ping timeout: 265 seconds). 19:28:20 -!- Koen_ has quit (Quit: Koen_). 19:30:30 yes! 19:30:35 i wanted to confuse you 19:34:32 you said that with the right random source you could use shuf just like cat 19:35:12 ` echo 123 | sort | shuf | cat | tac 19:35:13 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: : not found 19:35:15 `` echo 123 | sort | shuf | cat | tac 19:35:16 123 19:38:31 izabera: yeah, I realised that pretty quickly, hehe 19:38:47 izabera: I was just like "is this a command to print random letters at me? what is this for? why me? help?" 19:38:51 -!- GeekDude has quit (Quit: {{{}}{{{}}{{}}}{{}}} (www.adiirc.com)). 19:52:49 -!- oerjan has joined. 19:54:22 @messages- 19:54:22 cpressey said 7h 41m 6s ago: so there's more than one ring over the rationals; that's what i suspected/all i wanted to know. thanks. 19:54:23 cpressey said 7h 26m 36s ago: in your monad-over-finite-lists, is that "finite and fixed length" or "finite but unbounded length"? because if the latter, that would count, in strict/eager functional programming (I don't see why not anyway) 19:55:00 @tell cpressey finite but unbounded length, is the intention. 19:55:00 Consider it noted. 19:59:11 -!- Patashu has joined. 20:05:16 oerjan: are you sure it's a monad btw? 20:05:20 you have a bad history with monads on [] :P 20:05:26 heh 20:06:03 i think it is a monad but who is ever sure. 20:06:16 oerjan: hmm, I wonder when Cheyenne will get around to coloring the March 4th and 13th comics... 20:06:45 the first monad law is obviously true by construction. the second is nearly obvious. 20:07:12 the third needs a bit of thinking, but i think it is true. 20:09:03 @let dbind [x] f = f x; dbind l f | all ((==1).length) l' = concat l' where l' = map f l 20:09:07 Defined. 20:10:38 @check \x f g -> (((x::[Int]) `dbind` f :: [Int]) `dbind` g :: [Int]) == x `dbind` \t -> f t `dbind` g 20:10:40 *** Failed! (after 3 tests and 4 shrinks): 20:10:40 Exception: L.hs:(157,1)-(159,20): Non-exhaustive patterns in function dbind ... 20:10:48 oops 20:10:54 @undef 20:11:15 @undef 20:11:16 Undefined. 20:11:19 @let dbind [x] f = f x; dbind l f | all ((==1).length) l' = concat l' | otherwise = [] where l' = map f l 20:11:22 Defined. 20:11:26 @check \x f g -> (((x::[Int]) `dbind` f :: [Int]) `dbind` g :: [Int]) == x `dbind` \t -> f t `dbind` g 20:11:28 +++ OK, passed 100 tests. 20:11:34 looks good 20:12:22 int-e: if it's not done already it'll probably be "whenever" up until actual printed version 20:13:42 @check \x -> ((x::[Int]) `dbind` return) == x 20:13:44 +++ OK, passed 100 tests. 20:15:01 @tell cpressey Checked my monad with @check hth 20:15:02 Consider it noted. 20:16:13 -!- Phantom_Hoover has quit (Ping timeout: 264 seconds). 20:17:03 -!- lambdabot has quit (Quit: 5.0.1? 5.0.1!). 20:19:32 -!- shikhin_ has joined. 20:19:49 -!- shikhin has quit (Disconnected by services). 20:19:52 -!- shikhin_ has changed nick to shikhin. 20:20:35 int-e: is it getting 7.10 now? 20:20:42 no 20:21:02 aww 20:21:06 I'm waiting for the official release. 20:21:35 -!- lambdabot has joined. 20:21:53 -!- Patashu has quit (Ping timeout: 252 seconds). 20:24:43 int-e: hm, do you maintain lambdabot now? 20:24:46 the source code 20:24:56 mostly? 20:25:02 heh 20:26:19 @version 20:26:19 lambdabot 5.0.1 20:26:19 git clone https://github.com/lambdabot/lambdabot 20:40:43 -!- zadock has quit (Quit: Leaving). 21:05:04 -!- Lymia has quit (Ping timeout: 256 seconds). 21:17:54 -!- ais523 has joined. 21:18:28 -!- ProofTechnique has quit (Ping timeout: 245 seconds). 21:39:47 [wiki] [[Duck Duck Goose]] http://esolangs.org/w/index.php?diff=42192&oldid=42190 * 81.102.250.85 * (+67) inspiration 21:42:28 -!- Lymia has joined. 21:45:16 elliott, there? 21:45:34 no. hi 21:46:00 I'm here, but not elliott (as opposed to elliott, who is elliott but not here) 21:46:14 I have no idea if this exists or not... Something like vnc that uses the GPU on the server to render and then compresses the data for reasonable transfer speed, the one you mentioned the other day didn't do OpenGL stuff did it? 21:46:29 xpra 21:46:36 I think it does OpenGL? 21:46:40 Ah nice 21:46:43 I don't know. it's good, anyway. 21:46:45 Then this might be salvagble 21:46:47 something like that, you'd /expect/ it to use OpenGL 21:46:55 you can also adjust it to use lossless compression or lossy H.264 or whatever 21:46:57 it's pretty flexible 21:47:06 and it does rootless too 21:47:09 it's really nice 21:47:15 I wouldn't, like, watch youtube videos with it, though. 21:47:19 not sure how many servers have working DirectX, and there currently are no other graphics APIs that are nearly as popular 21:47:33 well youtube is sending H.264 or WebM anyway 21:47:47 so decoding and re-encoding the video could only make things worse 21:48:02 ais523, well I want it to reasonably be able to run a program using OpenGL, the client I'm connecting from has old old intel graphics 21:48:15 The desktop I want to remote to has a reasonable AMD GPU 21:49:15 And I want to use some programs that are GPU heavy (as in GPGPU with OpenCL + OpenGL visualization) 21:50:07 Though it appears debian has a super old xpra version 21:50:08 oh wlel 21:50:09 well* 21:50:20 Oh no, there is a backports 21:50:36 -!- gde33 has joined. 21:50:39 which is newer than the version I want to connect from, on an ubuntu laptop 21:56:23 -!- heroux has quit (Ping timeout: 245 seconds). 21:58:08 [wiki] [[Duck Duck Goose]] http://esolangs.org/w/index.php?diff=42193&oldid=42192 * Vriskanon * (+407) Moved the Tutorial/List_of_Instructions to a table 21:58:11 -!- heroux has joined. 21:59:45 [wiki] [[Duck Duck Goose]] M http://esolangs.org/w/index.php?diff=42194&oldid=42193 * Vriskanon * (-82) Fixed 10 Ducks (Loop Ends) 22:00:43 [wiki] [[Duck Duck Goose]] M http://esolangs.org/w/index.php?diff=42195&oldid=42194 * Vriskanon * (+0) Put a Y in the 10 Ducks row where N should have been. 22:03:29 Yeah that didn't work, time to try to find compatible versions 22:03:59 [wiki] [[Duck Duck Goose]] http://esolangs.org/w/index.php?diff=42196&oldid=42195 * Vriskanon * (+0) 22:04:43 -!- `^_^v has quit (Ping timeout: 256 seconds). 22:04:56 elliott, yep, once you install exactly the same version on both sides, it works 22:05:09 of xpra? yeah 22:09:49 -!- callforjudgement has joined. 22:09:58 -!- GeekDude has joined. 22:11:09 [wiki] [[Duck Duck Goose]] http://esolangs.org/w/index.php?diff=42197&oldid=42196 * Vriskanon * (+317) More Clear Sections 22:11:15 $ glxgears 22:11:15 X Error of failed request: BadRequest (invalid request code or no such operation) 22:11:15 Major opcode of failed request: 135 (GLX) 22:11:15 Minor opcode of failed request: 19 (X_GLXQueryServerString) 22:11:15 Serial number of failed request: 12 22:11:16 Current serial number in output stream: 12 22:11:18 elliott, well, crap 22:11:32 It works fine for none opengl stuff though 22:11:36 I guess you can use VNC? 22:11:47 x11vnc might be worth a try 22:11:51 How do I enable OpenGL or other X11 extensions on the server? 22:11:51 Please see Xdummy, for acceleration see ​virtualgl 22:11:56 Ah 22:11:58 https://www.xpra.org/trac/wiki/Xdummy http://www.virtualgl.org/ 22:12:02 I'll look into that 22:12:06 -!- ais523 has quit (Disconnected by services). 22:12:07 -!- callforjudgement has changed nick to ais523. 22:12:23 The best way to deal with this is to use ​VirtualGL to take advantage of the OpenGL acceleration provided by the graphics card, just run: vglrun yourapplication. 22:13:00 [wiki] [[Duck Duck Goose]] M http://esolangs.org/w/index.php?diff=42198&oldid=42197 * Vriskanon * (+62) 22:13:01 elliott, as long as it is the server that is doing the rendering I'm happy 22:13:02 http://www.virtualgl.org/About/Introduction yeah 22:13:04 this looks like what you want 22:13:24 elliott, because the client can't do opengl for shit. It is a core 2 duo and intel graphics 22:14:31 [wiki] [[User:Vriskanon]] N http://esolangs.org/w/index.php?oldid=42199 * Vriskanon * (+134) Who is Vriskanon 22:15:12 elliott, need to build it, doesn't appear to be packaged... And yeah 22:16:17 -!- L8D has joined. 22:16:25 -!- L8D has left. 22:25:42 @tell int-e it seems like the fix to Typeable introduced the new bug that is currently holding up ghc :P https://mail.haskell.org/pipermail/ghc-devs/2015-March/008570.html 22:25:42 Consider it noted. 22:27:38 I'm not surprised 22:29:08 well there's also a haddock problem. and spj just went on vacation. 22:34:42 -!- zzo38 has joined. 22:37:23 elliott, hm I can't get virtualgl to work inside xpra, though it does work natively on the machine 22:37:42 maybe run it outside 22:37:45 like virtualgl xpra ... 22:37:46 uh maybe not 22:37:47 but like 22:37:52 virtualgl xpra-server-i-forget-how-you-start-it ... 22:37:59 or xpra --xpra-server-thing=virtualgl blahhh idk 22:38:01 "something like that" 22:38:06 if you google xpra virtualgl there's probably something 22:38:26 https://www.xpra.org/trac/ticket/320 22:38:55 https://www.xpra.org/trac/wiki/Xdummy might help too 22:41:04 I read both of those already :/ 22:41:28 "Proprietary drivers often install their own copy of libGL which conflicts with the use of software GL rendering. You cannot use this GL library to render directly on Xdummy (or Xvfb). 22:41:28 The best way to deal with this is to use ​VirtualGL to take advantage of the OpenGL acceleration provided by the graphics card, just run: vglrun yourapplication." 22:41:41 The former is the case, but the latter should deal with this I thought? 22:41:52 well, how are you actually doing it 22:41:56 like where are you putting vglrun 22:42:28 in an xterm opened over xpra I'm trying to run vglrun glxgears (as a test) 22:42:43 I figure that getting glxgears to work should be the most basic step 22:42:52 well, idk. can't really debug from "doesn't work" 22:42:52 -!- Phantom_Hoover has joined. 22:42:57 but maybe you need to do the "+extension GLX +extension RANDR +extension RENDER" thing 22:43:00 from that wiki page 22:43:46 xvfb=Xorg -dpi 96 -noreset -nolisten tcp +extension GLX +extension RANDR +extension RENDER -logfile ${HOME}/.xpra/Xorg.${DISPLAY}.log -config /etc/xpra/xorg.conf 22:43:52 yeah it is already there, checked that 22:43:58 That is the default setup 22:44:13 I dunno, you haven't even told me the error or anything :p I'm no expert though 22:44:16 I'd just dig in logs and stuff 22:44:17 and try random things 22:44:34 and try vglrun wrapping different things 22:44:51 Yeah tried glxinfo too, no luck 22:44:54 -!- GeekDude has quit (Ping timeout: 246 seconds). 22:44:57 Right, bug 320 does seem a bit more relevant 22:45:13 It mentions fglrx issues... 22:47:27 -!- AnotherTest has quit (Ping timeout: 252 seconds). 22:48:18 elliott, might be worth trying something like turbovnc + virtualgl though 22:51:02 -!- GeekDude has joined. 22:52:16 oerjan: #10176 is the bug (hmm, and the fix doesn't touch any of the code that was changed by the Typeable patch, isn't that fun.) I hear (on #ghc) that Austin is struggling with the haddock thing. 22:54:25 -!- vodkode_ has joined. 22:55:23 mhm 22:58:07 good morning 23:06:54 -!- Koen_ has joined. 23:11:37 Have you created any RDF namespaces or any XML namespaces or any UUIDs? 23:17:54 -!- shikhin has quit (Ping timeout: 272 seconds). 23:21:51 -!- ais523 has quit (Read error: Connection reset by peer). 23:22:07 -!- ais523 has joined. 23:38:02 -!- ais523 has quit (Read error: Connection reset by peer). 23:38:12 -!- ais523 has joined. 23:38:25 `uuidgen 23:38:27 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: uuidgen: not found 23:39:03 `cat /proc/sys/kernel/random/uuid 23:39:04 a8ce6013-1813-47c6-9f42-56be50696a28 23:39:21 -!- vodkode_ has quit (Ping timeout: 250 seconds). 23:39:25 is that what you were looking for? it's a kernelspace utility nowadays, not userspace, for some reason 23:39:46 Why is it kernelspace utility now? 23:40:07 I don't know 23:40:20 I wrote my own version 1 UUID generator, but I want to know if you have used UUID you make up by yourself 23:43:27 -!- Koen_ has quit (Quit: The struct held his beloved integer in his strong, protecting arms, his eyes like sapphire orbs staring into her own. "W-will you... Will you union me?"). 23:51:26 -!- oerjan has quit (Quit: Nite). 23:53:30 ais523: http://stackoverflow.com/questions/5873099/is-proc-sys-kernel-random-uuid-strong-keying-material 23:53:41 oh, hmm 23:53:47 okay so it's not one of the bad UUID formats 23:53:55 haha, people are /seeding/ with that? :-) 23:54:00 anyway I don't think uuidgen stopped existing or anything... 23:54:56 but yes, if you're seeding, use /dev/random or /dev/urandom depending on why you're seeding 23:55:01 it is a bit weird that the UUID logic is in kernelspace but I guess it's trivial enough 23:55:01 -!- zadock has joined. 23:55:02 that's what they're /for/ 23:55:05 it's just like /dev/urandom really 23:55:11 bu with formatting crap on top of it 23:55:23 /dev/urandom is kernelspace for a good reason, though 23:55:31 I don't think it's possible to implement in userspace 23:55:37 yeah 23:55:41 -!- zzo38 has quit (Remote host closed the connection). 23:55:43 for the reason that /dev/random might have zero entropy the first time you try to access urandom1) 23:55:46 *urandom(1) 23:57:47 -!- callforjudgement has joined. 23:58:08 -!- ais523 has quit (Disconnected by services). 23:58:09 -!- callforjudgement has changed nick to ais523. 23:58:20 hmm, I should probably change aimake's GUID generation to use version 3 or 5 GUIDs 23:58:57 because atm it's basically just using a truncated hash as the entire GUID, relying on the chance of collisions being basically 0 for uniqueness