00:01:20 should've used FireFly 00:02:37 Have you been stalking me recently 00:04:44 -!- tromp_ has joined. 00:05:26 -!- Yurume has joined. 00:08:49 complex fuzzy bag typing. 00:08:56 A type check returns a complex number. 00:09:13 -!- tromp_ has quit (Ping timeout: 252 seconds). 00:09:49 -!- XorSwap has joined. 00:19:55 -!- hppavilion[2] has joined. 00:22:25 I still want to play nomic 00:23:31 -!- hppavilion[1] has quit (Ping timeout: 252 seconds). 00:23:36 -!- hppavilion[2] has changed nick to hppavilion[1]. 00:25:19 Agora still exists afaik 00:25:31 Sgeo: Oh yeah, Agora 00:25:58 probably 00:26:03 I unsubbed from the mailing lists last year 00:26:05 it does. there's even been some activity lately. 00:26:07 cool 00:26:15 I'll probably get back in at some point 00:31:30 -!- lleu has quit (Quit: That's what she said). 00:33:05 -!- Treio has quit (Ping timeout: 250 seconds). 00:42:39 -!- hppavilion[1] has quit (Quit: Leaving). 00:43:04 -!- hppavilion[1] has joined. 00:45:43 -!- oerjan has quit (Quit: Nite). 00:59:24 -!- mad has joined. 01:01:56 -!- mad has quit (Read error: Connection reset by peer). 01:15:52 -!- Sprocklem has joined. 01:24:41 I just went to agora and looked at a random judicial case 01:24:55 Players: A lambda-nomic has "players", individual beings or groups of beings who participate in the game 01:24:55 Rules: A lambda-nomic has "rules", statements about what players of the game can and cannot do. 01:24:55 How to play: A game is played by players following the rules to arbitrary pedanticness. 01:24:55 Rule Proposal: At any time, a player can propose a new rule, an addendum to a rule, an edit to a rule, or the deletion of a rule. Players then vote on the rule by saying "yea" or "nay", and if there are more "yea"s than "nay"s the rule, addendum, edit, or deletion is enacted. All future moves are based on this rule. 01:24:57 Whoops 01:25:00 That was a mistake 01:25:10 Exhibit by ais523 01:25:12 Hey there. 01:25:17 That's the first thing I saw 01:34:50 -!- lynn_ has quit (Ping timeout: 244 seconds). 01:37:56 -!- tromp_ has joined. 01:41:01 -!- vodkode has joined. 01:44:00 -!- adu has joined. 02:00:22 -!- AlexR42 has joined. 02:03:02 -!- boily has joined. 02:03:18 @metar CYUL 02:03:20 CYUL 250100Z 03022G27KT 4SM -FZRA BKN006 OVC010 M00/M01 A2963 RMK SF6SF2 PRESFR SLP036 02:03:36 Freezing Cow Weather. 02:05:42 -!- tromp_ has quit (Remote host closed the connection). 02:08:50 -!- Phantom_Hoover has quit (Read error: Connection reset by peer). 02:14:06 helloily 02:14:17 aubergine is now online 02:15:03 quinthellopia! 02:15:07 aubergine? online? 02:15:16 http://aubergine.tryitonline.net/ 02:15:29 holy fungot. 02:15:30 boily: " tackled" in what sense? not to be a web page 02:15:35 purple is too, but ubergenes needs securing 02:15:45 that is... 02:15:49 wow. 02:16:04 * boily sheds a tear 02:17:45 dennis is p cool 02:18:10 what you up to? 02:18:55 wanna play games friday? 02:19:40 I'm back home after a spicy Chinese supper. 02:20:08 sure! I just have to be home Friday. 02:20:19 quintopia: Do you own http://tryitonline.net/ ? Or is that a major website I haven't noticed yet? 02:20:36 hppavellon[1]. 02:20:38 hppavilion[1]: dennis owns it 02:20:46 Who? 02:20:57 Is that a person I should know about? 02:21:00 boily: just be on steam and ill ping you 02:21:20 hppavilion[1]: sure! everyone should know dennis! 02:21:39 what's a dennis? 02:21:39 quintopia: OK, help me know dennis/ 02:21:41 *. 02:21:50 Whot is this dennis you speak of? 02:22:02 he's the most golfiest of golfers on ppcg 02:22:11 -!- mad has joined. 02:22:27 Ah! 02:23:41 hppavilion[1]: did you `list yet hth 02:23:52 `? weather 02:23:54 lambdabot: ?? (?metar CYUL) \ (?metar ENVA) \ (?metar ESSB) \ (?metar KOAK) 02:23:57 CYUL 250200Z 03021G31KT 5SM -FZRA BKN006 OVC012 M00/M01 A2957 RMK SF6SF2 PRESFR SLP016 \ ENVA 250120Z 27015KT 9999 SCT009 BKN015 02/00 Q0999 RMK WIND 670FT 28015KT \ ESSB 250150Z AUTO 23006KT 9999 NCD M03/M05 Q0998 \ KOAK 250153Z 31007KT 10SM FEW200 17/08 A3010 RMK AO2 SLP194 T01670083 02:24:01 shachaf: Nope, not even sure what that is 02:24:03 `list 02:24:11 b_jonas boily a`a`a`a`jo7as a`a`a`a`jo8as a`a`a`a`jo3as a`a`a`a`jo6as a`a`a`a`jo5as a`a`a`a`jo4as a`a`a`a`jo2as a`a`a`a`jo1as a`a`a`a`jonas0 a`a`a`a lambdabot chicken_jonas myname 02:24:12 why not KATL? 02:24:21 quintopia: feel free to add it hth 02:24:44 hppavilion[1]: It's a list of nicks. 02:24:51 lambda would run out of space tho 02:24:56 shachaf: OK. 02:25:05 And now you're on the list. 02:25:10 `list 02:25:15 hppavilion[1] b_jonas boily a`a`a`a`jo7as a`a`a`a`jo8as a`a`a`a`jo3as a`a`a`a`jo6as a`a`a`a`jo5as a`a`a`a`jo4as a`a`a`a`jo2as a`a`a`a`jo1as a`a`a`a`jonas0 a`a`a`a lambdabot chicken_jonas myname 02:25:23 ... 02:25:24 FUUUUUUUUUUUUUUUUUUUUUUUU 02:25:38 * boily pat pat pat hppavilion[1] 02:25:41 `? list 02:25:42 list is a fun program that HackEgo has! Run it with `list and join the fun! 02:25:51 hppavilion[1]: don't worry, it only hurts once. 02:26:15 shachaf: is there any way to make lambdie answer with multiple messages? 02:26:21 I'm not sure. 02:26:27 that way we'd cover all the most important metars. 02:26:39 -!- tromp_ has joined. 02:27:04 quintopia: So I take it that tryitonline executes on the server? 02:28:09 yes 02:28:16 Ah. 02:29:17 I'm trying yet again to make a pan-unicode programming language 02:29:39 neo-apl? :D 02:30:15 hppavilion[1]: as long as it features ¨ on egregious glyphs, and that multiocular O. 02:30:28 mad: o hai. are you mad, or madbr? 02:30:43 `? mad 02:30:44 mad: Nah, it's a stacky lang for now 02:30:44 mad=madbr=madbrain 02:30:44 This wisdom entry was censored for being too accurate. 02:31:00 it's just an alt nick ;) 02:32:00 makes sense. 02:33:07 `le/rn madbr/He alternates between making sense, and being logical. He doesn't monetize the brotherhood scheme. 02:33:10 Learned «madbr» 02:34:55 good night boily 02:35:29 bonne nuitopia! 02:35:36 hppavilion[1]: sounds pointless :p 02:36:07 quintopia: Welcome to #esoteric. You new here? 02:36:33 -!- andrew has joined. 02:36:58 `? quintopia 02:36:59 quintopia is our resident tl;dr generator. He is flooded by thundercats and thunderdogs. 02:37:09 `? hppavilion[1] 02:37:10 hppavilion[1] se describe en las notas al pie. ¿Porqué no los dos? Nadie lo sabe. 02:37:49 hppavilion[1]: are you? most folks here are a lot lazier than that 02:38:15 quintopia: Fair point xD 02:39:10 time to hit the sack and understand the inherent properties of my pillow. 02:39:27 hppavilionne nuit[1]. 02:39:48 mad: eeeeh... bonne nuit toéssi. m'a toujours bin trouver de quoi avec ton nick demain qui fitte avec bonne nuit. 02:40:10 -!- boily has quit (Quit: KERNEL CHICKEN). 02:40:17 ...oké ;) 02:42:43 -!- mad has quit (Read error: Connection reset by peer). 02:46:52 -!- tromp_ has quit (Remote host closed the connection). 02:47:41 J"bo!vig!ybnswt <-- encrypted 02:49:16 <^v> i was pinge 02:49:19 <^v> i was pinged* 02:49:25 <^v> although I'm not really sure how you'd noping "^v". maybe like "↑v" (which is two extra bytes, not only one). 02:49:28 -!- adu has quit (Ping timeout: 255 seconds). 02:49:31 <^v> hi 02:58:03 -!- hppavilion[1] has quit (Ping timeout: 244 seconds). 03:04:43 -!- mad has joined. 03:05:32 got a strange cpu design which seems pretty balanced on paper 03:06:23 instructions come in 4-instruction groups (32bits each, so each group is 128bits, always aligned) 03:06:38 2 go to the "front end", 2 go to the "back end" 03:07:15 front end is basically a classic MIPS 03:07:41 except one of the registers is a "queue input" ie every time an instruction writes there, the value is queued to the back-end 03:08:29 -!- AlexR42 has quit (Remote host closed the connection). 03:08:54 also one of the variants of 'store' doesn't specify the data to store and simply protects the memory address from loading/storing until the back-end queues an output value 03:09:49 the back end is also similar to a MIPS but one of the registers is a 'queue input', which pops one value coming in from the front end 03:10:30 and the result of an alu operation can be queued to the memory output queue 03:10:59 also the back end only has ALU operations, no load/store 03:11:12 how is an address protected? 03:11:29 the address is added to the write queue 03:11:49 every time a value is loaded/stored, it's compared to all the addresses in the write queue 03:12:26 if any matches, it stalls until the matching write in the write queue is executed 03:13:41 most CPUs these days do this actually 03:13:48 it's just that they don't expose it 03:20:22 -!- Alcest has joined. 03:22:09 -!- tromp_ has joined. 03:22:25 -!- hppavilion[1] has joined. 03:36:44 -!- adu has joined. 03:38:00 -!- mihow has quit (Quit: mihow). 03:47:20 <\oren\> omg why did i put landing legs on my communication satellite? 03:47:37 because they're cool 03:48:07 or maybe you want to land on a death star. 03:55:48 so that it can stand upright as ppl work on it? 03:56:08 though I guess you'd remove the legs before sending it to space 03:56:18 yeah 03:57:50 (the reason why I chose the death star is that the satellite isn't going to change its speed much, so most of the approach navigation will have to be done by the object it's going to land on) 03:58:45 -!- XorSwap has quit (Quit: Leaving). 04:02:33 -!- lambda-11235 has quit (Ping timeout: 240 seconds). 04:18:03 anyone feel like gaming 04:19:07 hppavilion[1]! 04:19:17 adu! 04:19:29 wait... i don't know you 04:19:32 `? adu 04:19:37 adu? ¯\(°​_o)/¯ 04:19:40 adu! 04:19:47 neither does hackego :/ 04:19:48 `? quintopia 04:19:53 quintopia is our resident tl;dr generator. He is flooded by thundercats and thunderdogs. 04:19:59 `le/rn adu/Bye! 04:20:02 Learned «adu» 04:20:10 clever :P 04:20:10 hppavilion[1]: what's happening with my nick? 04:20:20 adu: ? 04:20:25 hppavilion[1]: I just had a power outage for 1 hour 04:20:35 adu: Is the line not highlighted all the way? 04:20:42 Ah, power outages suck 04:20:51 hppavilion[1]: we lit like 50 candles, and then blew out 50 candles when the power came on again 04:20:57 xD 04:21:01 it was fun 04:21:04 adu: Did I tell you about thoof? 04:21:15 hppavilion[1]: is that the proof about Peano? 04:21:27 hppavilion[1]: or PCRE-based proofs? 04:21:33 Yes 04:21:37 hppavilion[1]: Yes 04:21:38 PCRE-based proofs 04:21:41 OK 04:21:57 I'm low on battery 04:22:07 hppavilion[1]: are you having a power outage? 04:22:56 and what's with the ZWSP? 04:22:56 No 04:23:09 ¯\(°​_o)/¯ 04:23:35 ZWSP??? 04:23:58 zero-width-space? 04:24:01 in my font, looks like ¯\(°[ZWSP])/¯ 04:24:11 Oh' 04:24:45 I'm trying to figure out what it's supposed to look like 04:25:04 It's not supposed to render 04:25:27 then what is it? 04:25:45 hppavilion[1]: what does it look like on your screen? 04:25:46 Zero-width spacer? 04:25:52 Nothing 04:25:59 (°_o) 04:26:09 ah 04:26:12 eyes? 04:26:14 int-e: We should make one with legs xD 04:26:23 (°_o) 04:26:25 / \ 04:26:29 hppavilion[1]: myndzi is awol 04:26:29 It's the dunno lol face 04:26:30 No... 04:26:35 (°_o) 04:26:37 | 04:26:40 / \ 04:26:42 hppavilion[1]: That looks more like it's laughing 04:26:44 I see the arms, I don't see the face 04:27:02 hppavilion[1]: I have a special font that renders unicode spaces 04:27:06 adu: Have you not seen it before? 04:27:09 adu: That must be it then 04:27:11 hppavilion[1]: seen what? 04:27:27 I've seen butt face: (_|_) 04:27:30 `? questionable content 04:27:31 questionable content? ¯\(°​_o)/¯ 04:27:34 http://idunnolol.com/ 04:27:35 adu: I think that oerjan was doing something with ping prevention 04:27:42 hppavilion[1]: is that a 4chan thing? 04:27:48 ¯\_(ツ)_/¯ 04:27:50 :( 04:27:59 The middle doesn't render 04:28:00 * adu doesn't do 4chan 04:28:06 ¯\(°_o)/¯ 04:28:08 looks like katakana 04:28:28 prooftechnique: that's better :) 04:28:44 Yay! 04:28:55 prooftechnique: looks like zim or grr making *whaaa* or *wheee* face 04:29:11 That's a fair comparison :D 04:29:22 * adu likes zim and grr 04:29:26 * adu doesn't like 4chan 04:30:07 adu: Nobody likes 4chan. They all moved to infinitychan. 04:30:14 `? 4chan 04:30:15 4chan? ¯\(°​_o)/¯ 04:30:18 ... 04:30:22 lolol 04:30:26 ಠ_ಠ 04:30:37 I'm not angry, I'm just disappointed. 04:30:54 💩 04:31:49 I can't wait until they make racist fonts 04:32:04 adu: ? 04:32:11 http://unicode.org/reports/tr51/ 04:33:48 Sorry, not "racist", I meant "FITZPATRICK TYPE" 04:34:29 `learn 4chan is twice as loud as stereo. 04:34:32 Learned '4chan': 4chan is twice as loud as stereo. 04:34:48 adu: Unicode discriminates against purple people with ultraviolent pokadots 04:34:57 hppavilion[1]: lol 04:35:18 Pokadots that will rip you to shreds given the chance 04:36:57 you know how some people want to go back in time and kill hitler? 04:37:18 I want to go back in time and kill 4chan, and gif, and compuserve 04:37:48 gif is great 04:37:55 What did gif ever do to you? 04:38:01 shachaf: tell that to PNG, and JPEG2000 04:38:09 adu: It also discriminates against black gas pumps 04:38:11 adu: none of which were around in 1989 04:38:20 Choosy moms choose GIF 04:38:32 Though I shudder to pronounce it that way 04:38:33 adu: gif is *old*. it was great at the time. 04:38:38 int-e: well, maybe I'll publish a paper on DWTs in 1972 04:39:02 much better than PCX, for example 04:39:09 http://unicode.org/reports/tr51/#Subject_Emoji_Modifiers 04:39:26 I feel like getting a negative Erdős number would be a productive use of a time machine 04:39:36 hppavilion[1]: that's the same link 04:39:44 oh, you did an anchor 04:39:46 adu: Yes, but that section explains my joke 04:39:47 n/m 04:40:48 prooftechnique: you can't publish -1 papers with Erdos 04:41:05 adu: really, don't kill gif. kill the netscape navigator authors who came up with the blink tag and thought displaying animanted gives was a bright idea, if you must kill somebody. 04:41:22 s/gives/gifs/ 04:41:41 adu: No, but you could be the primary author on his first paper 04:41:44 It is beyond the scope of Unicode to provide an encoding-based mechanism for representing every aspect of human appearance diversity that emoji users might want to indicate. 04:41:53 I would be willing to kill , but not netscape 04:42:01 I think I found a new niche for character encodings 04:42:12 adu: I would just kill the guy who invented blink 04:42:23 netscape gave birth to mozilla, and mozilla gave birth to Rust, and I am madly in love with Rust 04:42:23 adu: whatever was wrong with mosaic ;) 04:42:45 we had rust before we had computers... 04:42:55 adu: A character encoding with ALL the possible emoji in it 04:42:59 int-e: not rust, "Rust" 04:43:00 I'd go back in time and fix the mess that is User-Agent 04:43:10 https://www.rust-lang.org/ 04:43:11 (these newfangled language names that are common words really annoy me) 04:43:41 (Go is the worst offender, but neither "rust" nor "swift" are much better) 04:43:42 Like Ruby? And Python? And C? 04:44:03 at first, I thought Rust was the same as Dylan, Delphi, Julia, Nim, you know the new compiled langs 04:44:29 but then it grew on me, and I learned about the borrow, oh, the borrow 04:44:56 int-e: It's funny that google named their language Go, knowing full well googling "go" will probably get the word excluded from the search 04:45:08 Go and Swift are tinker toys, I don't really consider them compiled languages 04:45:17 hppavilion[1]: they were in the position to "fix" that 04:45:24 I'm surprised there isn't a Rust library called Arrietty, yet 04:45:58 Go and Swift are not really architecturally different than Cython or GCJ, just different names for stuff 04:46:09 adu: I think the presence and use of a compiler is what makes them compiled languages. :/ 04:46:30 prooftechnique: is Cython compiled? is GCJ compiled? no 04:46:37 adu : how do go/swift/cython/gcj work architecturally? 04:46:50 they're slight optimizations of a fundamentally interpreted model 04:47:25 So "compiled" means "compiled to machine code" for you 04:47:38 Rather than, say, bytecode or an IR 04:48:06 prooftechnique: no, compiled is a philosophy, which you can't get by optimizing the interpreted, garbage collected, extremely RTTI-dependant model 04:48:28 hmm, perhaps I meant statically typed 04:49:04 my usual classification is (I)static-typed-manual-mem-alloc (C++, asm, pascal...), (II)static-type-globally-garbage-collected (Java, C#), (III) dynamic-typed-globally-garbage-collected (perl, python, lua, javascript...) 04:50:28 I haven't touched go/swift/etc... but my really murky understanding was that they were somewhere between category (I) and (II) 04:51:15 one is "I am assembling an efficient binary with as few key presses as possible", and the other is "I'm playing with ideas, to see what happens without a compilation step" 04:52:05 -!- idris-bot has quit (Quit: Terminated). 04:52:25 like, my classification is based on speed grades: you can get java to run pretty fast, but you can never prevent the garbage collector from stopping the world once in a while, which is why people who need speed grade (I) have never moved to java or C# (video games, pro audio) 04:52:41 -!- idris-bot has joined. 04:53:35 this is also why asm.js exists: javascript is in speed grade (III) and cannot be moved from there, so they had to come up with something new for a faster speed grade 04:54:02 mad: Go is similar to Cython in the sense that the Go runtime is pretty much all of Plan9, but you get a binary from it so it's "compiled", Swift is Objective-C with a different syntax, Cython compiles your Python to C using libpython, so all the slowness of Python can still creep up on you, and GCJ compiles Java 04:54:30 mad: sometimes speed and philosophy are incompatible 04:56:05 well, yeah, this is why speed grades exist 04:56:18 prooftechnique: for BC/IR I would use "precompiled" 04:56:39 prooftechnique: because there's still a lot of work to do 04:56:50 basically this is "given a perfect compiler/interpreter what's the fastest it can go" 04:57:43 mad: there are many stop-free GCs, Go just switched to one recently, iirc 04:58:47 adu: I'll believe that when I see it 04:59:07 https://talks.golang.org/2015/go-gc.pdf 04:59:13 | (• ◡•)| 04:59:19 oh, also, generally grade (III) languages can't be threaded (except for lame workarounds like worker objects) 04:59:23 (❍ᴥ❍ʋ) 05:00:20 https://golang.org/doc/go1.5 05:00:26 -!- jaboja has joined. 05:00:36 and languages in the same speed grade can generally be linked together (like asm and c++ in the same project) 05:01:06 whereas c++ and java together means you get to use the horribly clunky JNI 05:01:37 "virtuous cycle" 05:01:47 mad: well, with your speed grades, I would put Go/Swift in (II) and Rust in (I) 05:02:09 ಠ‿ಠ 05:02:44 Go has a clunky FFI because it uses a completely incompatible calling convention 05:03:06 adu: I remember reading somewhere in rust documentation about one guy proposing to literally remove garbage collected objects so I guess that works there 05:03:11 Rust uses the clang calling convention, which iirc, is the same as gcc 05:03:37 mad: there is no gc in rust 05:04:13 mad: there is a library, which no one uses, which provides a Gc generic type 05:05:16 mad: I think rust-0.1-alpha had gc builtin, but that was way before 1.0 was released 05:06:12 "GC pause [graph has points from about 0.2ms to 2.8ms]" 05:07:13 -!- hppavilion[1] has quit (Ping timeout: 244 seconds). 05:07:45 that's probably fast enough for video games (not for pro audio tho ;) ) 05:10:01 "[LATENCY] [50 miliseconds]: Perceptual Causality (cursor response threshold)" 05:10:22 not true 05:10:46 that's like 3 frames 05:11:09 people can see and feel 3 frames 05:13:22 mad: source? 05:13:23 also it's impossible to play a synthesizer with 50ms latency 05:13:42 adu : add a 3 frame lag to a video game 05:13:51 mad: link? 05:13:54 guaranteed people will see it 05:14:01 mad: reference? 05:14:40 mad: url? 05:15:23 just play minecraft and you'll see 05:15:38 mad: minecraft is not written in Rust 05:15:55 the game has small lags all the time (which is probably inevitable considering how it works) 05:16:40 mad: so your claim is that a certain lag is perceptible, not that Rust has gc 05:16:46 yes 05:16:49 ah ok 05:16:51 oh 05:16:53 I was confused 05:17:09 I thought you were saying that lag wasn't perceptible :o 05:17:09 :D 05:17:22 I thought you were saying that Rust had gc 05:17:25 :P 05:17:28 -!- tromp_ has quit (Remote host closed the connection). 05:17:30 ha of course not 05:18:07 my favorite FFI is Haskell's 05:18:33 if Rust is in speed grade (I) then it has a bright future 05:19:15 if it was in speed grade (II) then I'd say it has to be better than C# or java... if it's in grade (I) it only has to be better than C++ :D 05:19:24 "foreign puts :: CString -> IO ()", almost every FFI function has "IO a" as it's return type, there's something beautiful about that 05:19:58 adu : considering how haskell reorders everything, it pretty much has to, no? :D 05:20:43 mad: I don't think its so much about reordering as purity 05:21:04 both come together 05:21:11 C is "impure", and in order for Haskell to use it, it must be in the IO monad, which contains impurity 05:21:21 if you don't have purity then you can't reorder anything 05:21:36 maybe 05:21:51 you can only do small scale reorderings 05:21:58 (which is what GCC and LLVM do) 05:22:41 I once saw a presentation about reordering in Sun's HotSpot JVM, and how it spawned a JCP community around it 05:22:41 if you increase the scale of the reordering the potential interactions grow way too quickly which is why you can only do small local reorderings 05:23:08 oh? 05:23:12 which then led to the official definition of "concurrent java" 05:23:39 java is also a fundamentally impure language 05:24:19 and since you have referrences all over the place.. :3 05:24:27 yeah, and I know that java has had sync primitives from the beginning 05:24:59 sync is different 05:25:04 sync is just a mutex 05:26:21 basically when something is pure, that means it doesn't have referrences 05:27:03 it's like you can only have one of these two things in a language 05:27:41 mad: if you're interesting it was something like this: http://www.slideshare.net/alexandermartens/the-java-memory-model 05:27:45 * Sgeo thinks of Rust as a mostly improved but sometimes weakened Haskell-lite 05:27:53 but I'm pretty sure that's not the exact presentation 05:29:44 Sgeo: I wouldn't put Rust and Haskell on the same page 05:29:55 Sgeo: but their type systems are similar 05:30:20 adu : some of those "atomicity" rules are basically just going with what they implemented on CPUs 05:30:22 their stance on purity, of course, different 05:31:04 "Access to variables of primitive types (excluding long and double) and reference variables are atomic." 05:31:12 &mut is pretty much ... similar to either State or ST, not sure which 05:31:16 notice the (excluding long and double) 05:31:52 mad: or maybe it was http://www.slideshare.net/michalwarecki/java-memory-model-23207253 05:32:32 Sgeo: I never understood State or ST, my haskell programming carrer has been in the IO, List sandbox 05:33:27 State is take a T, give back a T 05:33:39 (And another value) 05:34:02 Sgeo: can I show off my haskell packages? 05:34:20 Sure, but I'm more obsessed with Rust at the moment 05:34:41 Sgeo: :D 05:34:56 Sgeo: then can I show off my rust packages? 05:35:02 Sure 05:35:14 https://github.com/andydude/rust-sha 05:38:13 -!- jaboja has quit (Ping timeout: 244 seconds). 05:38:52 -!- hppavilion[1] has joined. 05:39:14 My packages: https://github.com/Sgeo/take_mut and https://github.com/Sgeo/hlist 05:39:26 Sgeo: I'm pretty sure it's the only SHA-3 implementation in Rust 05:39:53 heterogeneous list? are you insane? 05:40:14 With type-directed lookup reliant on type inference 05:40:18 Here's something 05:40:23 Antifunctions. 05:40:27 kinda wondering 05:40:39 Functions are things that take [0, infinity) values and produce exactly 1 value 05:40:44 hppavilion[1]: you missed my showing off of my rust package: https://github.com/andydude/rust-sha 05:40:59 Antifunctions take exactly one value and return [0, infinity) values 05:41:15 hppavilion[1]: that sounds like category theory 05:41:26 adu: Does it? 05:41:27 GOod 05:41:42 adu: How about Complex Fuzzy Bag typing (or just normal Fuzzy Bag typing)? 05:42:12 adu, I also have an anonymous sum type. It feels like playing with water, it just expands to fill its container 05:42:18 A type can be thought of like a set of possible values; a complex fuzzy bag type can be thought of as a set-like thing where values have a complex number representing how many times they appear in a set 05:42:26 Sgeo: That's gas. 05:43:05 Water IS a gas *pretends that's what he had in mind* 05:43:17 Sgeo: Yeah, no 05:43:35 Water is only water in liquid form IMHUQO 05:43:48 hppavilion[1]: you know what would sound even more category theory? co-functions 05:43:56 https://gist.github.com/Sgeo/ecee21895815fb2066e3 05:44:05 adu: YES 05:44:08 co-functions 05:44:14 adu: How do co-functions work 05:44:21 hppavilion[1]: lolol 05:44:27 hppavilion[1]: just how you described 05:44:29 -!- mad has quit (Ping timeout: 240 seconds). 05:44:31 What happens with the multiple values they return? 05:44:44 Does the program fork? 05:44:59 hppavilion[1]: "functions" are co-injective, so "co-functions" are just injective 05:46:07 but "injective" generally implies a function, so you have to specify "injective mapping" 05:47:01 hppavilion[1]: it probably works the same way the Haskell List monad does 05:47:14 adu: The internet will not tell me anything about co-injective 05:47:26 if you do x <- xs; return (f x) 05:47:37 that's pretty much the same as a for-loop 05:47:58 ys = []; for x in xs: xs.append(f(x)) 05:48:04 ys 05:48:06 damnit 05:48:10 adu: What does the List Monad do? 05:48:11 my idea is ruined 05:48:32 hppavilion[1]: it's kind of like a block, or { ... } thingy that runs on each element of the list 05:48:50 Ah 05:49:08 adu: What about semifunctions? 05:49:08 hppavilion[1]: if you're really interested you should learn about Monads 05:49:13 I should 05:49:27 hppavilion[1]: there are only 2 operations defined on a monad: join and return 05:49:43 OK 05:49:44 adu, you need fmap too 05:50:06 hppavilion[1]: "The Haskell Monad" f*cks it up a bit and only defined 2 methods: bind and return 05:50:17 but other than that "The Haskell Monad" and the mathematical monad are the same 05:51:01 hppavilion[1]: the List monad makes it easy to see, join :: [[a]] -> [a], and return :: a -> [a] 05:51:08 adu: So I'm trying to implement a category theory python library 05:51:28 hppavilion[1]: you can do whatever your heart desires, within reason 05:51:29 adu: The "mathematical monad" is perfectly fine to define in terms of (>>=) and return. 05:51:39 shachaf: ah, my bad 05:51:47 People do it all the time. 05:51:52 With the Kleisli category or something. 05:51:58 I don't remember what it was called. 05:52:08 The Kleisli category isn't it. 05:52:24 hppavilion[1]: oh, and bind is pronounced (>>=) in Haskell 05:53:39 I know 05:54:30 adu: YES! 05:54:55 THE _get_morphism_composition() METHOD FOR CATEGORY OBJECTS WORKS! 05:55:06 Now I just hope that I actually need it 05:55:20 lol 05:56:16 (what it does is it looks for pairs of morphisms (f: x -> y, g: y -> z), and creates a new morphism f . g: x -> z 05:56:18 ) 05:56:30 composition? 05:56:37 (It uses the composition function the category is endowed with upon creation to compose them) 05:56:50 "endowed" 05:56:58 (which is usually just composition adu, yes) 05:57:01 I prefer "equipped" 05:57:08 adu: Well, that's passed to the __init__ method. 05:57:11 I used to do math 05:57:21 but then I got a job in I.T. 05:57:28 adu: Did you take a morphism to the knee? 05:57:42 hppavilion[1]: I'm not sure what that means IRL 05:57:51 adu: An arrow to the knee 05:57:56 ah 05:57:57 no 05:58:05 adu: It's a hilarious reference to a meme 05:58:20 hppavilion[1]: you know what my favorite mem is? 05:58:37 adu: SO am I doing it right so far? It also autogenerates identify morphisms for objects when added 05:58:39 adu: I do not 05:58:51 https://en.wikipedia.org/wiki/Metameme 05:59:04 Whoa 05:59:10 identify -> identity? 05:59:36 hppavilion[1]: and now that I've told you about the metameme, you've just been infected with the meta-meta-meme 05:59:58 NOOOOOOOOOOOOOOOOO 06:00:09 adu: Yes, yes, identity 06:01:54 adu: So am I doing it right? 06:02:09 Also, objects must all be of the same "sort"- graph, group, category, etc. 06:02:38 Probably I should just github the code and let you go through it, but that would be too easy xD 06:02:45 hppavilion[1]: do these identity morphisms take up lots of RAM? 06:02:59 adu: If you have a big category, almost certainly. 06:03:28 hppavilion[1]: there's something very theraputic/cathartic/Turingesque about learning things through black-box-questioning 06:03:28 Then again, a morphism only takes up 128 bits IIANAI 06:04:00 adu: OK 06:05:05 IIANAI = ? 06:05:11 If I Am Not An Idiot 06:05:14 lolol 06:05:21 Which I am, so that message was pointless. 06:05:33 I think the proper term is IIRC 06:05:41 adu: But I'm not remembering, I'm inferring 06:06:05 I'm guessing that python only uses 64 bits to reference an already-existing object 06:06:11 "I don't count sheep, I lie down, and try to remember things I've never remembered before" 06:06:24 xD 06:06:41 That actually sounds useful 0.0 06:07:01 -!- andrew has quit (Ping timeout: 255 seconds). 06:07:16 -!- andrew has joined. 06:07:38 adu: So, you can add objects to the category, which will add them and an identity morphism, and you can add morphisms by supplying a domain, a codomain, and a function that represents the transformation 06:08:12 Adding new morphisms will then make the program check for nontrivial compositions and add them to the list of morphisms. 06:08:25 http://www.comedy.co.uk/guide/tv/qi/episodes/13/9/ --- well, um, some kind of hashtag for the part about "Tommy's father" 06:08:57 part -> parts 06:09:03 s/part/parts/ 06:09:21 sometimes I forget I'm talking to geeks 06:09:35 adu: Anything else I have to add? Or mention? 06:10:11 Or did wrong and must now change? 06:10:38 hppavilion[1]: stacktraces 06:11:22 adu: ... 06:11:36 what? stacktraces are important 06:11:53 adu: I think python will do the stacktraces for me 06:12:02 oh, right, nm 06:12:29 I think the most import part of any python library is 1 or 2 well-chosen decorators 06:12:33 xD 06:12:44 I hate decorators and don't know why 06:13:28 for example, the Celery python library has @task for distinguishing between tasks and functions, and the AsyncIO python3 library has @coroutine for distinguishing between coroutines and functions 06:13:50 adu: What if I want a cotask? 06:14:05 and, for example, my work has something called @try_requests which wraps an HTTP request with lots of status_code checking 06:14:34 adu: This isn't a library for other people to use, just a thing for me to understand kittygory theory 06:14:41 oh 06:14:46 (I'm in close proximity to a kitty, don't blame me for my puns) 06:14:55 (and low intelligence) 06:15:10 hppavilion[1]: well, I'm sorry for revealing a trade secret 06:15:37 xD 06:15:57 hppavilion[1]: http://docs.python-requests.org/en/master/ 06:16:19 that's the trade secret, now you know 06:16:37 adu: I'm not asking what I need for the library, I'm asking what to do to have a working category theory library, which I'm making so that I can understand /what/ category theory is like. To make things clear. 06:16:44 oh ok 06:17:13 hppavilion[1]: so you have morphisms, identity morphisms, objects, categories, and functors? 06:17:30 do you have the https://en.wikipedia.org/wiki/Yoneda_lemma 06:17:37 adu: Functors- functors are just morphisms in a category category, right? 06:17:57 That's backwards. 06:18:05 hppavilion[1]: yes, for an object O, morphisms are (:: O -> O) 06:18:10 It's certainly not "just" true. 06:18:24 hppavilion[1]: functors are (O, C) -> (O2, C2) 06:18:27 shachaf: What would be more accurate 06:18:52 for all O in C and for all O2 in C2 06:19:13 A functor F : C -> D maps each arrow in C to an arrow in D such that F1 = 1 and Ff.Fg = F(f.g) 06:19:15 hppavilion[1]: a functor must be structure-preserving 06:19:34 Oh god... 06:19:41 I just remembered why I don't understand category theory 06:19:52 And I have to close down the computer and watch something soon 06:19:55 hppavilion[1]: i.e. if O is a terminal object in C, then O2 must be a terminal object in C2 06:20:17 adu: So morphisms are the arrows in categories, right? Please tell me I got that right? 06:20:22 hppavilion[1]: NOOOOOOOOOOOOO 06:20:29 hppavilion[1]: yes 06:20:34 Oh, phew 06:20:36 Scared me there 06:20:37 hppavilion[1]: but functors are not just arrows 06:20:56 hppavilion[1]: functors are a mapping between categories, in a way that all of the sub-arrows make sense 06:21:01 Ah 06:21:42 hppavilion[1]: my "NO" was to your leaving me alone 06:22:20 gtg 06:22:24 lol 06:22:31 xD 06:22:32 Bai 06:24:32 hppavilion[1]: you know I was joking, right? 06:25:50 hppavilion[1]? 06:26:47 -!- hppavilion[1] has quit (Ping timeout: 244 seconds). 06:27:28 wow, hppavilion thought I was serious... 06:32:44 -!- adu_ has joined. 06:35:27 -!- adu has quit (Ping timeout: 276 seconds). 06:35:27 -!- adu_ has changed nick to adu. 06:48:58 how the heck did I end up on the one list? 06:50:07 you searched pictures of isis 06:50:42 `` hg log share/conscripts | grep '' 06:50:43 summary: revert 06:51:18 huh... but I thought I reverted something else 06:51:20 strange 06:51:32 I guess bin/list can restrict to culprits that actually ran `list 06:51:44 ok, whatever, I'll have to dos myself out of the list with other nicks 06:52:09 Not again. :-( 06:54:18 `` hg log | grep -P 'summary: <[^\s>]+> list$' | awk '{print substr($2,2,length($2)-2)}' | sed 's/.$/\x0F&/' | xargs 06:54:21 hppavilion[1] hppavilion[1] boily a`a`a`a`jo7as a`a`a`a`jo8as a`a`a`a`jo3as a`a`a`a`jo6as a`a`a`a`jo5as a`a`a`a lambdabot chicken_jonas myname chicken_jonas boily boily tswett metasepia Ngevd oklopol nortti Phantom_Hoover monqy Sgeo_ pikhq monqy Sgeo elliott Taneb elliott boily cuttlefish Taneb elliott boily ais52 06:54:49 `` hg log | grep -P 'summary: <[^\s>]+> list$' | awk '{print substr($2,2,length($2)-2)}' | sed 's/.$/\x0F&/' | awk '!x[$0]++' | xargs 06:54:52 hppavilion[1] boily a`a`a`a`jo7as a`a`a`a`jo8as a`a`a`a`jo3as a`a`a`a`jo6as a`a`a`a`jo5as a`a`a`a lambdabot chicken_jonas myname tswett metasepia Ngevd oklopol nortti Phantom_Hoover monqy Sgeo_ pikhq Sgeo elliott Taneb cuttlefish ais523 06:55:33 This one even works with the original implementation. 06:57:03 hehe, grep -P instead of just putting it inside the awk statement 06:57:39 Look, I built it a piece at a time and copied from culprits. 06:57:42 wait 06:57:47 Which, uh, does the same thing. 06:57:53 Look, I don't really know awk. 06:57:57 Not that you need awk here. 06:57:57 doesn't that exclude thosee nicks where I invoked the command with an argument? 06:58:02 It does. 06:58:10 `` hg log | grep -P 'summary: <[^\s>]+> list' | awk '{print substr($2,2,length($2)-2)}' | sed 's/.$/\x0F&/' | awk '!x[$0]++' | xargs 06:58:12 hppavilion[1] boily a`a`a`a`jo7as a`a`a`a`jo8as a`a`a`a`jo3as a`a`a`a`jo6as a`a`a`a`jo5as a`a`a`a`jo4as a`a`a`a`jo2as a`a`a`a`jo1as a`a`a`a`jonas0 a`a`a`a lambdabot chicken_jonas myname tswett metasepia Ngevd oklopol nortti Phantom_Hoover monqy Sgeo_ pikhq Sgeo fungot elliott Taneb cuttlefish ais523 olsner 06:58:17 `` hg log | grep -P 'summary: <[^\s>]+> list\s?' | awk '{print substr($2,2,length($2)-2)}' | sed 's/.$/\x0F&/' | awk '!x[$0]++' | xargs 06:58:20 hppavilion[1] boily a`a`a`a`jo7as a`a`a`a`jo8as a`a`a`a`jo3as a`a`a`a`jo6as a`a`a`a`jo5as a`a`a`a`jo4as a`a`a`a`jo2as a`a`a`a`jo1as a`a`a`a`jonas0 a`a`a`a lambdabot chicken_jonas myname tswett metasepia Ngevd oklopol nortti Phantom_Hoover monqy Sgeo_ pikhq Sgeo fungot elliott Taneb cuttlefish ais523 olsner 06:58:29 the \s? doesn't do anything you know 06:58:36 Er, right. 06:58:50 \s|$ 06:58:55 Something. 06:58:56 You fix it. 07:04:17 ``` hg log | awk '/summary: <[^\s>]+> list(\s|$)/{n=substr($2,2,length($2)-2);if(!f[n]++)printf"%s ",sub(n,/.$/,"\x0F&")}' 07:04:28 Why are you substring $2? 07:04:31 awk: line 1: syntax error at or near & 07:04:41 You can use <(^\s>]+)> or something. 07:04:52 well, it would be easier to use perl... 07:04:56 -!- hppavilion[1] has joined. 07:05:03 adu: Back 07:05:08 especially since I don't speak enough awk 07:05:11 ``` hg log 07:05:12 changeset: 7005:3c723dce4e7b \ tag: tip \ user: HackBot \ date: Thu Feb 25 04:34:31 2016 +0000 \ summary: learn 4chan is twice as loud as stereo. \ \ changeset: 7004:4c654b530cd9 \ user: HackBot \ date: Thu Feb 25 04:20:01 2016 +0000 \ summary: le/rn adu/Bye! \ \ changeset: 07:05:17 hppavilion[1]: wut 07:05:32 adu: I'm back 07:05:34 ``` hg log | grep summary 07:05:36 summary: learn 4chan is twice as loud as stereo. \ summary: le/rn adu/Bye! \ summary: le/rn madbr/He alternates between making sense, and being logical. He doesn\'t monetize the brotherhood scheme. \ summary: list \ summary: list \ summary: le/rn weath 07:05:44 hppavilion[1]: wut 07:05:54 adu: u wot m8? 07:06:06 hppavilion[1]: I don't speak LOL 07:06:14 adu: Good. 07:06:37 ``` awk 'BEGIN{print"left\x0Fright";exit}' | cat -v 07:06:38 left^Oright 07:06:43 hppavilion[1]: I wanted you amuse ppl, that's all 07:06:49 um, then what was the syntax error 07:06:56 s/you/to 07:07:24 I think this might be simpler if I directly asked hg to put something more suitable 07:07:28 adu: Syntax Error: Unterminated s/// expression 07:07:50 / 07:08:04 s/// is a sed-ism 07:08:09 in ed it's not required 07:08:11 izabera: Yes, I know 07:08:22 although s// and s/// do something different in ed 07:08:38 adu: So what exactly is the mathematical definition of "making sense"? 07:08:51 hppavilion[1]: non-contradiction 07:08:55 I am currently laying on a blanket on top of a bare mattress pad 07:09:03 ``` hg log --template "{author} " culprits 07:09:05 No output. 07:09:07 adu: In the context of functors having to map arrows in a way that "makes sense" 07:09:12 `` type ed 07:09:13 ed is /bin/ed 07:09:18 ``` hg log --template "{author} " bin/list 07:09:20 HackBot HackBot HackBot HackBot HackBot HackBot HackBot HackBot HackBot HackBot HackBot HackBot HackBot HackBot HackBot HackBot HackBot HackBot HackBot HackBot HackBot HackBot HackBot HackBot HackBot HackBot HackBot HackBot HackBot HackBot HackBot HackBot HackBot HackBot HackBot HackBot HackBot HackBot HackBot HackBot HackBot HackBot HackBot HackBo 07:09:21 `cat bin/` 07:09:22 ​#!/bin/bash \ TIMEFORMAT="real: %lR, user: %lU, sys: %lS" \ shopt -s extglob globstar \ eval -- "$1" 07:09:23 what file does list touch? 07:09:39 ``` hg log --template "{desc} " bin/list 07:09:40 -!- Jakeey802 has joined. 07:09:40 ` sed -i \'s/sort -u/awk \'\\\'\'!x[$0]++\'\\\'\'/\' bin/list ` sed -i \'s!$! | xargs -n 1 | sort -u | xargs!\' bin/list ` sed -i \'s!conscripts!share/conscripts!g\' bin/list mkx bin/list//date > conscripts; culprits conscripts mkx bin/list//echo $(($(cat conscripts)+1)) > conscripts; culprits cons 07:09:51 ``` hg log --template "{desc}\n" bin/list 07:09:52 what! 07:09:52 ` sed -i \'s/sort -u/awk \'\\\'\'!x[$0]++\'\\\'\'/\' bin/list \ ` sed -i \'s!$! | xargs -n 1 | sort -u | xargs!\' bin/list \ ` sed -i \'s!conscripts!share/conscripts!g\' bin/list \ mkx bin/list//date > conscripts; culprits conscripts \ mkx bin/list//echo $(($(cat conscripts)+1)) > conscripts; culpr 07:09:56 TG 07:10:19 conscripts! 07:10:21 hppavilion[1]: if O, Q in C, and M(O) == Q, and O2, Q2 in C2, then M2(O2) must be Q2 07:10:23 ``` hg log --template "{desc}\n" conscripts 07:10:23 -!- Jakeey802 has quit (Client Quit). 07:10:25 No output. 07:10:36 ``` ls conscripts 07:10:36 <\oren\> > 8.21 / (60 / 21) 07:10:37 ls: cannot access conscripts: No such file or directory 07:10:38 2.8735000000000004 07:10:45 It's share/conscripts 07:10:49 adu: Ah? 07:10:50 ``` find -name conscripts 07:11:00 adu: How do I put that in Python? 07:11:01 ​./share/conscripts 07:11:02 hppavilion[1]: I might have put the "if"s in the wrong place 07:11:02 ``` hg log --tempalte "{desc}\n" share/conscripts 07:11:04 hg log: option --tempalte not recognized \ hg log [OPTION]... [FILE] \ \ show revision history of entire repository or files \ \ options: \ \ -f --follow follow changeset history, or file history across \ copies and renames \ -d --date DATE show revisions matching date spec \ -C --copies 07:11:09 hppavilion[1]: decorators 07:11:18 ``` hg log -l 512 --template "{desc}\n" share/conscripts 07:11:19 adu: Oh? 07:11:19 list \ list \ revert \ list \ list \ list \ list \ list \ list \ list soon the too many nick changes rule will trigger on freenode \ list everypony \ list me too \ right 07:11:27 b_jonas: You're pinging me a lot 07:11:29 <\oren\> > 8.74 / (21 / 60) 07:11:32 24.971428571428575 07:11:33 hppavilion[1]: sorry 07:11:38 b_jonas: Tis fine. 07:11:43 Just thought I should mention it 07:11:45 well, it's a side-effect of the list 07:12:04 adu: No, I mean how do I check that that is true? that O, Q... 07:12:30 b_jonas: If you use hg log instead of hg log share/conscripts, it'll find other uses of `list 07:12:41 I think part of the spirit of `list is that once you've done it once, it's unescapable. 07:13:07 `cat bin/list 07:13:08 date > share/conscripts; culprits share/conscripts | xargs -n 1 | awk '!x[$0]++' | xargs 07:13:25 Damn 07:13:40 ``` hg log -l 512 --template "{desc}\0" share/conscripts | perl -0ne '/^<([^>]*)> list[\s\0]/ and print$1' 07:13:40 Forgot about `culprits` 07:13:41 hppavilion[1]hppavilion[1]boilya`a`a`a`jo7asa`a`a`a`jo8asa`a`a`a`jo3asa`a`a`a`jo6asa`a`a`a`jo5asa`a`a`a`jo4asa`a`a`a`jo3asa`a`a`a`jo2asa`a`a`a`jo1asa`a`a`a`jonas0a`a`a`alambdabotchicken_jonaschicken_jonaschicken_jonasmynamechicken_jonasboilyboily 07:13:49 hppavilion[1]: the way that Haskell does it is that the theorems and properties are clearly documented, and any time you disobey them, they call it "Unspecified Behaviour" and scare people 07:13:52 ``` cat -v culprits 07:13:53 cat: culprits: No such file or directory 07:13:56 ``` cat -v bin/culprits 07:13:57 hg log --removed "$1" | grep summary: | awk '{print substr($2,2,length($2)-2)}' | sed "s/.$/\x0F&/" | xargs 07:14:06 adu: Ah 07:14:06 scary awk stuff 07:14:10 ``` hg log -l 512 --template "{desc}\0" share/conscripts | perl -0ne '/^<([^>]*)> list[\s\0]/ and print$1' 07:14:12 hppavilion[1]hppavilion[1]boilya`a`a`a`jo7asa`a`a`a`jo8asa`a`a`a`jo3asa`a`a`a`jo6asa`a`a`a`jo5asa`a`a`a`jo4asa`a`a`a`jo3asa`a`a`a`jo2asa`a`a`a`jo1asa`a`a`a`jonas0a`a`a`alambdabotchicken_jonaschicken_jonaschicken_jonasmynamechicken_jonasboilyboily 07:14:18 ``` hg log -l 512 --template "{desc}\0" share/conscripts | perl -0ne '/^<([^>]*)> list[\s\0]/ and print"$1 "' 07:14:20 hppavilion[1] hppavilion[1] boily a`a`a`a`jo7as a`a`a`a`jo8as a`a`a`a`jo3as a`a`a`a`jo6as a`a`a`a`jo5as a`a`a`a`jo4as a`a`a`a`jo3as a`a`a`a`jo2as a`a`a`a`jo1as a`a`a`a`jonas0 a`a`a`a lambdabot chicken_jonas chicken_jonas chicken_jonas myname chicken_jonas boily boily 07:14:31 hppavilion[1]: if you want a system that enforces it, I suggest Coq, and no, that's not sexual 07:14:36 xD 07:14:39 I've heard of Coq 07:14:43 I'm MAKING a bad Coq 07:14:48 ``` hg log -l 512 --template "{desc}\0" share/conscripts | perl -0ne '/^<([^>]*)> list[\s\0]/ and!$t{$1}++and print"$1 "' 07:14:49 hppavilion[1] boily a`a`a`a`jo7as a`a`a`a`jo8as a`a`a`a`jo3as a`a`a`a`jo6as a`a`a`a`jo5as a`a`a`a`jo4as a`a`a`a`jo2as a`a`a`a`jo1as a`a`a`a`jonas0 a`a`a`a lambdabot chicken_jonas myname 07:14:54 Coq means chicken in some language 07:14:57 adu: So I just make a Functor class (possibly a subclass of Morphism) that raises an exception if you violate the GRAND PROPERTIES OF FUNCTORS 07:15:00 adu: French. 07:15:04 ``` hg log -l 512 --template "{desc}\0" share/conscripts | perl -0ne '/^<([^>]*)>/ and!$t{$1}++and print"$1 "' 07:15:05 hppavilion[1] b_jonas boily a`a`a`a`jo7as a`a`a`a`jo8as a`a`a`a`jo3as a`a`a`a`jo6as a`a`a`a`jo5as a`a`a`a`jo4as a`a`a`a`jo2as a`a`a`a`jo1as a`a`a`a`jonas0 a`a`a`a lambdabot chicken_jonas myname 07:15:07 It's obviously french. 07:15:10 hppavilion[1]: French, figures 07:16:15 hppavilion[1]: I'm just attempting to provide bibliographic references in case you want to write a paper about it 07:16:46 b_jonas: What exactly are you trying to do? 07:17:00 b_j: wut 07:17:14 adu: So again, do I implement functors by making the functor class, which throws an exception when you don't functor properly? 07:17:35 `perl -e-e($o="bin/culprits-ng") and die; open$O,">",$o or die; print $O qq{#!/bin/sh\n},q{exec hg log -l 512 --template "{desc}\0" -- "$@" | perl -0ne '/^<([^>]*)>/ and!$t{$1}++and print"$1 "'}; close$O;chmod 0755,$o or die; 07:17:37 No output. 07:17:40 No, you don't implement these things in Python at all. 07:17:41 -!- tromp_ has joined. 07:17:50 `culprits-ng share/conscripts 07:17:51 shachaf: I do because I'm a rebel 07:17:51 hppavilion[1] b_jonas boily a`a`a`a`jo7as a`a`a`a`jo8as a`a`a`a`jo3as a`a`a`a`jo6as a`a`a`a`jo5as a`a`a`a`jo4as a`a`a`a`jo2as a`a`a`a`jo1as a`a`a`a`jonas0 a`a`a`a lambdabot chicken_jonas myname 07:17:54 hppavilion[1]: there's a thing I did to wrap every function everywhere 07:17:56 `culprits-ng wisdom/ent 07:17:57 b_jonas 07:18:00 hppavilion[1]: let me see if I can find it 07:18:15 `culprits-ng wisdom/oerjan 07:18:17 shachaf oerjan elliott Bike FreeFull ais523 07:18:22 ok, this works 07:18:55 First-class shebang hth 07:19:27 ``` echo $PATH 07:19:28 ​/hackenv/bin:/opt/python27/bin:/opt/ghc/bin:/usr/bin:/bin 07:19:31 hppavilion[1]: http://pastie.org/10736764 07:20:07 `perl -e-e($o="bin/list-ng") and die; open$O,">",$o or die; print $O "#!/bin/sh\nexec culprits-ng ~/share/conscripts\n"; close$O;chmod 0755,$o or die; 07:20:08 adu: Huh? What's that? 07:20:09 No output. 07:20:26 ``` echo > bin/culprits-ng 07:20:28 No output. 07:20:36 `culprits-ng bin/list 07:20:37 No output. 07:20:38 Oh, to wrap ALL the functions 07:20:44 argh 07:20:45 b_jonas: Wait, usually you don't want culprits to uniq 07:20:49 That's only relevant for `list 07:20:59 b_jonas: Are you trying to un`list yourself? 07:21:01 hppavilion[1]: debug_wrap_module() wrapps every function in a module to do something before and after the function, similar to "aspect-oriented programming" 07:21:11 Ooooh 07:21:15 hppavilion[1]: using "functools" you can probably do something similar 07:21:15 `perl -e-e($o="bin/culprits-ng") and die; open$O,">",$o or die; print $O "#!/bin/sh\n",q{exec hg log -l 512 --template "{desc}\0" -- "$@" | perl -0ne '/^<([^>]*)>/ and!$t{$1}++and print"$1 "'},"\n"; close$O;chmod 0755,$o or die; 07:21:16 Died at -e line 1. 07:21:22 shachaf: it shouldn't uniq? ok 07:21:28 Well, I don't know. 07:21:34 `perl -e($o="bin/culprits-ng"); open$O,">",$o or die; print $O "#!/bin/sh\n",q{exec hg log -l 512 --template "{desc}\0" -- "$@" | perl -0ne '/^<([^>]*)>/ and!$t{$1}++and print"$1 "'},"\n"; close$O;chmod 0755,$o or die; 07:21:37 No output. 07:21:39 `culprits-ng bin/list 07:21:40 shachaf ais523 oerjan elliott Sgeo Phantom_Hoover tswett boily metasepia Ngevd oklopol nortti monqy Sgeo_ pikhq fungot Taneb cuttlefish Jafet Bike 07:22:00 hppavilion[1]: also, decorators are a great way to do something before and after a function 07:22:26 adu: OK, but this doesn't help me with functors xD 07:22:48 `perl -e($o="bin/culprits-ng"); open$O,">",$o or die; print $O "#!/bin/sh\n",q{exec hg log -l 512 --template "{desc}\0" -- "$@" | perl -0ne '/^<([^>]*)>/ and print"$1 "'},"\n"; close$O;chmod 0755,$o or die; 07:22:50 No output. 07:22:56 `culprits-ng bin/list 07:22:58 shachaf ais523 oerjan shachaf shachaf elliott Sgeo Phantom_Hoover elliott elliott tswett tswett elliott tswett boily boily metasepia tswett Ngevd oerjan elliott oerjan elliott Sgeo oklopol nortti elliott shachaf elliott Phantom_Hoover Phantom_Hoover Phantom_Hoover Phantom_Hoover monqy elliott Sgeo_ pikhq oerjan shachaf elliott shachaf elliott monqy 07:23:02 `culprits-ng wisdom/ent 07:23:04 b_jonas b_jonas b_jonas b_jonas 07:23:06 `culprits-ng wisdom/oerjan 07:23:06 shachaf shachaf oerjan shachaf oerjan shachaf oerjan elliott Bike FreeFull shachaf shachaf ais523 ais523 elliott FreeFull oerjan FreeFull oerjan shachaf 07:23:15 I think `list is a fun club you get to be in B| 07:23:24 Any chance you could do this in privmsg? 07:23:32 Sgeo: OH MY GOD YES 07:23:40 gtg 07:23:43 I FORGOT ABOUT PRVMSG 07:23:43 -!- adu has quit (Quit: adu). 07:23:47 Wooooooooooow 07:24:06 I'm kind of interested in the EgoHacks. 07:24:13 But I guess it's pretty noisy. 07:24:26 hmm wait 07:24:29 Maybe put a zero-width space between every character? 07:24:38 it needs to noping them people 07:24:40 like culprits does 07:26:31 #`perl -e($o="bin/culprits-ng"); open$O,">",$o or die; print $O "#!/bin/sh\n",q{exec hg log -l 512 --template "{desc}\0" -- "$@" | perl -0ne 'if(/^<([^>]*)>/){$n=$1;}'},"\n"; close$O;chmod 0755,$o or die; 07:26:41 ``` chmod 644 bin/culprits-ng 07:26:44 I'll fix it later 07:26:44 No output. 07:26:54 but I'll need to implement proper noping for it 07:27:00 which is mor than I can do right now 07:27:21 if you don't want to see it here, I can do it in private message (or some other channel) 07:27:51 ``` rm bin/list-ng 07:27:54 No output. 07:27:57 ``` rm bin/list-ng 07:27:57 rm: cannot remove `bin/list-ng': No such file or directory 07:28:19 `list 07:28:28 hppavilion[1] b_jonas boily a`a`a`a`jo7as a`a`a`a`jo8as a`a`a`a`jo3as a`a`a`a`jo6as a`a`a`a`jo5as a`a`a`a`jo4as a`a`a`a`jo2as a`a`a`a`jo1as a`a`a`a`jonas0 a`a`a`a lambdabot chicken_jonas myname 07:29:12 Weird that there's some strange character between 1 and ] 07:31:13 hppavilion[1]: that's because the actual list command does a noping 07:31:56 -!- tromp_ has quit (Remote host closed the connection). 07:48:48 <^v> so i was looking for an easy way to get the maximum amount of entropy out of a floating point value 07:49:27 <^v> right now what i do is divide the float by two until its less or equal to 1 then multiply it by 0xFFFFFFF 07:52:15 -!- jaboja has joined. 07:52:18 <^v> so idk if theres anything short of getting the raw mantissa and exponent of it 08:32:25 -!- tromp_ has joined. 08:36:59 -!- tromp_ has quit (Ping timeout: 244 seconds). 08:55:14 Gulpo, the Fish who eats Conceps 08:55:17 *Concepts 08:58:01 -!- jaboja has quit (Ping timeout: 255 seconds). 09:50:54 -!- lynn has joined. 09:53:31 Sisyphus: The Video Gaem 10:00:03 -!- andrew has quit (Remote host closed the connection). 10:12:34 -!- hppavilion[1] has quit (Ping timeout: 244 seconds). 10:20:39 -!- jaboja has joined. 10:23:40 -!- AnotherTest has joined. 10:33:14 -!- tromp_ has joined. 10:37:35 -!- tromp_ has quit (Ping timeout: 250 seconds). 10:42:04 -!- jaboja has quit (Ping timeout: 240 seconds). 10:44:38 -!- noncom has joined. 10:55:27 -!- jaboja has joined. 11:16:07 -!- lynn has quit (Ping timeout: 244 seconds). 11:25:09 -!- augur has quit (Remote host closed the connection). 11:34:03 -!- boily has joined. 11:37:52 @metar CYUL 11:37:53 CYUL 251131Z 01010KT 2 1/2SM -RA BR OVC003 00/M00 A2912 RMK SF8 -RA INTMT SLP863 11:38:07 what was that shachafweathercommand again... 11:38:12 `? weather 11:38:19 lambdabot: ?? (?metar CYUL) \ (?metar ENVA) \ (?metar ESSB) \ (?metar KOAK) 11:38:21 CYUL 251131Z 01010KT 2 1/2SM -RA BR OVC003 00/M00 A2912 RMK SF8 -RA INTMT SLP863 \ ENVA 251120Z 32005KT 9999 VCSH FEW015 SCT025CB BKN049 02/00 Q0999 NOSIG RMK WIND 670FT 30006KT \ ESSB 251120Z 24006KT CAVOK 01/M04 Q0998 R30/19//56 \ KOAK 251053Z 32004KT 10SM CLR 13/09 A3011 RMK AO2 SLP195 T01280089 11:38:45 yup. No Cow Weather indeed. 11:48:03 @metar EGLL 11:48:04 EGLL 251120Z AUTO 32005KT 290V350 9999 BKN015 04/M01 Q1018 11:48:06 @metar EFHK 11:48:08 EFHK 251120Z 20014KT 9999 BKN015 02/M01 Q0997 TEMPO BKN014 11:48:17 Well, that's not a big difference. 12:18:15 -!- benderpc_ has joined. 12:19:00 -!- boily has quit (Quit: WEEKLY CHICKEN). 12:19:39 -!- benderpc_ has quit (Changing host). 12:19:39 -!- benderpc_ has joined. 12:19:53 -!- benderpc_ has changed nick to bender|. 12:19:55 -!- bender| has changed nick to bender. 12:31:23 -!- lynn has joined. 12:50:07 -!- J_Arcane has quit (Ping timeout: 244 seconds). 12:57:52 -!- ais523 has joined. 13:03:54 -!- tromp_ has joined. 13:08:12 -!- tromp_ has quit (Ping timeout: 244 seconds). 13:19:02 -!- lleu has joined. 13:42:49 -!- jaboja has quit (Ping timeout: 244 seconds). 13:43:59 -!- ais523 has quit (Ping timeout: 240 seconds). 13:50:15 -!- jaboja has joined. 14:26:15 -!- jaboja has quit (Ping timeout: 244 seconds). 14:35:31 -!- earendel has joined. 14:46:35 @metar KSFO 14:46:37 KSFO 251356Z 00000KT 10SM CLR 11/09 A3012 RMK AO2 SLP200 T01110089 $ 14:51:15 -!- Treio has joined. 14:56:04 -!- Treio has quit (Client Quit). 15:00:38 -!- lambda-11235 has joined. 15:23:35 -!- llue has joined. 15:23:46 -!- llue has quit (Changing host). 15:23:46 -!- llue has joined. 15:26:58 -!- lleu has quit (Read error: Connection reset by peer). 15:26:59 -!- Alcest has quit (Ping timeout: 240 seconds). 15:33:33 -!- bender has quit (Ping timeout: 250 seconds). 15:47:53 -!- jaboja has joined. 15:55:36 -!- jaboja has quit (Ping timeout: 244 seconds). 15:57:13 -!- lambda-11235 has quit (Quit: Bye). 16:42:31 -!- tromp_ has joined. 16:46:55 -!- tromp_ has quit (Ping timeout: 255 seconds). 16:56:06 -!- Lord_of_Life has quit (Excess Flood). 16:59:37 -!- Lord_of_Life has joined. 17:15:52 -!- AlexR42 has joined. 17:21:59 `unidecode ༖ 17:22:05 ​[U+0F16 TIBETAN LOGOTYPE SIGN LHAG RTAGS] 17:37:39 -!- nisstyre_ has quit (Ping timeout: 248 seconds). 17:45:50 -!- mihow has joined. 17:47:36 -!- erdic has quit (Quit: leaving). 17:49:17 -!- erdic has joined. 18:05:58 -!- nisstyre_ has joined. 18:06:00 -!- lambda-11235 has joined. 18:06:24 -!- earendel has quit (Ping timeout: 276 seconds). 18:22:28 -!- hppavilion[1] has joined. 18:25:57 -!- atslash has joined. 18:33:04 -!- hppavilion[1] has quit (Ping timeout: 252 seconds). 18:46:32 -!- Phantom_Hoover has joined. 19:04:41 @metar KOAK 19:04:43 KOAK 251853Z 24005KT 8SM SCT160 SCT200 16/11 A3017 RMK AO2 SLP215 T01610106 19:04:44 @metar KSFO 19:04:45 KSFO 251856Z 03004KT 9SM BKN200 16/14 A3016 RMK AO2 SLP214 T01560144 $ 19:05:01 @metar KSJC 19:05:03 KSJC 251853Z 00000KT 10SM FEW100 SCT130 19/08 A3016 RMK AO2 SLP212 T01890083 19:25:03 -!- nisstyre_ has quit (Ping timeout: 276 seconds). 19:25:16 -!- hppavilion[wc] has joined. 19:33:56 @metar KBTV 19:33:58 KBTV 251854Z 31015G23KT 10SM -RA OVC048 08/02 A2909 RMK AO2 RAB43 SLP853 P0000 T00830017 19:37:11 -!- earendel has joined. 19:38:53 -!- hppavilion[wc] has quit (Quit: Page closed). 19:43:50 -!- hppavilion[1] has joined. 19:52:39 -!- nisstyre_ has joined. 20:06:21 -!- lambda-11235 has quit (Read error: Connection reset by peer). 20:19:07 -!- ais523 has joined. 20:39:50 -!- gde33|2 has joined. 20:42:16 -!- gde33 has quit (Ping timeout: 255 seconds). 21:04:34 -!- vodkode has quit (Ping timeout: 240 seconds). 21:05:03 -!- vodkode has joined. 21:16:25 -!- augur has joined. 21:20:05 -!- I has joined. 21:20:28 -!- I has changed nick to Guest16721. 21:20:56 Should I include y/// notation in Thoof? 21:22:10 -!- atslash has quit (Ping timeout: 244 seconds). 21:22:19 -!- mihow has quit (Ping timeout: 255 seconds). 21:24:20 -!- augur has quit (Remote host closed the connection). 21:28:28 -!- oerjan has joined. 21:29:44 `unidecode oerjan 21:29:49 -!- augur has joined. 21:29:55 ​[U+006F LATIN SMALL LETTER O] [U+0065 LATIN SMALL LETTER E] [U+0072 LATIN SMALL LETTER R] [U+006A LATIN SMALL LETTER J] [U+0061 LATIN SMALL LETTER A] [U+006E LATIN SMALL LETTER N] 21:30:34 * oerjan swats b_jonas for pinging him all over the logs -----### 21:32:53 `cat bin/culprits-ng 21:32:54 ​#!/bin/sh \ exec hg log -l 512 --template "{desc}\0" -- "$@" | perl -0ne '/^<([^>]*)>/ and print"$1 "' 21:33:53 oerjan: don't use that one, it currently doesn't have noping 21:34:00 I'd like to implement a proper noping, and then add it in 21:34:17 b_jonas: well that's why i swatted you 21:34:33 oerjan: sorry 21:34:51 i just wanted to see if there was some broken attempt at it 21:35:51 oerja-ng 21:36:16 oerjan: So what does ?A do in linear logic? 21:36:27 heck if i know 21:36:29 I think ?A = _|_ & A & A#A & A#A#A & ... 21:36:36 But now I need to understand # 21:36:43 Which is a superpower only you possess. 21:36:57 shachaf: well, logically that should be true (assuming that's the dual of the obvious !A expansion) 21:37:28 Er, wait. 21:37:35 ?A = _|_ + A + A#A + A#A#A + ... 21:37:38 Maybe you meant: v @ ? . 21:37:40 & would make no sense. 21:37:57 oerjan: The obvious !A expansion being !A = 1 & A & AxA & AxAxA + ...? 21:38:14 probably. assuming 1 is right there 21:38:30 which it should be iirc 21:38:38 It's the identity of x 21:38:43 right 21:39:20 so with + you don't get to decide which term you get to use 21:40:07 so you need to be able to handle any 21:40:49 i understand # mostly as wrapping x in de morgan and letting negation be continuations... 21:41:02 i hope that's right enough 21:41:59 A -> B was ~A # B, hm 21:42:32 ~A was A -> _|_, then... 21:42:36 So if I wrote a noping utility for HackEgo, but its implementation was mildly obfuscated and so hard to understand or maintain, this channel wouldn't consider that a bug, right? 21:42:52 b_jonas: um... 21:42:56 Because this is typically the kind of string manipulation stuff where unreadable perl code excels. 21:42:59 MAYBE NOT 21:43:39 in any case go ahead 21:44:16 b_jonas: It would be as if oerjan taught a class about linear logic, but used a simplified version of one of the unusual connectives to make it easier to understand. 21:44:26 b_jonas: Which is to say, it would be par for the course. 21:44:59 @tell boily shachaf needs a mapoling hth 21:45:00 Consider it noted. 21:45:10 -!- augur has quit (Remote host closed the connection). 21:46:21 now, someone needs to explain to me how (A -> _|_) -> _|_ can manage to always be A 21:46:40 it's -o, not ->, hth 21:46:43 oh 21:46:47 well right. 21:47:03 *now, someone needs to explain to me how (A -o _|_) -o _|_ can manage to always be A 21:47:06 A -o B = ~A # B 21:47:28 in fact, i think in some sense that _is_ the central question of making sense of # and negation in linear logic 21:47:35 perl -eprint unpack "x*(a*\@0X)*(a*@)*", "hello\n"; 21:47:40 `perl -eprint unpack "x*(a*\@0X)*(a*@)*", "hello\n"; 21:47:41 ​ \ o \ lo \ llo \ ello \ hello \ ello \ llo \ lo \ o 21:47:47 because -o seems perfectly logical, as do &, + and x 21:47:53 `perl -eprint unpack "x*(a*\@0X)*", "hello\n"; 21:47:54 ​ \ o \ lo \ llo \ ello 21:47:57 Uh oh. 21:48:01 Something is messing up my terminal. 21:48:04 Is it b_jonas? 21:48:04 `perl -eprint unpack "(a*@)*", "hello\n"; 21:48:05 hello \ ello \ llo \ lo \ o 21:48:20 shachaf: what? I don't think it was me this time 21:48:20 shachaf: presumably HackEgo 21:48:34 I mean, is b_jonas printing some evil characters? 21:48:39 I don't think so 21:48:42 not intentionally at least 21:49:04 b_jonas: whenever HackEgo prints a line starting with a non-alphanum, it inserts the char that bothers shachaf 21:49:13 Oh. 21:49:18 That one simply computes all the suffixes of a string. Pity there's no such easy way to generate all prefixies. 21:49:35 You can still generate all prefixes, but it's much uglier. 21:49:52 oerjan: which char is that? 21:49:53 b_jonas: map reverse . suffixes . reverse hth 21:50:06 shachaf: yes, that's the basic idea. and you can reverse with unpack IIRC 21:50:35 oerjan: how can -o be logical if # isn't logical hth 21:50:55 shachaf: because the illogicality comes from _|_ or negation 21:51:05 shachaf: different notation. -o is logical or in find, but it's linear implication in linear logic. 21:51:21 totally different operations, people just happened to name them the same 21:51:26 Good point. 21:51:43 it's like how ^ can mean logical and, bitwise xor, power 21:52:03 wait, are you interpreting "logical" as a technical term, bad move 21:52:08 Logical and is /\ 21:52:08 / \ 21:52:38 ... I'm waiting for that stick figure bot to print the third line 21:52:56 / \o/ 21:53:00 That only happens for LOGICAL CHRISTMAS TREE 21:53:11 don't we have that bot running? 21:53:26 The "bot" is a person, myndzi, who's been gone for a long time. 21:53:44 sure, most bots are persons. 21:53:50 We need to find a replacement who's as fast a typist. 21:53:59 ^celebrate 21:53:59 \o| c.c \o/ ಠ_ಠ \m/ \m/ \o_ c.c _o/ \m/ \m/ ಠ_ಠ \o/ c.c |o/ 21:54:11 That command should be renamed to ^decapitate 21:54:44 oerjan: I think -o might still be odd without _|_ and # 21:55:21 ais523: here's yet another experimental newly developped distributed version control system I hadn't heared about before: http://pijul.org/ 21:55:51 b_jonas: I haven't seen that one either 21:55:52 * ais523 looks 21:56:10 I don't know what it does or whether it's any good 21:56:30 it looks like a rewrite of darcs 21:56:33 using the same principles 21:56:40 `unidecode > ​ \ 21:56:41 ​[U+003E GREATER-THAN SIGN] [U+0020 SPACE] [U+200B ZERO WIDTH SPACE] [U+0020 SPACE] [U+005C REVERSE SOLIDUS] 21:56:56 b_jonas: that one 21:58:03 oerjan: I see 21:58:12 I don't know why that would mess up shachaf's terminal though 21:58:23 shachaf: skeptical 21:58:42 huh, interesting license choice 21:59:07 it's AGPL in an attempt to stop someone making a CVCS out of it 21:59:52 huh? what's "AGPL", as opposed to just GPL 3 (Gnu general public license version 3)? 21:59:55 b_jonas: well, it does. 22:00:25 b_jonas: AGPL is basically GPL with an extra case: if you let people use the software over a network, you have to give them source 22:00:40 ais523: I see 22:01:01 (that one is evil) 22:02:12 ais523: ah, it says “At the time of this writing (version 0.2), files are all treated as text, and patches are mostly concerned with lines.” – exactly what I don't want from a vcs 22:03:10 -!- hppavilion[1] has quit (Ping timeout: 252 seconds). 22:05:02 1 is the sanest identity, it's basically () from haskell 22:06:49 all the others look impossible to construct or use... 22:06:56 well, at least one way each 22:08:15 hm 22:09:29 0 and ^|^ are like Void a bit 22:09:55 0 is the option that the constructor cannot give 22:10:04 -!- AlexR42 has quit (Quit: My Mac has gone to sleep. ZZZzzz…). 22:10:05 ^|^ is the option that the consumer cannot choose 22:13:18 0 is like Void 22:13:24 + is a lot more like Either than & is 22:13:43 they're continuations of each other 22:14:47 is 0 x A = 0 ? 22:16:26 Apparently yes. 22:16:29 http://llwiki.ens-lyon.fr/mediawiki/index.php/Sequent_calculus 22:17:43 Hmm, !T = 1 ? 22:18:00 Oh, makes sense. 22:18:48 -!- AnotherTest has quit (Quit: ZNC - http://znc.in). 22:20:56 -!- hppavilion[1] has joined. 22:22:39 i like "why not" 22:25:17 -!- augur has joined. 22:25:22 myname: because it makes no sense hth 22:25:52 potion of confusing 22:27:26 ?los dos 22:27:28 Maybe you meant: yow list let docs do 22:27:39 lambdabot: maybe. 22:30:22 `? weather <-- fancy 22:31:01 -!- augur has quit (Remote host closed the connection). 22:33:26 ?. ?? ?run var$("(?metar "++).(++") \ ")=<<["CYUL","ENVA","ESSB","KOAK"] 22:33:27 Plugin `compose' failed with: Unknown command: "??" 22:33:34 ?. ? run var$("(?metar "++).(++") \ ")=<<["CYUL","ENVA","ESSB","KOAK"] 22:33:39 :1:28: 22:33:41 lexical error in string/character literal at character '"' 22:33:42 22:33:48 fancy 22:34:13 ?run var$("(?metar "++).(++") \ ")=<<["CYUL","ENVA","ESSB","KOAK"] 22:34:17 :1:28: 22:34:19 lexical error in string/character literal at character '"' 22:34:29 possibly that's not quite right 22:35:32 ?. ? run var$("(?metar "++).(++") \\ ")=<<["CYUL","ENVA","ESSB","KOAK"] 22:35:39 CYUL 252200Z 26011KT 12SM -SN FEW008 BKN018 OVC030 01/M01 A2915 RMK SF2SF3SC3 SLP875 \ ENVA 252220Z 00000KT 5000 -SN VV009 M00/M01 Q0998 RMK WIND 670FT VRB02KT \ ESSB 252220Z AUTO 26007KT 9999 NCD M01/M06 Q0999 \ KOAK 252153Z 25006KT 10SM FEW160 19/09 A3010 RMK AO2 SLP194 T01940094 \ 22:35:41 22:36:55 `` echo -n " "; \? weather 22:36:56 ​ lambdabot: ?? (?metar CYUL) \ (?metar ENVA) \ (?metar ESSB) \ (?metar KOAK) 22:42:43 The red button panel in http://www.smbc-comics.com/index.php?id=3440 is actually really cool. 22:48:09 :t fun 22:48:14 FromExpr a => String -> a 22:48:28 :t op 22:48:32 Wrapped s => (Unwrapped s -> s) -> s -> Unwrapped s 22:50:29 @@ @? @run var$("(?metar "++).(++") \\ ")=< CYUL 252237Z 26012KT 2 1/2SM -SN BKN010 OVC025 01/M01 A2917 RMK SN3SF4SC1 SLP882 \ ENVA 252220Z 00000KT 5000 -SN VV009 M00/M01 Q0998 RMK WIND 670FT VRB02KT \ ESSB 252220Z AUTO 26007KT 9999 NCD M01/M06 Q0999 \ KOAK 252153Z 25006KT 10SM FEW160 19/09 A3010 RMK AO2 SLP194 T01940094 \ 22:51:25 sadly a little long 22:53:26 Not as long as @metar KOAK\n...@metar CYUL\n... etc. 22:53:28 ?metar CYUL ENVA 22:53:48 ?ping 22:53:50 pong 22:54:15 that looks a little irresponsive 22:54:26 @@ @@ (@where test) CYUL KOAK 22:54:31 CYUL 252237Z 26012KT 2 1/2SM -SN BKN010 OVC025 01/M01 A2917 RMK SN3SF4SC1 SLP882 \ KOAK 252153Z 25006KT 10SM FEW160 19/09 A3010 RMK AO2 SLP194 T01940094 \ 22:56:19 @where weather 22:56:21 I know nothing about weather. 22:56:26 @@ @where+ weather (@where test) 22:56:27 I will remember. 22:57:20 `le/rn weather/lambdabot: ?? ?? (?where weather) CYUL ENVA ESSB KOAK 22:57:24 Learned «weather» 22:57:26 `? weather 22:57:29 lambdabot: ?? ?? (?where weather) CYUL ENVA ESSB KOAK 22:57:55 ?where weather 22:57:56 ?? ?@ ?run var$("(@metar "++).(++") \\ ")=< i think you may have overclevered 22:58:11 @metar EGBB 22:58:12 EGBB 252250Z 19003KT 9999 OVC045 03/M02 Q1014 22:58:27 @@ @@ (@where weather) CYUL KOAK 22:58:37 CYUL 252237Z 26012KT 2 1/2SM -SN BKN010 OVC025 01/M01 A2917 RMK SN3SF4SC1 SLP882 \ KOAK 252253Z 27006KT 9SM FEW160 21/09 A3009 RMK AO2 SLP189 T02060094 \ 22:58:38 @help @ 22:58:40 @@ [args]. 22:58:42 @@ executes plugin invocations in its arguments, parentheses can be used. 22:58:44 The commands are right associative. 22:58:46 For example: @@ @pl @undo code 22:58:48 is the same as: @@ (@pl (@undo code)) 22:59:16 `? weather 22:59:18 lambdabot: ?? ?? (?where weather) CYUL ENVA ESSB KOAK 22:59:30 what's going on :'( 22:59:37 ?where weather 22:59:38 ?? ?@ ?run var$("(@metar "++).(++") \\ ")=< oerjan, ais523: Oh, by the way, that bot loop detection the other day was just me doing @part and @join. 22:59:58 * oerjan swats shachaf -----### 23:00:04 BOTH TIMES? 23:00:09 ALl three times, I think. 23:00:28 i suspected you the first time, but not that much persistence 23:00:47 shachaf: that's genius 23:00:50 MWAHAHAHAHA 23:00:58 I was a bit suspicious that the timing was different each time 23:01:09 but thought it was simply that I hadn't spammed with consistent timing 23:01:40 shachaf: your punishment is to make lambdabot actually have that feature hth 23:02:18 oerjan: I'll implement it by writing a lambdabot watchdog that sends it @part and @join when it detects a loop. 23:02:33 More bots are always better. 23:02:36 lambdapooch 23:04:09 OKAY 23:05:00 `where+ weather ???run var$("(@metar "++).(++") \\ ")=< ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: where+: not found 23:05:08 ?where+ weather ???run var$("(@metar "++).(++") \\ ")=< Good to know. 23:05:19 `? weather 23:05:20 lambdabot: ?? ?? (?where weather) CYUL ENVA ESSB KOAK 23:05:22 -!- hppavilion[1] has quit (Ping timeout: 255 seconds). 23:05:26 dammit 23:05:31 `? where weather 23:05:32 where weather? ¯\(°​_o)/¯ 23:05:37 ?where weather 23:05:44 ???run var$("(@metar "++).(++") \\ ")=< TOO MANY BOTS 23:05:59 oops 23:06:13 ?where+ weather ?? ?run var$("(@metar "++).(++") \\ ")=< I will never forget. 23:06:22 `? weather 23:06:23 lambdabot: ?? ?? (?where weather) CYUL ENVA ESSB KOAK 23:06:45 um needs reconsideration 23:07:18 ?where+ weather ?run var$("(@metar "++).(++") \\ ")=< Good to know. 23:07:37 wait 23:07:44 ?where+ weather ?run var$("(?metar "++).(++") \\ ")=< Done. 23:07:49 `? weather 23:07:50 lambdabot: ?? ?? (?where weather) CYUL ENVA ESSB KOAK 23:08:03 this is stupid 23:08:16 oh hm 23:08:27 ok i see.. 23:08:41 ?where+ weather ?run var$("(@metar "++).(++") \\ ")=< Good to know. 23:09:13 `le/rn weather/lambdabot: ?? ?@ (?where weather) CYUL ENVA ESSB KOAK 23:09:15 Learned «weather» 23:09:18 `? weather 23:09:20 oerjan: spoilsport 23:09:21 lambdabot: ?? ?@ (?where weather) CYUL ENVA ESSB KOAK 23:09:31 shachaf: how so? 23:09:38 oh, maybe not 23:09:41 WELL IT'S STILL NOT WORKING 23:09:43 What was wrong with the thing I did above? 23:09:48 no f idea 23:10:04 @@ @@ (@where test) ENVA KSJC 23:10:07 maybe ?? is too clever about recursion... 23:10:09 ENVA 252250Z 00000KT 5000 -SN VV009 M00/M01 Q0998 RMK WIND 670FT 25002KT \ KSJC 252253Z 26003KT 10SM FEW090 SCT150 24/08 A3008 RMK AO2 SLP184 T02440078 \ 23:10:11 lambdabot: @@ @@ (@where test) ENVA KSJC 23:10:15 ENVA 252250Z 00000KT 5000 -SN VV009 M00/M01 Q0998 RMK WIND 670FT 25002KT \ KSJC 252253Z 26003KT 10SM FEW090 SCT150 24/08 A3008 RMK AO2 SLP184 T02440078 \ 23:10:16 `echo lambdabot: @@ @@ (@where test) ENVA KSJC 23:10:17 lambdabot: @@ @@ (@where test) ENVA KSJC 23:10:34 huh 23:10:40 lambdabot: @@ @@ (@where test) ENVA KSJC 23:10:46 ENVA 252250Z 00000KT 5000 -SN VV009 M00/M01 Q0998 RMK WIND 670FT 25002KT \ KSJC 252253Z 26003KT 10SM FEW090 SCT150 24/08 A3008 RMK AO2 SLP184 T02440078 \ 23:10:56 Did HackEgo put a special character in front of that one? 23:11:06 it shouldn't 23:11:21 `echo lambdabot: @run 2 23:11:22 lambdabot: @run 2 23:11:31 lambdabot: @run 2 23:11:34 2 23:11:39 `echo lambdabot: ?show 2 23:11:41 lambdabot: ?show 2 23:11:50 lambdabot: ?show 2 23:11:52 "2" 23:12:25 Did int-e add the bot loop protection you asked for? 23:12:52 lambdabot hasn't been restarted... 23:13:31 i asked for him to add more spaces in front, that shouldn't affect this... 23:13:43 at least not without breaking it as much for us as for HackEgo 23:13:57 @ignore - HackEgo 23:13:57 oh hm 23:13:58 Not enough privileges 23:14:02 Hmm. 23:14:14 ?where weather 23:14:16 ?run var$("(@metar "++).(++") \\ ")=< @ignore - HackEgo 23:14:31 `echo lambdabot: ?show 2 23:14:31 lambdabot: ?show 2 23:14:32 "2" 23:14:38 `? weather 23:14:39 lambdabot: ?? ?@ (?where weather) CYUL ENVA ESSB KOAK 23:14:42 (@metar CYUL) \ (@metar ENVA) \ (@metar ESSB) \ (@metar KOAK) \ 23:14:46 @ignore + HackEgo 23:14:53 I guess someone put HackEgo on the ignore list. 23:15:04 ;_; 23:16:19 Oh, and lambdabot did restart. 23:16:43 @@ @where+ weather (@where test) 23:16:44 Nice! 23:16:59 @@ @@ (@where weather) KOAK KSJC KSFO 23:17:04 KOAK 252253Z 27006KT 9SM FEW160 21/09 A3009 RMK AO2 SLP189 T02060094 \ KSJC 252253Z 26003KT 10SM FEW090 SCT150 24/08 A3008 RMK AO2 SLP184 T02440078 \ KSFO 252256Z 02005KT 9SM SCT200 18/13 A3009 RMK AO2 SLP188 T01830128 $ \ 23:17:22 what's the trailing \ all about 23:17:23 @where weather 23:17:25 ?? ?@ ?run var$("(@metar "++).(++") \\ ")=< intercalate is so long 23:20:41 @tell boily hppavilion[1]: as long as it features ¨ on egregious glyphs, and that multiocular O. <-- ¨ on multiocular O, check 23:20:44 Consider it noted. 23:21:38 `? madbr 23:21:39 He alternates between making sense, and being logical. He doesn't monetize the brotherhood scheme. 23:21:56 `` sed -i 's/He/madbr/' wisdom/madbr 23:21:58 No output. 23:23:02 ?? ?@ ?run var$intercalate " \\ " . map (\x -> "(@metar "++x++")") . words $ ?show ENVA KOAK 23:23:08 ENVA 252250Z 00000KT 5000 -SN VV009 M00/M01 Q0998 RMK WIND 670FT 25002KT \ KOAK 252253Z 27006KT 9SM FEW160 21/09 A3009 RMK AO2 SLP189 T02060094 23:23:11 @where+ weather ?? ?@ ?run var$intercalate " \\ " . map (\x -> "(@metar "++x++")") . words $ ?show 23:23:14 Nice! 23:23:17 `? weather 23:23:19 lambdabot: ?? ?@ (?where weather) CYUL ENVA ESSB KOAK 23:23:23 Oh, right. 23:23:25 spacy 23:23:25 `unicode multiocular o 23:23:26 @ignore - HackEgo 23:23:28 U+A66E CYRILLIC LETTER MULTIOCULAR O \ UTF-8: ea 99 ae UTF-16BE: a66e Decimal: ꙮ \ ꙮ \ Category: Lo (Letter, Other) \ Bidi: L (Left-to-Right) 23:23:32 `? weather 23:23:34 lambdabot: ?? ?@ (?where weather) CYUL ENVA ESSB KOAK 23:23:43 CYUL 252300Z 26013KT 2 1/2SM -SN BKN009 OVC014 00/M01 A2919 RMK SN2SF4SF2 SLP887 \ ENVA 252250Z 00000KT 5000 -SN VV009 M00/M01 Q0998 RMK WIND 670FT 25002KT \ ESSB 252250Z AUTO 26008KT 9999 NCD M01/M06 Q0999 \ KOAK 252253Z 27006KT 9SM FEW160 21/09 A3009 RMK AO2 SLP189 T02060094 23:23:45 @ignore + HackEgo 23:23:59 This is definitely the least noisy way to find out the weather. 23:24:08 `unicode combining umlaut 23:24:09 No output. 23:24:12 hmm 23:24:27 `unicode combining diaeresis 23:24:28 ​̈ 23:26:28 `` echo -n ꙮ;unicode combining diaeresis 23:26:30 ​ꙮU+0308 COMBINING DIAERESIS \ UTF-8: cc 88 UTF-16BE: 0308 Decimal: ̈ \ ̈ \ Category: Mn (Mark, Non-Spacing) \ Bidi: NSM (Non-Spacing Mark) \ Combining: 230 (Above) \ \ U+0324 COMBINING DIAERESIS BELOW \ UTF-8: cc a4 UTF-16BE: 0324 Decimal: ̤ \ ̤ \ Category: Mn (Mark, Non-Spacing) \ Bidi: NSM (Non-Spacing Mark) \ Combining: 2 23:26:37 dammit 23:26:45 why did that happen 23:26:59 oh 23:27:05 `` echo -n ꙮ;unicode 'combining diaeresis' 23:27:06 ​ꙮ̈ 23:27:49 @tell boily MWꙮ̈Hꙮ̈Hꙮ̈Hꙮ̈ 23:27:51 Consider it noted. 23:28:26 how did we get sidetracked from linear logic tdnh 23:28:32 you were about to tell me what _|_ meant 23:28:47 _|_ means i dunno 23:29:01 like a deep, bottomless void 23:29:18 http://llwiki.ens-lyon.fr/mediawiki/index.php/Intuitionistic_linear_logic 23:29:33 "The connectives #, _|_ and ? are not available anymore, but the linear implication -o is." 23:29:37 i'm guessing you're a fan hth 23:29:47 OKAY 23:29:58 -!- adu has joined. 23:30:28 i dunno, there's something deeply mysterious about truly self-dual linear logic 23:30:28 did i misguess 23:30:36 i think the duality is p. important 23:30:42 without duality what do you even have 23:30:43 maybe it's the secret of quantum mechanics twh 23:31:14 afk 23:31:16 oh i figured out the secret to the speed of light the other day 23:31:22 oh, never mind then 23:34:03 Oh, http://llwiki.ens-lyon.fr/mediawiki/index.php/Translations_of_classical_logic 23:34:06 http://llwiki.ens-lyon.fr/mediawiki/index.php/Translations_of_intuitionistic_logic 23:42:58 hm? 23:43:43 WHAT SECRET 23:45:34 Well, I don't know if it actually makes sense. 23:46:06 I should talk to someone who knows about physics about it. 23:46:24 It's more of an analogy, really. 23:46:37 i do know some physics. 23:47:05 ok then can you explain the speed of light twh 23:48:53 well it's basically the fundamental speed of relativity theory 23:49:42 Anyway there's this thing called "volume time". 23:50:26 never heard of it 23:50:27 I mean in the sense of trading volume. Each time someone buys or sell something the volume time of that thing increases. 23:50:41 Well, in particular, one person buys and the other person sells. 23:50:53 -!- hppavilion[1] has joined. 23:51:01 * oerjan sees a financial person with a hammer 23:51:13 I think teams of scientists should design video game stat systems 23:51:22 Thousands upon thousands of variables 23:51:25 oerjan: take that back twh 23:51:39 This has nothing to do with physics anyway, I was just thinking about volume time. 23:51:52 Measuring things in volume time rather than clock time can make all sorts of things more well-behaved. 23:51:56 shachaf: was it _that_ insulting 23:52:23 hppavilion[1]: what do you mean by a video game stat system, exactly? 23:52:36 So you might say "my position is X, and by volume time T, I want to have position X+D" 23:53:11 For example, the material scientist adds TGH (toughness), HRD (hardness), STR (strength), DUC (ductility), CRS (corrosion resistance), TMB (temperature-based behavior), WRS (wear resistance) 23:53:15 tswett: That 23:53:31 Well, from time T to time T', you go from position X to position X' 23:53:36 So the "volume time" is essentially the number of share-trades that have happened so far? 23:53:38 So your "speed" -- called "participation rate" -- is (X'-X)/(T'-T) 23:53:49 tswett: I think we should spend the next hour making science/video game jokes about obscure traits characters could have 23:53:56 Anyway the interesting thing about this system is that time and position are measured in the same sort of unit. 23:53:58 hppavilion[1]: I like that idea. 23:54:09 It never makes sense to have a speed greater than 1. It doesn't matter how fast you trade. 23:54:20 shachaf: there is a concept in relativity known as "proper time", which is the time a particular object observes. 23:54:21 hppavilion[1]: reminds me of Dwarf Fortress. It's a really really sophisticated simulation. 23:54:24 tswett: And, perhaps, loving what we come up with so much that we make a browser game out of it 23:54:50 RAD- radioactivity- how much ambient long-term damage you do to your opponents (comes at a HLTH cost) 23:55:18 Anyway there does come up some thing in physics where time and position are measured using the same sort of unit, right? 23:55:39 Buckminsterfullerene nanostructures. 23:55:40 And where in some sense it's nonsensical to talk about changing position faster than the speed 1? 23:55:59 shachaf: yeah, I mean, you just assume that the speed of light is equal to unitless 1. 23:56:21 shachaf: it is common to set the speed of light to 1, which is essentially that 23:56:23 I think it's still meaningful to talk about changing position faster than 1. It's just that nothing does that. 23:56:35 STN - steinfulness. It determines your, uh... 23:56:37 Sure, but the idea that you can't change position faster than some speed, no matter how much you try, seems kind of odd given the usual notion of speed. 23:56:43 Most people have a steinfulness of 0. 23:56:46 But in this volume time context it makes perfect sense. 23:56:50 So maybe physics is like that. 23:57:06 There's a certain famous theoretical physicist, now deceased, who had a steinfulness of 1. 23:57:25 tswett: Goldstein? 23:57:25 I'm not aware of anyone who has ever had a steinfulness of 2 or greater. 23:57:33 Well, it's "meaningful" to talk about going from position 0 to position 100 in volume time 50. 23:57:47 But you can't get there by buying. 23:58:17 Dr. Zweistein, i presume 23:58:37 tswett: Also STN- Berenstain: Sensitivity to interuniversal travel 23:58:43 Alternatively, MND 23:59:11 TDC - Tardicity. Determines how large the interior is compared to the exterior. 23:59:20 Yes. 23:59:48 So, Wikipedia says you can use transfinite induction to define a function on the ordinal numbers like so.