←2015-06-05 2015-06-06 2015-06-07→ ↑2015 ↑all
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 <shachaf> `le/rn whitespace/see https://www.bing.com/search?q=whitespace
01:42:18 <HackEgo> 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 <Phantom_Hoover> `? whitespace
02:19:32 <HackEgo> 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 <MDude> No results at all?
02:45:29 <MDude> Bing you're awful.
02:48:39 <oren> http://www.baidu.com/s?ie=utf-8&tn=baidu&wd=whitespace
02:49:04 <oren> note the great suggestions on the righthand side
02:49:22 <oren> baidu knows what's up.
02:50:44 <MDude> It certainly does.
02:51:19 -!- G33kDude has quit (Quit: {{{}}{{{}}{{}}}{{}}} (www.adiirc.com)).
02:51:29 <alguien> what a weird book! interesting
03:12:43 <zzo38> Why is my radio scratchy when I stand near it?
03:13:43 <copumpkin> perhaps you have fleas
03:14:06 <copumpkin> :)
03:15:19 <zzo38> 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 <zzo38> It also does not happen when it is playing a tape or CD.
03:18:26 <GeekDude> You're interfering
03:18:36 <GeekDude> You need to clear yourself with the fcv
03:18:42 <GeekDude> FCC*
03:19:00 <zzo38> I don't get this problem with any other radio.
03:19:08 <zzo38> (Also, it is independent of AM/FM)
03:22:07 <MDude> Psychic powers.
03:22:40 <MDude> The radio is aware, and attemtping to respond to you.
03:26:40 <zzo38> 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 <oren> 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 <zzo38> `? Haskell
05:11:03 <HackEgo> Unbound implicit parameter (?haskell::Wisdom) \ arising from a use of implicit parameter `?haskell'
05:12:35 <zzo38> `? trope
05:12:35 <HackEgo> trope? ¯\(°​_o)/¯
05:12:39 <zzo38> `? All The Tropes
05:12:39 <HackEgo> All The Tropes? ¯\(°​_o)/¯
05:13:27 <zzo38> `le/rn All The Tropes/A card game where you win if you collect *all* of the tropes.
05:13:29 <HackEgo> Learned «all the tropes»
05:16:58 <zzo38> `? esoteric
05:17:01 <HackEgo> This channel is about programming -- for the other kind of esoterica, try #esoteric on irc.dal.net.
05:17:13 <zzo38> `? irc.dal.net
05:17:13 <HackEgo> irc.dal.net? ¯\(°​_o)/¯
05:17:41 <zzo38> `? copumpkin
05:17:42 <HackEgo> copumpkin is categorically incapable of being president.
05:17:48 <zzo38> `? GeekDude
05:17:48 <HackEgo> GeekDude? ¯\(°​_o)/¯
05:17:52 <zzo38> `? MDude
05:17:53 <HackEgo> MDude is just a dude, with an M's courage.
05:18:07 <zzo38> `? variable
05:18:08 <HackEgo> variable? ¯\(°​_o)/¯
05:18:19 <MDude> That's true.
05:18:21 <zzo38> `? le/rn
05:18:21 <HackEgo> le/rn? ¯\(°​_o)/¯
05:19:09 <zzo38> `? HTTP
05:19:10 <HackEgo> HTTP? ¯\(°​_o)/¯
05:19:14 <zzo38> `? gopher
05:19:15 <HackEgo> Gopher is int-e's vision of the successor of HTTP/2.
05:20:08 <zzo38> `? Iuckqlwviv Kjugobe
05:20:09 <HackEgo> Iuckqlwviv Kjugobe? ¯\(°​_o)/¯
05:20:12 <zzo38> `? TeX
05:20:13 <HackEgo> TeX? ¯\(°​_o)/¯
05:20:17 <zzo38> `? LaTeX
05:20:18 <HackEgo> LaTeX is \end{verbatim} \textbackslash textbackslash begin\textbackslash \{document\textbackslash \}
05:20:26 <zzo38> `? Plain TeX
05:20:26 <HackEgo> Plain TeX? ¯\(°​_o)/¯
05:20:37 <zzo38> `? math
05:20:38 <HackEgo> math? ¯\(°​_o)/¯
05:20:45 <zzo38> `? ping
05:20:46 <HackEgo> ping? ¯\(°​_o)/¯
05:21:17 <zzo38> `? Python
05:21:18 <HackEgo> Python? ¯\(°​_o)/¯
05:21:28 <zzo38> `? Unlambda
05:21:29 <HackEgo> Unlambda? ¯\(°​_o)/¯
05:21:47 <zzo38> `? HTTP/2
05:21:48 <HackEgo> HTTP/2? ¯\(°​_o)/¯
05:27:11 <HackEgo> [wiki] [[User:Imaginer1]] http://esolangs.org/w/index.php?diff=43162&oldid=40485 * Imaginer1 * (+24)
05:27:40 <HackEgo> [wiki] [[Bitoven]] http://esolangs.org/w/index.php?diff=43163&oldid=40675 * Imaginer1 * (-59) Removed shameless plug
05:33:10 <HackEgo> [wiki] [[Talk:Wordfuck]] http://esolangs.org/w/index.php?diff=43164&oldid=40325 * Imaginer1 * (+65)
05:33:20 <zzo38> `? pope
05:33:21 <HackEgo> pope? ¯\(°​_o)/¯
05:33:24 <HackEgo> [wiki] [[Talk:Wordfuck]] http://esolangs.org/w/index.php?diff=43165&oldid=43164 * Imaginer1 * (+11)
05:35:32 <HackEgo> [wiki] [[Wordfuck]] http://esolangs.org/w/index.php?diff=43166&oldid=40386 * Imaginer1 * (-881)
05:37:56 <MDude> http://davidbau.com/complex/#z^%281%2Bt*4%29%2B%281-t%29
05:38:03 <zzo38> `? /
05:38:04 <HackEgo> cat: /: Is a directory
05:38:19 <zzo38> See?
05:38:25 <HackEgo> [wiki] [[Language list]] http://esolangs.org/w/index.php?diff=43167&oldid=43146 * Imaginer1 * (+14) Added bitoven
05:39:11 <HackEgo> [wiki] [[Bitoven]] http://esolangs.org/w/index.php?diff=43168&oldid=43163 * Imaginer1 * (-4) It's not really WIP.
05:40:13 <HackEgo> [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 <zzo38> That is how many files you didn't write.
06:08:50 <izabera> how many?
06:12:55 -!- password2_ has joined.
06:16:23 <zzo38> 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 <Lyka|Phone> zzo38:Hi
06:37:21 <Lyka|Phone> I think i've stabilized the language for now
06:39:17 <Lyka|Phone> 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 <Lyka|Phone> I will have to add commands, but I assume they will be extension commands
06:42:09 <Lyka|Phone> I might have to make a for command
06:42:48 <Lyka|Phone> okay, my vision is getting blurry from fatigue
06:43:02 <Lyka|Phone> 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 <fizzie> `? /hackenv/canary
07:54:25 <HackEgo> chirp
07:54:28 <fizzie> Useful.
07:54:46 <oren> Why the hell is there no <verbatim> tag?!?!?!
07:59:22 <fizzie> To do what?
07:59:54 <oren> To insert HTML into HTML
08:00:18 <oren> or any other language that needs < > ' &
08:00:48 <fizzie> How would it work for "</verbatim>" in verbatim?
08:01:27 <fizzie> (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 <oren> maybe <verbatim-arbitrary-ident> ?
08:02:31 <oren> For now I'll just translate it in PHP...
08:02:41 <fizzie> No, I'm wrong -- it's in the W3 HTML5 spec, at least.
08:02:49 <oren> oh?
08:03:00 <fizzie> <![CDATA[ what<ever> I don't & care ]]>
08:03:17 <fizzie> (It's bad if you happen to need "]]>", though.)
08:03:32 <fizzie> Oh, only in foreign content.
08:03:35 <fizzie> Never mind, then.
08:03:45 <fizzie> "CDATA sections can only be used in foreign content (MathML or SVG)."
08:03:46 <oren> shit
08:04:59 <mroman_> ,,1+1+,1+1
08:05:47 <mroman_> *Main> run $ runParserWithString parseExpression ",,+1++1+,+1++1"
08:05:47 <mroman_> LitInt 8
08:06:28 <mroman_> That's (++1 + ++1) + (++1 + ++1)
08:06:32 <mroman_> in a more C like notation
08:07:15 <mroman_> +,+,+1++1++,+1++1 is ++(++(++1 + ++ 1) + ++(++1 + ++ 1))
08:07:52 <mroman_> *Main> run $ runParserWithString parseExpression "+,+,+1++1++,+1++1"
08:07:53 <mroman_> LitInt 11
08:08:18 <mroman_> Figuring out what the , does is left as an exercise for the reader :p
08:08:39 <fizzie> The ++1 part keeps wierding me out, because ++x is quite different from (x+1) in C.
08:08:54 <mroman_> Yeah :)
08:09:10 <mroman_> Prefix + is just increment
08:09:15 <mroman_> Infix + regular addition
08:12:13 <mroman_> *Main> run $ runParserWithString parseExpression "+.+,+,+1++1++,+1++1-"
08:12:14 <mroman_> LitInt (-10)
08:12:55 <mroman_> These would be good exercises for IT students to figure out :D
08:13:42 <mroman_> fizzie: Instead of brackets it uses , and .
08:13:48 <mroman_> , denotes infix and . denotes postfix
08:14:08 <mroman_> otherwise it is prefix
08:14:59 <mroman_> ,+1+1 is inc(1)+1
08:15:21 <mroman_> .,+1+1 is neg(inc(1)+1)
08:15:27 <mroman_> *.,+1+1-
08:15:38 <mroman_> - postfix always forms a negative number
08:16:35 <zzo38> In HTML there is a <xmp> command to make plain text directly but then you can't type </xmp> inside of it. There is also <plaintext> 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.оWqnɪ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.
←2015-06-05 2015-06-06 2015-06-07→ ↑2015 ↑all