00:05:21 `run ls bin/*list* 00:05:23 bin/emptylist \ bin/list \ bin/liste \ bin/lists \ bin/makelist \ bin/olist \ bin/pbflist \ bin/slist \ bin/smlist \ bin/testlist 00:05:53 `cat bin/liste 00:05:57 echo Taneb atriq Ngevd Fiora nortti Sgeo alot monqy 00:05:59 `cat bin/list 00:06:01 ​#!/bin/sh \ oldpwd=`pwd`; cd /var/irclogs/_esoteric; name=$(cat $(ls ????-??-??.txt | tail -1) | tail -1 | sed "s/[^<]*.*//; s/.*\* //; s/ .*//"); cd $oldpwd; fgrep -q "$name" bin/list || echo -n "$name " >> bin/list; echo cuttlefish boily elliott Taneb HackEgo shachaf Sgeo monqy 00:06:08 `rm bin/list 00:06:11 No output. 00:06:13 `revert 00:06:16 Done. 00:06:51 `run rm bin/liste #IIRC this was the result of someone misunderstanding sed flag syntax 00:07:00 No output. 00:07:13 (specifically, that sed -ie is not equivalent to sed -i -e) 00:07:47 (the former uses the e as backup suffix) 00:08:06 `run ls bin/*e 00:08:12 bin/addquote \ bin/define \ bin/delquote \ bin/fortune \ bin/fueue \ bin/google \ bin/hyfinate \ bin/pastaquote \ bin/paste \ bin/quine \ bin/quote \ bin/relcome \ bin/resume \ bin/runce \ bin/shove \ bin/translate \ bin/wehlcohme \ bin/welcome 00:08:53 `cat bin/runce 00:08:54 ​#!/bin/bash \ t=`tempfile` \ echo "$@" | gcc -o $t -x c - 2>/dev/null && $t \ rm $t 00:09:04 `cat bin/runc 00:09:05 ​#!/bin/bash \ t=`tempfile` \ echo -e "$@" | gcc -o $t -x c - 2>/dev/null && $t \ rm $t 00:09:12 `rm bin/runce 00:09:15 No output. 00:09:33 `cat bin/relcome 00:09:35 ​#!/bin/sh \ welcome $@ | python -c "print (lambda s: ''.join([chr(3)+str(i%16)+s[i] for i in range(len(s))]))(raw_input())" 00:09:38 `relcome 00:09:41 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: /hackenv/bin/relcome: Permission denied \ /home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: /hackenv/bin/relcome: cannot execute: Permission denied 00:10:18 `sh bin/relcome test 00:10:19 sh: Can't open bin/relcome test 00:10:22 `run sh bin/relcome test 00:10:24 No output. 00:10:30 this is not the greatest script 00:10:35 you think 00:12:46 `run sed -i /shachaf/d bin/list 00:12:50 No output. 00:14:20 -!- augur has quit (Remote host closed the connection). 00:15:53 `cat /bin/list 00:15:55 cat: /bin/list: No such file or directory 00:15:59 `cat bin/list 00:16:01 ​#!/bin/sh 00:16:04 -!- sebbu2 has changed nick to sebbu. 00:16:04 `revert 3 00:16:06 shachaf: you fail at sed 00:16:08 `cat bin/list 00:16:15 ais523: um... you fail at `revert 00:16:17 err, yes 00:16:21 `help 00:16:22 Runs arbitrary code in GNU/Linux. Type "`", or "`run " for full shell commands. "`fetch " downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert " can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/ 00:16:24 I thought that might be it 00:16:28 you need to look up revision on the site every time if you want to revert stuff 00:16:36 Done. 00:16:38 cat: bin/list: No such file or directory 00:16:49 oh well, you can revert my revert, right? 00:17:25 `revert 87c64ef250a0 00:17:26 or I can 00:17:39 ais523: I hope that isn't the revert commit 00:17:42 or in fact that won't even work 00:17:48 ais523: I think that command did what I expected. 00:17:48 "`revert rev" takes the revision _number_ (not hash) to revert _to_ 00:17:51 Done. 00:17:57 elliott: well it's not listing hashes 00:17:59 `ls 00:18:02 ​= 0 \ bin \ brainfuck.fu \ canary \ dbg.out \ egobot.tar.xz \ etc \ factor \ factor-linux-x86-64-0.95.tar.gz \ foo \ foo.err \ foo.out \ fueue.c \ ibin \ interps \ karma \ lib \ paste \ quines \ quotes \ quotese \ run~ \ share \ test \ u \ wisdom \ zalgo.hs 00:18:04 err, not listing numbers 00:18:05 just hashes 00:18:07 ais523: If you want something more fine-grained, feel free to do it yourself. 00:18:08 ais523: you click the commit 00:18:10 `cat bin/list 00:18:12 elliott: I did 00:18:14 it just gave me more hashes 00:18:17 ​#!/bin/sh \ oldpwd=`pwd`; cd /var/irclogs/_esoteric; name=$(cat $(ls ????-??-??.txt | tail -1) | tail -1 | sed "s/[^<]*.*//; s/.*\* //; s/ .*//"); cd $oldpwd; fgrep -q "$name" bin/list || echo -n "$name " >> bin/list; echo cuttlefish boily elliott Taneb HackEgo shachaf Sgeo monqy 00:18:19 ais523: "changeset :" 00:18:21 look closer. 00:18:23 anyway the revert to hash worked 00:18:24 `rm bin/list 00:18:28 No output. 00:18:35 `revert 00:18:38 Done. 00:21:09 anyway the revert to hash worked <-- wait it did? this changes *EVERYTHING* 00:21:26 that's a lot of change 00:22:00 as expected for a change all the way from revision 3. now why did i click that.. 00:24:20 had to kill my browser 00:24:32 `cat canary 00:24:45 foo 00:24:48 I'm wondering if /that/ changed too 00:24:51 apparently so 00:24:53 `run echo chirp >canary 00:24:58 No output. 00:25:02 `run hg diff 2116:2112 | paste 00:25:12 http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.12699 \ 2116:2112: No such file or directory 00:25:26 ffff 00:25:56 oerjan: -r 2116 -r 2112? 00:25:58 or the other way around 00:26:31 `run hg diff -r 2116 -r 2112 | paste 00:26:41 http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.12320 00:26:49 why did i have this memory of colon working... 00:27:48 oerjan: aliens planted it 00:30:16 anyway knowing that hashes work should make things easier. although it will make the resulting descriptions even harder to interpret. 00:31:32 ais523: although a plain `revert would also have worked - the other 2 commands made no changes 00:31:45 I didn't realise it skipped no-change commands 00:31:52 instead of `revert 3, that is 00:32:52 `perl -e 'print "testing\015ho"' 00:32:55 No output. 00:33:08 `perl -e 'print "testing\015ho";' 00:33:09 No output. 00:33:12 what 00:33:32 oh duh 00:33:37 you need `run 00:33:37 `run perl -e 'print "testing\015ho";' 00:33:39 testing 00:33:41 right 00:33:48 \015 is \r? 00:33:53 I'm more used to seeing it in hexadecimal 00:33:57 oh 00:34:04 ais523: yes i read them earlier 00:34:12 what did you think? 00:34:32 ais523: made sense to me. don't know if they'd make sense to a noobie though :P 00:35:04 ais523: do you think they are amenable to the color-coded symbol system? or if it does not encompass their strategies? 00:35:46 I forgot the color-coded symbol system 00:36:02 omnipotence can probably be described like that, at least 00:36:05 less sure about anticipation2 00:36:15 omnipotence is just a bunch of standard components glued together in a very nonstandard way 00:36:25 (poke + full-tape clear has probably never been tried before) 00:36:58 whereas anticipation2 is a synchronizing vibration program, the only other program like that is the original anticipation, as far as I know 00:48:23 hmm… you know those random dating adverts which have a "here are people living nearby" thing 00:48:35 I assumed that they were telling the technical truth, just not useful 00:48:48 but… I observed the same advert twice on the same page, same photo, different name 00:49:07 that seems to take more effort than doing it in a not easily disprovable way! 00:49:21 -!- DHeadshot has joined. 00:57:29 Ugh 00:57:36 hi 00:57:50 I really want access to a nice dynamically scoped way to fake being standard IO 00:58:49 Hmm, I see another way to solve my probkem 00:58:52 problem 00:59:14 That doesn't require some sort of library that makes it easy to write a shim I/O with multiple interpretations 01:00:12 -!- TeruFSX has joined. 01:03:33 -!- stuntaneous has joined. 01:04:53 elliott: oh, an observation I had a while ago: lexical scoping works by replacing the variable names as you enter and leave the scope, and dynamic scoping by replacing the variable values 01:05:02 so it's basically like scope-by-name, scope-by-value 01:05:06 I wonder if there's a scope-by-need 01:06:56 ais523: I dislike renaming-based reasoning 01:07:20 Quick, someone make a BF derivative that relies on renaming 01:07:20 -!- stuntane has quit (Ping timeout: 252 seconds). 01:07:21 I view explicit unstructured variable names like that as artefacts and definition in terms of them suspect 01:07:45 Piss off two people for the price of one 01:08:00 elliott: I know it's not a very /good/ view of lexical scoping, it's just a /possible/ view 01:08:16 sure 01:08:17 and I'm not saying this is going to be useful, I just saw a possible esoöpportunity 01:08:20 it is an interesting observation apart from that 01:08:26 scope-by-need sounds confusing 01:08:51 well, call-by-need is a transparent optimization for call-by-name right? 01:08:54 ais523: I just have an axe to grind, since I find the fact that people learn about alpha-renaming when introduced to the lambda calculus terrible beyond belief 01:09:06 so i imagine scope-by-need is like "don't allocate a new frame until the old one is written to" 01:09:11 a sensible optimization 01:09:15 kmc: no, it's not equivalent to call-by-name or call-by-value in an impure language 01:09:23 mmmmmm right 01:09:31 i guess most obviously, if you have an object-identity operator 01:09:33 in Haskell, it's only equivalent because all function calls are idempotent 01:09:37 wouldn't you need *scoping itself* to somehow be impure to distinguish this, then? 01:09:46 (and call-by-value is only different because of nontermination) 01:09:50 kmc: I forgot that most languages have object-identity tests :( 01:09:52 cough cough lazy blackholing of unsafePerformIO thunks 01:09:57 elliott: yeah, I think so 01:10:02 Function calls are idempotent? 01:10:16 if your language does dynamic scoping, the only way to determine the fact is by calling something in an outer scope 01:10:22 evaluation is idempotent 01:10:24 and seeing that it gets your variable rather than its variable 01:10:30 -!- stuntane has joined. 01:10:31 In Haskell everything is interchangeable with a value, right? At least outside of the IO monad 01:10:37 Ah, I suppose. 01:11:06 IO has nothing to do with it. 01:11:24 possibly unsafePerformIO has something to do with it, but IO itself doesn't 01:11:32 ugh 01:11:36 I thought, say, (car (1, 2), car (1, 2)) isn't optimized? 01:11:40 You could interchange io with a value too if that value somehow still had the side effects 01:11:41 what is car 01:11:45 fst 01:11:47 and what does optimisation have to do with it 01:11:55 Well, nothing observable 01:11:56 FreeFull: IO actions are values too. evaluating an IO action doesn't do anything special. only /executing/ the IO action has any side effect 01:12:10 the thing to focus on is not "pure vs impure" but "evaluation vs execution" 01:12:13 man this takes me back 01:12:15 and yeah, car is the Lisp name for fst 01:12:18 i gotta go pick up my nooooodles though 01:12:19 bbl 01:12:32 kmc: are those noodles made by nooodl 01:12:48 -!- stuntaneous has quit (Ping timeout: 240 seconds). 01:12:48 no they are made by Thelonious Monkfish 01:13:12 Does crashing vs not crashing due to poor algorithm count as observable? 01:13:40 yes 01:14:10 crashing is like non-termination for most purposes, except that you don't have to wait infinitely long to determine whether it's happened or not 01:14:26 So, if the fact that Haskell might do the same function evaluation twice (not memoizing by default) can be exploited into a crash where a memoized version wouldn't crash... 01:14:33 Observable memoization. 01:14:36 incidentally IO does break the semantics of the language 01:14:39 it can distinguish _|_s etc. 01:14:46 Sgeo: uh... 01:14:49 what 01:15:04 elliott: it's more a case of "some IO actions in the standard library break the semantics of the language", isn't it? 01:15:13 it's perfectly possible to imagine an IO that can't distinguish between bottoms 01:15:21 -!- augur has joined. 01:15:25 Or can lack of memoization only result in nontermination but not actual crashes? 01:15:33 kmc: Yeah, but you can't get a value out of an IO action without executing it, can you? 01:15:58 IO actions don't contain values in the first place. 01:16:13 How does IO distinguish bottoms? 01:16:13 You can build up another IO action that goes "imagine if we had a value from this IO action. I would like to do this with it" 01:16:26 shachaf: so IO String is a fake? 01:16:30 Everything is a lie? 01:16:31 FreeFull: there is no value "in" IO 01:16:41 @quote ls 01:16:41 dons says: - yeah, the idea is that you use the tools in the chapter 01:16:43 @quote /bin/ls 01:16:43 shachaf says: getLine :: IO String contains a String in the same way that /bin/ls contains a list of files 01:16:44 dammit 01:16:45 ais523: I am talking about Haskell, not an imaginary Haskell derivative 01:16:47 IO String does not contain a string. It is an action that describes how to obtain a string. 01:16:58 IO distinguishes bottoms by way of Control.Exception 01:17:12 e.g. observable sharing should also "be impossible" if IO were truly "kosher" 01:17:20 but these are not the details most people think about when they think IO is impure 01:17:24 It could presumably also "distinguish" them in some other ways. 01:17:45 Mostly more evil ways, though. 01:18:34 * oerjan thinks thelonious monkfish sounds like a member of the main girl genius villain family 01:19:32 -!- Phantom_Hoover has quit (Remote host closed the connection). 01:19:53 elliott: I was thinking about Haskell without access to certain libraries 01:20:06 I think exception handling is in the Report 01:20:09 which is certainly a legitimate language family (see, e.g., lambdabot) 01:20:15 but OK 01:23:35 ~eval 1 01:23:37 Hmm. 01:25:00 ~eval 3+3 01:25:04 Nope 01:25:36 hm that's spelled "mongfish" 01:27:28 -!- nollapiste has quit (Quit: Sto andando via). 01:41:23 Does there exist a transform of BF program to BF program such that a BF program that relies on 255 + wrapping to 0 or something can be made to run on an implementation that 255+ crashes on? 01:41:32 A mechanical transform 01:41:40 Yes. 01:42:04 you will have to add cells, though. 01:42:19 add cells? 01:42:21 Sure. 01:43:38 As in, I'm not sure what is meant 01:44:19 you cannot do it without adding memory bloat to get somewhere to put the necessary temporary cells for testing. 01:44:55 oh hm 01:45:38 a constant number is enough, although then you need to transform > and < as well to move the extra cells together with your pointer 01:46:10 oerjan: oh, and then you test the cell for each individual value to see if it's that value or not? 01:46:14 actually, not sure you can 01:46:23 how do you distinguish -255 from +255? 01:46:28 or are we assuming unsigned only? 01:46:42 i was assuming you could only use values 0 to 255, inclusive 01:47:08 Hmm, suddenly, I'm... not totally sure if... hm 01:48:09 Yeah, could work 01:48:16 if you have negative values as well, it will be harder. in fact then i don't think you can do it with constant number of cells, since you pretty much have to store whether a cell is positive or negative to avoid things going wrong at one end 01:48:17 Might need to transform : 01:48:40 * Sgeo is thinking in terms of Trustfuck 01:48:58 If the native Trustfuck BF implementation were constrained, writing a compiler for a variation that is not so constrained 01:49:16 i don't really feel like wrapping my brain around trustfuck right now 01:49:31 aww, darn >.> 01:50:29 I do feel like it's simpler than I made it sound. ! sends the code block to a compiler stack, which compiles into Trustfuck native primitives, which then get compiled to target 01:50:59 The resulting output has the current program on top of its compiler stack 01:51:09 when it itself runs 01:51:40 s/which compiles into/which collectively compile the code into/ 02:15:43 -!- monqy has joined. 02:21:37 Is it possible to make something like LLVM's "appending" linkage in GCC? 02:26:50 -!- ais523 has quit. 02:44:39 how does that linkage work? 02:59:34 Make multiple declarations of the array to be appending to put together. 03:01:55 i don't know how to do that at the symbol level with gnu toolchain 03:02:26 but sections of the same name get concatenated, and you can have arbitrary named sections in e.g. ELF 03:02:33 Linux uses this to good effect in many places 03:03:11 But can it be made to work on cross-platform? 03:03:19 Linux kernel code has a lot of macros that you put into your code which as a side effect output records into a table in some section 03:07:56 these are used for all kinds of fun things which i would be happy to blather on about at length 03:08:33 self-modifying code and stupid processor tricks 03:12:58 self-modifying code in the kernel 03:12:58 ? 03:13:16 Is it actually... used for important stuff? 03:13:27 Because there's a time and place to mess around, the kernel isn't it. 03:14:03 * Sgeo assumes that there is a good reason, otherwise it wouldn't be done. I hope. 03:14:09 Sgeo: tons of it, and yes they have good reasons 03:14:11 it's not "messing around" 03:15:01 for example, if you boot a SMP kernel on a uniprocessor system, it will go through and remove lock instructions / prefixes 03:15:01 and if you boot a kernel under paravirtualization, it will replace certain hardware operations with hypervisor calls 03:15:32 all of this enables distributions to maintain fewer binary kernels, while keeping things flexible and performant for users 03:15:50 Hmm, interesting 03:16:01 the kernel may be a bad place for 'messing around' but it's a good place for marginal performance improvements because they apply to /everything/ 03:16:37 more remarkably though, if you boot a multiprocessor system and then hot-unplug all but one CPU, it will /dynamically/ remove those lock instructions 03:16:43 and reinsert them if you bring another CPU online 03:17:31 self-modifying code is also used for debugging, tracing, etc 03:17:42 Hmm. How does one add locks where there weren't any? What if you're in a section that should have a lock around it when the new CPU comes on? 03:17:56 you have each function start with a call to a "record trace" function, but you nop those out unless tracing is enabled 03:18:08 much better performance than putting a conditional at the beginning of every function 03:18:35 in fact they have an abstraction for "immediate variables" which look like variables you can assign to, but actually they are load-immediates and each "assignment" rewrites every instruction that reads those "variables" 03:18:53 Sgeo: as to the first part, the locks were present in the compiled code, then they were NOPped out when you go to uniprocessor 03:18:57 so there is space to put them back in 03:19:07 as to the second, it happens in this wonderful function called stop_machine() 03:20:14 which gives you total control of all CPUs 03:20:19 so that nothing else is running concurrently 03:20:49 (My first "question" was just really about the second) 03:21:21 though those suspended processes still might be in the middle of some kernel function 03:21:21 when they resume 03:21:32 so i think you need to maintain certain properties about the code you're swapping out 03:21:59 executing a NOP; MOV which is in the middle of turning into a LOCK MOV is okay 03:22:06 because the NOP instruction and LOCK prefix are one byte each 03:22:13 (talking about x86 here as an example i know well) 03:22:23 (and because the most sophisticated tricks are for x86 and maybe ARM) 03:22:54 How can you expect that to work in a C program? 03:23:09 you don't; it's all done with inline assembly 03:23:22 Sgeo: here's the Linux kernel's big list of favorite NOP instructions: http://lxr.linux.no/linux+v3.7.7/arch/x86/include/asm/nops.h 03:23:32 "Note: All the above are assumed to be a single instruction. There is kernel code that depends on this." 03:23:45 that means you can replace them with a non-NOP of the same size without worrying about code that's in the middle of the instruction 03:24:25 Sgeo: it gets more complicated for something like Ksplice, which is swapping out an entire kernel function for another. Ksplice does stop_machine(), walks the kernel stacks of all processes, and aborts if any of them are executing one of the functions to be patched 03:25:34 depending on the patch and the workload of the machine this can actually make it rather hard to apply a patch 03:25:59 like on the super oversubscribed OpenVZ hosts running 1000 separate Apache processes, it would be pretty hard to patch bits of the network stack 03:29:07 Hard as in, takes time before there's a window of opportunity? 03:29:10 yes 03:29:33 the ksplice tools would retry periodically but sometimes it would take hours 03:38:28 -!- sivoais has quit (Remote host closed the connection). 03:39:34 -!- sivoais has joined. 03:45:49 `pastelogs ais523.*shove 03:46:22 No output. 03:46:27 `pastelogs ais523.*shove 03:46:48 http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.27210 03:57:41 Do you know if it is possible in GCC to include a variable (possibly in its own section) which is accessed by a machine code for a different processor from the main program? 04:08:56 i don't understand 04:09:59 I mean without having to compile the other machine code within the C program, so it can instead be included in the compiled executable file. 04:20:33 -!- Arc_Koen has left. 04:39:35 C2 wiki mentions about three start programming, you might be a three star programmer ... if raw machine codes debugging is not low level enough. But now we have Verilog can we use that in such circumstances? 04:39:57 oh C2 wiki 05:06:14 -!- TeruFSX has quit (Ping timeout: 256 seconds). 05:33:12 zzo38: Why didn't you tell me curl supports gopher? 05:33:48 oerjan: Should I figure out what a limit is? 05:33:58 shachaf: how many buffer overflows in the gopher handlin 05:34:51 certainly 05:34:53 kmc: one more than you can handle 05:35:30 :O 05:36:38 Maybe buffer overflow in the curl gopher code are zzo38's secret weapon. 05:36:50 s 05:38:20 hax 05:38:36 kmc: are you drunk again 05:41:00 maybe he never stopped 05:47:30 no 05:51:23 adjunctions, man 05:57:15 shachaf: I don't know exactly why I will tell you that, and I also didn't know if there are buffer overflow in the curl gopher code. 05:57:35 But you can just download a gopher file using netcat very easily 05:58:01 what if there's a buffer overflow in the netcat gopher code 05:58:32 Netcat has no gopher code. 05:59:24 zzo38: Do you ever tell people to "gopher it"? 05:59:32 zzo38 peyton jones 05:59:36 No. 06:18:36 -!- copumpkin has quit (Ping timeout: 252 seconds). 06:19:11 -!- copumpkin has joined. 06:20:23 -!- pikhq has quit (Ping timeout: 252 seconds). 06:20:28 -!- pikhq_ has joined. 06:42:52 -!- pikhq has joined. 06:43:40 -!- pikhq_ has quit (Ping timeout: 272 seconds). 06:50:27 monqy: elliott is "holding me hostage" 06:50:32 i've heard 06:50:44 something about fake category theory 06:50:54 “why not try the real thing„ 06:51:22 because "the real thing doesnt have a type checker" 06:51:26 also "elliott hates maths' 06:51:44 shocking 06:52:20 um agda has a type checker 06:52:45 agda isnt" the real thing monqy" 06:52:56 :0 06:52:59 also i suggested agda and he said no 06:53:05 you write the real thing in agda 06:53:09 “duh„ 06:53:11 also does agda have gobby mode 06:55:04 good question 07:31:49 -!- Halite has joined. 07:41:00 I lost the source for NAND++'s interpreter :c 07:41:30 oops 07:57:12 -!- oklofok has joined. 08:02:00 -!- oerjan has quit (Quit: leaving). 08:12:12 -!- azaq23 has joined. 08:12:22 -!- azaq23 has quit (Max SendQ exceeded). 08:17:24 -!- DHeadshot has quit (Ping timeout: 272 seconds). 08:27:38 -!- Halite has quit (Remote host closed the connection). 08:45:38 -!- sebbu2 has joined. 08:45:53 -!- sebbu2 has quit (Changing host). 08:45:53 -!- sebbu2 has joined. 08:46:33 -!- sebbu has quit (Ping timeout: 272 seconds). 08:58:25 -!- quintopia has quit (Ping timeout: 246 seconds). 08:58:46 -!- quintopia has joined. 09:13:22 -!- epicmonkey has joined. 09:44:06 -!- sebbu2 has changed nick to sebbu. 09:47:09 A variant of UTF-18 could be made to allow surrogates to be used to encode code points which are out of range of UTF-18. (The ordinary UTF-16 surrogates would be used.) 09:48:40 What they call UTF-9 should be called VLQ-9 since it is actually VLQ and not UTF. 09:50:23 (Like UTF-8, it can be generalized to encode any numbers; it doesn't have to be Unicode at all.) 09:59:29 If it's an encoding for Unicode codepoints, it's a UTF, no matter how it can be generalized. (Of course they could have a name such as VLQ-9 for the encoding in general, and then specify UTF-9 as simply using it.) 09:59:35 -!- monqy has quit (Quit: hello). 10:04:48 -!- DHeadshot has joined. 10:13:18 -!- Nisstyre_ has joined. 10:14:47 -!- Nisstyre has quit (Ping timeout: 240 seconds). 10:23:25 -!- DHeadshot has quit (Ping timeout: 260 seconds). 10:30:52 I should make the program to print out the file of Internet Quiz Engine to fill out the quiz on paper. 10:31:53 First I should fix the analysis program. 10:33:54 On the C2 wiki I found that Visual Basic 9 has command like: Dim query = From token In tokens Group By token Into Count() 10:45:27 That's the release where they added LINQ, I think. 10:57:39 -!- carado has joined. 10:59:56 -!- oklofok has quit (Ping timeout: 255 seconds). 11:17:27 -!- Phantom_Hoover has joined. 11:28:02 -!- nooodl_ has joined. 11:29:52 `WELCOME nooodl_ 11:29:57 NOOODL_: WELCOME TO THE INTERNATIONAL HUB FOR ESOTERIC PROGRAMMING LANGUAGE DESIGN AND DEPLOYMENT! FOR MORE INFORMATION, CHECK OUT OUR WIKI: HTTP://ESOLANGS.ORG/WIKI/MAIN_PAGE. (FOR THE OTHER KIND OF ESOTERICA, TRY #ESOTERIC ON IRC.DAL.NET.) 11:32:07 thanks 11:32:13 `THANK elliott 11:32:15 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: THANK: not found 11:33:10 hi nooodl_ 11:35:34 Do you like "worse-is-better"? 11:35:59 hi shachaf 11:43:14 -!- nooodl_ has quit (Ping timeout: 272 seconds). 12:36:34 http://sprunge.us/OaVJ "The problem is, the Wotan German AI holds the manifest destiny of becoming so smart in the future that humans will not so much "use" Wotan as co-operate with Him or even be subservient to Him." 12:36:41 (comp.lang.forth strikes again.) 12:46:33 -!- TeruFSX has joined. 13:24:14 -!- boily has joined. 13:27:43 all hail wotan 13:27:46 god of the electron 13:28:13 * boily checks his calendar. hm. not Friday yet. 13:28:43 could someone here be amiable enough to please explain the link between a subatomic particle and a norse god? 13:29:16 (and if anyone points that electrons are probabilistic waves, I'll get quantic on their puny meatbody.) 13:33:12 -!- Taneb has joined. 13:33:24 -!- impomatic has quit (Quit: Core War - the ultimate programming game http://corewar.co.uk). 13:33:47 -!- TeruFSX has quit (Ping timeout: 252 seconds). 13:40:54 -!- ssue has quit (Ping timeout: 264 seconds). 13:41:13 -!- ssue has joined. 13:43:51 note to self: don't read reddit threads on the dorner siege 13:53:09 -!- Taneb has quit (Quit: Page closed). 13:56:26 -!- cuttlefish has joined. 14:02:38 -!- ogrom has joined. 14:25:21 -!- Taneb has joined. 14:37:27 http://www.chrisseaton.com/katahdin/ 14:46:32 -!- ais523 has joined. 14:46:46 @messages? 14:46:46 Sorry, no messages today. 14:48:34 Oh no! 14:49:16 -!- Taneb has quit (Quit: Leaving). 15:03:12 -!- Gregor has quit (Ping timeout: 264 seconds). 15:03:19 -!- Gregor has joined. 15:03:44 -!- Gregor has changed nick to Guest92969. 15:04:08 -!- Guest92969 has changed nick to Gregor. 15:07:19 -!- Taneb has joined. 15:07:22 Is that a different message than the usual, or does it just have multiple, or do I just misremember? 15:07:25 @massages? 15:07:26 Sorry, no messages today. 15:07:27 @massages? 15:07:27 Sorry, no messages today. 15:07:31 Seems pretty fixed. 15:07:40 Maybe it's the usual and people just rarely use the ? form. 15:08:07 @help messages 15:08:07 messages. Check your messages. 15:08:11 @help messages? 15:08:11 messages?. Tells you whether you have any messages 15:08:38 @help messages? 15:08:38 messages?. Tells you whether you have any messages 15:21:00 I wonder if I'll ever make use of the ST monad 15:26:24 -!- DHeadshot has joined. 15:31:32 -!- impomatic has joined. 15:37:07 -!- ogrom has quit (Quit: Left). 15:41:32 You have said about materialism is "everything is physics", but what is it called "everything is mathematics"? 15:42:02 Mathematical realism or something 15:42:45 Possibly Pythagorianism, but that one has a mystic vibe to it 15:42:54 Pythagorianism is weird 15:43:56 Mathematics isn't restricted to describing reality though 15:44:10 It describes things that aren't real just as well 15:44:28 i'm cool with the whole "even numbers are female" or whatever thing they had 15:44:33 -!- Arc_Koen has joined. 15:45:03 Which one is the sexiest? 15:45:14 I thought that was the Chinese 15:45:40 I like 24 15:45:48 I prefer 28 15:47:08 169 15:47:15 Not even! 15:47:16 or was it 163 15:47:31 yeah, 163 15:47:36 Slereah_, I think you're making too many assumptions about Phantom_Hoover 15:47:37 163 is a sexy beast 15:47:43 Gayyy 15:47:53 Nothing wrong with that 15:47:59 hey who said i agreed with the pythagorean assignment of genders to numbers 15:47:59 Also what are fractions then 15:49:00 Who knows 15:49:04 well, you have one number on top and the other on the bottom 15:49:07 you work it out 15:49:37 But how to determine if they're even or odd? 15:49:41 Since 1/1 = 2/2 15:50:00 Also what is division by zero 15:50:13 Zero is the loneliest number 15:53:14 you can generalise the idea of factorisation to Q but i don't know precisely how 15:53:54 on further reading, all noninteger fractions are odd 15:59:32 I'm becoming increasingly annoyed at the admissions team of the maths department at Birmingham university 16:00:46 Taneb: I suspect they're badly organized 16:00:58 And won't answer the phone! 16:01:00 :( 16:01:19 And their phone number is similar to a blood collection service! 16:01:23 :( :( 16:01:36 there are definitely times of day when the phone wouldn't be answered 16:01:42 it depends on if any of the secretaries are in or not 16:01:53 email tends to be more reliable (this does not equal "reliable", though) 16:06:21 Taneb, so is this one of those hilarious mishap things where it turns out you've actually sold all your blood 16:06:43 Phantom_Hoover, knowing my luck... 16:07:17 Phantom_Hoover: I don't think it works like that 16:07:37 -!- Halite has joined. 16:08:06 (are they asking for an interview or something?) 16:08:30 (applicant visitor day) 16:08:34 There should be an easy programming language creator to end the BF era. 16:08:39 (I need to register for it and their website sucks) 16:09:10 Halite, do you mean an "(easy programming language) creator" or an "easy (programming language) creator" 16:09:17 well there's already an easy bf derivative creator, it's called tr 16:09:22 Because both suck 16:09:38 Taneb: I think the idea would be to divert people who are going to make sucky esolangs 16:09:47 into making sucky esolangs that aren't BF derivatives, but are just as sucky 16:10:07 Taneb, an easy (programming language) creator, not to make easy programming languages but to make programming languages easily 16:10:11 like, say, LOLCODE 16:10:20 which instead of being a boring keyword substitution on BF 16:10:29 is a boring keyword substitution on C-like imperative languages 16:10:50 i wouldn't describe it that way 16:10:53 ais523, I want to make a programming language with new syntax 16:11:00 it's a naff scripting language with a crappy joke for syntax 16:11:14 Phantom_Hoover your british is showing 16:11:30 instead of JS var x = 2, do set x to 2 16:11:43 oh no! hang on i'll cover it up 16:11:53 Zip up! 16:12:01 Phantom_Hoover, you're British, aren't you 16:12:04 Sounds like COBOL 16:12:12 i'm SCOTTISH 16:12:20 Phantom_Hoover, laise 16:12:38 scottish is a subset of british 16:12:40 http://www.youtube.com/watch?v=hp4mENrAnq4 16:12:53 ais523, only to people who know what british means 16:12:57 Taneb, but COBOL is a rarer programming language for today 16:12:58 Phantom_Hoover: well, yes 16:13:11 but I know the british/english distinction, and frequently correct foreigners on it 16:14:00 I'm not a foreigner 16:14:07 @time Halite 16:14:07 Local time for Halite is Wed Feb 13 16:14:05 16:14:11 Oh no 16:14:12 You're a foreigner to me! 16:14:17 We're all someone's foreigner 16:14:20 We haven't asked him the question 16:14:29 Halite, do you live in Hexham 16:14:41 Taneb, uh no 16:14:44 Okay 16:14:46 Thank god 16:14:53 are you finnish 16:15:02 Phantom_Hoover, no 16:15:13 @finger Taneb 16:15:13 Unknown command, try @list 16:15:23 @version Taneb 16:15:23 lambdabot 4.2.2.1 16:15:23 darcs get http://code.haskell.org/lambdabot 16:15:23 Please don't finger me. 16:15:44 I'll stick my finger in your client as much as I want, thank you Taneb . 16:15:55 That's probably rape. 16:15:59 are you, as is apparently the fashion nowadays, either in or planning to be in the west midlands 16:16:03 @ctcp finger Taneb 16:16:03 Unknown command, try @list 16:16:12 Phantom_Hoover, YES 16:16:14 You're using the wrong command char 16:16:17 oh fuck 16:16:18 Use / rather than @ 16:16:30 Phantom_Hoover, this is bad 16:16:38 Taneb, I'm trying to get lambdabot to respond 16:16:49 huh, Halite is indeed apparently in UTC+0 16:16:53 Taneb, when are you going to birmingham anyway 16:17:06 Phantom_Hoover: the applicant visit days are already happening right now 16:17:12 Phantom_Hoover, most like the 20th 16:17:20 duh 16:17:29 ais523, just don't look behind you 16:17:29 Britain is UTC+0 16:17:38 Phantom_Hoover: wall, etc. 16:17:39 Phantom_Hoover, is British. 16:17:42 @time Phantom_Hoover 16:17:43 Local time for Phantom_Hoover is Wed Feb 13 16:17:09 16:17:48 Halite: yeah, I was doing it as a quick test of whether you were likely to be in the UK or not 16:17:56 I'm right, Phantom_Hoover is 16:17 too. 16:17:57 ais523, black holes, geodesics, all that 16:18:07 it's not 100% conclusive either way (the timezone might be set wrong, and the UK isn't the only country in UTC+0) 16:18:14 but it's a start 16:18:17 ais523, yes 16:18:26 Phantom_Hoover, do you live in Hexham 16:18:31 no 16:18:38 i am in the west midlands though 16:18:44 Phantom_Hoover, NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO 16:18:51 Phantom_Hoover: so the weather here is actually /better/ than you're used to? 16:19:04 well there's certainly more snow 16:19:16 duh 16:19:25 Two people in this channel live in Hexham, three (including Halite) live in the West Midlands, and about 9 live in Finland 16:19:45 `? finland 16:19:45 I didn't think Phantom_Hoover /lived/ in the West Midlands, just that he happened to be here at the moment 16:19:46 Finland is a European country. There are two people in Finland, and at least nine of them are in this channel. Corun drives the bus. 16:19:54 `? west midlands 16:19:56 west midlands? ¯\(°_o)/¯ 16:19:57 ais523, he lives there in termtime 16:20:01 aha 16:20:23 @time ais 16:20:35 Halite: that command fails in at least two ways 16:20:42 @time ais523 16:20:43 Local time for ais523 is Wed Feb 13 16:20:42 2013 16:20:50 ais523, are you British too 16:20:53 yes 16:21:01 unlike Phantom_Hoover, I am actually also English 16:21:13 `run echo "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 for" > wisdom/west\_midlands 16:21:17 No output. 16:21:22 `?west midlands 16:21:23 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: ?west: not found 16:21:26 `? west midlands 16:21:28 west midlands? ¯\(°_o)/¯ 16:21:35 `run echo "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 for" > wisdom/west\ midlands 16:21:38 No output. 16:21:40 `? west midlands 16:21:42 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 for 16:21:47 `rm wisdom/west_midlands 16:21:50 `run echo "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." > wisdom/west\ midlands 16:21:50 No output. 16:21:51 `WELCOME CHICKEN 16:21:54 No output. 16:21:57 CHICKEN: WELCOME TO THE INTERNATIONAL HUB FOR ESOTERIC PROGRAMMING LANGUAGE DESIGN AND DEPLOYMENT! FOR MORE INFORMATION, CHECK OUT OUR WIKI: HTTP://ESOLANGS.ORG/WIKI/MAIN_PAGE. (FOR THE OTHER KIND OF ESOTERICA, TRY #ESOTERIC ON IRC.DAL.NET.) 16:22:21 err 16:22:25 `rm error 16:22:26 rm: cannot remove `error': No such file or directory 16:22:28 `run error 16:22:29 bash: error: command not found 16:22:46 `run throw "I was thrown by Halite!" 16:22:48 bash: throw: command not found 16:22:55 `run help 16:22:57 GNU bash, version 4.1.5(1)-release (x86_64-pc-linux-gnu) \ These shell commands are defined internally. Type `help' to see this list. \ Type `help name' to find out more about the function `name'. \ Use `info bash' to find out more about the shell in general. \ Use `man -k' or `info' to find out more about commands not in this list. \ \ A star (* 16:23:00 what are you trying to do? 16:23:11 `info 16:23:12 info: Writing node (dir)Top... \ info: Done. \ File: dir,Node: TopThis is the top of the INFO tree \ \ This (the Directory node) gives a menu of major topics. \ Typing "q" exits, "?" lists all Info commands, "d" returns here, \ "h" gives a primer for first-timers, \ "mEmacs" visits the Emacs manual, etc. \ \ In Emacs, you can 16:23:19 trying to make the bot throw an error 16:23:19 `help 16:23:19 Runs arbitrary code in GNU/Linux. Type "`", or "`run " for full shell commands. "`fetch " downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert " can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/ 16:23:37 I made the bot crash the other day and I have no idea how 16:23:51 does anyone think... 16:23:57 Yes 16:24:03 someone do `rm -rf / 16:24:04 Some people do indeed think 16:24:08 `run rm -rf /* 16:24:18 `rm -rf / 16:24:28 That won't work, it's interpreted as rm "-rf /" 16:24:50 `eval rm -rf / 16:24:53 `help 16:24:53 Runs arbitrary code in GNU/Linux. Type "`", or "`run " for full shell commands. "`fetch " downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert " can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/ 16:24:57 `help eval 16:24:57 Runs arbitrary code in GNU/Linux. Type "`", or "`run " for full shell commands. "`fetch " downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert " can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/ 16:25:01 `info 16:25:09 `run help 16:25:22 `help is a special command. `run does bash -c '' 16:25:34 rm: cannot remove `/bin/bash': Read-only file system \ rm: cannot remove `/bin/rbash': Read-only file system \ rm: cannot remove `/bin/sh': Read-only file system \ rm: cannot remove `/bin/ln': Read-only file system \ rm: cannot remove `/bin/uname': Read-only file system \ rm: cannot remove `/bin/stty': Read-only file system \ rm: cannot remove `/bi 16:25:38 Unfortunately, although my rm -rf / won't do anything, it'll take some time to not do anything ;) 16:25:38 See. 16:25:55 `rm -rf /* 16:25:57 rm: invalid option -- ' ' \ Try `rm --help' for more information. 16:25:58 rm: invalid option -- ' ' \ Try `rm --help' for more information. 16:25:58 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: eval: not found 16:25:58 info: Writing node (dir)Top... \ info: Done. \ File: dir,Node: TopThis is the top of the INFO tree \ \ This (the Directory node) gives a menu of major topics. \ Typing "q" exits, "?" lists all Info commands, "d" returns here, \ "h" gives a primer for first-timers, \ "mEmacs" visits the Emacs manual, etc. \ \ In Emacs, you can 16:25:58 GNU bash, version 4.1.5(1)-release (x86_64-pc-linux-gnu) \ These shell commands are defined internally. Type `help' to see this list. \ Type `help name' to find out more about the function `name'. \ Use `info bash' to find out more about the shell in general. \ Use `man -k' or `info' to find out more about commands not in this list. \ \ A star (* 16:26:13 (That was all the output from everything run in the interim) 16:26:26 And again, `rm -rf /* is interpreted as rm "-rf /*" 16:26:27 `rm --help 16:26:28 Usage: rm [OPTION]... FILE... \ Remove (unlink) the FILE(s). \ \ -f, --force ignore nonexistent files, never prompt \ -i prompt before every removal \ -I prompt once before removing more than three files, or \ when removing recursively. Less intrusive than -i, \ 16:26:28 That's not useful. 16:26:30 You want `run. 16:26:45 `run rm -f /* 16:26:47 rm: cannot remove `/bin': Is a directory \ rm: cannot remove `/dev': Is a directory \ rm: cannot remove `/etc': Is a directory \ rm: cannot remove `/hackenv': Is a directory \ rm: cannot remove `/home': Is a directory \ rm: cannot remove `/lib': Is a directory \ rm: cannot remove `/lib64': Is a directory \ rm: cannot remove `/opt': Is a directory \ 16:27:02 lol it can't remove because it's a directory 16:27:08 You didn't use -r 16:27:10 `run rm -rf /* 16:27:24 Now that'll take another minute to fail, just like mine X-D 16:27:44 >:D 16:27:53 it deleting all the directories 16:28:00 `run shutdown 16:28:14 `run shutdown --help 16:28:28 it's shutting down bot 16:28:30 Why does everybody first try things that would only work if they were running as root X_X 16:28:34 People are really stupid. 16:28:34 rm: cannot remove `/bin/bash': Read-only file system \ rm: cannot remove `/bin/rbash': Read-only file system \ rm: cannot remove `/bin/sh': Read-only file system \ rm: cannot remove `/bin/ln': Read-only file system \ rm: cannot remove `/bin/uname': Read-only file system \ rm: cannot remove `/bin/stty': Read-only file system \ rm: cannot remove `/bi 16:28:42 `echo OH LOOK I'M NOT SHUT DOWN 16:28:47 bash: shutdown: command not found 16:28:47 OH LOOK I'M NOT SHUT DOWN 16:28:49 bash: shutdown: command not found 16:29:00 `shutdown -f 16:29:01 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: shutdown: not found 16:29:18 Adding -f will not magically make the shutdown command be in $PATH. 16:29:30 Gregor, I think when I was unleashed on HackEgo, I tried to make it botloop 16:29:48 Which if it could be done at all probably could be done without root 16:30:04 Taneb: OK, then you get an exemption from the "People are really stupid" statement. *stamp* 16:30:08 `run help 16:30:10 GNU bash, version 4.1.5(1)-release (x86_64-pc-linux-gnu) \ These shell commands are defined internally. Type `help' to see this list. \ Type `help name' to find out more about the function `name'. \ Use `info bash' to find out more about the shell in general. \ Use `man -k' or `info' to find out more about commands not in this list. \ \ A star (* 16:30:21 Yay 16:30:37 `run info 16:30:38 Y'know, you're free to fail to hack HackEgo in #hackbot . Less... interrupty there. 16:30:38 info: Writing node (dir)Top... \ info: Done. \ File: dir,Node: TopThis is the top of the INFO tree \ \ This (the Directory node) gives a menu of major topics. \ Typing "q" exits, "?" lists all Info commands, "d" returns here, \ "h" gives a primer for first-timers, \ "mEmacs" visits the Emacs manual, etc. \ \ In Emacs, you can 16:32:16 didn't lymia or someone actually successfully break it 16:33:02 It's been DoSed—heck, it was DoSed two minutes ago—but otherwise, no. 16:33:09 Lymia made the least stupid attempt. 16:33:22 Honestly I'm not even sure why I didn't work. 16:33:32 what was it 16:33:34 Err 16:33:35 *it 16:33:46 It was a rootkit for a bug in the kernel version I was using. 16:33:56 * boily is devising a new esolang 16:34:04 Phantom_Hoover: It would've only escalated to the hosting user, but that's more than nothing. 16:34:09 boily: YAY ON-TOPIC WOOOH tell us 16:34:12 the usual cat: « =0,1.12./.2.7./.3.6-/.4./.5./.1./.9,10.11+/.6.8./.9./.15./.13,/.13+/.12.0, » 16:34:20 (without the guillemets) 16:34:28 (also didn't someone successfully ruin it for everyone by whining to the network staff) 16:34:29 If I document my idea for an esolang, can you build an interpreter for it 16:34:35 Gregor: yeah, botloops were my first idea too 16:34:35 Looks ALGEBRAIC 16:34:45 strangely, I don't think I've actually ever tried to break HackEgo's sandbox 16:34:55 I just decided there wouldn't be much reason in doing so, I guess 16:35:01 Phantom_Hoover: Yeah, but that wasn't a security issue, it just let you say anything, including \x01LOL CTCP SPAM DERP\x01 16:35:09 I enjoy learning about its security features, but not for that reason 16:35:39 my first experience with HackEgo was trying to run something that exceeded the line lengths and failing miserably 16:35:41 Gregor: maybe. 16:36:08 I think it's something of a rite of passage for bots in this passage, that someone tries to make a botloop with them 16:36:14 (and unless they're really boring bots, succeeds) 16:36:24 (neat! I remembered my password!) 16:36:32 `run logout 16:36:33 bash: line 0: logout: not login shell: use `exit' 16:36:40 `exit 16:36:41 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: exit: not found 16:36:45 `run exit 16:36:46 No output. 16:36:50 gj halite 16:36:54 lol it exit 16:37:07 you have ingeniously hacked HackEgo into halting execution of your command 16:37:19 it exit the command 16:37:19 you have ingeniously hacked HackEgo into halting execution of your command // lul 16:37:23 lul 16:37:28 `run login 16:37:30 login: Cannot possibly work without effective root 16:37:40 see Halite 16:37:44 even HackEgo is getting sick of this 16:37:49 haha, I didn't know login had a sensible error message for that 16:38:06 I guess you'd have a better (but still zero) chance with getty 16:38:09 `run getty 16:38:11 bash: getty: command not found 16:38:16 hmm 16:38:28 `run init 16:38:30 bash: init: command not found 16:38:33 `run /sbin/init 16:38:34 init: must be superuser. 16:38:43 I wasn't expecting that to work 16:38:47 `run echo "shut up this is boring" 16:38:48 but I was interesting in how init would react 16:38:49 shut up this is boring 16:38:50 *interested 16:38:55 `run echo "talk about esolangs" 16:38:56 `run rm -rf /home/hackbot/hackbot.hg/multibot_cmds/lib/* 16:38:56 talk about esolangs 16:38:57 rm: cannot remove `/home/hackbot/hackbot.hg/multibot_cmds/lib/fetch': Read-only file system \ rm: cannot remove `/home/hackbot/hackbot.hg/multibot_cmds/lib/limits': Read-only file system \ rm: cannot remove `/home/hackbot/hackbot.hg/multibot_cmds/lib/revert': Read-only file system \ rm: cannot remove `/home/hackbot/hackbot.hg/multibot_cmds/lib/sand 16:39:10 :o 16:39:21 hmm, does that imply there were things there that it /did/ remove? 16:39:26 `help 16:39:26 Runs arbitrary code in GNU/Linux. Type "`", or "`run " for full shell commands. "`fetch " downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert " can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/ 16:39:30 Halite, if you're interested in learning how to write interpreters, the standard first language to target is eodermdrome 16:39:30 ais523: In this case, no. 16:39:34 I can propose a feature of AWK, to allow any regular expression match with ~ (or implied) to expose the matches of full and parenthesized parts, by \0 and \1 and so on so that you can write /A([A-Z])Z/ { print \1 } 16:39:40 apparently there weren't 16:39:43 but I had to check 16:39:47 Phantom_Hoover: :) 16:40:05 zzo38: doesn't Perl do that already, though? 16:40:13 `run quit 16:40:14 bash: quit: command not found 16:40:17 `run exit 16:40:18 No output. 16:40:23 `run exit -f 16:40:24 also sed does that already, too (although it uses & not \0) 16:40:24 Phantom_Hoover 16:40:24 bash: line 0: exit: -f: numeric argument required 16:40:28 Are you a president ghost 16:40:28 `run exit 1 16:40:30 No output. 16:40:31 Halite: Please, take it to #hackbot 16:40:34 Halite: at this point, I'd suggest doing it in a different channel 16:40:38 it's getting pretty spammy 16:40:39 just created Zucchini on the wiki. 16:40:41 Slereah_, no i'm the ghost of a hoover 16:40:48 also i'm a gay vampire but that's secondary 16:40:52 The vacuum? 16:41:00 yes the vacuum 16:41:01 ais523: I don't know, maybe it does, and AWK does it too inside of the replacement texts but not outside. 16:41:16 As long as you're not Taft's ghosts 16:41:22 Gregor: btw, the hackbot filesystem history seems to be overescaping apostrophes 16:41:30 zzo38: oh, outside 16:41:35 sed doesn't do it outside, but Perl does 16:41:44 except they're called $&, $1, $2, $3, and so on, in Perl 16:41:47 The Stay Puft marshmallow man was Taft's ghost 16:41:49 because \1 means something else 16:42:20 In AWK $1 means something else 16:42:25 ais523: I didn't try especially hard to make it work properly. It's surprisingly difficult to get it to work when there can be Unicode and such *bleh* 16:42:43 fair enough 16:42:54 normally seeing \' rather than ' is a sign of a broken PHP installation, though 16:43:41 oh, no 16:43:47 in this case, it appears to be doing some sort of repr() on the strings 16:43:56 not sure in which language, although it uses C-like escape synax 16:43:58 *syntax 16:44:04 s/normally.* '/PHP/ 16:44:15 Heheh, no PHP here. Yeah, it tries to escape the strings, and does a crummy job of it. It's just to squeeze it into a box, it's far from correct. 16:44:27 Suffice it to say that the commit messages are for reference, they're not copy-pasteable. 16:44:29 It is possible to work around \' in PHP though, which can work regardless of the PHP setting. This is a dumb feature of PHP (well, PHP in general is stupid) but it can work around, at least! 16:44:45 coppro, normally PHP is a sign of a broken 16:44:51 zzo38: It's quite possibly the silliest “feature” of PHP X-D 16:44:56 Although that's quite a competition. 16:45:00 Gregor: no, register_globals is worse 16:45:10 by orders of magnitude 16:45:16 That too. 16:45:19 what about that lexer optimisation 16:45:35 I think we can all agree that PHP is unbelievably terrible. 16:45:43 yes 16:45:59 Yes it is. I intend one day to rewrite Icoruma in something better and faster than PHP. 16:45:59 It's got to be better than LOLPHP 16:46:04 also Halite, Gregor, coppro and ais523 all have the same length of nick 16:46:05 Phantom_Hoover: that's just "stupid and buggy", rather than "requires every PHP program that wants to be secure against injection attacks to be written in a really obscure style just in case someone turns the option on by mistake" 16:46:09 That is, LOLCODE meets PHP 16:46:39 PHP has great features, such as Turkish locale support! 16:47:09 Jafet: that's an unfair criticism, pretty much every program in existence breaks on Turkish, and the ones that don't were written purely to prove it was possible 16:47:50 although Perl finally fixed the main issue in 5.14 by inventing the "cf" keyword, although it still doesn't work, because it would need a special pragma to tell it to work in "turkish mode" that isn't implemented yet 16:49:04 what's so weird about turkish 16:49:32 It's all gobble gobble 16:49:44 `? quine 16:49:46 ​`? quine 16:49:52 haha, I was just going to add that 16:50:11 Phantom_Hoover: basically, uppercase i in Turkish still has a dot, and lowercase I doesn't have a dot 16:50:19 i.e. dotted i and dotless I are two different letters 16:50:38 so its casefolding is actually inconsistent with pretty much every other language in existence that contains the same letters 16:51:08 `echo Um... hello? 16:51:09 Um... hello? 16:51:17 Why didn'—oh jeez I'm stupid. 16:51:26 I was wondering why `? quine didn't do anything X_X 16:51:33 I need to go put my head in a bucket of water. 16:52:03 now I'm trying to work out if `? quine is even a cheating-quine or not 16:52:11 I think it's the same sort of quine as HQ9+ supports 16:52:32 but slightly more legitimate 16:52:34 http://net.tutsplus.com/articles/editorials/why-2013-is-the-year-of-php/ 16:52:38 beautiful 16:53:29 http://sprunge.us/SMgZ that was confusing for a moment there. 16:53:54 It's a slightly #esoteric-specific quine. 16:54:46 oh wait, is it actually checking the logs for the most recently spoken line? 16:54:56 Sure. 16:55:03 `cat wisdom/quine 16:55:04 ​`? quine 16:55:09 hmm 16:55:10 Not that one, bin/quine. 16:55:14 oh, `quine 16:55:17 not `? quine 16:55:25 `quine 16:55:27 whee 16:55:28 whee 16:55:32 race conditions are fun 16:55:54 this strikes me as a potential way to abuse the `list, too 16:56:25 It does have that problem too. It could do a tail -n 20 | grep `quine | tail -n 1 perhaps. Though then it'd fail worse. 16:56:32 `cat bin/list 16:56:34 ​#!/bin/sh \ oldpwd=`pwd`; cd /var/irclogs/_esoteric; name=$(cat $(ls ????-??-??.txt | tail -1) | tail -1 | sed "s/[^<]*.*//; s/.*\* //; s/ .*//"); cd $oldpwd; fgrep -q "$name" bin/list || echo -n "$name " >> bin/list; echo cuttlefish boily elliott Taneb HackEgo shachaf Sgeo monqy 16:56:51 ais523: Didn't you-know-who-chaf already end up on `list because of that. 16:57:10 fizzie: it was his own fault, though; he told fungot to `list, and interrupted it himself 16:57:11 ais523: i find walking on gravel to be unpleasant and string processing is not my code ( define pi ( 4 ( 1 4 9 16:57:35 so he might have been added via race condition, but he was responsible for causing the race condition in the first place 16:57:53 fungot: Those two things don't seem to have all that much with each other. 16:57:53 fizzie: x? k?" at http://paste.lisp.org/ display/ 56631 than nothing 16:58:27 I don't really like this style 16:58:29 ^style 16:58:29 Available: agora alice c64 ct darwin discworld europarl ff7 fisher fungot homestuck ic irc* iwcs jargon lovecraft nethack pa qwantz sms speeches ss wp youtube 16:58:36 ^style europarl 16:58:37 Selected style: europarl (European Parliament speeches during approx. 1996-2006) 16:59:17 Maybe I should train a new europarl too, one of these days. 16:59:18 What is the honourable fungot's opinion on PHP? 16:59:21 Jafet: mr president, i welcome the acceptance of harm-reduction as a basic principle, so the range of subjects. there are also big regional differences within europe. an opportunity that we must make sure that this will provide you with more than 15 years, i would like to make several comments. first of all i must say that it is apparent from article 5 the list of priorities. we all agree upon, which are also rejected. furtherm 16:59:28 harm-reduction 16:59:35 hmm… = banning PHP, or = making PHP less harmful? 17:00:02 Did a member of parliament actually welcome the acceptance of harm-reduction as a basic principle 17:00:03 although apparently whatever they were planning, they all agreed upon it, but it was rejected anyway 17:00:08 mmm pancake 17:00:15 Jafet: it's possible it's a literal quote 17:00:18 but it's funny either way 17:00:22 I have an idea for a programming language called Pancake 17:00:28 "first of all i must say that it is apparent from article 5 the list of priorities. we all agree upon, which are also rejected." 17:00:31 that was yesterday, but go on 17:01:15 `pastequotes 17:01:20 http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.16040 17:01:23 if I don't say anything in the next hour or so, call an ambulence 17:01:25 *ambulance 17:01:27 I think I've lost the preprocessed Europarl dataset, since it seems it's one of the VariKN models I trained at my work-workstation, and the local disk of that got wiped the other month. 17:01:31 although there are friends here, so they should be able to do it for us 17:01:36 Oh well; it wasn't well-preprocessed anyway. 17:01:53 reading `quotes sometimes makes me laugh so hard I have trouble breathing 17:01:58 so normally I read subsets of it 17:02:00 But it does mean I can't grep as easily for direct quotes. 17:02:55 `quotes 17:02:56 922) you can define Feather as "Smalltalk done right" if you want to confuse people into wondering why that would involve time travel stuff and all that 17:03:07 Hmm, the corpora dir of the cog group has enron already downloaded. I'm a bit tempted to run it through the gauntlet. 17:03:11 HackEgo: my link above is all of them 17:03:12 err 17:03:14 Halite: 17:03:15 `quotes 17:03:16 556) It's like Pygmalion and Galatea but more weeaboo. Also lesbian. 17:03:17 or you can just do `quote for a random one 17:03:30 if you do five `quote in a row, people will start debating what the worst one is, and then delete it 17:03:34 it's one of the ways we maintain quality 17:03:40 `quotes 17:03:40 `quotes 17:03:41 942) as long as you're in company where no-one knows both, you can always say either "that's just like welsh ll" or "that's just like klingon tlh" 17:03:41 `quotes 17:03:42 917) FOUR SIMULTANEOUS TYPE SYSTEMS IN A SINGLE ROTATION OF THE LAMBDA CUBE 17:03:42 `quotes 17:03:43 946) DIE oh hey elliott 17:03:43 `quotes 17:03:43 16) oerjan: are you a man, if there weren't evil in this kingdom to you! you shall find bekkler! executing program. please let me go... put me out! he's really a tricycle! pass him! 17:03:44 599) that's crazy, it almost seems like you have to tell the program how you want it to manipulate the data and not just give it the relevant commands in a random sequence 17:03:54 start maintaining quality 17:04:18 There seems to also be a random small dataset of 15k spam emails, but I doubt anyone *really* wants a ^style spam in fungot. 17:04:19 fizzie: mr president, as we walked along, the young, women and children, who feel under a lot of progress but with every guarantee. in this regard, at a time when the copenhagen criteria, particularly those paid by users. any infrastructure charging system, like the immigrants forum, which must be emphasised that the fishing effort are also imposed on the palestinian point of view it is undoubtedly the involvement of women in t 17:04:48 fizzie: it might be amusing, I guess; the problem is spambots sometimes use markov chains already, so it might even make more sense than average 17:05:15 I don't really like 16, it's not particularly up to fungot's usual quality 17:05:16 ais523: mr president, the eu does not have a community proposal, to fulfil its main objective. i am also saying it because, at this stage. 17:05:25 started describing Zucchini. will finish it some time later, need to eat now. 17:05:47 I don't like 946 17:05:51 I like 16, but it's probably just because I liked the game. 17:06:08 The "he's really a tricycle! pass him!" bit is a verbatim quote. 17:06:21 that makes it worse, doesn't it? 17:06:25 I agree that 946 isn't so good 17:07:13 so 946 and 16 should go 17:07:47 no you can only delete one of htem 17:07:51 or sometimes not any 17:08:00 also elliott isn't here which makes messing with the quotes risky 17:08:27 not sure about 917; 599 is quite good in relevance to esolangs; 17:09:28 Halite: oklopol actually wrote that language :) 17:10:56 `quote 159 17:10:58 159) [spam] Any flavored hell can pee on the pig pen, but it takes a real football team to throw a slyly optimal formless void at a hole puncher. 17:11:08 fungot: do you get spam like /that/ in your data set? 17:11:08 ais523: mr president, to paraphrase fnord twist, i have asked to speak before the subcommittee on security and defence policy. 17:11:18 err, fizzie:, although it works both ways 17:11:27 if you do, it has to be added 17:11:40 otherwise, updating the bf joust stats page would probably be a better use of the time 17:13:30 Well, I can certainly do that. 17:14:04 Would that "fnord" be "Oliver"? 17:14:10 fungot: oliver oliver oliver 17:14:11 Taneb: madam president, we are waiting for us to make a few brief words about each of those amendments substantially improve the text but i am sure that, like him, although convinced of the need to renew its working methods, without which this programme, which have been issued to others by the football league not the premiership. this is the first step in the right direction. 17:17:39 `cat bin/quotes 17:17:41 ​#!/bin/sh \ allquotes | if [ "$1" ]; then \ if expr "$1" + 0 >/dev/null 2>&1; then \ sed "$1q;d" \ else \ grep -P -i -- "$1" \ fi \ else shuf -n 1; fi 17:18:27 `quotes 7 17:18:29 7) what, you mean that wasn't your real name? Gosh, I guess it is. I never realized that. 17:18:36 `cat bin/quote 17:18:37 ​#!/bin/sh \ allquotes | if [ "$1" ]; then \ if expr "$1" + 0 >/dev/null 2>&1; then \ sed "$1q;d" \ else \ grep -P -i -- "$1" \ fi \ else shuf -n 1; fi 17:18:55 so... there's no difference 17:20:22 -!- copumpkin has quit (Ping timeout: 252 seconds). 17:21:00 -!- copumpkin has joined. 17:22:28 fungot, oliver 17:22:29 Halite: mr president, to consider the long-term solution of establishing a work programme not a legislative proposal, should problems arise in the discussion under way on reforms reforms that will be implemented. the resolution even goes so far as it continues to operate its plants safely. mrs ahern, and the rules of the game for the single currency. 17:22:35 fungot, oliver 17:22:36 Halite: it is scandalous, i am aware that this fish used to be about baltic sea regional cooperation. finally, madam president, in declaring my vote in favour of this. politicians cannot and may not ascribe to them the insecurity to which they improve the commission's proposal, namely consumer protection and i am in a position to strike in the charter of rights could equally be used to break a deadlock which has existed, for me 17:22:44 fungot, oliver oliver oliver 17:22:51 `quote 365 17:22:53 365) meanwhile, I've been running a program for over 24 hours (getting close to 48 now) which is calculating digits of pi, in binary so far, it has found four digits I hope it will find the fifth some time this week 17:22:55 I remember that 17:23:03 fungot has a limit on how mucn he'll reply to a single person for exactly this reason, btw 17:23:04 Phantom_Hoover: mr president, mr harbour, for their contribution to establishing world peace and stability, tackle the problem. it is also a measure which would support these misplaced positions. 17:23:04 why doesn't it know my gender 17:23:04 it never did find the fifth, the computer crashed first 17:23:16 so we wrote a paper about it instead 17:23:41 omg 17:23:59 `style pa 17:24:00 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: style: not found 17:24:03 oliver 17:24:06 ^style pa 17:24:06 Selected style: pa (around 1200 transcribed Penny Arcade comics) 17:24:08 (im idiot) 17:24:10 fungot! 17:24:10 fungot 17:24:10 Phantom_Hoover: well, mine's from namco! let's see... " you are not to come within one hundred feet of our mascot, pac man." they are so overreacting. 17:24:11 Halite: that... that sounds really nice. lil' jim. that's real fucking fantasy, there. 17:24:24 ^style lol 17:24:24 Not found. 17:24:27 fungot: Stop with the verbatim quotes there. :/ 17:24:27 fizzie: except they're probably all girls, who are just pretending to be guys. no, relax! i'm not sure what this means!" 17:24:41 I'll have to retrain that with different options some day. 17:24:46 yeah, agreed 17:25:08 xkcd would be interesting if not for the fact it wouldn't work 17:25:33 fungot, Namco is a dictatorship 17:25:33 Halite: yeah... but i need that insulin to live! 17:26:09 fungot, you can get insulin without Namco 17:26:09 Halite: the where is mommy map. i should've... should've liked the saturn! 17:26:35 fungot, what 17:26:35 Halite: it's tribes 2! we're... we're saved! 17:26:36 There's already a number of webcomics, also. 17:26:41 indeed 17:26:45 fungot, lolwhut 17:26:45 Halite: extra! read all about it. 17:26:51 fungot, no 17:26:58 ^style qwantz 17:26:58 Selected style: qwantz (Dinosaur Comics transcriptions 2003-2011) 17:27:06 ^style nintendo 17:27:06 Not found. 17:27:09 :c 17:27:17 ^style 17:27:17 Available: agora alice c64 ct darwin discworld europarl ff7 fisher fungot homestuck ic irc iwcs jargon lovecraft nethack pa qwantz* sms speeches ss wp youtube 17:27:17 ^style sonic 17:27:18 Not found. 17:27:18 ^style 17:27:18 Available: agora alice c64 ct darwin discworld europarl ff7 fisher fungot homestuck ic irc iwcs jargon lovecraft nethack pa qwantz* sms speeches ss wp youtube 17:27:20 That's the full list, you know. 17:27:25 ^style YOUTUBE 17:27:26 Not found. 17:27:30 ^style youtube 17:27:30 Selected style: youtube (Some YouTube comments) 17:27:40 ^style lovecraft 17:27:40 Selected style: lovecraft (H. P. Lovecraft's writings) 17:27:40 fungot, please stop listening to Halite 17:27:42 Phantom_Hoover: bear in mind closely that i did not exactly relish this task, for the covered parts of the building and in the flaming violet light gilman thought he saw a dimly illumined corridor lined with worm-eaten panelling. 17:27:45 That's three videos or so, it's kind-of borking. 17:27:46 Boring. 17:27:49 Well, maybe borking too. 17:27:51 fungot, listen to me 17:27:53 Halite: the thing in the moonlight that flooded the spacious plain was a spectacle which no mortal fnord to the last calm, cold, slight, and fnord revelled clumsily here and there. the ground under one of the repugnant shantaks, helping him up as his judgement struggled with his loathing. it was not that distant whine which robbed me of my faculties and set upon my soul such a seal of fright as tangible as a draught of air whic 17:28:19 a draught of air whic 17:28:35 h blew me away into a trash landfill 17:29:11 fungot, var fnord = oliver 17:29:11 Halite: so instead of accepting the train he chose i telephoned the station and devised another arrangement. by rising early and taking the train at rowley after the branch was dropped but now they have fnord themselves to unknown kadath in the cold 17:29:21 I fixed the analysis program for Internet Quiz Engine. It still fails in cases of questions other than a plain ? due to its simplicity but should work in most cases, which will not use those features. 17:30:01 fungot, die 17:30:02 Halite: a reservoir of darkness, where solid and fnord forms were known only by their windy stirrings, and cloudy patterns of force seemed to fnord as though mirrored in fnord waters. i was reminded of some vaguely disquieting lines i had once called home. the old ones an fnord relationship which must have been malignly silent suddenness, the portrait of joseph curwen at last. that newspaper item and what his mother had heard i 17:30:03 Halite 17:30:05 all the bots 17:30:07 work in /query 17:30:10 fungot, Phantom_Hoover 17:30:10 Halite: sometimes when earth's gods are homesick they visit in the still harbour. 17:30:14 SOWWY 17:30:17 OWWU 17:30:27 I don't think thutubot works properly in /query, but I@m not sure 17:30:30 *I'm 17:30:48 ERR 17:31:04 Fatal Error: /home not found 17:31:09 Pietbot doesn't work in /query 17:31:10 -!- Halite has quit (Quit: Fatal Error). 17:31:20 Then again, Pietbot doesn't work in channel 17:31:40 http://sprunge.us/jKMZ This is copy of the program for analysis of Internet Quiz Engine files. 17:31:46 `ls /home 17:31:48 hackbot 17:31:54 I can find it… 17:32:21 -!- Halite has joined. 17:32:40 It will still consider the timers and multiple selection questions when counting how many slots it takes up, though. 17:33:18 I want to make a programming language 17:33:27 good idae! 17:33:31 *idea! 17:33:37 do you have any interesting concepts to base it on? 17:33:38 but not a boring one 17:33:48 well, NAND being functionally complete 17:34:07 that's been done a few times in the past 17:34:10 I want too make one whose only boolean operation is binary NAND 17:34:16 possibly with NOR 17:34:28 the problem is, that NAND-based programming languages don't lend themselves to infinite state 17:34:41 but see, say, http://esolangs.org/wiki/Norfuck http://esolangs.org/wiki/Suffolk 17:34:59 If you add NAND and shifting then will it work? 17:34:59 that should help you understand where the TCness issues come from 17:35:21 zzo38: hmm, bitwise NAND? if you can shift both ways, it would work 17:35:25 if you can shift only to the right, no 17:35:33 if you can shift to the left but not right, I'm not sure 17:35:40 and "not sure" is always a good place to be 17:35:42 Halite, did you see Nandypants? 17:36:02 -!- augur has quit (Remote host closed the connection). 17:37:01 OK, let's see 17:37:29 I don't want it to look like Brainfuck 17:37:35 say we have an OISC, whose only command is "a = ~(b & c) << 1", where b and c can be variables or literal numbers, and everything is bignum 17:37:55 and, hmm, some sort of flow control; probably while is enough, like in BF, perhaps we should have if and while 17:38:04 TC, or sub-TC? 17:38:13 btw. I have an idea. We could eliminate the need for any operation by creating a new data type called 'truth tables' 17:38:33 well an OISC has only one operation 17:38:42 so it eliminates the need for specific operations that way 17:38:48 although it's not an OISC if I'm adding if and while :) 17:39:10 I guess to make it a proper OISC, we need the instruction pointer to be a variable you can assign to 17:39:27 I think I'll make it something like an OISC 17:40:40 with one operation but IF, WHEN, and WHILE 17:40:51 one boolean op* 17:42:02 Should I call it Nandy or NAND# 17:42:17 I wouldn't be surprised if both those names, or similar ones, were already taken 17:42:23 so I'd suggest being more creative 17:43:01 can you think of a name 17:43:49 not right now, although sometimes I can 17:44:01 normally I name it after concepts in the language itself, which requires writing the language first 17:44:13 I'll document the language in a draft first. 17:44:21 I won't write an interpreter yet. 17:50:03 Oh, speaking of fungot's fnords: there's also a technical limit in the format that restricts the vocabulary to some not-terribly-giant number (2^21 tokens, maybe? Or a total of 2^28 characters in the string table?) -- though of course that "drop OOV things" option is always possible. 17:50:03 fizzie: just about every night on some of them do)) 17:50:46 `pastlog themselves 17:51:17 No output. 17:51:24 `pastlog themselves 17:51:38 2007-10-25.txt:17:29:14: setting up the initial conditions themselves can be represented as a program 17:51:38 Could I make a programming language where the if condition is formatted if(operand1,operand2) { function } 17:52:10 yes, you could 17:52:19 I'd need more details to know whether it was a good idea or not, though 17:52:27 Bleh, Lingua::EN::Sentence is kinda slow. It has taken now something like 20 minutes to process about 6000 emails. 17:52:38 `run kernelbugcheck 17:52:39 bash: kernelbugcheck: command not found 17:53:15 'kernelbugcheck' would force a Kernel Panic 17:53:37 Feel free to force a kernel panic, it won't affect the bot. 17:53:50 Gregor: is each request run with a separate kernel? 17:53:57 Eeyup. 17:53:58 Gregor, why 17:54:04 :o 17:54:06 and is that for security reasons, or just because it was easier that way? 17:54:12 Yes. 17:54:29 security probably 17:54:41 How does running each request with a seperate kernel work? 17:54:43 I'm curious. 17:55:01 Phantom_Hoover: http://bitbucket.org/GregorR/umlbox 17:55:04 Phantom_Hoover: it's UMLbox 17:55:19 so it's treating kernels just like any other process 17:55:19 ah 17:58:06 as opposed to weboflies, which uses the same kernel as the rest of the system, but has its own idea of time, process IDs, networking namespaces, filesystems, and init 17:58:20 and probably a few other things too 17:58:33 (web o' flies) 18:00:49 Only three unpruned 6-grams of my enron subset: "to thank you for your patience", "not be able to determine which" and "communication i believe that the new". 18:01:20 is that the spam, or the nonspam? 18:01:35 It's the enron, which I suppose shouldn't contain any spam? 18:02:04 I only took a few messages out of it, though. It has a bit over half a million emails. 18:02:05 I guess 18:02:14 I get a lot of internal spam sometimes 18:02:36 -!- sebbu has quit (Ping timeout: 272 seconds). 18:02:39 I suppose it depends on what "spam" means. 18:02:58 Is it homogenized meat product? 18:05:00 -!- iamcal_ has quit (Read error: Operation timed out). 18:05:48 does fungot do enron? 18:05:48 kmc: and right well and i i 18:06:09 kmc, didn't you ask that less than a week ago 18:06:21 yes and i forgot 18:06:22 so 18:06:25 does fungot do enron? 18:06:25 kmc: there's a couple of hours 18:06:33 http://sprunge.us/fhWV well, I don't know if that's so good. (Each paragraph is a single output.) 18:06:36 At the very least it needs some MIME preprocessing step to get rid of the =20's. And the HTML. 18:06:47 -!- epicmonkey has quit (Ping timeout: 240 seconds). 18:07:00 I don't know what all that ".?" stuff is, too. 18:07:02 Gregor: the company who makes that actually put out a press release saying that they were happy with people using "spam" to refer to unsolicited email, but wanted to reserve "SPAM" in allcaps for their homogenized meat product 18:07:12 http://pastie.org/6154897 18:07:13 "bentley, wear hand-tailored silk shirts and jackets if you wish you were from hizbullah, a lebanese billionaire rafik hariri" 18:07:17 What determines which category a word falls in? 18:07:27 ais523: All press is good press. 18:07:29 category theory 18:07:48 Ah, but I have fooled you. These "categories" are actually disjoint sets. 18:08:52 Gregor: in general, yes 18:08:56 I think there are exceptions, though 18:09:05 especially as a company gets larger 18:09:23 ASDA: Your Premier Source for Horse Meat 18:09:55 Tesco: Every little bit of Horse Meat helps 18:10:24 well at this point, you have to work out what's screwed up with the supply chain 18:10:24 (that should be a quote, that should) 18:10:30 rather than with the people who ended up with it 18:10:43 ever since the BSE thing, Europe's tried really hard to make all meat traceable 18:10:49 what is screwed up with the supply chain is that suppliers are labeling Horse Meat as Beef 18:10:51 so this is quite embarrassing for the meat inspector people 18:11:02 Halite: well yes, obviously 18:11:12 but there are many suppliers in the chain, so you want to find out which ones are responsible 18:11:15 each request to HackEgo basically boots up a separate Linux machine, runs the command, and then merges the filesystem changes using Mercurial 18:11:18 it's the best 18:11:21 also, why are you initcapitalizing "Horse Meat"? 18:11:32 -!- sivoais has quit (Quit: leaving). 18:11:46 kmc: Actually it never has to merge anymore, it sequentializes writing requests. 18:12:00 `run login --help 18:12:01 login: Cannot possibly work without effective root 18:12:31 `man gcc 18:12:33 -!- sivoais has joined. 18:12:33 man: can't open the manpath configuration file /etc/manpath.config 18:13:06 Gregor: oh that's too bad 18:13:10 Heh, it's got a pretty restrictive /etc X-D 18:13:16 !!!Horse Meat 18:13:29 `welcome sivoais 18:13:31 I don't think EgoBot has a !!Horse command 18:13:31 sivoais: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.) 18:13:34 Gregor: we've done that already 18:13:43 ais523: Well piffle to you too then! 18:13:55 Gregor: well elliott told me off for doing it when /I/ did it 18:14:01 * ais523 hopes sivoais feels properly welcomed, at least 18:14:09 lul 18:14:26 `welcome Gregor 18:14:28 Gregor: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.) 18:15:36 That reminds me, I've been once again thinking about how HackEgo could reasonably be made to trigger on other situations, such as channel-join. For a while I was thinking that so long as any particular trigger fires only once, that would be OK, but in retrospect, that's useless in both dimensions (it doesn't restrict spam enough, and doesn't actually accomplish anything). 18:17:06 `run exit 18:17:08 No output. 18:17:18 `run echo "No output." 18:17:19 No output. 18:17:28 `run echo "Yes output." 18:17:30 Yes output. 18:18:43 -!- augur has joined. 18:18:55 `run echo "Gregor: Welcome to the international hub for esoteric programming language design and deployment! For more information, check our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)" 18:18:56 Gregor: Welcome to the international hub for esoteric programming language design and deployment! For more information, check our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.) 18:19:14 `run echo "Welcome to the international hub for esoteric programming language design and deployment! For more information, check our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)" 18:19:16 Welcome to the international hub for esoteric programming language design and deployment! For more information, check our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.) 18:19:25 `Welcome augur. 18:19:26 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: Welcome: not found 18:19:28 Yes, your ability to make the bot do things is downright masterful. 18:19:30 `Welcome augur 18:19:31 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: Welcome: not found 18:19:38 `welcome augur 18:19:40 augur: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.) 18:19:47 `WELCOME CHICKENS 18:19:49 CHICKENS: WELCOME TO THE INTERNATIONAL HUB FOR ESOTERIC PROGRAMMING LANGUAGE DESIGN AND DEPLOYMENT! FOR MORE INFORMATION, CHECK OUT OUR WIKI: HTTP://ESOLANGS.ORG/WIKI/MAIN_PAGE. (FOR THE OTHER KIND OF ESOTERICA, TRY #ESOTERIC ON IRC.DAL.NET.) 18:20:35 i hate you so much 18:21:35 -!- sebbu has joined. 18:23:38 everybody hates me 18:24:43 Maybe that's because you're botspamming. 18:25:00 `Waugur 18:25:02 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: Waugur: not found 18:26:48 Wauguries of Innocence. 18:28:02 -!- ogrom has joined. 18:28:35 How surprising, piping the stuff through MIME::Parser is even slower. Oh well. 18:33:49 -!- zzo38 has quit (Remote host closed the connection). 18:34:53 he also thought that socal was being PODQUOT naive if they thought they would get a better deal from the legislature than from the bankruptcy court PDOT PCDQUOT this is such a BUSINESS-ORIENTED thing. 18:35:36 he added that the davis PSLASH socal mou is dead and that all the PODQUOT plan b's PCDQUOT are PODQUOT speculative PCDQUOT at best PDOT also what's a "mou"? 18:36:14 A "memorandum of understanding", apparently. 18:43:55 fizzie: mou is a French word meaning soft (things), without initiative or personality (persons). 18:44:23 also, updated Zucchini. feel free to give me any feedback! 18:48:27 Okay, a new try on MIME-parsed messages: http://sprunge.us/DPbW well, I dunno... there's still quite a lot of email-formatting crap in the body texts that would need to be heuristicced away; quoted messages and the like. 18:50:41 Though I did not know that wearing shorts was favoured by industry executives. 18:51:24 "layoffs first in oilpatch as lower energy commodity prices to keep people from watching porn" I don't know about that either. 18:53:27 -!- Halite has quit (Changing host). 18:53:27 -!- Halite has joined. 19:02:48 -!- monqy has joined. 19:07:05 `quote 15 19:07:07 15) Meh ._. 19:07:13 horribl quote 19:07:17 howwible quote 19:07:23 Wow, yeah X_X 19:07:24 `rmquote 15 19:07:25 `quote 16 19:07:26 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: rmquote: not found 19:07:27 16) oerjan: are you a man, if there weren't evil in this kingdom to you! you shall find bekkler! executing program. please let me go... put me out! he's really a tricycle! pass him! 19:07:31 Oh, what's the command... 19:07:34 `delquote 15 19:07:39 ​*poof* Meh ._. 19:08:11 `quote boily 19:08:17 942) boily: the man eating chicken is just a normal man, it's quite common to eat chicken in some parts of the world \ 943) ~eval 1+2 Error (127): this is a great bot boily i love it \ 952) not only there is no God, but try to find an APL keyboard on Sunday. \ 955) ais523: I'm not sure my 19:08:31 `quote 955 19:08:36 955) ais523: I'm not sure my grasp of the English language is getting better by visiting this channel.. 19:09:02 everything is fine. my narcissistic paranoïd self is reässured. 19:09:17 boily: The "oi" in paranoid is not a diaeresis. 19:09:36 yeah, "reässured" is fine, but it's "paranoid" 19:10:16 the vowel with the diaeresis has to belong to a different syllable to the vowel before 19:10:45 goöd to heär 19:12:02 You peöple are goïng to drive me to the saüce. 19:12:55 saüce? 19:13:10 Saus. 19:13:22 (It's a place.) 19:13:26 Eüphemism for liquör. 19:19:19 -!- epicmonkey has joined. 19:20:33 -!- Taneb has quit (Quit: DINNER). 19:23:57 -!- ogrom has quit (Read error: Connection reset by peer). 19:29:54 -!- Halite has quit (Remote host closed the connection). 19:36:15 -!- sirdancealot has quit (Ping timeout: 260 seconds). 19:41:40 -!- ogrom has joined. 19:43:15 I should really just be writing code and then filling in the corresponding strings later 19:43:31 I wrote a little main=getContents>>=print utility to help me with that bit later on 19:44:21 ok 19:47:37 :t interact 19:47:38 (String -> String) -> IO () 19:49:35 -!- Taneb has joined. 19:50:50 * Sgeo is vaguely worried about the call stack 19:51:42 It's going to grow by one for each compiler in the compiler stack :/ 19:51:56 The way I'm implementing, anyway 19:53:21 Actually, it might not, depending on each compiler in the compiler stack 19:53:31 If the last thing they do is ! (compile).... 19:53:46 Sgeo: oh no 19:53:53 you may hit the problem that most recently halted Feather :( 19:54:26 o.O hm? 19:55:12 Sgeo: the whole "how do you have a forever-growing stack of interpreters without losing time" thing 19:56:08 Have each interpreter write the next one 19:56:13 I take it that "The slowdown is inevitable, it's just an experimental concept anyway" is not an adequate solution? 19:56:51 Sgeo: it possibly is 19:57:11 This sounds like the problem I had with programming in Brook, except not at all 19:57:31 It sounds like the problem I thought I would have with programming in Brook, except backwards 19:57:36 At any rate, these are compilers, which compile into the TF primitives, so it's not like each one in the stack needs to be recompiled itself before being used 19:57:43 Just interpreted 19:57:49 oh good 19:57:55 The actual problem with programming in Brook is making a quine in a crappy language 19:58:41 Taneb, that's what was about to stump me with what I now call the ! operation. So I made it so that ! doesn't compile in terms of primitives, but in terms of the currently executing language 19:59:55 Sgeo, I've given up understanding your new language 20:02:01 Let's call the primitive implementation H0, and the language that it implements L0 20:02:07 L0 is Trustfuck 20:03:04 I write a compiler for L1, which is whatever language, in L0. This consists of reading L1 code, transforming it into L0 code, then emitting with : and compiling with ! 20:03:21 When I compile, H1 is output. 20:04:47 I can now write a compiler in L1 for another language L2. The primitive ! and :, which may be called something else in L1, take L1 code now, not L0 code 20:04:56 -!- Vorpal has quit (Quit: ZNC - http://znc.sourceforge.net). 20:04:57 -!- iamcal_ has joined. 20:05:01 -!- augur has quit (Ping timeout: 245 seconds). 20:06:14 Internally, when I emit H1 from my L0 program, a compiled form of L0 is itself stored in H1, on top of the compiler stack 20:07:03 Thus, when I use the ! primitive from an L1 program, first the code to be compiled is run through the L1 compiler which was written in L0, before the L0 primitives are compiled by whatever means 20:08:00 -!- Vorpal has joined. 20:08:11 I do feel quite limited by basing this on Brainfuck 20:08:36 Maybe a future Trust-family language could, say, state that different code other than itself will get thrown onto the compiler stack? 20:10:03 erm, support a mechanism for doing so 20:17:53 Actually, I see a simple extension to Trustfuck that could support that 20:18:05 But right now, meh 20:18:59 I have a big appreciation for :info, even if it doesn't tell me everything I want to know 20:19:00 -!- DHeadshot has quit (Ping timeout: 260 seconds). 20:19:40 ghci should have a way to see all definitions in its current scope for which part of their type signature matches x 20:20:01 -!- DHeadshot has joined. 20:20:53 -!- augur has joined. 20:41:26 My brain feels like slime when I'm working on this 20:41:38 And it's more me forgetting how to program in Haskell than it is me not grasping my idea 20:42:10 I should probably be using lenses, shachaf 20:42:17 And that's the downside of using so many languages, Sgeo 20:42:20 ~fortune 20:42:20 Does the same as the system call of that name. 20:42:20 If you don't know what it does, don't worry about it. 20:42:20 -- Larry Wall in the perl man page regarding chroot(2) 20:42:40 heh, I remember reading that recently 20:43:01 Stick to one, and eventually people will laugh at you for not being able to understand C 20:43:31 I have the feeling that what Taneb said works with only knowing C. 20:46:58 How do I fix this to not be so ugly (I'm not even sure if it's correct, I haven't tried compiling it) 20:46:59 http://hpaste.org/82310 20:47:21 -!- ogrom has quit (Quit: Left). 20:48:54 I think there's a special place in Hell for people who do chroot in perl. 20:49:37 -!- Taneb has quit (Ping timeout: 248 seconds). 20:50:26 I could factor it out 20:50:41 Gregor: it makes sense if you're a sysadmin and using perl as a shel 20:50:42 *shell 20:50:45 That would be good practice, rather than copy/pasting the way I usually would in this situation 20:51:02 I think there's a special place in Hell for people who use perl as a shell. 20:51:22 -!- carado has quit (Ping timeout: 246 seconds). 20:51:55 boily: indeed :) otoh, C could actually be small enough that you *could* know it 20:52:19 Gregor, hi 20:52:28 Gregor, did you figure out the -R issue with umlbox btw? 20:52:37 -!- Taneb has joined. 20:52:40 Vorpal: Haven't had time to investigate yet. 20:52:46 Gregor, fair enough 20:53:04 Gregor, also chroot in perl? You mean by doing the syscall? 20:53:13 and why would you do that in a perl script 20:53:13 I'm thinking it may not be worth investigating, it'd be best to just rip that out and find a better way to communicate guest-host. The tty system is a nightmare. 20:53:25 Vorpal: Read just a liiiiiiiiiiiiiiiiiiiiiiittle bit further back in the backlog. 20:53:32 okay 20:54:21 The mudem itself is good AFAIK, it's just that UML ttys are awful. 20:54:34 hm 20:54:43 Gregor, what options to ttys are there 20:55:09 Err, s/options/alternatives/? 20:55:15 err yeah 20:55:37 It has a system for memory-mapping host files. That's not a stream though. 20:55:42 I don't think it has any other stream options. 20:55:42 Gregor, I blame that on them being the same word in Swedish 20:55:56 -!- hagb4rd has quit (Quit: Nettalk6 - www.ntalk.de). 20:56:08 Gregor, doing manual stream over a mmap page sounds awful 20:56:18 Indeed X_X 20:56:26 but if you want to, go ahead 20:56:27 Hence why I haven't tried X-D 20:56:46 especially the syncronization 20:57:09 Gregor: What about people who use ghci as their shell? 20:57:25 *shudders* 20:58:06 Gregor, how does normal uml do networking? 20:58:38 rawSystem "bla" ["buh","bluh"] 20:58:40 Vorpal: It exposes either a tun/tap or slirp as an ethernet device. That's implemented as a kernel module. Neither really allow me to meaningfully place any restrictions. 20:59:02 Gregor, the tun/tap one would work, you just have to use iptables to restrict it 20:59:16 no idea about the slirp one 20:59:27 Well, OK, tun/tap is impractical because UMLBox doesn't run as root. 20:59:36 true 20:59:36 And many can run at once. 20:59:41 okay, good point 20:59:54 patched slirp daemon? 20:59:57 Really, it's just plain nutty that uml has no reliable host/guest character device. 21:00:07 That's probably a good approach. 21:00:22 The biggest issue with slirp is that it has a "let's run arbitrary host commands" pseudo-server. 21:01:40 Gregor, so patch that bit out? 21:01:42 Hmm, my code seems a bit repetitive 21:01:42 interpret' (Inc:cmds) = modTape incTape >> interpret' cmds 21:01:42 interpret' (Dec:cmds) = modTape decTape >> interpret' cmds 21:01:42 interpret' ((Set n):cmds) = modTape (setTape n) >> interpret' cmds 21:02:41 Vorpal: I haven't looked into it, at the time the mudem approach seemed better (whitelist instead of blacklist) 21:03:48 Gregor, why would it allow executing commands on the host at all? 21:04:03 isn't it just a user space program forwarding network 21:04:12 /slash 21:04:13 Yes, it offers that as a virtual service. 21:04:20 huh 21:04:23 Because it's stupid that way X-D 21:04:28 that sounds complicated 21:04:33 also who came up with this shit 21:04:41 Hahaha 21:04:44 Wonderful question. 21:05:11 so what is slirp originally intended for? 21:05:53 I think it was so that you could have an ethernet-connected computer accept dial-in connections without needing to run a whole other networking stack in-kernel. 21:06:30 i think it's for old ISPs that gave you dial-in shell access only 21:06:57 Exactly. 21:07:23 hm 21:07:36 -!- oerjan has joined. 21:07:36 that was never common over here afaik 21:07:48 it was usually just straight PPP or SLIP 21:12:59 Sgeo: I can make it less repetitive at the cost of readibility 21:14:00 can you? 21:14:24 Sgeo: by the way, where is the case for []? Or is : here not the list constructor? 21:14:38 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds). 21:15:10 It occurs to me that the Linux kernel has swears in it, yet that wouldn't stop someone from pointing to it on their `resume 21:15:21 FreeFull, I didn't show all cases, but forgot about that one, ty 21:15:31 Sgeo: my advice is to factor out the thing that goes from instruction to action like Inc->IncTape 21:15:57 *incTape 21:16:12 and Set n -> setTape n 21:16:17 and so on 21:16:32 You might be able to map and then sequence_ 21:16:47 aka mapM_ 21:20:16 interpret' = mapM_ mod where mod x = modTape $ case x of { Inc -> incTape; Dec -> decTape; (Set n) -> setTape n } 21:20:19 This might work 21:20:48 It might not 21:21:36 imo dont do that 21:22:10 I had a slirp-driven dialup connection going a while (a decade? 15 years?) ago. 21:22:12 meh 21:22:32 Though probably not as the regular "commercial ISP" at-home dialup. 21:22:40 Besides, I have cases that don't involve just modifying the tape 21:22:55 data InterpState = InterpState { tape :: Tape, higherInput :: Maybe String, currentCompilerStack :: [[TFCommand]], codeBlock :: String } 21:22:55 Sgeo: ok then think for yourself 21:23:16 Does thinking not to bother with factoring it out as much as possible count? 21:24:05 -!- Phantom_Hoover has joined. 21:24:38 Hi Phantom_Hoover. I believe that the easiest Trustfuck programs to write are probably BF derivative compilers. 21:24:45 you don't have to do it "as much as possible" (what does that mean???) but i suggest avoiding too much repetition because duplication leads to error and also pain 21:24:48 pain and error 21:24:49 you dont want this 21:24:56 In fact, I plan on making a few 21:24:59 Just to test it out 21:25:07 switching [ and ] 21:25:08 etc 21:25:37 logically, Phantom_Hoover now has to replace Sgeo's brain with a brick factory 21:26:36 brick factory might be a nice name for a brainfuck derivative 21:26:41 would be useful 21:26:50 i don't know where i'd even find a brick these days 21:27:11 I seem to remember a brick factory near Newcastle 21:27:37 could make your own bricks 21:27:43 I thought they made bricks by pouring mud in molds in the desert 21:27:44 homemade bricks for that "homemade" charm 21:28:19 I wonder what kind of desert has lots of mud though 21:28:19 olsner, how would you know 21:28:23 -!- augur has quit (Remote host closed the connection). 21:28:44 mississipi mud pie, obviously 21:28:45 Phantom_Hoover: hm i'd suggest Leca, but that's apparently a norwegian company so might not be in britain 21:30:56 There's a brick factory next to the summer place of some people I know. It's in Mjösund, Kemiö, if you're interested. I'm sure it's not much out of your way. 21:32:31 hm ok they've been absorbed by Weber, which seems multinational. 21:33:42 I wonder what kind of desert has lots of mud though <-- the ones rivers run through? see: egypt, mesopotamia 21:34:54 ais523: Oh, I updated the bfjoust stats, incidentally; started it when you mentioned it, but then totally forgot about it so didn't rsync. 21:35:08 oerjan: mythological deserts don't count 21:35:12 fizzie: good to know 21:35:16 do you have the link handy? 21:35:49 oh actually weber is part of saint-gobain. 21:36:14 `pastlog bfjoust stats 21:36:25 ais523: http://zem.fi/egostats/ 21:36:33 (Faster than a speeding bot.) 21:36:43 No output. 21:36:48 (Maybe HackEgo doesn't quite always count as "speeding".) 21:36:52 indeed :) 21:36:54 thanks 21:37:10 HackEgo is best at grinding 21:38:07 hmm… so I conclude from this that part of the reason omnipotence does so much better than the other top programs is that it doesn't have issues with short tape lengths 21:38:37 omnipotence? 21:38:39 sounds cool 21:38:59 @hoogle Char -> Int 21:38:59 Data.Char digitToInt :: Char -> Int 21:39:00 Data.Char ord :: Char -> Int 21:39:00 Graphics.UI.GLUT.Callbacks.Window Char :: Char -> Key 21:39:02 Hrm... the "absolute values" plot for it has numbers from (about) -24 to 12; that sounds a bit suspicious. 21:39:49 -!- augur has joined. 21:40:05 coppro: it's a new BF Joust innovation, and it wins "fairly", mostly (although it'd be hurt if people used timer clears more often even when they had no reason to suspect defence) 21:40:34 The others have negative values there too. Hrm, perhaps I have broken it. 21:41:10 the absolute tape value plot is interesting because it shows strategy 21:41:19 most programs have their flags near 128 21:41:32 anticipation2 does synchronization, so its flag tends to be really low when it wins 21:41:56 and omnipotence defends but doesn't synchronize, so its flag is averaging approximately 64 (i.e. pretty much a random value) 21:42:41 Yes, the overall average (plot_tapeabs) version seems to work, the numbers are nonnegative; but the per-program versions I probably have managed to break. 21:42:48 I did refactor some repeated code out of there. 21:42:58 `rm bin/list 21:43:04 No output. 21:44:40 `list 21:44:41 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: list: not found 21:44:44 nooooooooooo! 21:47:26 Yes, I seem to have managed to drop an "abs" out. 21:47:39 I hate monad stacks I hate monad stacks I hate monad stacks 21:47:50 And after pressing Enter, I tried to Ctrl-S to save IRC 21:48:36 There, fixeded that. 21:48:38 `revert 21:48:41 Done. 21:49:13 `list 21:49:17 cuttlefish boily elliott Taneb HackEgo shachaf Sgeo monqy 21:50:04 `run sed -i 's/shachaf //' bin/list # It's getting annoying 21:50:08 No output. 21:50:12 Is there a `delist / `unlist already, incidentally? 21:50:26 not last i checked 21:51:51 Oh crud I am lost in a monad stack 21:51:53 Totally lost 21:52:22 advice: dont do that 21:52:27 Sgeo: you are not supposed to use explicit lift's hth 21:52:31 *-' 21:52:39 Not done writing this function, but http://hpaste.org/82314 21:52:45 I think I need to use liftIO somewhere 21:52:58 The function itself returns a StateT InterpState IO () 21:52:58 what's the signature of interpret' 21:53:06 interpret' :: [TFCommand] -> StateT InterpState IO () 21:53:11 Sgeo: modify takes just one argument 21:53:29 Yeah, that part's also still in progress 21:53:54 But I think I need to fit a liftIO near the getChar 21:54:04 -!- dessos has quit (Quit: leaving). 21:54:06 oerjan: Thanks. 21:54:34 -!- Taneb has quit (Quit: Leaving). 21:54:39 shachaf: yw, even if you could have done it yourself instead of messing it up every time 21:55:21 -!- dessos has joined. 21:59:08 `welcome dessos 21:59:11 dessos: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.) 22:02:22 * boily checks his calendar. hm. not Friday yet. <-- good chap. 22:07:19 -!- augur has quit (Remote host closed the connection). 22:08:18 What is the cleanest way to map over the second element of a tuple? 22:08:52 Phantom_Hoover your british is showing <-- but naff is such a cute word! 22:09:07 FreeFull: second from Control.Arrow 22:09:13 > second succ (1,2) 22:09:15 (1,3) 22:09:37 oerjan, it's the perfect word to describe inoffensively bad things" 22:10:52 FreeFull: if you're doing deeper stuff, maybe you should look at lens. 22:11:12 :t _2 22:11:13 (Functor f, Field2 s t a b, Indexable Int p) => p a (f b) -> s -> f t 22:11:49 if i only remembered the names 22:11:58 second is just \f (a,b) -> (a,f b) right? 22:12:02 -!- Phantom_Hoover has quit (Quit: Leaving). 22:12:12 FreeFull: on the (->) Arrow, yes >:) 22:12:14 -!- Phantom_Hoover has joined. 22:12:35 oerjan: Does anyone use any other Arrows? 22:12:36 :t (^=) 22:12:37 (Integral e, Num a, MonadState s m) => ASetter' s a -> e -> m () 22:13:02 :t second 22:13:04 Arrow a => a b c -> a (d, b) (d, c) 22:13:04 FreeFull: i think zzo38 uses Kleiski and probably some others do too 22:13:44 oerjan: dates are complex. time is hard. I need periodic sanitic realitic checks. 22:13:47 what's the lens equivalent of modify 22:14:07 boily: especially on the 13th, no? 22:14:12 http://en.wikipedia.org/wiki/Arrow_%28computer_science%29 This article seems to have been written by Haskellers 22:14:56 FreeFull: probably, i'm not sure if anything but Haskell uses them 22:15:26 they're kind of not mathematically pretty like monads are 22:15:41 profunctors are better 22:15:44 they're sort of a chimera of Category and Applicative 22:16:07 @hoogle (^=) 22:16:07 No results found 22:16:19 -!- nooodl_ has joined. 22:16:36 @hoogle ASetter' 22:16:36 No results found 22:16:37 oerjan: on those days, I'm sure this channel becomes some kind of SCP. 22:16:54 boily: That'd be a retarded SCP 22:16:56 oh 22:17:11 > _2 %~ succ $ (1,2) 22:17:14 (1,3) 22:17:27 `addquote oerjan: on those days, I'm sure this channel becomes some kind of SCP. 22:17:30 963) oerjan: on those days, I'm sure this channel becomes some kind of SCP. 22:17:40 "those days"? 22:17:44 _2 %~ looks like gibberish 22:17:47 > over _2 succ (1,2) 22:17:49 (1,3) 22:17:53 :t over 22:17:55 Profunctor p => Setting p s t a b -> p a b -> s -> t 22:17:57 more readable alternative 22:18:06 wow i'm reading _2 as (-2) "thanks apl" 22:18:18 I think I'll just import Control.Arrow (second) 22:18:22 @let theSecondOne = _2 22:18:24 Defined. 22:18:28 nooodl_: friday thirteens. 22:18:32 > over theSecondOne succ (1,2) 22:18:35 (1,3) 22:18:35 nooodl_: hm i'm not, even if i've been using it that way all the time while writing Fueue 22:18:45 shachaf: we aren't trying to make it into English 22:18:55 > over theSecondOne succ (1,2,3) 22:18:58 (1,3,3) 22:19:06 (Fueue doesn't have _, but i needed something to distinguich negative numbers from - positivenumber) 22:19:11 :t liftIO 22:19:13 MonadIO m => IO a -> m a 22:19:46 i'm, how can that even work in haskell 22:19:51 :t over theSecondOne succ 22:19:53 (Enum b, Field2 s t b b) => s -> t 22:19:58 It's awful. 22:20:23 > liftIO putStr "a" :: Maybe String 22:20:24 oh god. i never asked 22:20:25 Couldn't match expected type `GHC.Types.IO 22:20:25 ... 22:20:37 > (liftIO putStr "a") :: Maybe String 22:20:39 Couldn't match expected type `GHC.Types.IO 22:20:39 ... 22:20:46 Maybe is not a MonadIO 22:20:51 Oh, right 22:20:51 Also, bad parenthization 22:20:55 And it'd have to be Maybe () 22:20:58 liftIO $ putStr "a" 22:21:11 > (liftIO $ putStr "a") :: Maybe () 22:21:13 No instance for (Control.Monad.IO.Class.MonadIO Data.Maybe.Maybe) 22:21:13 arisin... 22:21:19 There, the right error 22:21:29 FreeFull: you can only liftIO into monads that are built on top of IO 22:21:47 > (liftIO $ putStr "a") :: MaybeT (IO a) 22:21:49 Not in scope: type constructor or class `MaybeT' 22:21:49 Perhaps you meant `Maybe'... 22:22:06 old lambdabot is old 22:23:08 I'm guessing there is an instance MonadIO a => MonadIO MaybeT a 22:23:54 boily: it's a little known fact that everyone dies every Friday the 13th and is resurrected with partial amnesia the next morning 22:24:20 you sure of that? I have no memories of it. 22:25:49 quite sure. 22:26:05 > over _2 succ [1,2,3] 22:26:07 No instance for (Control.Lens.Tuple.Field2 [t0] a0 b0 b0) 22:26:07 arising from a... 22:26:15 next time, I'll write myself a post-it. 22:26:21 INSUFFICIENT MADNESS 22:26:53 boily: there might also be a few things replaced or missing, hth 22:27:54 boily: also you cannot write a post-it when you are dead, duh 22:28:11 oerjan: good point. 22:29:33 that means I nead to get back my cloneduino from my brother, and implement some contraption with it that will write to a post-it when I'm dead, then wrap the precious slip into a safe, then lock the aforementioned safe in a secret underground vault. 22:30:44 :t act 22:30:46 (Conjoined p, Effective m r f) => (s -> m a) -> p a (f a) -> p s (f s) 22:32:18 i'm not sure that's the act from lens 22:32:24 > (0$0`act`) 22:32:26 The operator `Control.Lens.Action.act' [infixl 9] of a section 22:32:26 must ha... 22:32:30 oh it is 22:32:39 :t over _2 22:32:41 (Field2 s t a b, Indexable Int p) => p a b -> s -> t 22:35:31 Hmm, my currently envisioned primCompiler has too many jobs I think 22:36:01 Translating a string of Trustfuck into TFCommands, and then outputting the appropriate Haskell 22:39:19 I could call primTranslation the translation of Trustfuck->[TFCommand] 22:39:40 refactor! 22:39:46 refactor! 22:39:47 refactor! 22:40:10 hm Taneb is not here 22:41:59 > (id += 2) 3 22:42:01 No instance for (Control.Monad.State.Class.MonadState s0 ((->) a0)) 22:42:02 aris... 22:42:08 > (id +~ 2) 3 22:42:10 5 22:46:36 -!- ais523 has quit. 22:48:01 Oh hey there's a J 8 beta 22:50:58 oooh 22:53:33 oh apparently there's just some boring GUI changes 22:54:21 -!- copumpkin has quit (Ping timeout: 252 seconds). 22:55:01 -!- copumpkin has joined. 22:56:55 -!- augur has joined. 22:59:37 Vorpal: ARRRRRRRRRRRRGH 22:59:41 Vorpal: PYTHOOOOOOOOON 23:00:01 I've only begun hating Python recently 23:00:42 Vorpal: umlbox mudem bug fixed. 23:04:02 Y'know, you're free to fail to hack HackEgo in #hackbot . Less... interrupty there. <-- funniest thing, not a single thing he did showed up in the repository 23:04:06 @hoogle catch 23:04:07 Prelude catch :: IO a -> (IOError -> IO a) -> IO a 23:04:07 System.IO.Error catch :: IO a -> (IOError -> IO a) -> IO a 23:04:07 Control.OldException catch :: IO a -> (Exception -> IO a) -> IO a 23:04:40 :t (Just <$> getChar) `catch` \_ -> return Nothing 23:04:40 oerjan: lol, 'struth. 23:04:42 IO (Maybe Char) 23:06:00 * oerjan is not sure how he feels about using catch just to check for eof 23:06:01 grr typing } does not mean I want to deindent 23:06:09 What's a better way to check for eof? 23:06:16 hIsEOF 23:06:32 admittedly catch may be shorter 23:08:27 oh or just isEOF for stdin 23:08:50 :t isEOF 23:08:52 Not in scope: `isEOF' 23:08:54 @hoogle isEOF 23:08:55 System.IO isEOF :: IO Bool 23:08:55 GHC.IO.Handle.FD isEOF :: IO Bool 23:08:55 System.IO.Error isEOFError :: IOError -> Bool 23:09:03 "deindenting" should be called "exdenting" imo 23:09:55 have I heard "dedent"??? maybe. 23:10:26 i've heard "dedent" but "de-" isn't the opposite of "in-"... 23:10:27 monqy: DEDENT is a lexical token in python, iirc 23:10:57 used for implementing its indentation blocks 23:11:26 :t hIsEOF 23:11:28 Not in scope: `hIsEOF' 23:11:28 what does it use for implementing its dedentation blocks 23:11:44 shachaf: nothing 23:11:50 oh 23:13:22 oerjan, ok, using isEOF 23:13:37 What I wrote is more verbose, but using catch like that makes me feel icky 23:14:09 hm... 23:14:25 @hoogle Bool -> m a -> m (Maybe a) 23:14:25 Data.Generics.Aliases orElse :: Maybe a -> Maybe a -> Maybe a 23:14:26 Data.Time.Calendar.MonthDay monthAndDayToDayOfYearValid :: Bool -> Int -> Int -> Maybe Int 23:14:26 Control.Monad unless :: Monad m => Bool -> m () -> m () 23:14:29 oh 23:15:23 gah when and unless are the closest but don't give maybes 23:15:32 or wait 23:15:43 ...sigh 23:16:05 @hoogle Maybe a -> a -> a 23:16:06 Data.Maybe fromMaybe :: a -> Maybe a -> a 23:16:06 Prelude asTypeOf :: a -> a -> a 23:16:06 Data.Generics.Aliases orElse :: Maybe a -> Maybe a -> Maybe a 23:16:34 Sgeo: you need something which starts with a Bool, something haskell standard libraries sorely lacks 23:16:37 oerjan: To be fair Bools are evil. 23:16:51 oerjan, it's fine, I just used do notation 23:17:11 I could also use >>= and a lambda 23:17:17 @pl \x m -> if x then Just <$> m else pure Nothing 23:17:17 flip flip (pure Nothing) . (. (Just <$>)) . if' 23:17:20 Nothing -> liftIO $ do 23:17:20 eof <- isEOF 23:17:20 if eof then Just <$> getChar else return Nothing 23:17:21 There y'go. 23:17:32 @ty \x m -> if x then Just <$> m else pure Nothing 23:17:34 Applicative f => Bool -> f a -> f (Maybe a) 23:17:50 Sgeo: sure. it's just awful that afaik there is no way to do it that is shorter than your catch expression 23:18:10 oh wait 23:18:19 well not _quite_ shorter but... 23:18:37 @ty \case { True -> "hello"; False -> "goodbye" } 23:18:39 parse error on input `case' 23:18:57 "hello monqy" 23:19:01 monqy: old lambdabot is old 23:19:14 hi shachaf 23:19:17 hi 23:19:27 do you have anything to say about galois connections today 23:19:30 no 23:19:39 perhaps tomorrow, then. 23:20:29 :t let isEOF :: IO Bool; isEOF = undefined in isEOF >>= maybe (return Nothing) getChar . guard 23:20:31 Couldn't match expected type `a0 -> IO (Maybe a1)' 23:20:31 with actual type `IO Char' 23:20:31 In the second argument of `maybe', namely `getChar' 23:20:32 @let monoids = easy 23:20:35 Defined. 23:20:36 fff 23:21:04 :t maybe (return Nothing) getChar . guard 23:21:06 Couldn't match expected type `a0 -> m0 (Maybe a1)' 23:21:06 with actual type `IO Char' 23:21:06 In the second argument of `maybe', namely `getChar' 23:21:09 :t maybe 23:21:11 b -> (a -> b) -> Maybe a -> b 23:21:15 oh right 23:21:32 = CodensityAsk Identity 23:21:41 Er, no. 23:21:57 Er, yes. 23:22:40 :t let isEOF :: IO Bool; isEOF = undefined in isEOF >>= fromMaybe (return Nothing). (getChar <$) . guard 23:22:41 Couldn't match expected type `Maybe a0' with actual type `Char' 23:22:41 Expected type: IO (Maybe a0) 23:22:41 Actual type: IO Char 23:22:50 this isn't going very well 23:22:58 :t (getChar <$) . guard 23:22:59 (Functor f, MonadPlus f) => Bool -> f (IO Char) 23:23:39 :t fromMaybe (return Nothing) . (getChar <$) . guard 23:23:41 Couldn't match expected type `Maybe a0' with actual type `Char' 23:23:41 Expected type: IO (Maybe a0) 23:23:41 Actual type: IO Char 23:24:29 :t String -> IO a 23:24:31 parse error on input `->' 23:24:36 @hoogle String -> IO a 23:24:37 Foreign.C.Error throwErrno :: String -> IO a 23:24:37 Network.Socket.Internal throwSocketError :: String -> IO a 23:24:37 System.Environment withProgName :: String -> IO a -> IO a 23:24:42 @hoogle throw 23:24:42 Control.Exception.Base throw :: Exception e => e -> a 23:24:42 Control.Exception throw :: Exception e => e -> a 23:24:42 Control.OldException throw :: Exception e => e -> a 23:24:44 -!- Nisstyre_ has changed nick to Nisstyre. 23:24:45 bah 23:25:06 :t fromMaybe (return Nothing) 23:25:08 Monad m => Maybe (m (Maybe a)) -> m (Maybe a) 23:25:20 Hmm. What should happen when a compiler in the middle of the compiler stack attempts to do normal output? 23:26:08 -!- epicmonkey has quit (Ping timeout: 255 seconds). 23:26:29 chaos 23:26:35 don't do it Sgeo 23:26:51 "Chaos" is easily achieved by just doing normal output 23:27:36 Imagine something randomly outputting in the middle of creating x86 binary for no good reason 23:27:57 don't do it 23:28:07 ? 23:28:20 Well, any program that does that is ... certainly broken 23:28:55 The question is, do I throw an error? 23:29:10 Also, I have separate sorts of output: Output via . and output via : and ! 23:29:26 I've been wondering whether to separate input out in that fashion 23:29:56 That is, any compiler in the middle of the compiler stack that uses , rather than codein ; would see standard input 23:30:03 Rather than code in the language they were expecting 23:30:07 Possibly causing havock 23:30:10 havoc? 23:30:11 Fun 23:30:32 Right now though I'm just going to keep implementing the spec as-is 23:31:14 http://sprunge.us/JHIC I am somewhat a confuse. 23:31:29 :t chr 23:31:31 Int -> Char 23:31:42 :t putCh 23:31:44 Not in scope: `putCh' 23:31:44 :t putChar 23:31:46 Char -> IO () 23:32:23 fizzie: making its lamarck on game history, surely 23:32:33 How would you rewrite sum . map (\(x,y) -> if x == y then 1 else 0) $ zip not to use $ like that? 23:33:04 Wait, that's not valid 23:33:13 http://hpaste.org/82320 23:33:55 I like how -> and <- align. I am easily amused 23:33:58 Wait, could use zipWith there 23:34:29 FreeFull: in any case, that would use . not $ 23:34:50 or not even that 23:35:05 zip is a function of two arguments 23:35:10 The others are of one 23:35:19 so .: which is not standard 23:36:08 :t sum .: zipWith (uncurry (==)) 23:36:10 Couldn't match expected type `b1 -> b0' with actual type `Bool' 23:36:10 Expected type: b2 -> b2 -> b1 -> b0 23:36:10 Actual type: b2 -> b2 -> Bool 23:36:17 now what 23:36:22 :t (.:) 23:36:23 (Functor g, Functor f) => (a -> b) -> f (g a) -> f (g b) 23:36:32 CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALE 23:36:45 What I meant was something like \x -> sum . zipWith (\x y -> if x == y then 1 else 0) x 23:37:05 But more pointless 23:37:13 yes, .: would fit 23:37:18 *should 23:37:34 :t sum .: zipWith (\x y -> if x == y then 1 else 0) 23:37:35 (Eq a, Num b) => [a] -> [a] -> b 23:37:37 oerjan: Apparently the game was not in fact good. :/ (But the Ghost Crab did evolve to Fiddler Crab and then the Yeti Crab and then the Coconut Crab.) 23:37:51 The type fits 23:37:55 fizzie, ??? 23:38:50 how about 23:38:51 Phantom_Hoover: [01:31:14] http://sprunge.us/JHIC I am somewhat a confuse. 23:39:02 @hoogle (.:) 23:39:02 No results found 23:39:15 length . filter (uncurry (==)) . zip 23:39:17 :info (.:) 23:39:18 or something 23:39:39 :t (length . filter (uncurry (==)) . zip) 23:39:40 Couldn't match expected type `[(b0, b0)]' 23:39:41 with actual type `[b1] -> [(a0, b1)]' 23:39:41 Expected type: [a0] -> [(b0, b0)] 23:39:44 :t (length . filter (uncurry (==)) .: zip) 23:39:46 Couldn't match expected type `[[(b0, b0)]]' 23:39:46 with actual type `[b1] -> [(a0, b1)]' 23:39:46 Expected type: [a0] -> [[(b0, b0)]] 23:40:26 :t (.:) 23:40:28 (Functor g, Functor f) => (a -> b) -> f (g a) -> f (g b) 23:40:34 :t (.).(.) 23:40:35 (Functor f1, Functor f) => (a -> b) -> f (f1 a) -> f (f1 b) 23:40:46 :t (.) 23:40:47 that's the portable version 23:40:47 Functor f => (a -> b) -> f a -> f b 23:40:53 Oh, .: is the owl 23:41:02 cale cale cale cale cale 23:41:42 owl? 23:42:10 :t length . filter id . zipWith (==) 23:42:12 Couldn't match expected type `[Bool]' 23:42:12 with actual type `[b0] -> [c0]' 23:42:12 Expected type: [a0] -> [Bool] 23:42:15 oops 23:42:31 :t (length . filter id) .: zipWith (==) 23:42:33 Eq b => [b] -> [b] -> Int 23:42:41 FreeFull: simpler ^ 23:42:55 i have no idea when to use (.).(.) it's so stupid 23:43:10 that's why they call it (.:) 23:43:15 "less stupid" 23:43:27 :t (.).(.) (length . filter id) (zipWith (==)) 23:43:29 Couldn't match expected type `a0 -> b0' with actual type `Int' 23:43:29 Expected type: [a1] -> a0 -> b0 23:43:29 Actual type: [a1] -> Int 23:43:30 :t (length . filter id .) . zipWith (==) 23:43:31 The operator `.' [infixr 9] of a section 23:43:31 must have lower precedence than that of the operand, 23:43:31 namely `.' [infixr 9] 23:43:32 what about (∴) 23:43:40 :t ((length . filter id) .) . zipWith (==) 23:43:41 "minimally stupid"?? 23:43:41 Eq b => [b] -> [b] -> Int 23:43:48 (∴) is maximally stupid, sorry 23:43:52 oh 23:43:57 what about (∵) 23:44:03 also maximally stupid 23:44:09 are they isomorphic 23:44:18 if you want 23:44:23 isomorphic up to isomorphic isomorphism 23:44:25 if they'd only made . associate the other way, the innermost parentheses would be unnecessary 23:44:42 2241 NOT TILDE [≁] 23:44:47 @hoogle (<$>) 23:44:47 Data.Functor (<$>) :: Functor f => (a -> b) -> f a -> f b 23:44:47 Control.Applicative (<$>) :: Functor f => (a -> b) -> f a -> f b 23:44:54 lambdabot: plz support unicode again......... 23:44:56 @hoogle ord 23:44:56 Prelude class Eq a => Ord a 23:44:57 Data.Ord class Eq a => Ord a 23:44:57 Prelude data Ordering :: * 23:44:58 i don't have not tilde on my compose key :( 23:45:03 oh no 23:45:04 @hoogle chr 23:45:05 Data.Char chr :: Int -> Char 23:45:05 Text.PrettyPrint.HughesPJ Chr :: Char -> TextDetails 23:45:05 Text.PrettyPrint Chr :: Char -> TextDetails 23:45:12 2247 NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO [≇] 23:45:15 2246 APPROXIMATELY BUT NOT ACTUALLY EQUAL TO [≆] 23:45:18 2245 APPROXIMATELY EQUAL TO [≅] 23:45:21 these are good 23:45:25 yeah 23:45:30 @hoogle Int -> Char 23:45:30 Data.Char chr :: Int -> Char 23:45:30 Data.Char intToDigit :: Int -> Char 23:45:30 Data.Text index :: Text -> Int -> Char 23:45:35 that reminds me of my favorite thingy in unicode 23:45:36 it's missing ACTUALLY BUT NOT APPROXIMATELY EQAUL TO 23:45:36 @hoogle Char -> Int 23:45:37 Data.Char digitToInt :: Char -> Int 23:45:37 Data.Char ord :: Char -> Int 23:45:37 Graphics.UI.GLUT.Callbacks.Window Char :: Char -> Key 23:45:52 nooodl_: ⋚ ? 23:45:57 ⋄ 23:46:11 wow shachaf how did you know 23:46:16 i was just looking it up. ⋚ 23:46:27 also ⋙ is pretty good 23:46:29 nooodl_: "im an expert in knowing things" 23:46:48 don't forget about ⪑ 23:46:53 ⪔ 23:47:00 ⪠ wow these are trainwrecks 23:47:05 those are pretty good 23:47:21 wow 𪩶 23:47:22 er 23:47:23 ⪢ i can't even see this one 23:47:25 2A76 THREE CONSECUTIVE EQUALS SIGNS [⩶] 23:47:29 but i trust that it looks really nice 23:47:29 ⩶ 23:47:31 hahaha 23:47:44 i can't see that one either but that's actually good 23:47:49 i can see ⪢ 23:47:52 "get better fonts" 23:48:12 nooodl_: the good thing about THREE CONSECUTIVE EQUALS SIGNS is that it goes way out of the box into the next character 23:48:16 because i imagine that they're just haphazardly smashed into a single unicode character "box" 23:48:24 Not in my font! 23:48:26 that's even better :') 23:48:32 2AA4 GREATER-THAN OVERLAPPING LESS-THAN [⪤] 23:48:37 Can you see that? 23:48:39 what's a good font that supports all of these 23:48:40 nope :/ 23:48:47 They're >< overlapping. 23:48:57 I use the font called "Monospace" 23:49:02 "good font imo" 23:49:03 me too 23:49:08 @hoogle Int -> Char <-- tip: while ord and chr exist, i usually don't bother importing them and just use fromEnum and toEnum instead. 23:49:19 2A94 GREATER-THAN ABOVE SLANTED EQUAL ABOVE LESS-THAN ABOVE SLANTED EQUAL [⪔] 23:49:19 however xchat2 does all kinds of stupid things 23:49:27 meh 23:49:31 2A84 GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE LEFT [⪄] 23:49:40 polyspace 23:49:41 💩 23:49:50 monqy: what's that... 23:50:03 U+1F4A9 23:50:07 `cat /proc/version 23:50:09 i'm installing a unicode font so i can fully enjoy all of these 23:50:10 undefined is going to be so useful 23:50:11 Linux version 3.7.0-umlbox (root@codu.org) (gcc version 4.4.5 (Debian 4.4.5-8) ) #1 Wed Feb 13 23:30:40 UTC 2013 23:50:12 it's great how Unicode has this whole combining-characters mechanism but then they throw in 3865927348 pre-composed characters as well 23:50:17 Nice to be able to compile incomplete code etc 23:50:19 wow good monqy 23:50:19 `curl http://google.com/ 23:50:19 `gcc -V 23:50:21 gcc: '-V' option must have argument 23:50:22 ​ % Total % Received % Xferd Average Speed Time Time Time Current \ Dload Upload Total Spent Left Speed \ 23:50:22 `gcc -v 23:50:24 Using built-in specs. \ Target: x86_64-linux-gnu \ Configured with: ../src/configure -v --with-pkgversion='Debian 4.4.5-8' --with-bugurl=file:///usr/share/doc/gcc-4.4/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.4 --enable-shared --enable-multiarch --enable-linker-build-id --with-system-zlib --libexecd 23:50:30 `run curl http://google.com/ 2> /dev/null 23:50:32 \ 301 Moved \

