00:02:32 -!- Lyka|Away has changed nick to Lyka. 00:53:29 -!- Tritonio has quit (Remote host closed the connection). 01:07:30 -!- hjulle has joined. 01:23:59 -!- evalj has quit (Remote host closed the connection). 01:29:47 -!- a2 has joined. 01:37:18 -!- ZombieAlive has joined. 01:42:16 `le/rn whitespace/see https://www.bing.com/search?q=whitespace 01:42:18 Learned «whitespace» 01:51:28 -!- kokut has joined. 01:55:52 -!- kokut has left. 01:56:11 -!- Lyka has changed nick to Lyka|Away. 02:02:41 -!- hjulle has quit (Ping timeout: 244 seconds). 02:19:32 `? whitespace 02:19:32 see https://www.bing.com/search?q=whitespace 02:28:17 -!- alguien has joined. 02:30:50 -!- G33kDude has joined. 02:37:15 -!- variable has joined. 02:38:41 -!- Phantom_Hoover has quit (Read error: Connection reset by peer). 02:44:57 -!- GeekDude has joined. 02:45:17 No results at all? 02:45:29 Bing you're awful. 02:48:39 http://www.baidu.com/s?ie=utf-8&tn=baidu&wd=whitespace 02:49:04 note the great suggestions on the righthand side 02:49:22 baidu knows what's up. 02:50:44 It certainly does. 02:51:19 -!- G33kDude has quit (Quit: {{{}}{{{}}{{}}}{{}}} (www.adiirc.com)). 02:51:29 what a weird book! interesting 03:12:43 Why is my radio scratchy when I stand near it? 03:13:43 perhaps you have fleas 03:14:06 :) 03:15:19 It only happens with one of my radios, is independent of the channel it is tuned to, and doesn't happen when different people stand near the radio instead. 03:16:16 It also does not happen when it is playing a tape or CD. 03:18:26 You're interfering 03:18:36 You need to clear yourself with the fcv 03:18:42 FCC* 03:19:00 I don't get this problem with any other radio. 03:19:08 (Also, it is independent of AM/FM) 03:22:07 Psychic powers. 03:22:40 The radio is aware, and attemtping to respond to you. 03:26:40 I doubt it 03:28:52 -!- alguien has quit (Quit: Leaving). 03:38:54 -!- f|`-`|f_ has joined. 03:40:35 -!- f|`-`|f has quit (Ping timeout: 272 seconds). 03:40:49 -!- f|`-`|f_ has changed nick to f|`-`|f. 04:17:58 With one of my old TV's I would get the best reception by holding the speaker wire antena really tight 04:40:17 -!- GeekDude has quit (Quit: ZNC - http://znc.in). 05:08:36 -!- pikhq has quit (Ping timeout: 272 seconds). 05:10:50 `? Haskell 05:11:03 Unbound implicit parameter (?haskell::Wisdom) \ arising from a use of implicit parameter `?haskell' 05:12:35 `? trope 05:12:35 trope? ¯\(°​_o)/¯ 05:12:39 `? All The Tropes 05:12:39 All The Tropes? ¯\(°​_o)/¯ 05:13:27 `le/rn All The Tropes/A card game where you win if you collect *all* of the tropes. 05:13:29 Learned «all the tropes» 05:16:58 `? esoteric 05:17:01 This channel is about programming -- for the other kind of esoterica, try #esoteric on irc.dal.net. 05:17:13 `? irc.dal.net 05:17:13 irc.dal.net? ¯\(°​_o)/¯ 05:17:41 `? copumpkin 05:17:42 copumpkin is categorically incapable of being president. 05:17:48 `? GeekDude 05:17:48 GeekDude? ¯\(°​_o)/¯ 05:17:52 `? MDude 05:17:53 MDude is just a dude, with an M's courage. 05:18:07 `? variable 05:18:08 variable? ¯\(°​_o)/¯ 05:18:19 That's true. 05:18:21 `? le/rn 05:18:21 le/rn? ¯\(°​_o)/¯ 05:19:09 `? HTTP 05:19:10 HTTP? ¯\(°​_o)/¯ 05:19:14 `? gopher 05:19:15 Gopher is int-e's vision of the successor of HTTP/2. 05:20:08 `? Iuckqlwviv Kjugobe 05:20:09 Iuckqlwviv Kjugobe? ¯\(°​_o)/¯ 05:20:12 `? TeX 05:20:13 TeX? ¯\(°​_o)/¯ 05:20:17 `? LaTeX 05:20:18 LaTeX is \end{verbatim} \textbackslash textbackslash begin\textbackslash \{document\textbackslash \} 05:20:26 `? Plain TeX 05:20:26 Plain TeX? ¯\(°​_o)/¯ 05:20:37 `? math 05:20:38 math? ¯\(°​_o)/¯ 05:20:45 `? ping 05:20:46 ping? ¯\(°​_o)/¯ 05:21:17 `? Python 05:21:18 Python? ¯\(°​_o)/¯ 05:21:28 `? Unlambda 05:21:29 Unlambda? ¯\(°​_o)/¯ 05:21:47 `? HTTP/2 05:21:48 HTTP/2? ¯\(°​_o)/¯ 05:27:11 [wiki] [[User:Imaginer1]] http://esolangs.org/w/index.php?diff=43162&oldid=40485 * Imaginer1 * (+24) 05:27:40 [wiki] [[Bitoven]] http://esolangs.org/w/index.php?diff=43163&oldid=40675 * Imaginer1 * (-59) Removed shameless plug 05:33:10 [wiki] [[Talk:Wordfuck]] http://esolangs.org/w/index.php?diff=43164&oldid=40325 * Imaginer1 * (+65) 05:33:20 `? pope 05:33:21 pope? ¯\(°​_o)/¯ 05:33:24 [wiki] [[Talk:Wordfuck]] http://esolangs.org/w/index.php?diff=43165&oldid=43164 * Imaginer1 * (+11) 05:35:32 [wiki] [[Wordfuck]] http://esolangs.org/w/index.php?diff=43166&oldid=40386 * Imaginer1 * (-881) 05:37:56 http://davidbau.com/complex/#z^%281%2Bt*4%29%2B%281-t%29 05:38:03 `? / 05:38:04 cat: /: Is a directory 05:38:19 See? 05:38:25 [wiki] [[Language list]] http://esolangs.org/w/index.php?diff=43167&oldid=43146 * Imaginer1 * (+14) Added bitoven 05:39:11 [wiki] [[Bitoven]] http://esolangs.org/w/index.php?diff=43168&oldid=43163 * Imaginer1 * (-4) It's not really WIP. 05:40:13 [wiki] [[Bitoven]] http://esolangs.org/w/index.php?diff=43169&oldid=43168 * Imaginer1 * (+77) Added a clarification to the while loop. 05:44:56 -!- MDude has quit (Ping timeout: 256 seconds). 06:03:38 -!- variable has quit (Ping timeout: 256 seconds). 06:05:30 -!- digitalcold has quit (Ping timeout: 244 seconds). 06:05:41 -!- digitalcold has joined. 06:08:01 -!- infinitymaster has joined. 06:08:33 That is how many files you didn't write. 06:08:50 how many? 06:12:55 -!- password2_ has joined. 06:16:23 A lot. I just queried some of them, many of which don't exist. 06:34:32 -!- Lyka|Away has changed nick to Lyka|Phone. 06:35:16 zzo38:Hi 06:37:21 I think i've stabilized the language for now 06:39:17 we'll see how the extension protocol works with 4FK Cuddlefish when the final component arrives tomorrow 06:39:53 -!- pikhq has joined. 06:40:28 I will have to add commands, but I assume they will be extension commands 06:42:09 I might have to make a for command 06:42:48 okay, my vision is getting blurry from fatigue 06:43:02 night all 06:50:25 -!- Lyka|Phone has changed nick to Lyka|Away. 07:00:32 -!- infinitymaster has quit (Read error: Connection reset by peer). 07:01:06 -!- infinitymaster has joined. 07:04:16 -!- Herbalist has quit (Ping timeout: 256 seconds). 07:54:25 `? /hackenv/canary 07:54:25 chirp 07:54:28 Useful. 07:54:46 Why the hell is there no tag?!?!?! 07:59:22 To do what? 07:59:54 To insert HTML into HTML 08:00:18 or any other language that needs < > ' & 08:00:48 How would it work for "" in verbatim? 08:01:27 (There's the CDATA section in XML for that, but I'm not sure / don't think it's in modern HTML.) 08:01:29 maybe ? 08:02:31 For now I'll just translate it in PHP... 08:02:41 No, I'm wrong -- it's in the W3 HTML5 spec, at least. 08:02:49 oh? 08:03:00 I don't & care ]]> 08:03:17 (It's bad if you happen to need "]]>", though.) 08:03:32 Oh, only in foreign content. 08:03:35 Never mind, then. 08:03:45 "CDATA sections can only be used in foreign content (MathML or SVG)." 08:03:46 shit 08:04:59 ,,1+1+,1+1 08:05:47 *Main> run $ runParserWithString parseExpression ",,+1++1+,+1++1" 08:05:47 LitInt 8 08:06:28 That's (++1 + ++1) + (++1 + ++1) 08:06:32 in a more C like notation 08:07:15 +,+,+1++1++,+1++1 is ++(++(++1 + ++ 1) + ++(++1 + ++ 1)) 08:07:52 *Main> run $ runParserWithString parseExpression "+,+,+1++1++,+1++1" 08:07:53 LitInt 11 08:08:18 Figuring out what the , does is left as an exercise for the reader :p 08:08:39 The ++1 part keeps wierding me out, because ++x is quite different from (x+1) in C. 08:08:54 Yeah :) 08:09:10 Prefix + is just increment 08:09:15 Infix + regular addition 08:12:13 *Main> run $ runParserWithString parseExpression "+.+,+,+1++1++,+1++1-" 08:12:14 LitInt (-10) 08:12:55 These would be good exercises for IT students to figure out :D 08:13:42 fizzie: Instead of brackets it uses , and . 08:13:48 , denotes infix and . denotes postfix 08:14:08 otherwise it is prefix 08:14:59 ,+1+1 is inc(1)+1 08:15:21 .,+1+1 is neg(inc(1)+1) 08:15:27 *.,+1+1- 08:15:38 - postfix always forms a negative number 08:16:35 In HTML there is a command to make plain text directly but then you can't type inside of it. There is also which cannot be terminated at all. 08:17:03 <mroman_> Does HTML5 still have that? 08:17:05 <zzo38> Therefore it can include any text including </plaintext> or whatever else you want it to include 08:20:04 <oren> xmp is supposedly an "obsolete feature" according to mozilla.org. god damn it, I hate these people 08:21:04 <oren> they put in a new tag and take out the old tag, and soon old web pages on the internet archive won't render 08:21:34 <mroman_> What does .,5+,3*3- evaluate to ;)? 08:25:18 -!- password2_ has quit (Ping timeout: 256 seconds). 08:28:29 <mroman_> which is the same as ,,5+,3*3*_1 08:28:34 <mroman_> using J notation for negative numbers 08:29:41 <fizzie> <plaintext> seems even worse. "This element has been deprecated since HTML 2 and was never implemented by all browsers; even those that did implement it didn't do so consistently. In addition, it is obsoleted in HTML 5; browsers that still accept it may simply treat it as a <pre> element, which still interprets HTML within, even though that's not what you probably want." 08:30:03 <fizzie> I think people generally just escape. 08:30:18 <mroman_> Having to escape in pre always bothered me 08:30:43 <mroman_> <verbatim end="EOF">hi there <b>hi</b>EOF 08:30:46 <mroman_> that would be nice :D 08:31:05 <fizzie> There seems to also have been a <listing>, which "is deprecated since HTML 3.2 and was neither implemented by all browsers, nor in a consistent way." 08:31:34 <mroman_> although browsers seem smart enough to render things like <pre>for(int j = 0; j < x; j++)</pre> still correctly 08:31:57 <mroman_> where corretly means like the user would have expected not knowing he'd better escape the < 08:33:23 -!- password2_ has joined. 08:45:10 <mroman_> Well, Burlesque won't have a chance against this new language :D 08:51:45 <Taneb> Gooood morning 08:51:47 -!- Tritonio has joined. 08:52:53 <fizzie> "Good morning Europe!", to ape the Eurovision greetings. 08:52:55 <mroman_> 5 10r@#S is now just U,5:10 08:53:19 <fizzie> They said "Good morning, Australia!" so often. 08:54:13 -!- Tritonio has quit (Remote host closed the connection). 08:54:18 -!- infinitymaster has quit (Quit: Leaving...). 09:00:17 <oren> good morning! 09:23:39 <mroman_> *Main> run $ runParserWithString parseExpression ",:4M{:p}" 09:23:40 <mroman_> [[1] [1 2] [1 2 3] [1 2 3 4]] 09:24:49 <mroman_> infix map looks kinda strange though 09:32:00 <mroman_> Although the closing } is purely optional of course :D 09:32:11 -!- Welo has joined. 09:32:35 <mroman_> 4ro)ro)<- is now just ,:4M{~:p 09:59:01 -!- Wright_ has joined. 09:59:01 -!- Wright has quit (Read error: Connection reset by peer). 10:16:54 -!- Wright_ has quit (Read error: Connection reset by peer). 10:17:47 <HackEgo> [wiki] [[Gulf]] N http://esolangs.org/w/index.php?oldid=43170 * 160.85.232.184 * (+764) Gulf - a new kind of Burlesque 10:20:04 -!- ztirf has joined. 11:03:15 -!- f|`-`|f has quit (Ping timeout: 245 seconds). 11:04:41 -!- f|`-`|f has joined. 11:19:44 -!- Phantom_Hoover has joined. 11:42:40 -!- scoofy has quit (Ping timeout: 272 seconds). 11:42:58 <mroman_> > foldl1 (-) [1..4] 11:43:00 <lambdabot> -8 11:43:19 <mroman_> perfect 11:45:48 <mroman_> ,:4R{,p*p 11:46:04 <mroman_> p is a special variable that refers to the top of the stack (and pops when read) 11:49:49 -!- ztirf has quit (Quit: Nettalk6 - www.ntalk.de). 11:54:04 -!- nys has joined. 12:06:59 -!- j-bot has quit (Remote host closed the connection). 12:19:33 -!- j-bot has joined. 12:32:09 <mroman_> jesus christ fuck the Java ecosystem . 12:32:52 <int-e> you want it to breed? 12:33:12 -!- Patashu has quit (Ping timeout: 255 seconds). 12:34:43 <mroman_> no 12:34:45 <mroman_> I wan't it to work 12:34:48 <mroman_> *want 12:34:54 <mroman_> and give reasonable errors AT FUCKING COMPILE TIME 12:35:17 <int-e> ...wait 18 years...oh wait, java is actually old enough... 12:39:03 <mroman_> this JPA shit is really getting on my nerves 12:44:10 -!- toxolotl1 has joined. 12:44:57 <mroman_> java.lang.NoSuchMethodError: org.slf4j.spi.LocationAwareLogger.log 12:45:00 <mroman_> ^- shit like that 12:45:23 <mroman_> those are runtime incompatabilities you have no chance detecting until it's too late 12:47:01 <mroman_> most of the JPA stuff works 12:47:03 <mroman_> except making queries 12:47:11 <mroman_> which results in another stupid runtime error 12:47:15 <mroman_> NoSuchFieldError 12:47:20 <mroman_> are you kidding me, java folks? 12:58:13 <int-e> welcome to the wonderful world of reflection and mirages... 13:00:15 <int-e> . o O ( no springs attached ) 13:02:20 <mroman_> Class has two properties of the same name "members 13:02:25 <mroman_> How the fuck is that even possible? 13:05:04 -!- J_Arcane_ has joined. 13:05:56 <int-e> oh that's a good one, I have no clue. 13:05:58 <Jafet> Remember when java was young and innocent 13:06:11 <Jafet> Before it grew hot spots 13:06:26 <int-e> Jafet: you mean when it was unusable and ridiculously slow? 13:06:39 <mroman_> I'm becoming a hater of reflection/runtime magic 13:06:46 <mroman_> even though runtime magic solves a lot of problems 13:06:52 <int-e> (rather than unusable and ridiculously memory hungry) 13:06:52 <mroman_> it introduces a hell lot of other problems as well 13:07:01 -!- J_Arcane has quit (Ping timeout: 258 seconds). 13:07:14 -!- J_Arcane_ has changed nick to J_Arcane. 13:07:15 <mroman_> well... it turns out that when I run it from eclipse eclipse injects some old version of something 13:07:23 <mroman_> which causes runtime incompatibilities 13:07:29 <int-e> mroman_: can you still laugh about the term "XML programming"? 13:07:44 <mroman_> What's XML programming? 13:07:54 <int-e> I remember that after some forays into spring configuration files, I no longer could. 13:08:13 <mroman_> Is that the thing in Java that all configuration is made with huuuuge xml files 13:08:47 <mroman_> that have to be in some specific directories 13:08:51 <mroman_> or in the classpath 13:08:53 <mroman_> or somewhere else 13:09:07 <int-e> "XML programming" is a variation on "HTML programming", which is a derogatory term, a half joke. 13:09:14 <mroman_> Oh. I see. 13:09:18 <mroman_> Well 13:09:25 <mroman_> You can program in XLST or something though? 13:09:48 * int-e hopes that's xslt 13:10:07 <mroman_> Right. :) 13:10:14 <mroman_> I've never used that. 13:10:21 <mroman_> I've heavily used JAXB though. 13:10:24 <mroman_> and JAX-RS 13:10:27 <int-e> I agree it's an actual programming language, but it really needs a better syntax. 13:10:54 <int-e> I'm not kidding. XML syntax is *not* human readable, never mind maintainable. 13:10:54 <mroman_> and this whole servlet containers, servlets and whatever thing is also a huge mess 13:11:12 <mroman_> there are different servlets, different servlet containers, different implementations of jax-rs and 13:12:24 <mroman_> the hardest part of being a java programmer is navigating through this ugly mess of things :) 13:12:57 <int-e> anyway, back when I was dabbling with some enterprisey java behemoth, the two things I hated most were a) dependency injection via XML (e.g. spring) and b) browsing source code files and ending up with an interface ... whuch then turns out to have exactly one implementation. 13:13:57 <mroman_> I'm using guice for that 13:14:01 <mroman_> to inject things 13:14:06 <int-e> hmm, "whuch" 13:14:24 <mroman_> It has it's downside though 13:14:24 <int-e> that was 5 years ago, I have not touched Java since 13:14:33 <mroman_> for simple stuff I'd prefer factories but that's just my opinion 13:15:06 <mroman_> the good thing is that every java newcomer will now what a factory is 13:15:30 <mroman_> but reading up on all the crazy shit you can do with guice and then use it in a reasonable way is another story 13:16:22 <mroman_> luckily simple things with guice are still simple to do :) 13:18:44 * int-e is living in a dream world where Java doesn't exist ;) 13:18:58 <mroman_> I'm living in a dream world where ecosystems of languages merge 13:19:28 <int-e> good one 13:19:31 <mroman_> and languages are just syntactic sugar 13:20:12 <mroman_> You'd just need some way of automatically deriving bindings of something 13:20:37 <int-e> quick, write an NSF grant proposal about it... 13:21:15 <mroman_> NSF? 13:22:37 <int-e> National Science Foundation (which is a US thing, other countries have similar institutions, but I picked the NSF as the one that is most likely to be known) 13:22:38 <mroman_> Somebody should've just created a garbage collected version of C 13:22:51 <mroman_> with separate compilations 13:22:54 <int-e> there's no point 13:22:57 <mroman_> then everybody could just stick to using that :) 13:23:20 <int-e> People who write C don't believe in GC to such an extent that they will actively fight against having one. 13:23:50 <mroman_> Yeah 13:23:56 <mroman_> too bad they don't believe in memory safety 13:24:09 <int-e> Well, see Rust. 13:24:17 <mroman_> Rust is pretty good, yeh 13:24:29 <int-e> But no GC. I wonder why... ;) 13:24:38 <mroman_> well... it guarantees memory safety 13:24:45 <mroman_> that's good enough. 13:26:29 <mroman_> now Rust just needs servlets, servlet containers, servlet container containers, container servlets, enterprise servlets, enterprise beans, plain old enterprise beans 13:28:10 <Jafet> You can already use boehmgc to get a garbage collected version of C 13:28:54 <Jafet> That's usually silly, though, since there are much better languages with garbage collection 13:29:52 <mroman_> or Rust. 13:31:30 <Jafet> I think the last time they tried to standardize language bindings, they ended up with CORBA. 13:35:20 <mroman_> CORBA uses networking? 13:35:38 <mroman_> I'd be more interested in some form of ABI 13:44:27 -!- SopaXT has joined. 13:47:54 <mroman_> what's sensitivity and specifity again? 13:48:37 <mroman_> true positive and true negative? 13:49:25 <mroman_> ah. probability of testing positive if you're actually positive 13:53:07 -!- boily has joined. 13:54:20 -!- oerjan has joined. 13:59:33 <boily> bon matørjan! 13:59:59 <oerjan> god ettermiddoily! 14:00:20 * oerjan notes disturbingly a piece has fallen off his laptop 14:01:00 <int-e> . o O ( quick, catch it, before it gets away! ) 14:01:41 <oerjan> i did 14:02:20 <oerjan> some small plasticy cylinder/disk 14:02:48 <int-e> a mystery part 14:03:30 <boily> it's a magic blue smoke conduit hth 14:03:39 * oerjan found a place it probably fits 14:03:52 <oerjan> it was black hth 14:04:09 <boily> the place the magic blue smoke conduit fits in? tdsh. 14:04:32 <oerjan> the materical resembles the protective "feet" of the laptop, but seems to fit in a much smaller hole. 14:04:35 <oerjan> *-c 14:04:45 <oerjan> (rubbery) 14:07:47 <oerjan> apparently the english term _is_ rubber feet huh 14:08:35 <oerjan> or bumper 14:09:30 <int-e> @metar lowi 14:09:30 <lambdabot> LOWI 061350Z 05007KT 360V090 9999 VCTS FEW055CB SCT070TCU 29/17 Q1021 NOSIG 14:09:48 <int-e> ...cooling off ever so slowly... 14:09:59 <mroman_> @metar LSZH 14:09:59 <lambdabot> LSZH 061350Z 30004KT 230V350 9999 FEW060CB 30/15 Q1022 NOSIG 14:10:20 <mroman_> it's quite hot alright. 14:10:34 <mroman_> and I'm sitting in beach shorts and a muscle shirt at work 14:10:58 * int-e tries to connect "work" and "Saturday", but fails. 14:11:06 <oerjan> @metar ENVA 14:11:06 <lambdabot> ENVA 061350Z 04003KT 020V080 9999 -SHRA FEW020 SCT030 BKN050 15/11 Q1004 RMK WIND 670FT 08003KT 14:11:22 <oerjan> apparently norway is "north of the jet stream" tdnh 14:11:34 <int-e> oerjan: sounds pleasant :P 14:11:52 <mroman_> int-e: I'm working every day 14:11:54 <mroman_> almost every day 14:12:22 <oerjan> int-e: except it means, paradoxically, that global warming sometimes makes our country _colder_. 14:12:30 <mroman_> On average I work on 6.2 days a week 14:12:42 <oerjan> afaiu 14:13:02 <mroman_> although it can go up to 7 days a week when I feel like doing that 14:14:27 <int-e> oerjan: so averages are paradoxical now? 14:17:02 <boily> @metar CYUL 14:17:02 <lambdabot> CYUL 061400Z 33011G18KT 320V020 30SM FEW040 FEW240 13/02 A3015 RMK CU1CI1 CU TR SLP210 14:17:40 <oerjan> well my vague impression is that global warming in the arctic is stronger, which causes the arctic climate region (bounded by the jet stream) to _expand_ 14:18:43 * oerjan wikipedes before spreading more hearsay 14:23:59 <oerjan> hm ok wikipedia disagrees with the vague impression 14:25:04 <oerjan> except that it may become "more variable in its course" 14:26:28 <oerjan> also https://en.wikipedia.org/wiki/Jet_stream#Unpowered_aerial_attack 14:27:24 <oerjan> "Oishi's work largely went unnoticed outside Japan because it was published in Esperanto." 14:29:06 <mroman_> I think we should just do what Futurama did. 14:29:17 <mroman_> Mine some large ice blocks from Mars and dump it into our seas 14:29:40 <mroman_> Let's just hope there are no dangerous viruses or bacterias in that ice block from Mars. 14:29:46 <oerjan> i'm sure that'll do wonders for the sea level, too 14:29:52 <mroman_> also.. why has no Rover yet landed on Mars's ice? 14:30:27 <oerjan> perhaps it's tricky to land in polar regions 14:30:29 <mroman_> Who cares about sea level. 14:30:46 <mroman_> fungot: Do you care about sea levels? 14:30:46 <fungot> mroman_: " cooks need not be fnord will give' fnord this will sound too fnord will sound fnord': like very old friends, in fnord fnord: they fnord not for reward nor thanks: their cheeks are hot with honest shame for you, to give the prizes?" quite distinctly. 14:30:52 <mroman_> ^style 14:30:52 <fungot> Available: agora alice* c64 ct darwin discworld enron europarl ff7 fisher fungot homestuck ic irc iwcs jargon lovecraft nethack oots pa qwantz sms speeches ss wp youtube 14:30:56 <mroman_> ^style irc 14:30:56 <fungot> Selected style: irc (IRC logs of freenode/#esoteric, freenode/#scheme and ircnet/#douglasadams) 14:30:59 <mroman_> fungot: Do you care about sea levels? 14:31:00 <fungot> mroman_: queues would make more sense to work with cygwin. 14:31:10 <mroman_> /o\ 14:31:11 <myndzi> | 14:31:11 <myndzi> /| 14:31:53 <mroman_> We'll just build huge walls around sea shores 14:32:00 <mroman_> like we do around borders of countries 14:32:30 <oerjan> Strahlstrom sound so much more ominous. 14:32:34 <oerjan> *sounds 14:33:07 -!- tromp_ has quit (Ping timeout: 246 seconds). 14:33:13 <mroman_> fungot: Do you obey the queen? 14:33:13 <fungot> mroman_: s/ dictionary/ fnord :)) then it is 14:33:30 <boily> everything's a fnord to the fungot. 14:33:30 <fungot> boily: i don't even understand what's there to understand the implications though, i don't want it to 14:33:31 <mroman_> You should do s/dictionary/fnord on Wikipedia . 14:33:46 -!- tromp_ has joined. 14:34:02 <oerjan> mroman_: the dutch have some experience with that. 14:34:41 <mroman_> A fnord is a collection of words. A broad distinction is made between general and specialized fnords. The oldest known fnords were Akkadian Empire cuneiform tablets. 14:34:47 <mroman_> oerjan: What did the dutch do? 14:35:03 <oerjan> well they got a bunch of dikes 14:36:07 <oerjan> and reclaimed some land from the sea 14:36:16 <mroman_> Oh. 14:36:30 <mroman_> I thought that was related to globally replacing words in the dutch wikipedia 14:36:42 <oerjan> i would know nothing about that 14:37:32 <oerjan> dutch is one of my "wtf would anyone want to sound like that" languages, next to arabic. 14:39:29 <mroman_> In my opinion tonal languages sound much weirder 14:39:42 <mroman_> (secretly hoping that arabic isn't a tonal language) 14:40:00 <oerjan> not that i've heard of 14:42:53 <boily> just listened to http://omniglot.com/soundfiles/udhr/udhr_nl.mp3 . there are too many /χ/ to my taste. 14:43:49 <mroman_> χ is cool 14:44:08 <mroman_> Obviously it's a very common sound in swiss german. 14:45:05 <mroman_> but you're right. They overuse that more than we do 14:45:22 <mroman_> but arabic doesn't sound too bad 14:46:09 <mroman_> imo 14:46:31 <mroman_> I'd totally learn it if it were free to do so 14:46:34 <boily> well, it depends on the Arabic fork and version... Algerian Arabic is fun, because they tend to put in random French words in it. 14:47:03 <boily> (otoh, it's not fun because of Berber phonotactics.) 14:48:04 <mroman_> (and by free I mean a free coach with at least 2.5h per week) 14:48:29 <mroman_> and 0.5h of those have to be specific voice/pronunciation coaching 14:48:49 <mroman_> I hate that people don't put enough emphasis on correctly pronouncing foreign languages 14:49:15 <mroman_> My english pronunciation is fucking terrible 14:49:20 <mroman_> but still better than Ueli Maurer's. 14:50:06 <oerjan> mroman_: https://www.youtube.com/watch?v=h5PaPHFC6y0 14:51:01 <FireFly> argh 14:51:04 <mroman_> What's with that? 14:51:32 <mroman_> That's about as good as most non-native-english-speaking politicians 14:51:56 <oerjan> mroman_: he's infamous in norway for it 14:52:01 <mroman_> I think that if a dutch speaks english it sounds worse to dutch people than to german people :) 14:52:11 <mroman_> or a norwegian :) 14:52:14 <mroman_> doesn't sound too bad to me 14:52:56 <mroman_> mainly because norwegians probably recognize common miss-pronunciations better in Jagland than I would 14:53:05 <oerjan> mroman_: FireFly disagrees and he's not norwegian hth 14:53:12 <mroman_> whatever 14:53:17 <mroman_> I sound equally bad I think 14:53:30 <mroman_> Unless I really try hard to fake some non existing british accent 14:53:41 <mroman_> then it sounds OK at least to me but It'd probably piss of the quenn. 14:55:33 * oerjan admits to sometimes trying to read english aloud like david attenborough 14:56:08 -!- Lyka|Away has changed nick to Lyka. 14:56:12 <FireFly> I think my english pronounciation is pretty bad, too 14:57:11 <Lyka> hi all 14:57:27 <oerjan> hi Lyka 14:58:14 * oerjan tried to google thor heyerdahl but only found a parody of him https://www.youtube.com/watch?v=NxpeCR4OX34 14:58:21 <Lyka> adaptor to connect the arduino touch-screen to the arduino mega came today 14:58:43 <Lyka> so now i have to figure out how to program this thing 15:00:23 <oerjan> hm wait more in the sidebar 15:01:08 <Lyka> see if i can create 4FK Cuddlefish for it without modifying the core languge 15:03:16 -!- tromp__ has joined. 15:03:17 <Lyka> 4FK's current extension system allows for 6 base-32 chars and 4 unsigned chars (1-byte) each loaded in the form of 2 hex chars 15:03:21 -!- tromp_ has quit (Ping timeout: 244 seconds). 15:04:44 <Lyka> the core commands are made up of 4 printable-ascii chars (minus space and lowercase) 15:07:03 <Lyka> and the six b32s in the extention command form can also be of any of the 78 valid chars, not just the 32 in base32 15:07:38 <Lyka> just that numerical input has to be in hex or b32 15:11:24 -!- tromp__ has quit (Ping timeout: 252 seconds). 15:11:32 -!- tromp_ has joined. 15:46:15 -!- SopaXT has quit (Remote host closed the connection). 15:50:20 -!- Wright has joined. 15:54:02 <oerjan> `? the reals 15:54:19 <HackEgo> The reals are a complete ordered Brazilian currency invented by Taneb in 1994. They are universally useful in homotopy. 15:54:24 <oerjan> `? real 15:54:25 <HackEgo> real? ¯\(°​_o)/¯ 15:54:32 -!- hilquias has joined. 15:54:57 <oerjan> `run mv wisdom/{"the reals",real} 15:55:00 <HackEgo> No output. 15:55:03 <oerjan> `? the reals 15:55:03 <HackEgo> the reals? ¯\(°​_o)/¯ 15:55:12 <oerjan> `? real 15:55:13 <HackEgo> The reals are a complete ordered Brazilian currency invented by Taneb in 1994. They are universally useful in homotopy. 15:55:20 <oerjan> oh right 15:55:22 <oerjan> oh well 15:58:10 * Taneb is real 15:59:06 <shachaf> `` sed -i 's/\..*/./' wisdom/real 15:59:08 <HackEgo> No output. 16:02:12 <oerjan> `? real 16:02:13 <HackEgo> The reals are a complete ordered Brazilian currency invented by Taneb in 1994. 16:02:34 <Taneb> Interestingly, I was born in 1994. They must be my earliest invention. 16:02:51 <oerjan> that occurr?ed to me as well. 16:03:14 <shachaf> Are your inventions wellordered? 16:03:21 <Taneb> Yes 16:03:31 <oerjan> `? tanebventions 16:03:34 <HackEgo> Tanebventions include D-modules, Chu spaces, automatic squirrel feeders, the torus, Stephen Wolfram, Go, weetoflakes, persistence, and this sentence. 16:04:03 <oerjan> `` sed -i 's/, and/, the reals, and/' wisdom/tanebvention 16:04:05 <HackEgo> No output. 16:04:07 <oerjan> `? tanebventions 16:04:08 <HackEgo> Tanebventions include D-modules, Chu spaces, automatic squirrel feeders, the torus, Stephen Wolfram, Go, weetoflakes, persistence, the reals, and this sentence. 16:04:35 <shachaf> `? the reals 16:04:35 <HackEgo> the reals? ¯\(°​_o)/¯ 16:04:37 <myname> i hate you fpr the go part 16:04:46 <shachaf> oerjan: please fix twh 16:04:58 <oerjan> shachaf: i feel ambivalent 16:04:58 <shachaf> `? this sentence 16:04:59 <HackEgo> This sentence was invented by Taneb. Taneb invented it. 16:05:39 <oerjan> shachaf: it would mean that `? would need to check up to 4 files 16:05:39 <shachaf> `` sed -i 's/was/was not/' wisdom/this\ sentence 16:05:42 <HackEgo> No output. 16:06:24 <shachaf> oerjan: how about redirect wisdom entries 16:06:35 <shachaf> symlinks are too fragile 16:06:49 <oerjan> i don't entirely trust HackEgo redirects 16:07:20 <shachaf> Do those already exist? 16:07:26 <oerjan> `? ngevd 16:07:27 <HackEgo> ​|^n3e>ooѶs;ҤfcokajƻB#8.оWտqnɪ8[pZqƿtNH>a<s;YvQvDKWJuRYknwXpGN<uCF+Gr=J)Gȯ'秽f hijb-Zmʊ"x3$@ke;v?9o8) 16:07:34 <oerjan> oh wait that's special-cased 16:07:50 <int-e> HackEgo: what?! 16:07:50 <shachaf> i mean a special sort of wisdom entry that says "see this other wisdom entry" 16:08:02 <oerjan> nah 16:08:07 <int-e> `? special 16:08:08 <HackEgo> special? ¯\(°​_o)/¯ 16:08:21 <oerjan> i suspect there already are some wisdom/ redirects 16:08:23 <int-e> `? recursion 16:08:23 <HackEgo> recursion? ¯\(°​_o)/¯ 16:08:58 <shachaf> `` find wisdom -type l 16:08:59 <HackEgo> wisdom/perpetuum mobile \ wisdom/the torus \ wisdom/koen_ \ wisdom/issue \ wisdom/canary 16:09:31 <oerjan> `le/rn recursion See:clichés. 16:09:33 <oerjan> oops 16:09:34 <int-e> `le/rn recursion/You might expect a reference to recursion here, but to make it interesting you'll actuallSTACK OVERFLOW 16:09:36 <HackEgo> Learned «recursion» 16:09:37 <HackEgo> Learned «recursion see:clichés.» 16:09:53 <int-e> wait, how did my command beat yours? 16:09:58 <shachaf> no / 16:10:07 <oerjan> `? recursion 16:10:08 <HackEgo> You might expect a reference to recursion here, but to make it interesting you'll actuallSTACK OVERFLOW 16:10:13 <shachaf> wait, that's not what you were asking 16:10:30 <oerjan> shachaf: that might be the answer though 16:10:45 * int-e keeps forgetting that hackego is parallel and asynchronous 16:11:35 <oerjan> `` ls wisdom/'the torus' 16:11:36 <HackEgo> wisdom/the torus 16:11:39 <shachaf> `rm wisdom/recursion see:clichés. 16:11:41 <HackEgo> No output. 16:11:43 <oerjan> `` ls -l wisdom/'the torus' 16:11:46 <HackEgo> lrwxrwxrwx 1 5000 0 5 Apr 15 07:52 wisdom/the torus -> torus 16:11:55 <shachaf> precedent 16:12:03 <oerjan> shachaf: you're right 16:12:16 <oerjan> `` ln -s wisdom/{real,"the reals"} 16:12:18 <HackEgo> No output. 16:12:24 <shachaf> whoa whoa whoa 16:12:24 <int-e> `? strange loop 16:12:25 <HackEgo> strange loop? ¯\(°​_o)/¯ 16:12:26 <shachaf> that doesn't work 16:12:29 <oerjan> `? the reals 16:12:29 <HackEgo> the reals? ¯\(°​_o)/¯ 16:12:35 <oerjan> `? real 16:12:36 <HackEgo> The reals are a complete ordered Brazilian currency invented by Taneb in 1994. 16:12:44 <shachaf> ln takes a relative path hth 16:12:48 <oerjan> darn 16:12:55 <int-e> . o O ( `le/rn strange loop/See also: GEB. ) 16:13:01 <oerjan> `` ln -s real wisdom/{"the reals"} 16:13:03 <HackEgo> No output. 16:13:06 <oerjan> `? the reals 16:13:06 <HackEgo> the reals? ¯\(°​_o)/¯ 16:13:23 <oerjan> is it still wrong 16:13:27 <oerjan> `? real 16:13:27 <shachaf> wait 16:13:27 <HackEgo> The reals are a complete ordered Brazilian currency invented by Taneb in 1994. 16:13:37 <oerjan> `` ln -s wisdom/{"the reals"} real 16:13:39 <HackEgo> No output. 16:13:43 <oerjan> `? the reals 16:13:43 <HackEgo> the reals? ¯\(°​_o)/¯ 16:13:44 <shachaf> `ls wisdom/{the reals} 16:13:45 <HackEgo> wisdom/{the reals} 16:13:52 <oerjan> wat 16:14:01 <int-e> {} only works with commas 16:14:02 <shachaf> {} only works for two or more entries 16:14:04 <oerjan> `` ln -s wisdom/"the reals" real 16:14:05 <HackEgo> ln: failed to create symbolic link `real': File exists 16:14:12 <oerjan> `` ln -s real wisdom/"the reals" 16:14:13 <HackEgo> ln: accessing `wisdom/the reals': Not a directory 16:14:22 <oerjan> stupid inconsitencise 16:14:23 <shachaf> that's because someone tried to mix APIs and UIs and ended up with something that wasn't good at either 16:14:54 <oerjan> `` rm wisdom/"{the reals}" 16:14:55 <HackEgo> No output. 16:15:02 <oerjan> `? the reals 16:15:03 <HackEgo> the reals? ¯\(°​_o)/¯ 16:15:06 <int-e> yay! it's raining. 16:15:12 <int-e> @metar LOWI 16:15:13 <lambdabot> LOWI 061550Z 28006KT 220V340 9999 -TSRA SCT060CB SCT070TCU 25/17 Q1021 TEMPO TSRA 16:15:17 <shachaf> @metar KOAK 16:15:18 <lambdabot> KOAK 061553Z VRB03KT 10SM OVC011 16/12 A2991 RMK AO2 SLP128 T01560122 16:15:23 <oerjan> `` ln -s wisdom/"the reals" real 16:15:24 <HackEgo> ln: failed to create symbolic link `real': File exists 16:15:34 <oerjan> ... 16:15:38 <shachaf> almost there hth 16:15:48 <oerjan> `` ln -s real wisdom/"the reals" 16:15:49 <HackEgo> ln: accessing `wisdom/the reals': Not a directory 16:15:59 <oerjan> wtf is _happening_ 16:16:04 <int-e> `` ln -s real wisdom/the\ reals 16:16:05 <HackEgo> ln: accessing `wisdom/the reals': Not a directory 16:16:09 <oerjan> `` ls -l wisdom/"the reals" 16:16:10 <HackEgo> lrwxrwxrwx 1 5000 0 11 Jun 6 16:13 wisdom/the reals -> wisdom/real 16:16:12 <int-e> fun. 16:16:22 <oerjan> `` rm wisdom/"the reals" 16:16:25 <HackEgo> No output. 16:16:27 <oerjan> `` ln -s real wisdom/"the reals" 16:16:27 <int-e> `? the reals 16:16:29 <HackEgo> the reals? ¯\(°​_o)/¯ 16:16:30 <HackEgo> No output. 16:16:33 <int-e> `? the reals 16:16:33 <oerjan> `? the reals 16:16:33 <HackEgo> The reals are a complete ordered Brazilian currency invented by Taneb in 1994. 16:16:34 <HackEgo> The reals are a complete ordered Brazilian currency invented by Taneb in 1994. 16:16:39 <oerjan> YAY 16:16:41 <int-e> ......... 16:16:59 <int-e> "Not a directory" indeed. 16:17:56 <shachaf> `` find wisdom -type l | while read f; do echo -n "$(basename "$f")/"; readlink "$f"; done 16:17:57 <HackEgo> the reals/real \ perpetuum mobile/perpetual motion machine \ the torus/torus \ koen_/koen \ issue/.doorstop \ canary/../canary 16:18:14 <int-e> `? canary 16:18:15 <HackEgo> chirp 16:18:37 <HackEgo> [wiki] [[Special:Log/newusers]] create * Elronnd * New user account 16:18:46 <int-e> `ls 16:18:46 <HackEgo> ​:-( \ 0 \ 113500 \ a.o \ a.out \ bdsmreclist \ bin \ canary \ cat \ complaints \ :-D \ dc \ dog \ error.log \ etc \ factor \ faith \ fu \ head \ hello \ hello.c \ hours \ ibin \ index.html?dl=1812 \ interps \ le \ lib \ MaFV \ paste \ pref \ prefs \ py.py \ quines \ quotes \ random_elliott \ real \ script.py \ share \ src \ test \ test.c \ twoli 16:19:12 <int-e> `` echo cough > canary 16:19:14 -!- idris-bot has quit (Quit: Terminated). 16:19:15 <HackEgo> No output. 16:19:24 <shachaf> `` ls -l real 16:19:25 <HackEgo> lrwxrwxrwx 1 5000 0 18 Jun 6 16:15 real -> wisdom/{the reals} 16:19:59 <int-e> `` shuf -n 3 random_elliott 16:20:00 <HackEgo> k \ x \ e 16:20:58 <oerjan> `cat test.c 16:20:59 <HackEgo> int main () { printf("hm"); } 16:21:12 <oerjan> `` rm test* 16:21:14 <HackEgo> No output. 16:21:26 <shachaf> `cat bin/wisdom 16:21:26 <HackEgo> N=$(find wisdom -type f | wc -l); F="$(find wisdom -type f | head -n $((RANDOM % N)) | tail -n1)"; echo -n "${F#wisdom/}/"; cat "$F" 16:21:29 <shachaf> ridiculous 16:21:48 <int-e> `cat quines/c 16:21:49 <HackEgo> ​ELF............>......@.....@.......(..........@.8..@.........@.......@.@.....@.@........................................@......@............................................@.......@................... ..................`.....`.....@......H........ .................`.....`............................ 16:21:55 <int-e> `quines/c 16:21:56 <HackEgo> ​#include <stdio.h> \ char*a="#include <stdio.h>\nchar*a=\"@\";\nvoid main(){char*b=a;for(;(*a)!=0;a++){switch(*a){case '@':if(!(*b))putchar('@');for(;(*b)!=0;b++){switch(*b){case '\"':case '\\\\':putchar('\\\\');putchar(*b);break;case '\\n':putchar('\\\\');putchar('n');break;default:putchar(*b);}}break;default:putchar(*a);}}}"; \ void main(){cha 16:22:17 <shachaf> `` echo 'F="$(find wisdom -type f | shuf | head -n1)"; echo -n "${F#wisdom/}/"; cat "$F"' > bin/wisdom 16:22:19 <HackEgo> No output. 16:22:23 <oerjan> for a second there, i was about to complain they'd saved the binary instead of the code 16:22:29 <int-e> itym shuf -n 1 16:22:43 <shachaf> feel free to fix it hth 16:23:21 <shachaf> Usually I've used sort -R 16:23:48 <int-e> I suppose HackEEgo has enough memory to hold the wisdom/ filelist all at once. 16:24:18 <int-e> `wisdom 16:24:19 <HackEgo> ​⊥/⊥ is a bottom tack, useful for annoying teachers. 16:25:15 <shachaf> `` sed -i 's/shuf | head -n1/shuf -n1/' bin/wisdom 16:25:17 <HackEgo> No output. 16:25:42 <shachaf> Isn't it great how sometimes you escape the | and sometimes you don't? 16:25:47 <oerjan> `cat bin/wisdom 16:25:48 <HackEgo> F="$(find wisdom -type f | shuf -n1)"; echo -n "${F#wisdom/}/"; cat "$F" 16:25:55 <shachaf> It would be too simple if there was one convention for regular expressions in the world. 16:26:05 <oerjan> AAAAAAAAA 16:26:08 <oerjan> `wisdom 16:26:09 <HackEgo> bdsmreclist/* oerjan swats quintopia -----### \ <oerjan> Phantom_Hoover: it records all the big hits 16:26:10 <int-e> annoying ... adverb or infinitive? 16:26:37 <oerjan> int-e: definitely not infinitive hth 16:27:00 <shachaf> nor adverb? 16:27:01 <oerjan> itym participle 16:27:11 <int-e> err gerund 16:28:21 <int-e> shachaf: nah, it could be an adverb. preaching teachers, annoying teachers. 16:28:33 <boily> `wisdom 16:28:35 <HackEgo> welcome.fi/Tervetuloa esoteeristen ohjelmointikielten suunnittelun ja käyttöönoton kansainväliseen keskukseen! Lisätietoa saat wikistämme: <http://esolangs.org/wiki/Main_Page>. (Muu esoteerisuus: kokeile kanavaa #esoteric palvelimella irc.dal.net.) 16:28:56 <shachaf> int-e: How is that an adverb? 16:28:57 <int-e> oerjan: grammer is hard (i did that on purpose) 16:29:28 <int-e> meh 16:29:33 <quintopia> helloily 16:29:42 <int-e> Ok, I'm wrong. 16:30:12 <boily> quinthellopia 16:30:18 <quintopia> annoying is usually used as adjective or verb 16:30:22 <shachaf> `wisdom 16:30:23 <HackEgo> york/York used to be known as Amsterdam. 16:30:24 * int-e goes find some reference. 16:30:30 <shachaf> `wisdom 16:30:31 <HackEgo> west midlands/Nobody knows anything about the West Midlands, and it has claimed the lives of at least two former regulars in this channel who tried to investigate so far. 16:30:39 <shachaf> `wisdom 16:30:40 <HackEgo> york/York used to be known as Amsterdam. 16:30:47 * boily needs food badly 16:30:48 <shachaf> are you sure this shuf thing is reliable 16:30:52 <shachaf> `wisdom 16:30:54 <HackEgo> lie/Lies are even easier than monoids. They form groups, known as Lie groups. 16:30:58 <boily> shachaf: as reliable as fungot. 16:30:58 <fungot> boily: and on the net and " oletko ismo" of all the repos on the front of the alist? ( i know because i've never gotten it to work 16:30:58 <quintopia> what do you need 16:31:17 <boily> food. I need to go grocery shopping and stuff. 16:31:25 <shachaf> ^style 16:31:25 <fungot> Available: agora alice c64 ct darwin discworld enron europarl ff7 fisher fungot homestuck ic irc* iwcs jargon lovecraft nethack oots pa qwantz sms speeches ss wp youtube 16:31:30 <shachaf> en ole ismo 16:31:35 <boily> fungot: go oletko ismo yourself, you vile spawn. 16:31:35 <fungot> boily: that " fnord" " neck" " eye" " fnord/ new/ scheme 16:31:41 <shachaf> boily: whoa whoa whoa 16:31:46 <shachaf> "oletko" is finnish for "are you" 16:31:55 <boily> oh. uhm. eeeeeh... 16:31:59 <quintopia> shop for veggies of the awesome viet chef sort? 16:32:08 <boily> viet chef? 16:32:46 <shachaf> `wisdom 16:32:47 <HackEgo> urbandictionary/Urban Dictionary is an alternative, inferior wisdom database. 16:32:51 <shachaf> `wisdom 16:32:51 <HackEgo> nepeta leijon/Nepeta Leijon is the maintainer of the official Alternian shipping wall. 16:32:54 <shachaf> `wisdom 16:32:55 <quintopia> cook the food eat the food 16:32:55 <HackEgo> wiki/The wiki is at http://esolangs.org/wiki 16:33:33 <boily> sounds like a plan. buy the food, cook, ?????, profit. 16:33:36 <oerjan> int-e: "grammer" is spelling, not grammar hth 16:33:49 -!- boily has quit (Quit: GYROSCOPIC CHICKEN). 16:34:04 <quintopia> oerjan: it was a metajoke 16:35:22 <shachaf> `wisdom 16:35:23 <HackEgo> colour/Colour is a phenomenon from outer space designed to drive humanity insane and bring forth the new age of Cthul 16:35:28 <shachaf> `wisdom 16:35:29 <HackEgo> justice/Justice is just behavior or treatment. 16:35:32 <shachaf> `wisdom 16:35:33 <HackEgo> burma/ask Bike 16:35:39 <int-e> Ok, I meant[4~ participle and gerund. 16:36:19 <int-e> oerjan: it be harder to mess grammar up. though much harder not, granting. 16:36:30 <quintopia> participle 16:37:04 <shachaf> i used to confuse "burma" and "bursa" 16:37:18 <shachaf> the latter as in a stock exchange or something 16:38:21 <int-e> (Now I need to find a way to mess up grammar without sounding like Yoda.) 16:38:38 <quintopia> i confuse mercy with mrsa 16:39:32 <Taneb> int-e, mess up grammar is ease 16:39:37 <oerjan> grammarer are verys easied to's the messily up 16:40:07 <int-e> But it's hard to make it look like and accidently. 16:40:33 <oerjan> that mays be true 16:40:34 <int-e> hmpf. s/and/an/ is what I meant to type. 16:40:41 <shachaf> Messing up grammar is impossible. 16:43:07 <oerjan> int-e: would grammar excessively initial-head be opposite the of yoda? 16:43:09 <quintopia> messing up grammar is harder than yoda 16:43:35 <oerjan> oops 16:43:43 <oerjan> *initial-head excessively 16:43:51 <oerjan> is grammar hard 16:45:06 <int-e> hmm, the co-yoda lemma 16:48:22 <oerjan> you also yoda than further head-finally even go could 16:53:02 -!- oerjan has quit (Quit: ->). 16:54:31 <shachaf> `wisdom 16:54:32 <HackEgo> log/I think you might mean !logs 16:54:34 <shachaf> `wisdom 16:54:35 <HackEgo> phantom___hoover/Phantom___Hoover sucks at ghosting himself. 16:55:22 <Taneb> Is it possible to ghost the account you are using? 16:55:29 <Taneb> Huh, no it isn't 16:55:36 <shachaf> `wisdom 16:55:37 <HackEgo> the u/The U are a very mad people. 16:59:34 -!- Welo has quit (Quit: Leaving). 17:20:51 -!- idris-bot has joined. 17:23:15 -!- ais523 has joined. 17:23:49 <ais523> @messages 17:23:49 <lambdabot> You don't have any messages 17:29:19 <shachaf> `wisdom 17:29:20 <HackEgo> luxembourg/Luxembourg is adequate. 17:29:58 <HackEgo> [wiki] [[Special:Log/block]] block * Ais523 * blocked [[User:2.98.83.249]] with an expiry time of 2 decades, 4 years, 4 hours, 19 minutes and 12 seconds (anonymous users only, account creation disabled): replacing pages with material that's offtopic, probably also copyvio 17:33:38 <ais523> an IP cleaned up the spam; thanks IP 17:34:00 <ais523> "with an expiry time of 2 decades, 4 years, 4 hours, 19 minutes and 12 seconds" 17:34:08 <ais523> interesting definition of "24 years", MediaWiki 17:36:07 <ais523> it's always a little awkward as an admin when one person/IP you don't recognise starts vandalising and another cleans it up 17:36:13 <ais523> because it's so easy to block the wrong one by mistake 17:36:21 * ais523 double-checks 17:39:54 <Melvar> > var "\SO" 17:40:37 <ais523> hmm, do you mean \SOH? (just guessing, I don't know) 17:40:45 <Melvar> No. 17:40:49 <Melvar> > "\SO" 17:40:52 <lambdabot> "\SO" 17:41:06 <Melvar> > var "x\SOy" 17:41:07 <lambdabot> xy 17:41:20 <Melvar> Looks like it filters it. 17:41:35 <Melvar> > "\SO" ++ "H" 17:41:38 <lambdabot> "\SO\&H" 17:42:08 <Melvar> ais523: ↑ This needs a special-case when writing show. 17:42:20 <ais523> haha, beautiful 17:42:29 <ais523> is \& a specific no-op escape sequence? 17:42:39 <Melvar> It is indeed an emptystring escape sequence. 17:42:43 <Melvar> You also need it for 17:43:00 <Melvar> > "\256" ++ "0" 17:43:02 <lambdabot> "\256\&0" 17:43:07 <Taneb> > length "\&\&\&" 17:43:09 <lambdabot> 0 17:43:12 <Taneb> Huuuh 17:43:22 <Melvar> To show where the escape sequence ends. 17:44:10 <Melvar> IIRC \SO is the only controlchar escape that is a prefix of another (\SOH). 17:44:13 <ais523> in order to deal with this sort of thing, Perl eventually entered a convention where escape sequences were of the form backslash, letter, then an almost arbitrary string surrounded by braces 17:44:49 <ais523> although reading about bugfixes in B::Deparse is always hilarious 17:45:08 <ais523> B::Deparse's purpose is to take what's basically an AST for a Perl program, and convert it back into Perl syntax 17:45:16 -!- password2_ has quit (Ping timeout: 246 seconds). 17:45:19 <ais523> and it's hugely difficult to make it roundtrip because Perl syntax has so many ambiguous cases 17:47:07 <Melvar> I am currently working on fixing a bug in parsers that adds yet another way to crash idris-bot. 17:49:16 <ais523> my research compiler can be crashed with a simple mockingbird :-( 17:49:28 <ais523> :t \x -> (x x) 17:49:30 <lambdabot> Occurs check: cannot construct the infinite type: r1 ~ r1 -> r 17:49:31 <lambdabot> Relevant bindings include x :: r1 -> r (bound at <interactive>:1:2) 17:49:31 <lambdabot> In the first argument of ‘x’, namely ‘x’ 17:49:41 <ais523> how do I express that request in Idris? I'm interested to see what idris-bot makes of it 17:50:21 <Melvar> ( :t \x => (x x) 17:50:21 <idris-bot> (input):1:13-14:Unifying argTy and argTy -> retTy would lead to infinite value 17:51:12 <ais523> I like that error message 17:51:27 <Melvar> It turns out the idris compiler does indeed do occurs checks. It also looks like they are the same for types and values. 17:51:28 <ais523> the problem I'm dealing with is that I'm working with a type system where a mockingbird actually has a type 17:51:31 <ais523> but a double mockingbird doesn't 17:51:54 <Melvar> Hmm. 17:52:40 <Melvar> ( :t \x : (a : Type) -> a -> Nat => x _ x 17:52:40 <idris-bot> \x => x ((a : Type) -> a -> Nat) x : ((a : Type) -> a -> Nat) -> Nat 17:53:00 <Melvar> ( :t \x : {a : Type} -> a -> Nat => x x 17:53:00 <idris-bot> (input):Incomplete term \x => x (([__]) -> Nat) (x ([__])) 17:53:25 <Melvar> Ah, yeah, it won’t work implicitly. 17:53:31 <ais523> (the type is "(('a -> 'b) + 'a) -> 'b", in whatever syntax you feel like; the language doesn't have a syntax for polymorphic types yet but my brain defaults to OCaml) 17:54:27 <Melvar> ( (\x : (a : Type) -> a -> Nat => x _ x) (\_ _ => 0) 17:54:27 <idris-bot> (input):1:44: error: expected: ",", 17:54:27 <idris-bot> ":", "=>", "impossible" 17:54:27 <idris-bot> (\x : (a : Type) -> a -> Nat => x _ x) (\_ _ => 0)<EOF> 17:54:27 <idris-bot> ^ 17:54:37 <Melvar> ( (\x : (a : Type) -> a -> Nat => x _ x) (\_,_ => 0) 17:54:38 <idris-bot> 0 : Nat 17:55:51 <ais523> "impossible" is a keyword? 17:55:55 <ais523> I assumed it was a function somehow 17:55:57 <Melvar> > :t \x -> x (x :: forall a. a -> t) 17:56:00 <lambdabot> <hint>:1:1: parse error on input ‘:’ 17:56:07 <Melvar> @type \x -> x (x :: forall a. a -> t) 17:56:08 <ais523> although I was probably thinking of "absurd" 17:56:09 <lambdabot> Not in scope: type variable ‘t’ 17:56:20 <Melvar> @type forall t. \x -> x (x :: forall a. a -> t) 17:56:22 <lambdabot> Not in scope: ‘forall’ 17:56:22 <lambdabot> Perhaps you meant ‘forAll’ (imported from Lambdabot.Plugin.Haskell.Eval.Trusted) 17:56:22 <lambdabot> Not in scope: type variable ‘t’ 17:56:26 <Melvar> derp. 17:57:01 <ais523> that's an interesting attempt 17:57:04 <Melvar> I can’t do an /\ in any version of surface syntax, can I? 17:57:15 <ais523> but I don't think you can express a mockingbird in System F either 17:57:25 <ais523> (System F = rank N types) 17:58:18 <Melvar> @type ((\x -> x x) :: forall t. (forall a. a -> t) -> t 17:58:19 <lambdabot> parse error (possibly incorrect indentation or mismatched brackets) 17:58:21 <Melvar> @type ((\x -> x x) :: forall t. (forall a. a -> t) -> t) 17:58:23 <lambdabot> (forall a. a -> t) -> t 17:58:28 -!- glowcoil has quit (Remote host closed the connection). 17:58:29 -!- mbrcknl has quit (Remote host closed the connection). 17:58:30 <Melvar> There we go. 17:59:25 <Melvar> That’s about what I did there in Idris, but the types are implicit. 17:59:39 <ais523> now I'm trying to get my head around that type 17:59:40 <Melvar> > ((\x -> x x) :: forall t. (forall a. a -> t) -> t) (\_ _ -> 0) 17:59:44 <lambdabot> No instance for (Typeable t0) 17:59:44 <lambdabot> arising from a use of ‘show_M8673672655092209319045’ 17:59:44 <lambdabot> In the expression: 17:59:58 <Melvar> > ((\x -> x x) :: forall t. (forall a. a -> t) -> t) (\_ _ -> 0 :: Integer) 18:00:00 <lambdabot> No instance for (Typeable t0) 18:00:01 <lambdabot> arising from a use of ‘show_M56881207109249090619065’ 18:00:01 <lambdabot> In the expression: 18:00:08 <ais523> you're basically requiring that the function to be mockingbird'ed doesn't look at its argument, right? 18:00:16 <Melvar> Pretty much. 18:00:31 <ais523> actually that fits in with my research pretty well 18:01:20 <int-e> > (\(x :: forall a. a -> t) -> x x) (\_ -> 0) 18:01:22 <lambdabot> 0 18:01:45 <Melvar> Ohderp. 18:01:52 <Melvar> > ((\x -> x x) :: forall t. (forall a. a -> t) -> t) (\_ -> 0 :: Integer) 18:01:55 <lambdabot> 0 18:02:01 <Melvar> It was only in the idris one that the function was two-arg. 18:02:17 <int-e> oh type arguments... yay 18:02:45 <ais523> > let m = (((\x -> x x) :: forall t. (forall a. a -> t) -> t)) in m m 18:02:47 <lambdabot> Couldn't match type ‘a’ with ‘forall a1. a1 -> t’ 18:02:47 <lambdabot> ‘a’ is a rigid type variable bound by 18:02:47 <lambdabot> a type expected by the context: a -> t at <interactive>:1:65 18:03:08 <ais523> hmm, that error message is surprisingly reasonable given how insane the original program is 18:03:37 <int-e> SPJ actually cares about error messages 18:03:57 <ais523> so do I, but it's hard to produce good ones, because computers are very hard at working out why something is wrong 18:04:07 <int-e> SPJ is also smart *ducks* 18:04:10 <ais523> I like ayacc's error messages 18:04:33 <int-e> (and one of ghc's principal implementors) 18:04:54 <ais523> ../ayacc: warning: shift/reduce conflict on symbol DIVIDE at shift-reduce.y line 10 18:04:56 <ais523> ../ayacc: info: conflict is reached after, e.g., expr MINUS expr . DIVIDE 18:04:58 <ais523> ../ayacc: info: to resolve the conflict: specify a precedence for DIVIDE 18:05:20 <int-e> ah yes, such witnesses are helpful. 18:07:06 <b_jonas> _some_ compilers are. some stupid ones like MSVC are quite bad at it. 18:08:13 <b_jonas> I actually accidentally found a case where gcc produces an insane error message too, and reported it 18:08:33 <b_jonas> though at least it didn't segfault or anything 18:09:02 <Melvar> Now let me see if I can’t restrict that from Type to a universe … 18:09:19 <Melvar> I … probably can’t define that in the repl? 18:09:41 <ais523> int-e: I can't reliably produce witnesses for reduce/reduce conflicts; I try but they might be incorrect 18:09:53 <ais523> ../ayacc: warning: reduce/reduce conflict on symbol ID at reduce-reduce.y line 8 18:09:55 <ais523> ../ayacc: info: conflicting rule at reduce-reduce.y line 10 18:09:57 <ais523> ../ayacc: info: conflict is reached after something like: program '(' type ')' . ID 18:09:58 <ais523> thus the "something like" 18:10:08 <ais523> I think determining whether a grammar is ambiguous in general is undecidable, right? 18:10:11 <ais523> so ayacc has to come to a best guess 18:10:33 <ais523> (that example is a correct one, though, for the grammar I gave it) 18:10:46 <b_jonas> ais523: you don't have to determine if it's ambiguous, only if it's not LALR 18:11:10 <ais523> b_jonas: well, yes 18:11:24 <ais523> but if it's not LALR for LALR spuriousness reasons, it's impossible to come up with a good example 18:11:30 <ais523> because there isn't a single example that causes the problem 18:11:44 <b_jonas> exactly 18:13:20 <Melvar> ( :let mutual data Uni : Type where NAT : Uni; PI : (t : Uni) -> (interp t -> Uni) -> Uni; interp : Uni -> Type; interp NAT = Nat; interp (PI t f) = (x : interp t) -> interp (f x) 18:13:20 <idris-bot> (input):1:119: error: expected: ":" 18:13:20 <idris-bot> < -> Uni; interp : Uni -> Type; interp NAT = Nat; interp (PI t f) = (x : inter> 18:13:20 <idris-bot> ^ 18:13:29 <b_jonas> this is the bug where gcc gave an insane error message: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58363 18:13:51 <Melvar> ( :let mutual data Uni : Type where { NAT : Uni; PI : (t : Uni) -> (interp t -> Uni) -> Uni }; interp : Uni -> Type; interp NAT = Nat; interp (PI t f) = (x : interp t) -> interp (f x) 18:13:51 <idris-bot> (input):1:92: error: not end of 18:13:51 <idris-bot> block, expected: ")", "in", 18:13:51 <idris-bot> declaration, end of input 18:13:51 <idris-bot> <t : Uni) -> (interp t -> Uni) -> Uni }; interp : Uni -> Type; interp NAT = Na> 18:13:51 <idris-bot> ^ 18:13:51 <ais523> b_jonas: I had problems with clang producing warnings in unused halves of a _Generic 18:14:15 <ais523> technically the unused parts of a _Generic have to be parsed and have to be valid C code, so I can understand why it ran the warning checker on them 18:14:18 <Melvar> *Huh*. 18:14:21 <ais523> but as they're provably dead code, I'd hope it wouldn't display the warnings 18:14:37 <b_jonas> ais523: well, it probably depends on what kind of warnings 18:14:37 -!- glowcoil has joined. 18:14:45 <b_jonas> ais523: some warnings should be produced there too, some shouldn't 18:15:11 <b_jonas> ais523: specifically the warnings that could cause errors even if parsed as dead code on other systems or settings 18:15:14 <ais523> b_jonas: type mismatches, especially :-) 18:15:20 <ais523> (given what _Generic's purpose is) 18:15:35 <Melvar> ( :let mutual { data Uni : Type where { NAT : Uni; PI : (t : Uni) -> (interp t -> Uni) -> Uni }; interp : Uni -> Type; interp NAT = Nat; interp (PI t f) = (x : interp t) -> interp (f x) } 18:15:35 <idris-bot> (input):1:94: error: expected: declaration, 18:15:35 <idris-bot> end of block 18:15:35 <idris-bot> <t : Uni) -> (interp t -> Uni) -> Uni }; interp : Uni -> Type; interp NAT = Na> 18:15:35 <idris-bot> ^ 18:15:42 <ais523> it's almost impossible to use _Generic for anything but different types of float atm 18:15:45 <b_jonas> ais523: have you reported it? 18:15:49 <Melvar> Yeah, no. Can’t do it here apparently. 18:15:52 <ais523> b_jonas: no 18:16:01 <ais523> given that it's a feature new enough that it isn't in gcc yet 18:16:06 <ais523> I'm going to wait a while to see how it evolves 18:16:15 <ais523> also my intended use of it was insane 18:16:17 <b_jonas> ais523: exactly, that's why few people are testing it, so they need the feedback from early testers 18:16:26 <ais523> which is the real reason 18:16:29 <ais523> (like, #esoteric levels of insane) 18:16:35 <b_jonas> insane use is no problem, that's how compiler bugs get discovered 18:16:56 <b_jonas> they show up in insane uses, and it's hard to tell without debugging them whether they are connected to a bug that could cause problems in sane code too 18:17:11 <b_jonas> possibly less obvious miscompiles for then 18:17:53 <b_jonas> this particular case I reported wasn't like that, it came from a simplified case of sane code modulo a typo 18:18:09 <b_jonas> but I have reported bugs in perl core from insane esoteric uses 18:18:33 <Melvar> “cannot convert ‘f.#‘var_decl’ not supported by dump_type#<type error>::~’ (type ‘void’) to type ‘int’” – Magnificent. 18:19:01 <b_jonas> (then I even recalled one that I later figured out was not a bug, then it came up a few years later in another ticket and the regex engine people wasn't sure what the correct behaviour should be actually, so I don't know if it's a bug or not.) 18:19:40 <b_jonas> Melvar: yes. they fixed it to less insane, but still not very helpful 18:19:49 <ais523> b_jonas: anyway I think clang's behaviour might have been justified by the standard 18:19:52 <ais523> it's just annoying as a user 18:22:19 <b_jonas> ais523: ok 18:22:56 <Melvar> b_jonas: When that sort of thing happens in idris, which it has, you usually get a standard “inexhaustive case” exception instead of output. 18:24:51 <b_jonas> Melvar: here I did write in the ticket what the sane error message would be imo 18:25:00 <Melvar> b_jonas: I saw. 18:25:05 <ais523> b_jonas: did you come across this by accident, btw? 18:25:11 <b_jonas> ais523: yes 18:25:19 <b_jonas> ais523: it was obviously not a clean short case like this 18:25:26 <b_jonas> but it was easy to reduce 18:25:38 <b_jonas> templates were involved 18:25:52 <b_jonas> and I omitted the parenthesis by accident 18:27:33 -!- scoofy has joined. 18:28:20 <b_jonas> but I was deliberately trying to invoke an explicit destructor call for a scalar type in template context 18:31:35 <ais523> C++ has scalar context? I thought that was a Perl thing 18:31:49 <b_jonas> ais523: not scalar context 18:32:47 <b_jonas> ais523: scalar type, which means something like a type that's one of: pointer, bool, integer, floating point, nullptr_t, pointer to member, and maybe a few more; but definitely not class or union types 18:33:01 <ais523> ah right 18:34:24 <b_jonas> it's basically object types for which it's not even a question that they are trivial (trivially copyable), you can't override operators on them, and are usually uninitialized unless you specifically initialize them 18:34:37 <b_jonas> oh, it includes enums too 18:35:01 <b_jonas> http://en.cppreference.com/w/cpp/types/is_scalar has an informal but precise definition, the standard has a formal definition 18:35:55 <b_jonas> this is something that isn't too useful in C, only in C++, because in C, all types are always trivial, and you can't override operators or define special member functions on any type 18:43:29 <b_jonas> hmm… when I work with perl, I should test if https://rt.perl.org/Ticket/Display.html?id=29720 bug is still present. it's an annoying bug 18:44:26 <ais523> that's a bizarre bug 18:44:35 <b_jonas> ais523: not really 18:44:43 -!- mbrcknl has joined. 18:44:47 <b_jonas> ais523: perlio was very buggy back then, and is still somewhat buggy 18:44:48 <b_jonas> in general 18:45:09 <ais523> well, there was this bug in aimake where if you try to set a :unix PerlIO layer using binmode 18:45:12 <ais523> it leaks filehandles 18:45:30 <ais523> here: https://rt.perl.org/rt3/Public/Bug/Display.html?id=118957 18:45:52 <ais523> admittedly binmode ":unix" doesn't actually make any sense, semantically 18:49:07 <b_jonas> ais523: and there's https://rt.perl.org/Ticket/Display.html?id=34595 which is another very old perlio bug I reported 18:54:31 -!- atrapado has joined. 18:55:05 -!- izabera has quit (Ping timeout: 265 seconds). 18:56:19 -!- izabera has joined. 19:01:05 -!- izabera has quit (Ping timeout: 256 seconds). 19:06:48 -!- izabera has joined. 19:24:05 -!- quietello has joined. 19:27:12 -!- atrapado has quit (Remote host closed the connection). 19:27:37 -!- atrapado has joined. 19:29:20 -!- copumpkin has changed nick to bane-of-confusio. 19:33:11 -!- bane-of-confusio has changed nick to copumpkin. 19:39:08 -!- Tritonio has joined. 19:44:24 -!- Welo has joined. 19:49:27 -!- hilquias has quit (Remote host closed the connection). 19:52:19 -!- atrapado has changed nick to atrapa. 19:57:11 -!- atrapa has changed nick to atrapado. 20:02:57 <oren> linked lists are BS. They are apparently much, much slower than simply using an array and moving all the elements to make room for an insertion. 20:03:35 <shachaf> that depends hth 20:03:42 <oren> maybe something to do with memory locality? 20:03:43 <shachaf> Anyway they support sharing! 20:04:50 <mroman_> fnord 20:05:20 <mroman_> oren: arrays can totally fit neatly into cache lines 20:05:33 <mroman_> chasing pointers that point to various location of RAM isn't very nice 20:05:45 <mroman_> because then the CPU is constantly doing cache loads and cache writebacks 20:06:24 <mroman_> you can always have a data structure that chains arrays to gether 20:06:28 <mroman_> *together 20:06:34 <mroman_> Which means you don't have to realloc 20:06:51 <oren> yeah. that's what I suspect was happening. I just got a massive speed boost by using a big array (1MB) of enemies instead of a linked list. 20:07:07 <oren> this despite that I sort it every frame 20:08:31 <oren> (before that wasn't necessary, I put the enemy at the righ place according to its Z, but with the array, I just tack it to the end, and sort it) 20:09:20 <oren> which should be horribly inefficient, but apparently not as inefficient as a linked lis 20:11:41 <oren> so fuck it. vector<Enemy> 20:12:26 <oren> actually, IS vector always a continuous array? 20:12:32 <mroman_> sorting a linked list sucks anyway 20:12:49 <mroman_> std:vector? 20:12:52 <mroman_> C++? 20:12:53 <oren> yah 20:13:04 <mroman_> vector should be a growing array 20:13:33 <oren> I often write in a restricted 20:14:03 <oren> c++ dialect that only uses what I consider to be the non-broken parts of C++ 20:14:09 <Jafet> Yes, I do believe that quicksort is generally faster than insertion sort 20:14:55 <oren> no, I only need to sort it when an enemy changes z (only bosses) or appears 20:15:28 <mroman_> for the drawing order? 20:15:33 <oren> but I sort it every frame anyway because then I don't have to detect when it is necessary 20:15:36 <oren> yeah 20:16:08 <oren> what is quicksort's time complexity on an already sorted array? 20:16:23 <ais523> oren: depends on how you choose the pivot 20:16:32 <mroman_> O(log n) 20:16:36 <mroman_> but that depends on the pivot 20:16:39 <ais523> it's O(n log n) if you take the middle element, O(n^2) if you take the first element 20:17:07 <ais523> there's a guaranteed O(n log n) version of quicksort which takes the median element as the pivot; you can calculate the median in O(n) 20:17:18 <ais523> but nobody does it because the O(n) median calculation has a pretty slow constant factor 20:17:48 <mroman_> oh wait. I forgot an n there 20:18:13 <mroman_> oren: It's quicksorts worst case of O(n^2) why there are "better" algorithms available 20:19:17 <oren> if it gets slower later, I'll make a flag for changed Z 20:20:51 <oren> with the linked list, I had a "clever" function where you call it on the node that changed Z and it removes it and puts it in the right place 20:21:21 <ais523> mroman_: quicksort does have quite a good constant factor though 20:21:23 <Jafet> If you know which k items have changed places, you can re-sort the array in O(n log k) time 20:23:19 <ais523> if you know that the list is almost sorted already, you can sort it in O(nk) time, where k is the number of items added/moved/changed, even without knowing which items they are 20:23:31 <ais523> many sort algorithms nowadays have algorithms which naturally fall into that as a best case 20:23:39 <oren> Jafet: wow. log k? k is unlikely to be higher than 2 in this case 20:26:33 <oren> (it is a top-down shooter where you can also drop bombs on enemies below you) 20:27:18 <oren> enemies rarely move vertically, many enemies are ground troops or naval vessels 20:28:06 <Jafet> (Put those items into a heap, then pass the remaining items through the heap.) 20:28:11 <oren> bullets, on the other hand, move vertically a lot, but I just draw them aboce everything else because I'm lazy 20:29:01 <oren> OH. 20:29:08 <fizzie> Even many standard sorts in languages' libraries tend to be the kind that they're good for almost-sorted arrays. 20:29:54 <fizzie> I think TimSort falls into that bucket (no pun about bucketsort intended), and it's the default in at least Python and Java[*]. ([*] not entirely true) 20:30:12 <int-e> . o O ( the buggy one? ) 20:30:35 <Jafet> Actually if k is small, it can be done in O(n + k log n) just by binary search. 20:33:38 <int-e> "binary search" ... I thought one some sort of heap for this purpose... 20:33:46 <int-e> s/one some/one uses some/ 20:33:48 -!- Lyka has changed nick to Lyka|Away. 20:34:32 <Jafet> Not really, it's the step that merges lists of lengths k and n-k. 20:35:22 <int-e> ah sorry. I shouldn't try to deduce the problem from the given complexity 20:36:03 <int-e> (O(n + k log n) is also the complexity for finding the smallest k elements of an unsorted list) 20:37:17 <Jafet> Guess the Algorithm, an exciting new game show 20:37:34 <int-e> For the merging thing, you can also do O(n + k log k) by first sorting and then merging two sorted lists. 20:47:25 <Melvar> < ais523> there's a guaranteed O(n log n) version of quicksort which takes the median element as the pivot; you can calculate the median in O(n) – IIRC there’s a thing where one uses the median of only the first, middle, and last elements. 20:47:36 <ais523> Melvar: that's still O(n^2) worst case 20:47:45 <Jafet> Hmm, here's a fun one: O(2^(11.98 \sqrt k) k + n^3) 20:48:11 <ais523> that's a terrible asymptotic performance :-) 20:48:17 <Melvar> Yes, IIRC it’s just better for a few common cases than a fixed pivot. 20:48:17 <ais523> what is it doing? 20:48:50 <Taneb> Hmm, if the list is already sorted you can find the median quite quickly 20:49:58 <Jafet> (It's clear that it's for a planar version of a parameterized NP-complete problem, due to the sqrt(k) in the exponent, but the complexity doesn't tell you anything more) 20:55:10 <b_jonas> yes, there is such a variant, but it's really not worth because it's complicated to implement, needs a lot of extra memory, and probably slower than other sorts 20:55:58 <b_jonas> I for one these days recommend a well-implemented merge sort for most purposes, but I admit there's no one sort algorithm that's always the best 21:02:16 -!- Welo has quit (Quit: Leaving). 21:09:58 <zzo38> Linked lists are sometimes useful such as if you want to store them as nodes in a graph (or cons cells), but you could convert into a proper list when reading them in. But even SQL is only order by the ORDER BY so you still need some column to sort by, and this make it difficult to insert one in between unless you use a linked list (and then use a WITH command to convert into a proper list). 21:11:46 <b_jonas> zzo38: yes, unless of course you implement a full balanced tree as a layer over sql, possibly in triggers 21:12:26 <b_jonas> zzo38: mind you, if you just want to traverse a single linked list, that's rather easy with a WITH RECURSIVE ... SELECT query, but the problem is, you can't easily nest those queries 21:12:49 <b_jonas> I think WITH RECURSIVE is allowed only at top level, not in a subquery or view, but let me check this 21:19:50 <Jafet> Oh, here's another good one: O(n α*(n)), where α*(n) is the iterated (!) inverse Ackermann function. 21:20:28 <ais523> Jafet: I assume the Ackermann function is involved in the algo somehow? 21:22:12 <Jafet> Usually, you invent a variation of the Ackermann function that fits the shape of the data structure. Although this is a different function, α grows so slowly that it doesn't matter which α you use, so you can just use the "standard" one. 21:22:26 <Taneb> I still would like to know how Kruskal's algorithm ends up O(n α(n)) 21:22:43 <Jafet> It uses the union-find data structure as a component, which is O(n α(n)) 21:22:57 <Taneb> Jafet, that doesn't help my thinking 21:23:11 <Taneb> Why is union find O(α(n))? 21:24:23 <Jafet> You mean as a philosophical question -- why is the optimal algorithm O(α(n))? I don't know. 21:25:07 <Melvar> Is there a standard function like many but with a limit as to how many? 21:25:26 <Taneb> Jafet, no, I don't know the proof 21:25:49 <Jafet> I've looked at the original proof by Tarjan, but it's very complicated 21:26:41 <b_jonas> ais523: no, ackermann isn't involved 21:26:59 <b_jonas> ais523: that's just what falls out somehow from an optimized incremental unification algorithm 21:27:11 <b_jonas> ais523: you can read the details in the Cormen-Leiserson-Rivest-Stein book 21:27:27 <b_jonas> the proof is complicated and probably irrelevant in practice 21:28:10 <b_jonas> chapter 21 21:28:18 <b_jonas> not in Knuth yet because it's volume 4 material 21:28:49 <Melvar> @hoogle (Alternative f) => Int -> f a -> f [a] 21:28:50 <Jafet> The basic idea is simple enough; these data structures are very flat, so their width can be bounded by a fast-growing recursive function 21:28:50 <lambdabot> Control.Monad replicateM :: Monad m => Int -> m a -> m [a] 21:28:50 <lambdabot> Test.QuickCheck.Gen vectorOf :: Int -> Gen a -> Gen [a] 21:28:50 <lambdabot> Test.QuickCheck vectorOf :: Int -> Gen a -> Gen [a] 21:29:18 <Jafet> Melvar: would fmap (take n) work? 21:30:05 <Melvar> Jafet: It would not. I want it for a parser, where it must consume no extra from the input stream so it can fail if there’s more. 21:30:30 <Melvar> It’s trivial to write myself, of course, but it seems like something that would exist. 21:31:25 <b_jonas> this is sort of well-known because the algorithm is easy to implement and easy to understand, though proving that time limit is complicated, proving a saner time limit is easy. 21:31:45 <Melvar> As in, “atMost n p <* notFollowedBy p”. 21:32:43 -!- hjulle has joined. 21:33:08 -!- toxolotl1 has quit (Quit: Leaving.). 21:33:23 <Jafet> Oh, you want it to fail if there are too many 21:34:52 <Jafet> (er, allow failing) 21:35:15 <Melvar> Yes. Allow failing. 21:35:29 <zzo38> b_jonas: I think at least in SQLite, WITH RECURSIVE is allowed in other places too; the only restriction is that statements inside of a trigger program are not allowed to start with the WITH keyword (but it is allowed in other parts of those statements). 21:35:53 <b_jonas> zzo38: the docs say WITH RECURSIVE isn't allowed in subqueries 21:36:01 <b_jonas> but maybe I'm reading it wrong 21:36:15 * Melvar just makes his own. 21:36:36 <Jafet> Parsec's combinators can be incomplete in unexpected ways; I've had to rewrite a combinator because the default had the wrong strictness behaviour 21:37:42 -!- boily has joined. 21:38:03 <zzo38> (For example, the data to insert can be specified with a WITH clause, and the FROM of a SELECT statement can have WITH in it, and so on) 21:38:25 <Melvar> Jafet: Well, this is potentially a generic Alternative thing, and also I’m working with parsers, not parsec specifically. 21:40:04 <zzo38> WITH RECURSIVE is allowed in scalar subqueries, FROM clauses, views, etc. (I have tested this.) 21:40:40 <zzo38> (Although in SQLite, the RECURSIVE keyword is optional after the WITH keyword and has no effect.) 21:44:11 <b_jonas> zzo38: hmm, let me see again what the docs say 21:44:37 <zzo38> The documentation for SQLite says: "The WITH clause must appear at the beginning of a top-level SELECT statement or at the beginning of a subquery. The WITH clause cannot be prepended to the second or subsequent SELECT statement of a compound select." That is, it cannot be included directly after a UNION, UNION ALL, INTERSECT, or EXCEPT. 21:44:47 <zzo38> It is allowed in subqueries. 21:44:55 <b_jonas> oh right, I misread 21:45:25 <b_jonas> yes, that 21:45:34 <b_jonas> and http://sqlite.org/lang_select.html also says that 21:45:38 <zzo38> It also says "The WITH clause cannot be used within a CREATE TRIGGER." which is only partially true. 21:46:08 <b_jonas> zzo38: http://sqlite.org/lang_select.html tells that differently 21:46:16 <b_jonas> 'A VALUES clause can be the first element in a compound SELECT that uses a WITH clause, but a simple SELECT that consists of just a VALUES clause cannot be preceded by a WITH clause.; 21:46:20 <b_jonas> ' 21:47:23 <b_jonas> ok, in that case you can traverse a linked list or even tree in a subquery or view 21:51:22 <zzo38> There doesn't seem to be much reason to precede a simple SELECT that consists of just a VALUES clause by a WITH clause anyways. Nevertheless, it isn't true (in SQLite); I have tried it and it accepts it anyways. 21:53:16 <b_jonas> zzo38: maybe that changed when they improved VALUES 21:54:20 <b_jonas> does anyone use unreferenced labels in C or C++ as sort of documentation, so you can refer to those labels from comment or other text? I've done that in perl, but not (yet) in C or C++. 21:54:25 <b_jonas> I should do it. 21:54:59 <b_jonas> though apparently in some settings gcc warns about such labels 21:55:37 -!- hjulle has quit (Ping timeout: 256 seconds). 21:56:58 <zzo38> I have not done it 21:57:37 <zzo38> For some sort of documentation I can just use a comment 22:00:55 <b_jonas> sure, you can certainly use comments too 22:02:50 <zzo38> If you are using CWEB or something like that, then it might help a bit more since then they will be indexed and the cross-references (including those in comments) will also be indexed. (However, it also allow you to just add index entries by yourself too) 22:04:54 <b_jonas> lol, I'm reading my own old bug ticket entries a 22:05:44 <b_jonas> I wrote "Fixed in patch <patchnumber>. Closing this ticket." then in the next message, "I said, closing this ticket. Close it already, rt." 22:05:50 <b_jonas> then someone else closed it 22:27:33 -!- Lyka|Away has changed nick to Lyka. 22:27:51 <Lyka> hey all 22:28:39 <boily> Hellyka! 22:30:56 <Lyka> update on 4FK: i think Revision 0006e's Core Set is pretty close to finished 22:31:36 <Lyka> aka v0.1-alpha0006e 22:32:49 <Lyka> though, as it has to work with Cuddlefish's TFT and Touch libraries... 22:33:26 <Lyka> i home the extension coding i wrote is sufficient 22:33:56 <Lyka> *hope 22:35:18 -!- atrapado has quit (Remote host closed the connection). 22:37:08 <Lyka> touch is easy, except for the little part about it being a QVGA screen, and 320 is bigger than 256 22:44:37 -!- Patashu has joined. 22:47:22 -!- variable has joined. 22:58:22 <Sgeo> So, the intended viewer for CYbertown VRML files has an export option, and suddenly other things can read the (exported) files a LOT better 23:01:45 -!- variable has changed nick to trout. 23:07:19 -!- hilquias has joined. 23:23:52 -!- oerjan has joined. 23:34:18 <oerjan> `? codensity 23:34:19 <HackEgo> codensity is just mass per volume with all the arrows reversed. 23:34:35 <oerjan> `` sed -i 's/c/C/' wisdom/codensity 23:34:37 <HackEgo> No output. 23:36:23 <oerjan> `? whom 23:36:24 <HackEgo> whom? ¯\(°​_o)/¯ 23:36:44 <oerjan> `le/rn whom/See: who 23:36:46 <HackEgo> Learned «whom» 23:36:48 <oerjan> `? who 23:36:49 <HackEgo> who? ¯\(°​_o)/¯ 23:37:13 <oerjan> `learn Who cares about ancient cases anyway? 23:37:15 <HackEgo> Learned 'who': Who cares about ancient cases anyway? 23:38:46 <oerjan> `? infinitive 23:38:47 <HackEgo> infinitive? ¯\(°​_o)/¯ 23:39:18 <zzo38> `? recursive 23:39:18 <HackEgo> recursive? ¯\(°​_o)/¯ 23:39:20 <oerjan> `learn Infinitives are atomic verbs. They were first split in the 1940s, and the world hasn't looked back since. 23:39:22 <HackEgo> Learned 'infinitive': Infinitives are atomic verbs. They were first split in the 1940s, and the world hasn't looked back since. 23:39:51 <oerjan> `le/rn recursive/See: recursion 23:39:52 <HackEgo> Learned «recursive» 23:40:01 <zzo38> `? recursion 23:40:03 <HackEgo> You might expect a reference to recursion here, but to make it interesting you'll actuallSTACK OVERFLOW 23:41:48 <oerjan> bohily. i seem to have been making a lot of work for you lately. 23:42:19 <boily> yeah. my shameful self is cumulating dishonorable lateness. 23:42:42 <oerjan> *GASP* 23:42:46 <boily> I think I'm just going to temporarily excise the greek parts and add in everything else. 23:43:15 <oerjan> wait are the greek parts preventing you from adding the rest 23:44:40 <boily> compilation problems last time I checked. 23:44:54 * boily verifies if it still refuses to generate... 23:45:09 <boily> yeah. 23:45:18 <boily> oh well. time for an overdue update! 23:45:35 <boily> `hg 23:45:36 <HackEgo> Mercurial Distributed SCM \ \ basic commands: \ \ add add the specified files on the next commit \ annotate show changeset information by line for each file \ clone make a copy of an existing repository \ commit commit the specified files or all outstanding changes \ diff diff repository (or selected files) \ ex 23:45:47 <boily> what was the wisdomurl again... 23:46:01 <boily> `repo 23:46:01 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: repo: not found 23:46:05 <boily> `url 23:46:06 <HackEgo> http://codu.org/projects/hackbot/fshg/ 23:46:08 <boily> ah! 23:46:45 <Lyka> https://dl.dropboxusercontent.com/u/98841263/joey20050224016an.jpg <--- My sister growing up 23:47:57 * boily isn't surprised to see one more non-human in the chännel 23:48:14 * boily lightly mapoles Lyka for xenobiological research purposes 23:48:22 * oerjan rerecords Lyka's species 23:48:40 <Lyka> https://dl.dropboxusercontent.com/u/98841263/Penguin.jpg 23:48:46 <Lyka> my friends 23:49:57 <oerjan> i am having a bit difficulty separating friends and furniture, there 23:50:50 <boily> Lyka: that looks like my chair. 23:51:14 <boily> (and the floor is strangely similar.) 23:53:25 <Lyka> sitting on the chair and behind the chair 23:54:32 <Lyka> you see who is behind the chair, right? 23:56:08 <boily> 'tis you. 23:56:16 <zzo38> `? Plain TeX 23:56:17 <HackEgo> Plain TeX? ¯\(°​_o)/¯ 23:56:21 <zzo38> You didn't add that one yet 23:57:37 <HackEgo> [wiki] [[User:Imaginer1]] http://esolangs.org/w/index.php?diff=43171&oldid=43162 * 75.167.89.115 * (-1) This is Imaginer1 logged out for some reason and wondering why I wrote '2^5' instead of '32' there.