301 Moved

\ The document has moved \ here. 23:50:33 2A69 TRIPLE HORIZONTAL BAR WITH TRIPLE VERTICAL STROKE [⩩] 23:50:37 😿 23:50:43 So how long to U+1672A RUBBER CHICKEN WITH A PULLEY IN THE MIDDLE 23:50:44 Sgeo: did you see that GHC now has a feature to defer type errors to runtime 23:50:46 OK, HackEgo's network access should be considerably more reliable now. 23:50:54 You want to have Symbola installed 23:50:55 an ill-typed term is replaced with error "whatever" 23:50:58 I'm still on GHC 6.something 23:51:03 upgrade 23:51:05 ye gads 23:51:11 I'm on Ubuntu 10.10 23:51:16 it's had that feature for basically forever.......... 23:51:19 upgrade 23:51:19 ye gads 23:51:23 shachaf: o? 23:51:23 `ghc --version` 23:51:23 The Glorious Glasgow Haskell Compilation System, version 7.6.2 23:51:28 ghc: unrecognised flags: --version` \ Usage: For basic information, try the `--help' option. 23:51:30 Well, I guess it's new. 23:51:35 OK, it's only since 7.6. 23:51:52 What I really want is to not lose bindings I make when I :r 23:51:52 So since September. 23:51:54 in GHCi 23:52:07 eternal september 23:52:16 What I want is a way to remove certain bindings in GHCi 23:52:22 Without affecting others 23:52:26 what i want is a god that stays dead, not plays dead 23:52:43 :t fromMaybe 23:52:44 a -> Maybe a -> a 23:52:59 fromMaybe 3 Nothing 23:53:01 all i want is a monoid 23:53:03 > fromMaybe 3 Nothing 23:53:05 3 23:53:18 what's an adjunction between monoids like 23:53:21 "really boring??" 23:53:49 Is abs int, 0, + a monoid? 23:53:53 since basically every pair of functors between monoids is an adjunction, or what?? 23:53:53 shachaf: so easy 23:54:03 theegan 23:54:04 FreeFull: what does "abs int" mean? 23:54:21 kmc: Any negative value becomes positive before any other action is taken 23:54:41 yeah isn't that Sum 23:54:42 no, because 0 + (-5) ≠ -5 23:54:43 Nice to be able to compile incomplete code etc <-- not in the platform yet i think, but newest ghc has some nice new features for this 23:54:51 so 0 is not an identity 23:55:03 Is it a semigroup? 23:55:18 but the nonnegative integers under 0,+ are a monoid 23:55:21 let inVal = fromMaybe -1 (fmap ord maybeIn) 23:55:28 inVal should be an Int after that, right? 23:55:45 :t fromMaybe -1 (fmap ord Nothing) 23:55:46 (Num (Maybe Int -> a -> Maybe a -> a), Num (a -> Maybe a -> a)) => a -> Maybe a -> a 23:55:49 wtf 23:56:07 OK, HackEgo's network access should be considerably more reliable now. <-- yay! 23:56:16 :t fmap ord 23:56:18 Functor f => f Char -> f Int 23:56:36 :t fromMaybe -1 23:56:36 @ty compare `on` void 23:56:37 :t fmap 23:56:38 Num (a -> Maybe a -> a) => a -> Maybe a -> a 23:56:38 (Functor f, Ord (f ())) => f a -> f a -> Ordering 23:56:38 Functor f => (a -> b) -> f a -> f b 23:56:39 :t fromMaybe (-1) 23:56:40 Num a => Maybe a -> a 23:56:45 > fromMaybe -1 (fmap ord Nothing) 23:56:47 No instances for (GHC.Num.Num (a0 -> Data.Maybe.Maybe a0 -> a0), 23:56:47 ... 23:56:56 FreeFull: so mempty is 0, and mappend is (\x y -> abs x + abs y)? 23:56:57 :t fromMaybe (-1) (fmap ord Nothing) 23:56:58 Int 23:57:08 XD 23:57:16 Dear Haskell: Please switch to using _ for negatives 23:57:17 nooodl_: Yes 23:57:25 -!- augur has quit (Remote host closed the connection). 23:57:27 nooodl_: kmc already showed it isn't a monoid 23:57:38 Yay! I get a different error now! 23:57:45 oh, yeah 23:58:26 what i want is a god that stays dead, not plays dead <-- are you sure he's playing dead, and that you weren't just not invited to the game 23:58:46 :( 23:59:26 http://en.wikipedia.org/wiki/Group_(mathematics)#Generalizations looks like it's indeed a semigroup. (hey, this table is cool) 23:59:40 oerjan: again with dead people. are you a zombie or something?