←2013-02-12 2013-02-13 2013-02-14→ ↑2013 ↑all
00:05:21 <oerjan> `run ls bin/*list*
00:05:23 <HackEgo> bin/emptylist \ bin/list \ bin/liste \ bin/lists \ bin/makelist \ bin/olist \ bin/pbflist \ bin/slist \ bin/smlist \ bin/testlist
00:05:53 <oerjan> `cat bin/liste
00:05:57 <HackEgo> echo Taneb atriq Ngevd Fiora nortti Sgeo alot monqy
00:05:59 <oerjan> `cat bin/list
00:06:01 <HackEgo> ​#!/bin/sh \ oldpwd=`pwd`; cd /var/irclogs/_esoteric; name=$(cat $(ls ????-??-??.txt | tail -1) | tail -1 | sed "s/[^<]*<//; 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 <shachaf> `rm bin/list
00:06:11 <HackEgo> No output.
00:06:13 <oerjan> `revert
00:06:16 <HackEgo> Done.
00:06:51 <oerjan> `run rm bin/liste #IIRC this was the result of someone misunderstanding sed flag syntax
00:07:00 <HackEgo> No output.
00:07:13 <oerjan> (specifically, that sed -ie is not equivalent to sed -i -e)
00:07:47 <oerjan> (the former uses the e as backup suffix)
00:08:06 <oerjan> `run ls bin/*e
00:08:12 <HackEgo> 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 <oerjan> `cat bin/runce
00:08:54 <HackEgo> ​#!/bin/bash \ t=`tempfile` \ echo "$@" | gcc -o $t -x c - 2>/dev/null && $t \ rm $t
00:09:04 <oerjan> `cat bin/runc
00:09:05 <HackEgo> ​#!/bin/bash \ t=`tempfile` \ echo -e "$@" | gcc -o $t -x c - 2>/dev/null && $t \ rm $t
00:09:12 <oerjan> `rm bin/runce
00:09:15 <HackEgo> No output.
00:09:33 <elliott> `cat bin/relcome
00:09:35 <HackEgo> ​#!/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 <elliott> `relcome
00:09:41 <HackEgo> ​/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 <oerjan> `sh bin/relcome test
00:10:19 <HackEgo> sh: Can't open bin/relcome test
00:10:22 <oerjan> `run sh bin/relcome test
00:10:24 <HackEgo> No output.
00:10:30 <elliott> this is not the greatest script
00:10:35 <oerjan> you think
00:12:46 <shachaf> `run sed -i /shachaf/d bin/list
00:12:50 <HackEgo> No output.
00:14:20 -!- augur has quit (Remote host closed the connection).
00:15:53 <ais523> `cat /bin/list
00:15:55 <HackEgo> cat: /bin/list: No such file or directory
00:15:59 <ais523> `cat bin/list
00:16:01 <HackEgo> ​#!/bin/sh
00:16:04 -!- sebbu2 has changed nick to sebbu.
00:16:04 <ais523> `revert 3
00:16:06 <ais523> shachaf: you fail at sed
00:16:08 <ais523> `cat bin/list
00:16:15 <elliott> ais523: um... you fail at `revert
00:16:17 <ais523> err, yes
00:16:21 <elliott> `help
00:16:22 <HackEgo> Runs arbitrary code in GNU/Linux. Type "`<command>", or "`run <command>" for full shell commands. "`fetch <URL>" downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert <rev>" can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/
00:16:24 <ais523> I thought that might be it
00:16:28 <elliott> you need to look up revision on the site every time if you want to revert stuff
00:16:36 <HackEgo> Done.
00:16:38 <HackEgo> cat: bin/list: No such file or directory
00:16:49 <ais523> oh well, you can revert my revert, right?
00:17:25 <ais523> `revert 87c64ef250a0
00:17:26 <ais523> or I can
00:17:39 <elliott> ais523: I hope that isn't the revert commit
00:17:42 <elliott> or in fact that won't even work
00:17:48 <shachaf> ais523: I think that command did what I expected.
00:17:48 <elliott> "`revert rev" takes the revision _number_ (not hash) to revert _to_
00:17:51 <HackEgo> Done.
00:17:57 <ais523> elliott: well it's not listing hashes
00:17:59 <ais523> `ls
00:18:02 <HackEgo> ​= 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 <ais523> err, not listing numbers
00:18:05 <ais523> just hashes
00:18:07 <shachaf> ais523: If you want something more fine-grained, feel free to do it yourself.
00:18:08 <elliott> ais523: you click the commit
00:18:10 <ais523> `cat bin/list
00:18:12 <ais523> elliott: I did
00:18:14 <ais523> it just gave me more hashes
00:18:17 <HackEgo> ​#!/bin/sh \ oldpwd=`pwd`; cd /var/irclogs/_esoteric; name=$(cat $(ls ????-??-??.txt | tail -1) | tail -1 | sed "s/[^<]*<//; 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 <elliott> ais523: "changeset <number>:<hash>"
00:18:21 <elliott> look closer.
00:18:23 <ais523> anyway the revert to hash worked
00:18:24 <shachaf> `rm bin/list
00:18:28 <HackEgo> No output.
00:18:35 <ais523> `revert
00:18:38 <HackEgo> Done.
00:21:09 <oerjan> <ais523> anyway the revert to hash worked <-- wait it did? this changes *EVERYTHING*
00:21:26 <ais523> that's a lot of change
00:22:00 <oerjan> as expected for a change all the way from revision 3. now why did i click that..
00:24:20 <oerjan> had to kill my browser
00:24:32 <ais523> `cat canary
00:24:45 <HackEgo> foo
00:24:48 <ais523> I'm wondering if /that/ changed too
00:24:51 <ais523> apparently so
00:24:53 <elliott> `run echo chirp >canary
00:24:58 <HackEgo> No output.
00:25:02 <oerjan> `run hg diff 2116:2112 | paste
00:25:12 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.12699 \ 2116:2112: No such file or directory
00:25:26 <oerjan> ffff
00:25:56 <elliott> oerjan: -r 2116 -r 2112?
00:25:58 <elliott> or the other way around
00:26:31 <oerjan> `run hg diff -r 2116 -r 2112 | paste
00:26:41 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.12320
00:26:49 <oerjan> why did i have this memory of colon working...
00:27:48 <elliott> oerjan: aliens planted it
00:30:16 <oerjan> anyway knowing that hashes work should make things easier. although it will make the resulting descriptions even harder to interpret.
00:31:32 <oerjan> ais523: although a plain `revert would also have worked - the other 2 commands made no changes
00:31:45 <ais523> I didn't realise it skipped no-change commands
00:31:52 <oerjan> instead of `revert 3, that is
00:32:52 <oerjan> `perl -e 'print "testing\015ho"'
00:32:55 <HackEgo> No output.
00:33:08 <oerjan> `perl -e 'print "testing\015ho";'
00:33:09 <HackEgo> No output.
00:33:12 <quintopia> what
00:33:32 <oerjan> oh duh
00:33:37 <ais523> you need `run
00:33:37 <oerjan> `run perl -e 'print "testing\015ho";'
00:33:39 <HackEgo> testing
00:33:41 <oerjan> right
00:33:48 <ais523> \015 is \r?
00:33:53 <ais523> I'm more used to seeing it in hexadecimal
00:33:57 <quintopia> oh
00:34:04 <quintopia> ais523: yes i read them earlier
00:34:12 <ais523> what did you think?
00:34:32 <quintopia> ais523: made sense to me. don't know if they'd make sense to a noobie though :P
00:35:04 <quintopia> ais523: do you think they are amenable to the color-coded symbol system? or if it does not encompass their strategies?
00:35:46 <ais523> I forgot the color-coded symbol system
00:36:02 <ais523> omnipotence can probably be described like that, at least
00:36:05 <ais523> less sure about anticipation2
00:36:15 <ais523> omnipotence is just a bunch of standard components glued together in a very nonstandard way
00:36:25 <ais523> (poke + full-tape clear has probably never been tried before)
00:36:58 <ais523> 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 <ais523> hmm… you know those random dating adverts which have a "here are people living nearby" thing
00:48:35 <ais523> I assumed that they were telling the technical truth, just not useful
00:48:48 <ais523> but… I observed the same advert twice on the same page, same photo, different name
00:49:07 <ais523> that seems to take more effort than doing it in a not easily disprovable way!
00:49:21 -!- DHeadshot has joined.
00:57:29 <Sgeo> Ugh
00:57:36 <elliott> hi
00:57:50 <Sgeo> I really want access to a nice dynamically scoped way to fake being standard IO
00:58:49 <Sgeo> Hmm, I see another way to solve my probkem
00:58:52 <Sgeo> problem
00:59:14 <Sgeo> 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 <ais523> 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 <ais523> so it's basically like scope-by-name, scope-by-value
01:05:06 <ais523> I wonder if there's a scope-by-need
01:06:56 <elliott> ais523: I dislike renaming-based reasoning
01:07:20 <Sgeo> Quick, someone make a BF derivative that relies on renaming
01:07:20 -!- stuntane has quit (Ping timeout: 252 seconds).
01:07:21 <elliott> I view explicit unstructured variable names like that as artefacts and definition in terms of them suspect
01:07:45 <Sgeo> Piss off two people for the price of one
01:08:00 <ais523> elliott: I know it's not a very /good/ view of lexical scoping, it's just a /possible/ view
01:08:16 <elliott> sure
01:08:17 <ais523> and I'm not saying this is going to be useful, I just saw a possible esoöpportunity
01:08:20 <elliott> it is an interesting observation apart from that
01:08:26 <elliott> scope-by-need sounds confusing
01:08:51 <kmc> well, call-by-need is a transparent optimization for call-by-name right?
01:08:54 <elliott> 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 <kmc> so i imagine scope-by-need is like "don't allocate a new frame until the old one is written to"
01:09:11 <kmc> a sensible optimization
01:09:15 <ais523> kmc: no, it's not equivalent to call-by-name or call-by-value in an impure language
01:09:23 <kmc> mmmmmm right
01:09:31 <kmc> i guess most obviously, if you have an object-identity operator
01:09:33 <ais523> in Haskell, it's only equivalent because all function calls are idempotent
01:09:37 <elliott> wouldn't you need *scoping itself* to somehow be impure to distinguish this, then?
01:09:46 <ais523> (and call-by-value is only different because of nontermination)
01:09:50 <elliott> kmc: I forgot that most languages have object-identity tests :(
01:09:52 <kmc> cough cough lazy blackholing of unsafePerformIO thunks
01:09:57 <ais523> elliott: yeah, I think so
01:10:02 <shachaf> Function calls are idempotent?
01:10:16 <ais523> if your language does dynamic scoping, the only way to determine the fact is by calling something in an outer scope
01:10:22 <kmc> evaluation is idempotent
01:10:24 <ais523> and seeing that it gets your variable rather than its variable
01:10:30 -!- stuntane has joined.
01:10:31 <FreeFull> In Haskell everything is interchangeable with a value, right? At least outside of the IO monad
01:10:37 <shachaf> Ah, I suppose.
01:11:06 <elliott> IO has nothing to do with it.
01:11:24 <ais523> possibly unsafePerformIO has something to do with it, but IO itself doesn't
01:11:32 <kmc> ugh
01:11:36 <Sgeo> I thought, say, (car (1, 2), car (1, 2)) isn't optimized?
01:11:40 <FreeFull> You could interchange io with a value too if that value somehow still had the side effects
01:11:41 <elliott> what is car
01:11:45 <Sgeo> fst
01:11:47 <elliott> and what does optimisation have to do with it
01:11:55 <Sgeo> Well, nothing observable
01:11:56 <kmc> 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 <kmc> the thing to focus on is not "pure vs impure" but "evaluation vs execution"
01:12:13 <kmc> man this takes me back
01:12:15 <ais523> and yeah, car is the Lisp name for fst
01:12:18 <kmc> i gotta go pick up my nooooodles though
01:12:19 <kmc> bbl
01:12:32 <elliott> kmc: are those noodles made by nooodl
01:12:48 -!- stuntaneous has quit (Ping timeout: 240 seconds).
01:12:48 <kmc> no they are made by Thelonious Monkfish
01:13:12 <Sgeo> Does crashing vs not crashing due to poor algorithm count as observable?
01:13:40 <ais523> yes
01:14:10 <ais523> 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 <Sgeo> 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 <Sgeo> Observable memoization.
01:14:36 <elliott> incidentally IO does break the semantics of the language
01:14:39 <elliott> it can distinguish _|_s etc.
01:14:46 <elliott> Sgeo: uh...
01:14:49 <elliott> what
01:15:04 <ais523> 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 <ais523> it's perfectly possible to imagine an IO that can't distinguish between bottoms
01:15:21 -!- augur has joined.
01:15:25 <Sgeo> Or can lack of memoization only result in nontermination but not actual crashes?
01:15:33 <FreeFull> kmc: Yeah, but you can't get a value out of an IO action without executing it, can you?
01:15:58 <shachaf> IO actions don't contain values in the first place.
01:16:13 <FreeFull> How does IO distinguish bottoms?
01:16:13 <Sgeo> 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 <FreeFull> shachaf: so IO String is a fake?
01:16:30 <FreeFull> Everything is a lie?
01:16:31 <copumpkin> FreeFull: there is no value "in" IO
01:16:41 <copumpkin> @quote ls
01:16:41 <lambdabot> dons says: - yeah, the idea is that you use the tools in the chapter
01:16:43 <elliott> @quote /bin/ls
01:16:43 <lambdabot> shachaf says: getLine :: IO String contains a String in the same way that /bin/ls contains a list of files
01:16:44 <copumpkin> dammit
01:16:45 <elliott> ais523: I am talking about Haskell, not an imaginary Haskell derivative
01:16:47 <Sgeo> IO String does not contain a string. It is an action that describes how to obtain a string.
01:16:58 <elliott> IO distinguishes bottoms by way of Control.Exception
01:17:12 <elliott> e.g. observable sharing should also "be impossible" if IO were truly "kosher"
01:17:20 <elliott> but these are not the details most people think about when they think IO is impure
01:17:24 <shachaf> It could presumably also "distinguish" them in some other ways.
01:17:45 <shachaf> 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 <ais523> elliott: I was thinking about Haskell without access to certain libraries
01:20:06 <elliott> I think exception handling is in the Report
01:20:09 <ais523> which is certainly a legitimate language family (see, e.g., lambdabot)
01:20:15 <ais523> but OK
01:23:35 <shachaf> ~eval 1
01:23:37 <shachaf> Hmm.
01:25:00 <FreeFull> ~eval 3+3
01:25:04 <FreeFull> Nope
01:25:36 <oerjan> hm that's spelled "mongfish"
01:27:28 -!- nollapiste has quit (Quit: Sto andando via).
01:41:23 <Sgeo> 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 <Sgeo> A mechanical transform
01:41:40 <shachaf> Yes.
01:42:04 <oerjan> you will have to add cells, though.
01:42:19 <Sgeo> add cells?
01:42:21 <shachaf> Sure.
01:43:38 <Sgeo> As in, I'm not sure what is meant
01:44:19 <oerjan> you cannot do it without adding memory bloat to get somewhere to put the necessary temporary cells for testing.
01:44:55 <oerjan> oh hm
01:45:38 <oerjan> 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 <ais523> oerjan: oh, and then you test the cell for each individual value to see if it's that value or not?
01:46:14 <ais523> actually, not sure you can
01:46:23 <ais523> how do you distinguish -255 from +255?
01:46:28 <ais523> or are we assuming unsigned only?
01:46:42 <oerjan> i was assuming you could only use values 0 to 255, inclusive
01:47:08 <Sgeo> Hmm, suddenly, I'm... not totally sure if... hm
01:48:09 <Sgeo> Yeah, could work
01:48:16 <oerjan> 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 <Sgeo> Might need to transform :
01:48:40 * Sgeo is thinking in terms of Trustfuck
01:48:58 <Sgeo> If the native Trustfuck BF implementation were constrained, writing a compiler for a variation that is not so constrained
01:49:16 <oerjan> i don't really feel like wrapping my brain around trustfuck right now
01:49:31 <Sgeo> aww, darn >.>
01:50:29 <Sgeo> 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 <Sgeo> The resulting output has the current program on top of its compiler stack
01:51:09 <Sgeo> when it itself runs
01:51:40 <Sgeo> s/which compiles into/which collectively compile the code into/
02:15:43 -!- monqy has joined.
02:21:37 <zzo38> Is it possible to make something like LLVM's "appending" linkage in GCC?
02:26:50 -!- ais523 has quit.
02:44:39 <kmc> how does that linkage work?
02:59:34 <zzo38> Make multiple declarations of the array to be appending to put together.
03:01:55 <kmc> i don't know how to do that at the symbol level with gnu toolchain
03:02:26 <kmc> but sections of the same name get concatenated, and you can have arbitrary named sections in e.g. ELF
03:02:33 <kmc> Linux uses this to good effect in many places
03:03:11 <zzo38> But can it be made to work on cross-platform?
03:03:19 <kmc> 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 <kmc> these are used for all kinds of fun things which i would be happy to blather on about at length
03:08:33 <kmc> self-modifying code and stupid processor tricks
03:12:58 <Sgeo> self-modifying code in the kernel
03:12:58 <Sgeo> ?
03:13:16 <Sgeo> Is it actually... used for important stuff?
03:13:27 <Sgeo> 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 <kmc> Sgeo: tons of it, and yes they have good reasons
03:14:11 <kmc> it's not "messing around"
03:15:01 <kmc> for example, if you boot a SMP kernel on a uniprocessor system, it will go through and remove lock instructions / prefixes
03:15:01 <kmc> and if you boot a kernel under paravirtualization, it will replace certain hardware operations with hypervisor calls
03:15:32 <kmc> all of this enables distributions to maintain fewer binary kernels, while keeping things flexible and performant for users
03:15:50 <Sgeo> Hmm, interesting
03:16:01 <kmc> 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 <kmc> 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 <kmc> and reinsert them if you bring another CPU online
03:17:31 <kmc> self-modifying code is also used for debugging, tracing, etc
03:17:42 <Sgeo> 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 <kmc> 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 <kmc> much better performance than putting a conditional at the beginning of every function
03:18:35 <kmc> 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 <kmc> 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 <kmc> so there is space to put them back in
03:19:07 <kmc> as to the second, it happens in this wonderful function called stop_machine()
03:20:14 <kmc> which gives you total control of all CPUs
03:20:19 <kmc> so that nothing else is running concurrently
03:20:49 <Sgeo> (My first "question" was just really about the second)
03:21:21 <kmc> though those suspended processes still might be in the middle of some kernel function
03:21:21 <kmc> when they resume
03:21:32 <kmc> so i think you need to maintain certain properties about the code you're swapping out
03:21:59 <kmc> executing a NOP; MOV which is in the middle of turning into a LOCK MOV is okay
03:22:06 <kmc> because the NOP instruction and LOCK prefix are one byte each
03:22:13 <kmc> (talking about x86 here as an example i know well)
03:22:23 <kmc> (and because the most sophisticated tricks are for x86 and maybe ARM)
03:22:54 <zzo38> How can you expect that to work in a C program?
03:23:09 <kmc> you don't; it's all done with inline assembly
03:23:22 <kmc> 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 <kmc> "Note: All the above are assumed to be a single instruction. There is kernel code that depends on this."
03:23:45 <kmc> 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 <kmc> 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 <kmc> depending on the patch and the workload of the machine this can actually make it rather hard to apply a patch
03:25:59 <kmc> 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 <Sgeo> Hard as in, takes time before there's a window of opportunity?
03:29:10 <kmc> yes
03:29:33 <kmc> 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 <oerjan> `pastelogs ais523.*shove
03:46:22 <HackEgo> No output.
03:46:27 <oerjan> `pastelogs ais523.*shove
03:46:48 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.27210
03:57:41 <zzo38> 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 <kmc> i don't understand
04:09:59 <zzo38> 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 <zzo38> 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 <kmc> oh C2 wiki
05:06:14 -!- TeruFSX has quit (Ping timeout: 256 seconds).
05:33:12 <shachaf> zzo38: Why didn't you tell me curl supports gopher?
05:33:48 <shachaf> oerjan: Should I figure out what a limit is?
05:33:58 <kmc> shachaf: how many buffer overflows in the gopher handlin
05:34:51 <oerjan> certainly
05:34:53 <shachaf> kmc: one more than you can handle
05:35:30 <kmc> :O
05:36:38 <shachaf> Maybe buffer overflow in the curl gopher code are zzo38's secret weapon.
05:36:50 <shachaf> s
05:38:20 <kmc> hax
05:38:36 <shachaf> kmc: are you drunk again
05:41:00 <oerjan> maybe he never stopped
05:47:30 <kmc> no
05:51:23 <shachaf> adjunctions, man
05:57:15 <zzo38> 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 <zzo38> But you can just download a gopher file using netcat very easily
05:58:01 <shachaf> what if there's a buffer overflow in the netcat gopher code
05:58:32 <zzo38> Netcat has no gopher code.
05:59:24 <shachaf> zzo38: Do you ever tell people to "gopher it"?
05:59:32 <shachaf> zzo38 peyton jones
05:59:36 <zzo38> 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 <shachaf> monqy: elliott is "holding me hostage"
06:50:32 <monqy> i've heard
06:50:44 <monqy> something about fake category theory
06:50:54 <monqy> “why not try the real thing„
06:51:22 <shachaf> because "the real thing doesnt have a type checker"
06:51:26 <shachaf> also "elliott hates maths'
06:51:44 <oerjan> shocking
06:52:20 <monqy> um agda has a type checker
06:52:45 <shachaf> agda isnt" the real thing monqy"
06:52:56 <monqy> :0
06:52:59 <shachaf> also i suggested agda and he said no
06:53:05 <monqy> you write the real thing in agda
06:53:09 <monqy> “duh„
06:53:11 <shachaf> also does agda have gobby mode
06:55:04 <monqy> good question
07:31:49 -!- Halite has joined.
07:41:00 <Halite> I lost the source for NAND++'s interpreter :c
07:41:30 <oerjan> 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 <zzo38> 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 <zzo38> What they call UTF-9 should be called VLQ-9 since it is actually VLQ and not UTF.
09:50:23 <zzo38> (Like UTF-8, it can be generalized to encode any numbers; it doesn't have to be Unicode at all.)
09:59:29 <fizzie> 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 <zzo38> I should make the program to print out the file of Internet Quiz Engine to fill out the quiz on paper.
10:31:53 <zzo38> First I should fix the analysis program.
10:33:54 <zzo38> 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 <Deewiant> 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 <elliott> `WELCOME nooodl_
11:29:57 <HackEgo> 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 <nooodl_> thanks
11:32:13 <nooodl_> `THANK elliott
11:32:15 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: THANK: not found
11:33:10 <shachaf> hi nooodl_
11:35:34 <zzo38> Do you like "worse-is-better"?
11:35:59 <nooodl_> hi shachaf
11:43:14 -!- nooodl_ has quit (Ping timeout: 272 seconds).
12:36:34 <fizzie> 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 <fizzie> (comp.lang.forth strikes again.)
12:46:33 -!- TeruFSX has joined.
13:24:14 -!- boily has joined.
13:27:43 <Phantom_Hoover> all hail wotan
13:27:46 <Phantom_Hoover> god of the electron
13:28:13 * boily checks his calendar. hm. not Friday yet.
13:28:43 <boily> could someone here be amiable enough to please explain the link between a subatomic particle and a norse god?
13:29:16 <boily> (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 <Phantom_Hoover> 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 <FreeFull> http://www.chrisseaton.com/katahdin/
14:46:32 -!- ais523 has joined.
14:46:46 <ais523> @messages?
14:46:46 <lambdabot> Sorry, no messages today.
14:48:34 <Taneb> 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 <fizzie> Is that a different message than the usual, or does it just have multiple, or do I just misremember?
15:07:25 <fizzie> @massages?
15:07:26 <lambdabot> Sorry, no messages today.
15:07:27 <fizzie> @massages?
15:07:27 <lambdabot> Sorry, no messages today.
15:07:31 <fizzie> Seems pretty fixed.
15:07:40 <fizzie> Maybe it's the usual and people just rarely use the ? form.
15:08:07 <ais523> @help messages
15:08:07 <lambdabot> messages. Check your messages.
15:08:11 <ais523> @help messages?
15:08:11 <lambdabot> messages?. Tells you whether you have any messages
15:08:38 <Taneb> @help messages?
15:08:38 <lambdabot> messages?. Tells you whether you have any messages
15:21:00 <FreeFull> 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 <zzo38> You have said about materialism is "everything is physics", but what is it called "everything is mathematics"?
15:42:02 <Slereah_> Mathematical realism or something
15:42:45 <Slereah_> Possibly Pythagorianism, but that one has a mystic vibe to it
15:42:54 <Taneb> Pythagorianism is weird
15:43:56 <FreeFull> Mathematics isn't restricted to describing reality though
15:44:10 <FreeFull> It describes things that aren't real just as well
15:44:28 <Phantom_Hoover> 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 <Slereah_> Which one is the sexiest?
15:45:14 <Taneb> I thought that was the Chinese
15:45:40 <FreeFull> I like 24
15:45:48 <Taneb> I prefer 28
15:47:08 <Phantom_Hoover> 169
15:47:15 <Slereah_> Not even!
15:47:16 <Phantom_Hoover> or was it 163
15:47:31 <Phantom_Hoover> yeah, 163
15:47:36 <Taneb> Slereah_, I think you're making too many assumptions about Phantom_Hoover
15:47:37 <Phantom_Hoover> 163 is a sexy beast
15:47:43 <Slereah_> Gayyy
15:47:53 <Taneb> Nothing wrong with that
15:47:59 <Phantom_Hoover> hey who said i agreed with the pythagorean assignment of genders to numbers
15:47:59 <Slereah_> Also what are fractions then
15:49:00 <Taneb> Who knows
15:49:04 <Phantom_Hoover> well, you have one number on top and the other on the bottom
15:49:07 <Phantom_Hoover> you work it out
15:49:37 <Slereah_> But how to determine if they're even or odd?
15:49:41 <Slereah_> Since 1/1 = 2/2
15:50:00 <Slereah_> Also what is division by zero
15:50:13 <Slereah_> Zero is the loneliest number
15:53:14 <Phantom_Hoover> you can generalise the idea of factorisation to Q but i don't know precisely how
15:53:54 <Phantom_Hoover> on further reading, all noninteger fractions are odd
15:59:32 <Taneb> I'm becoming increasingly annoyed at the admissions team of the maths department at Birmingham university
16:00:46 <ais523> Taneb: I suspect they're badly organized
16:00:58 <Taneb> And won't answer the phone!
16:01:00 <Taneb> :(
16:01:19 <Taneb> And their phone number is similar to a blood collection service!
16:01:23 <Taneb> :( :(
16:01:36 <ais523> there are definitely times of day when the phone wouldn't be answered
16:01:42 <ais523> it depends on if any of the secretaries are in or not
16:01:53 <ais523> email tends to be more reliable (this does not equal "reliable", though)
16:06:21 <Phantom_Hoover> Taneb, so is this one of those hilarious mishap things where it turns out you've actually sold all your blood
16:06:43 <Taneb> Phantom_Hoover, knowing my luck...
16:07:17 <ais523> Phantom_Hoover: I don't think it works like that
16:07:37 -!- Halite has joined.
16:08:06 <Phantom_Hoover> (are they asking for an interview or something?)
16:08:30 <Taneb> (applicant visitor day)
16:08:34 <Halite> There should be an easy programming language creator to end the BF era.
16:08:39 <Taneb> (I need to register for it and their website sucks)
16:09:10 <Taneb> Halite, do you mean an "(easy programming language) creator" or an "easy (programming language) creator"
16:09:17 <Phantom_Hoover> well there's already an easy bf derivative creator, it's called tr
16:09:22 <Taneb> Because both suck
16:09:38 <ais523> Taneb: I think the idea would be to divert people who are going to make sucky esolangs
16:09:47 <ais523> into making sucky esolangs that aren't BF derivatives, but are just as sucky
16:10:07 <Halite> Taneb, an easy (programming language) creator, not to make easy programming languages but to make programming languages easily
16:10:11 <ais523> like, say, LOLCODE
16:10:20 <ais523> which instead of being a boring keyword substitution on BF
16:10:29 <ais523> is a boring keyword substitution on C-like imperative languages
16:10:50 <Phantom_Hoover> i wouldn't describe it that way
16:10:53 <Halite> ais523, I want to make a programming language with new syntax
16:11:00 <Phantom_Hoover> it's a naff scripting language with a crappy joke for syntax
16:11:14 <Slereah_> Phantom_Hoover your british is showing
16:11:30 <Halite> instead of JS var x = 2, do set x to 2
16:11:43 <Phantom_Hoover> oh no! hang on i'll cover it up
16:11:53 <Slereah_> Zip up!
16:12:01 <Halite> Phantom_Hoover, you're British, aren't you
16:12:04 <Taneb> Sounds like COBOL
16:12:12 <Phantom_Hoover> i'm SCOTTISH
16:12:20 <Halite> Phantom_Hoover, laise
16:12:38 <ais523> scottish is a subset of british
16:12:40 <Slereah_> http://www.youtube.com/watch?v=hp4mENrAnq4
16:12:53 <Phantom_Hoover> ais523, only to people who know what british means
16:12:57 <Halite> Taneb, but COBOL is a rarer programming language for today
16:12:58 <ais523> Phantom_Hoover: well, yes
16:13:11 <ais523> but I know the british/english distinction, and frequently correct foreigners on it
16:14:00 <Halite> I'm not a foreigner
16:14:07 <Taneb> @time Halite
16:14:07 <lambdabot> Local time for Halite is Wed Feb 13 16:14:05
16:14:11 <Taneb> Oh no
16:14:12 <Slereah_> You're a foreigner to me!
16:14:17 <Slereah_> We're all someone's foreigner
16:14:20 <Taneb> We haven't asked him the question
16:14:29 <Taneb> Halite, do you live in Hexham
16:14:41 <Halite> Taneb, uh no
16:14:44 <Taneb> Okay
16:14:46 <Taneb> Thank god
16:14:53 <Phantom_Hoover> are you finnish
16:15:02 <Halite> Phantom_Hoover, no
16:15:13 <Halite> @finger Taneb
16:15:13 <lambdabot> Unknown command, try @list
16:15:23 <Halite> @version Taneb
16:15:23 <lambdabot> lambdabot 4.2.2.1
16:15:23 <lambdabot> darcs get http://code.haskell.org/lambdabot
16:15:23 <Taneb> Please don't finger me.
16:15:44 <Halite> I'll stick my finger in your client as much as I want, thank you Taneb .
16:15:55 <Taneb> That's probably rape.
16:15:59 <Phantom_Hoover> are you, as is apparently the fashion nowadays, either in or planning to be in the west midlands
16:16:03 <Halite> @ctcp finger Taneb
16:16:03 <lambdabot> Unknown command, try @list
16:16:12 <Halite> Phantom_Hoover, YES
16:16:14 <Taneb> You're using the wrong command char
16:16:17 <Phantom_Hoover> oh fuck
16:16:18 <Taneb> Use / rather than @
16:16:30 <Taneb> Phantom_Hoover, this is bad
16:16:38 <Halite> Taneb, I'm trying to get lambdabot to respond
16:16:49 <ais523> huh, Halite is indeed apparently in UTC+0
16:16:53 <Phantom_Hoover> Taneb, when are you going to birmingham anyway
16:17:06 <ais523> Phantom_Hoover: the applicant visit days are already happening right now
16:17:12 <Taneb> Phantom_Hoover, most like the 20th
16:17:20 <Halite> duh
16:17:29 <Phantom_Hoover> ais523, just don't look behind you
16:17:29 <Halite> Britain is UTC+0
16:17:38 <ais523> Phantom_Hoover: wall, etc.
16:17:39 <Halite> Phantom_Hoover, is British.
16:17:42 <Halite> @time Phantom_Hoover
16:17:43 <lambdabot> Local time for Phantom_Hoover is Wed Feb 13 16:17:09
16:17:48 <ais523> 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 <Halite> I'm right, Phantom_Hoover is 16:17 too.
16:17:57 <Phantom_Hoover> ais523, black holes, geodesics, all that
16:18:07 <ais523> 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 <ais523> but it's a start
16:18:17 <Halite> ais523, yes
16:18:26 <Halite> Phantom_Hoover, do you live in Hexham
16:18:31 <Phantom_Hoover> no
16:18:38 <Phantom_Hoover> i am in the west midlands though
16:18:44 <Halite> Phantom_Hoover, NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
16:18:51 <ais523> Phantom_Hoover: so the weather here is actually /better/ than you're used to?
16:19:04 <Phantom_Hoover> well there's certainly more snow
16:19:16 <Halite> duh
16:19:25 <Taneb> 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 <Phantom_Hoover> `? finland
16:19:45 <ais523> I didn't think Phantom_Hoover /lived/ in the West Midlands, just that he happened to be here at the moment
16:19:46 <HackEgo> 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 <ais523> `? west midlands
16:19:56 <HackEgo> west midlands? ¯\(°_o)/¯
16:19:57 <Taneb> ais523, he lives there in termtime
16:20:01 <ais523> aha
16:20:23 <Halite> @time ais
16:20:35 <ais523> Halite: that command fails in at least two ways
16:20:42 <Halite> @time ais523
16:20:43 <lambdabot> Local time for ais523 is Wed Feb 13 16:20:42 2013
16:20:50 <Halite> ais523, are you British too
16:20:53 <ais523> yes
16:21:01 <ais523> unlike Phantom_Hoover, I am actually also English
16:21:13 <Taneb> `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 <HackEgo> No output.
16:21:22 <Taneb> `?west midlands
16:21:23 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: ?west: not found
16:21:26 <Taneb> `? west midlands
16:21:28 <HackEgo> west midlands? ¯\(°_o)/¯
16:21:35 <Taneb> `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 <HackEgo> No output.
16:21:40 <Taneb> `? west midlands
16:21:42 <HackEgo> 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 <ais523> `rm wisdom/west_midlands
16:21:50 <Taneb> `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 <HackEgo> No output.
16:21:51 <Halite> `WELCOME CHICKEN
16:21:54 <HackEgo> No output.
16:21:57 <HackEgo> 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 <Halite> err
16:22:25 <Halite> `rm error
16:22:26 <HackEgo> rm: cannot remove `error': No such file or directory
16:22:28 <Halite> `run error
16:22:29 <HackEgo> bash: error: command not found
16:22:46 <Halite> `run throw "I was thrown by Halite!"
16:22:48 <HackEgo> bash: throw: command not found
16:22:55 <Halite> `run help
16:22:57 <HackEgo> 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 <ais523> what are you trying to do?
16:23:11 <Halite> `info
16:23:12 <HackEgo> 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<Return>" visits the Emacs manual, etc. \ \ In Emacs, you can
16:23:19 <Halite> trying to make the bot throw an error
16:23:19 <Taneb> `help
16:23:19 <HackEgo> Runs arbitrary code in GNU/Linux. Type "`<command>", or "`run <command>" for full shell commands. "`fetch <URL>" downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert <rev>" can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/
16:23:37 <Taneb> I made the bot crash the other day and I have no idea how
16:23:51 <Halite> does anyone think...
16:23:57 <Taneb> Yes
16:24:03 <Halite> someone do `rm -rf /
16:24:04 <Taneb> Some people do indeed think
16:24:08 <Gregor> `run rm -rf /*
16:24:18 <Halite> `rm -rf /
16:24:28 <Gregor> That won't work, it's interpreted as rm "-rf /"
16:24:50 <Halite> `eval rm -rf /
16:24:53 <Halite> `help
16:24:53 <HackEgo> Runs arbitrary code in GNU/Linux. Type "`<command>", or "`run <command>" for full shell commands. "`fetch <URL>" downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert <rev>" can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/
16:24:57 <Halite> `help eval
16:24:57 <HackEgo> Runs arbitrary code in GNU/Linux. Type "`<command>", or "`run <command>" for full shell commands. "`fetch <URL>" downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert <rev>" can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/
16:25:01 <Halite> `info
16:25:09 <Halite> `run help
16:25:22 <Gregor> `help is a special command. `run <foo> does bash -c '<foo>'
16:25:34 <HackEgo> 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 <Gregor> Unfortunately, although my rm -rf / won't do anything, it'll take some time to not do anything ;)
16:25:38 <Gregor> See.
16:25:55 <Halite> `rm -rf /*
16:25:57 <HackEgo> rm: invalid option -- ' ' \ Try `rm --help' for more information.
16:25:58 <HackEgo> rm: invalid option -- ' ' \ Try `rm --help' for more information.
16:25:58 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: eval: not found
16:25:58 <HackEgo> 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<Return>" visits the Emacs manual, etc. \ \ In Emacs, you can
16:25:58 <HackEgo> 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 <Gregor> (That was all the output from everything run in the interim)
16:26:26 <Gregor> And again, `rm -rf /* is interpreted as rm "-rf /*"
16:26:27 <Halite> `rm --help
16:26:28 <HackEgo> 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 <Gregor> That's not useful.
16:26:30 <Gregor> You want `run.
16:26:45 <Halite> `run rm -f /*
16:26:47 <HackEgo> 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 <Halite> lol it can't remove because it's a directory
16:27:08 <Gregor> You didn't use -r
16:27:10 <Halite> `run rm -rf /*
16:27:24 <Gregor> Now that'll take another minute to fail, just like mine X-D
16:27:44 <Halite> >:D
16:27:53 <Halite> it deleting all the directories
16:28:00 <Halite> `run shutdown
16:28:14 <Halite> `run shutdown --help
16:28:28 <Halite> it's shutting down bot
16:28:30 <Gregor> Why does everybody first try things that would only work if they were running as root X_X
16:28:34 <Gregor> People are really stupid.
16:28:34 <HackEgo> 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 <Gregor> `echo OH LOOK I'M NOT SHUT DOWN
16:28:47 <HackEgo> bash: shutdown: command not found
16:28:47 <HackEgo> OH LOOK I'M NOT SHUT DOWN
16:28:49 <HackEgo> bash: shutdown: command not found
16:29:00 <Halite> `shutdown -f
16:29:01 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: shutdown: not found
16:29:18 <Gregor> Adding -f will not magically make the shutdown command be in $PATH.
16:29:30 <Taneb> Gregor, I think when I was unleashed on HackEgo, I tried to make it botloop
16:29:48 <Taneb> Which if it could be done at all probably could be done without root
16:30:04 <Gregor> Taneb: OK, then you get an exemption from the "People are really stupid" statement. *stamp*
16:30:08 <Halite> `run help
16:30:10 <HackEgo> 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 <Taneb> Yay
16:30:37 <Halite> `run info
16:30:38 <Gregor> Y'know, you're free to fail to hack HackEgo in #hackbot . Less... interrupty there.
16:30:38 <HackEgo> 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<Return>" visits the Emacs manual, etc. \ \ In Emacs, you can
16:32:16 <Phantom_Hoover> didn't lymia or someone actually successfully break it
16:33:02 <Gregor> It's been DoSed—heck, it was DoSed two minutes ago—but otherwise, no.
16:33:09 <Gregor> Lymia made the least stupid attempt.
16:33:22 <Gregor> Honestly I'm not even sure why I didn't work.
16:33:32 <Phantom_Hoover> what was it
16:33:34 <Gregor> Err
16:33:35 <Gregor> *it
16:33:46 <Gregor> 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 <Gregor> Phantom_Hoover: It would've only escalated to the hosting user, but that's more than nothing.
16:34:09 <Gregor> boily: YAY ON-TOPIC WOOOH tell us
16:34:12 <boily> 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 <boily> (without the guillemets)
16:34:28 <Phantom_Hoover> (also didn't someone successfully ruin it for everyone by whining to the network staff)
16:34:29 <Halite> If I document my idea for an esolang, can you build an interpreter for it
16:34:35 <ais523> Gregor: yeah, botloops were my first idea too
16:34:35 <Gregor> Looks ALGEBRAIC
16:34:45 <ais523> strangely, I don't think I've actually ever tried to break HackEgo's sandbox
16:34:55 <ais523> I just decided there wouldn't be much reason in doing so, I guess
16:35:01 <Gregor> 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 <ais523> I enjoy learning about its security features, but not for that reason
16:35:39 <Phantom_Hoover> my first experience with HackEgo was trying to run something that exceeded the line lengths and failing miserably
16:35:41 <boily> Gregor: maybe.
16:36:08 <ais523> 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 <ais523> (and unless they're really boring bots, succeeds)
16:36:24 <boily> (neat! I remembered my password!)
16:36:32 <Halite> `run logout
16:36:33 <HackEgo> bash: line 0: logout: not login shell: use `exit'
16:36:40 <Halite> `exit
16:36:41 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: exit: not found
16:36:45 <Halite> `run exit
16:36:46 <HackEgo> No output.
16:36:50 <Phantom_Hoover> gj halite
16:36:54 <Halite> lol it exit
16:37:07 <Phantom_Hoover> you have ingeniously hacked HackEgo into halting execution of your command
16:37:19 <Halite> it exit the command
16:37:19 <Gregor> <Phantom_Hoover> you have ingeniously hacked HackEgo into halting execution of your command // lul
16:37:23 <Halite> lul
16:37:28 <Halite> `run login
16:37:30 <HackEgo> login: Cannot possibly work without effective root
16:37:40 <Phantom_Hoover> see Halite
16:37:44 <Phantom_Hoover> even HackEgo is getting sick of this
16:37:49 <ais523> haha, I didn't know login had a sensible error message for that
16:38:06 <ais523> I guess you'd have a better (but still zero) chance with getty
16:38:09 <ais523> `run getty
16:38:11 <HackEgo> bash: getty: command not found
16:38:16 <ais523> hmm
16:38:28 <ais523> `run init
16:38:30 <HackEgo> bash: init: command not found
16:38:33 <ais523> `run /sbin/init
16:38:34 <HackEgo> init: must be superuser.
16:38:43 <ais523> I wasn't expecting that to work
16:38:47 <Taneb> `run echo "shut up this is boring"
16:38:48 <ais523> but I was interesting in how init would react
16:38:49 <HackEgo> shut up this is boring
16:38:50 <ais523> *interested
16:38:55 <Taneb> `run echo "talk about esolangs"
16:38:56 <Halite> `run rm -rf /home/hackbot/hackbot.hg/multibot_cmds/lib/*
16:38:56 <HackEgo> talk about esolangs
16:38:57 <HackEgo> 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 <Halite> :o
16:39:21 <ais523> hmm, does that imply there were things there that it /did/ remove?
16:39:26 <ais523> `help
16:39:26 <HackEgo> Runs arbitrary code in GNU/Linux. Type "`<command>", or "`run <command>" for full shell commands. "`fetch <URL>" downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert <rev>" can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/
16:39:30 <Phantom_Hoover> Halite, if you're interested in learning how to write interpreters, the standard first language to target is eodermdrome
16:39:30 <Gregor> ais523: In this case, no.
16:39:34 <zzo38> 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 <ais523> apparently there weren't
16:39:43 <ais523> but I had to check
16:39:47 <ais523> Phantom_Hoover: :)
16:40:05 <ais523> zzo38: doesn't Perl do that already, though?
16:40:13 <Halite> `run quit
16:40:14 <HackEgo> bash: quit: command not found
16:40:17 <Halite> `run exit
16:40:18 <HackEgo> No output.
16:40:23 <Halite> `run exit -f
16:40:24 <ais523> also sed does that already, too (although it uses & not \0)
16:40:24 <Slereah_> Phantom_Hoover
16:40:24 <HackEgo> bash: line 0: exit: -f: numeric argument required
16:40:28 <Slereah_> Are you a president ghost
16:40:28 <Halite> `run exit 1
16:40:30 <HackEgo> No output.
16:40:31 <Gregor> Halite: Please, take it to #hackbot
16:40:34 <ais523> Halite: at this point, I'd suggest doing it in a different channel
16:40:38 <ais523> it's getting pretty spammy
16:40:39 <boily> just created Zucchini on the wiki.
16:40:41 <Phantom_Hoover> Slereah_, no i'm the ghost of a hoover
16:40:48 <Phantom_Hoover> also i'm a gay vampire but that's secondary
16:40:52 <Slereah_> The vacuum?
16:41:00 <Phantom_Hoover> yes the vacuum
16:41:01 <zzo38> ais523: I don't know, maybe it does, and AWK does it too inside of the replacement texts but not outside.
16:41:16 <Slereah_> As long as you're not Taft's ghosts
16:41:22 <ais523> Gregor: btw, the hackbot filesystem history seems to be overescaping apostrophes
16:41:30 <ais523> zzo38: oh, outside
16:41:35 <ais523> sed doesn't do it outside, but Perl does
16:41:44 <ais523> except they're called $&, $1, $2, $3, and so on, in Perl
16:41:47 <Slereah_> The Stay Puft marshmallow man was Taft's ghost
16:41:49 <ais523> because \1 means something else
16:42:20 <zzo38> In AWK $1 means something else
16:42:25 <Gregor> 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 <ais523> fair enough
16:42:54 <ais523> normally seeing \' rather than ' is a sign of a broken PHP installation, though
16:43:41 <ais523> oh, no
16:43:47 <ais523> in this case, it appears to be doing some sort of repr() on the strings
16:43:56 <ais523> not sure in which language, although it uses C-like escape synax
16:43:58 <ais523> *syntax
16:44:04 <coppro> s/normally.* '/PHP/
16:44:15 <Gregor> 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 <Gregor> Suffice it to say that the commit messages are for reference, they're not copy-pasteable.
16:44:29 <zzo38> 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 <Halite> coppro, normally PHP is a sign of a broken
16:44:51 <Gregor> zzo38: It's quite possibly the silliest “feature” of PHP X-D
16:44:56 <Gregor> Although that's quite a competition.
16:45:00 <ais523> Gregor: no, register_globals is worse
16:45:10 <ais523> by orders of magnitude
16:45:16 <zzo38> That too.
16:45:19 <Phantom_Hoover> what about that lexer optimisation
16:45:35 <Gregor> I think we can all agree that PHP is unbelievably terrible.
16:45:43 <Phantom_Hoover> yes
16:45:59 <zzo38> Yes it is. I intend one day to rewrite Icoruma in something better and faster than PHP.
16:45:59 <Taneb> It's got to be better than LOLPHP
16:46:04 <Phantom_Hoover> also Halite, Gregor, coppro and ais523 all have the same length of nick
16:46:05 <ais523> 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 <Taneb> That is, LOLCODE meets PHP
16:46:39 <Jafet> PHP has great features, such as Turkish locale support!
16:47:09 <ais523> 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 <ais523> 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 <Phantom_Hoover> what's so weird about turkish
16:49:32 <Slereah_> It's all gobble gobble
16:49:44 <ais523> `? quine
16:49:46 <HackEgo> ​`? quine
16:49:52 <ais523> haha, I was just going to add that
16:50:11 <ais523> Phantom_Hoover: basically, uppercase i in Turkish still has a dot, and lowercase I doesn't have a dot
16:50:19 <ais523> i.e. dotted i and dotless I are two different letters
16:50:38 <ais523> so its casefolding is actually inconsistent with pretty much every other language in existence that contains the same letters
16:51:08 <Gregor> `echo Um... hello?
16:51:09 <HackEgo> Um... hello?
16:51:17 <Gregor> Why didn'—oh jeez I'm stupid.
16:51:26 <Gregor> I was wondering why `? quine didn't do anything X_X
16:51:33 <Gregor> I need to go put my head in a bucket of water.
16:52:03 <ais523> now I'm trying to work out if `? quine is even a cheating-quine or not
16:52:11 <ais523> I think it's the same sort of quine as HQ9+ supports
16:52:32 <ais523> but slightly more legitimate
16:52:34 <Phantom_Hoover> http://net.tutsplus.com/articles/editorials/why-2013-is-the-year-of-php/
16:52:38 <Phantom_Hoover> beautiful
16:53:29 <fizzie> http://sprunge.us/SMgZ that was confusing for a moment there.
16:53:54 <fizzie> It's a slightly #esoteric-specific quine.
16:54:46 <ais523> oh wait, is it actually checking the logs for the most recently spoken line?
16:54:56 <fizzie> Sure.
16:55:03 <ais523> `cat wisdom/quine
16:55:04 <HackEgo> ​`? quine
16:55:09 <ais523> hmm
16:55:10 <fizzie> Not that one, bin/quine.
16:55:14 <ais523> oh, `quine
16:55:17 <ais523> not `? quine
16:55:25 <ais523> `quine
16:55:27 <ais523> whee
16:55:28 <HackEgo> whee
16:55:32 <ais523> race conditions are fun
16:55:54 <ais523> this strikes me as a potential way to abuse the `list, too
16:56:25 <fizzie> 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 <Taneb> `cat bin/list
16:56:34 <HackEgo> ​#!/bin/sh \ oldpwd=`pwd`; cd /var/irclogs/_esoteric; name=$(cat $(ls ????-??-??.txt | tail -1) | tail -1 | sed "s/[^<]*<//; 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 <fizzie> ais523: Didn't you-know-who-chaf already end up on `list because of that.
16:57:10 <ais523> fizzie: it was his own fault, though; he told fungot to `list, and interrupted it himself
16:57:11 <fungot> 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 <ais523> 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 <fizzie> fungot: Those two things don't seem to have all that much with each other.
16:57:53 <fungot> fizzie: x? k?" at http://paste.lisp.org/ display/ 56631 than nothing
16:58:27 <ais523> I don't really like this style
16:58:29 <ais523> ^style
16:58:29 <fungot> 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 <ais523> ^style europarl
16:58:37 <fungot> Selected style: europarl (European Parliament speeches during approx. 1996-2006)
16:59:17 <fizzie> Maybe I should train a new europarl too, one of these days.
16:59:18 <Jafet> What is the honourable fungot's opinion on PHP?
16:59:21 <fungot> 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 <ais523> harm-reduction
16:59:35 <ais523> hmm… = banning PHP, or = making PHP less harmful?
17:00:02 <Jafet> Did a member of parliament actually welcome the acceptance of harm-reduction as a basic principle
17:00:03 <ais523> although apparently whatever they were planning, they all agreed upon it, but it was rejected anyway
17:00:08 <Halite> mmm pancake
17:00:15 <ais523> Jafet: it's possible it's a literal quote
17:00:18 <ais523> but it's funny either way
17:00:22 <Halite> I have an idea for a programming language called Pancake
17:00:28 <fizzie> "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 <ais523> that was yesterday, but go on
17:01:15 <ais523> `pastequotes
17:01:20 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.16040
17:01:23 <ais523> if I don't say anything in the next hour or so, call an ambulence
17:01:25 <ais523> *ambulance
17:01:27 <fizzie> 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 <ais523> although there are friends here, so they should be able to do it for us
17:01:36 <fizzie> Oh well; it wasn't well-preprocessed anyway.
17:01:53 <ais523> reading `quotes sometimes makes me laugh so hard I have trouble breathing
17:01:58 <ais523> so normally I read subsets of it
17:02:00 <fizzie> But it does mean I can't grep as easily for direct quotes.
17:02:55 <Halite> `quotes
17:02:56 <HackEgo> 922) <ais523> 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 <fizzie> 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 <ais523> HackEgo: my link above is all of them
17:03:12 <ais523> err
17:03:14 <ais523> Halite:
17:03:15 <Halite> `quotes
17:03:16 <HackEgo> 556) <Phantom_Hoover> It's like Pygmalion and Galatea but more weeaboo. <Phantom_Hoover> Also lesbian.
17:03:17 <ais523> or you can just do `quote for a random one
17:03:30 <ais523> if you do five `quote in a row, people will start debating what the worst one is, and then delete it
17:03:34 <ais523> it's one of the ways we maintain quality
17:03:40 <Halite> `quotes
17:03:40 <Halite> `quotes
17:03:41 <HackEgo> 942) <olsner> 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 <Halite> `quotes
17:03:42 <HackEgo> 917) <shachaf> FOUR SIMULTANEOUS TYPE SYSTEMS IN A SINGLE ROTATION OF THE LAMBDA CUBE
17:03:42 <Halite> `quotes
17:03:43 <HackEgo> 946) <augur> DIE <augur> oh hey elliott
17:03:43 <Halite> `quotes
17:03:43 <HackEgo> 16) <fungot> 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 <HackEgo> 599) <oklopol> 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 <Halite> start maintaining quality
17:04:18 <fizzie> 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 <fungot> 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 <ais523> 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 <ais523> I don't really like 16, it's not particularly up to fungot's usual quality
17:05:16 <fungot> 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 <boily> started describing Zucchini. will finish it some time later, need to eat now.
17:05:47 <Halite> I don't like 946
17:05:51 <fizzie> I like 16, but it's probably just because I liked the game.
17:06:08 <fizzie> The "he's really a tricycle! pass him!" bit is a verbatim quote.
17:06:21 <ais523> that makes it worse, doesn't it?
17:06:25 <ais523> I agree that 946 isn't so good
17:07:13 <Halite> so 946 and 16 should go
17:07:47 <ais523> no you can only delete one of htem
17:07:51 <ais523> or sometimes not any
17:08:00 <ais523> also elliott isn't here which makes messing with the quotes risky
17:08:27 <Halite> not sure about 917; 599 is quite good in relevance to esolangs;
17:09:28 <ais523> Halite: oklopol actually wrote that language :)
17:10:56 <ais523> `quote 159
17:10:58 <HackEgo> 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 <ais523> fungot: do you get spam like /that/ in your data set?
17:11:08 <fungot> ais523: mr president, to paraphrase fnord twist, i have asked to speak before the subcommittee on security and defence policy.
17:11:18 <ais523> err, fizzie:, although it works both ways
17:11:27 <ais523> if you do, it has to be added
17:11:40 <ais523> otherwise, updating the bf joust stats page would probably be a better use of the time
17:13:30 <fizzie> Well, I can certainly do that.
17:14:04 <Taneb> Would that "fnord" be "Oliver"?
17:14:10 <Taneb> fungot: oliver oliver oliver
17:14:11 <fungot> 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 <Phantom_Hoover> `cat bin/quotes
17:17:41 <HackEgo> ​#!/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 <Phantom_Hoover> `quotes 7
17:18:29 <HackEgo> 7) <oerjan> what, you mean that wasn't your real name? <Warrigal> Gosh, I guess it is. I never realized that.
17:18:36 <Phantom_Hoover> `cat bin/quote
17:18:37 <HackEgo> ​#!/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 <Phantom_Hoover> so... there's no difference
17:20:22 -!- copumpkin has quit (Ping timeout: 252 seconds).
17:21:00 -!- copumpkin has joined.
17:22:28 <Halite> fungot, oliver
17:22:29 <fungot> 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 <Halite> fungot, oliver
17:22:36 <fungot> 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 <Halite> fungot, oliver oliver oliver
17:22:51 <ais523> `quote 365
17:22:53 <HackEgo> 365) <ais523_> meanwhile, I've been running a program for over 24 hours (getting close to 48 now) which is calculating digits of pi, in binary <ais523_> so far, it has found four digits <ais523_> I hope it will find the fifth some time this week
17:22:55 <ais523> I remember that
17:23:03 <Phantom_Hoover> fungot has a limit on how mucn he'll reply to a single person for exactly this reason, btw
17:23:04 <fungot> 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 <Halite> why doesn't it know my gender
17:23:04 <ais523> it never did find the fifth, the computer crashed first
17:23:16 <ais523> so we wrote a paper about it instead
17:23:41 <Halite> omg
17:23:59 <Phantom_Hoover> `style pa
17:24:00 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: style: not found
17:24:03 <Halite> oliver
17:24:06 <Phantom_Hoover> ^style pa
17:24:06 <fungot> Selected style: pa (around 1200 transcribed Penny Arcade comics)
17:24:08 <Phantom_Hoover> (im idiot)
17:24:10 <Phantom_Hoover> fungot!
17:24:10 <Halite> fungot
17:24:10 <fungot> 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 <fungot> Halite: that... that sounds really nice. lil' jim. that's real fucking fantasy, there.
17:24:24 <Halite> ^style lol
17:24:24 <fungot> Not found.
17:24:27 <fizzie> fungot: Stop with the verbatim quotes there. :/
17:24:27 <fungot> 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 <fizzie> I'll have to retrain that with different options some day.
17:24:46 <ais523> yeah, agreed
17:25:08 <ais523> xkcd would be interesting if not for the fact it wouldn't work
17:25:33 <Halite> fungot, Namco is a dictatorship
17:25:33 <fungot> Halite: yeah... but i need that insulin to live!
17:26:09 <Halite> fungot, you can get insulin without Namco
17:26:09 <fungot> Halite: the where is mommy map. i should've... should've liked the saturn!
17:26:35 <Halite> fungot, what
17:26:35 <fungot> Halite: it's tribes 2! we're... we're saved!
17:26:36 <fizzie> There's already a number of webcomics, also.
17:26:41 <ais523> indeed
17:26:45 <Halite> fungot, lolwhut
17:26:45 <fungot> Halite: extra! read all about it.
17:26:51 <Halite> fungot, no
17:26:58 <fizzie> ^style qwantz
17:26:58 <fungot> Selected style: qwantz (Dinosaur Comics transcriptions 2003-2011)
17:27:06 <Halite> ^style nintendo
17:27:06 <fungot> Not found.
17:27:09 <Halite> :c
17:27:17 <fizzie> ^style
17:27:17 <fungot> 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 <Halite> ^style sonic
17:27:18 <fungot> Not found.
17:27:18 <Phantom_Hoover> ^style
17:27:18 <fungot> 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 <fizzie> That's the full list, you know.
17:27:25 <Halite> ^style YOUTUBE
17:27:26 <fungot> Not found.
17:27:30 <Halite> ^style youtube
17:27:30 <fungot> Selected style: youtube (Some YouTube comments)
17:27:40 <Halite> ^style lovecraft
17:27:40 <fungot> Selected style: lovecraft (H. P. Lovecraft's writings)
17:27:40 <Phantom_Hoover> fungot, please stop listening to Halite
17:27:42 <fungot> 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 <fizzie> That's three videos or so, it's kind-of borking.
17:27:46 <fizzie> Boring.
17:27:49 <fizzie> Well, maybe borking too.
17:27:51 <Halite> fungot, listen to me
17:27:53 <fungot> 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 <Phantom_Hoover> a draught of air whic
17:28:35 <Halite> h blew me away into a trash landfill
17:29:11 <Halite> fungot, var fnord = oliver
17:29:11 <fungot> 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 <zzo38> 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 <Halite> fungot, die
17:30:02 <fungot> 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 <Phantom_Hoover> Halite
17:30:05 <Phantom_Hoover> all the bots
17:30:07 <Phantom_Hoover> work in /query
17:30:10 <Halite> fungot, Phantom_Hoover
17:30:10 <fungot> Halite: sometimes when earth's gods are homesick they visit in the still harbour.
17:30:14 <Halite> SOWWY
17:30:17 <Halite> OWWU
17:30:27 <ais523> I don't think thutubot works properly in /query, but I@m not sure
17:30:30 <ais523> *I'm
17:30:48 <Halite> ERR
17:31:04 <Halite> Fatal Error: /home not found
17:31:09 <Taneb> Pietbot doesn't work in /query
17:31:10 -!- Halite has quit (Quit: Fatal Error).
17:31:20 <Taneb> Then again, Pietbot doesn't work in channel
17:31:40 <zzo38> http://sprunge.us/jKMZ This is copy of the program for analysis of Internet Quiz Engine files.
17:31:46 <ais523> `ls /home
17:31:48 <HackEgo> hackbot
17:31:54 <ais523> I can find it…
17:32:21 -!- Halite has joined.
17:32:40 <zzo38> It will still consider the timers and multiple selection questions when counting how many slots it takes up, though.
17:33:18 <Halite> I want to make a programming language
17:33:27 <ais523> good idae!
17:33:31 <ais523> *idea!
17:33:37 <ais523> do you have any interesting concepts to base it on?
17:33:38 <Halite> but not a boring one
17:33:48 <Halite> well, NAND being functionally complete
17:34:07 <ais523> that's been done a few times in the past
17:34:10 <Halite> I want too make one whose only boolean operation is binary NAND
17:34:16 <Halite> possibly with NOR
17:34:28 <ais523> the problem is, that NAND-based programming languages don't lend themselves to infinite state
17:34:41 <ais523> but see, say, http://esolangs.org/wiki/Norfuck http://esolangs.org/wiki/Suffolk
17:34:59 <zzo38> If you add NAND and shifting then will it work?
17:34:59 <ais523> that should help you understand where the TCness issues come from
17:35:21 <ais523> zzo38: hmm, bitwise NAND? if you can shift both ways, it would work
17:35:25 <ais523> if you can shift only to the right, no
17:35:33 <ais523> if you can shift to the left but not right, I'm not sure
17:35:40 <ais523> and "not sure" is always a good place to be
17:35:42 <Taneb> Halite, did you see Nandypants?
17:36:02 -!- augur has quit (Remote host closed the connection).
17:37:01 <ais523> OK, let's see
17:37:29 <Halite> I don't want it to look like Brainfuck
17:37:35 <ais523> 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 <ais523> and, hmm, some sort of flow control; probably while is enough, like in BF, perhaps we should have if and while
17:38:04 <ais523> TC, or sub-TC?
17:38:13 <Halite> 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 <ais523> well an OISC has only one operation
17:38:42 <ais523> so it eliminates the need for specific operations that way
17:38:48 <ais523> although it's not an OISC if I'm adding if and while :)
17:39:10 <ais523> I guess to make it a proper OISC, we need the instruction pointer to be a variable you can assign to
17:39:27 <Halite> I think I'll make it something like an OISC
17:40:40 <Halite> with one operation but IF, WHEN, and WHILE
17:40:51 <Halite> one boolean op*
17:42:02 <Halite> Should I call it Nandy or NAND#
17:42:17 <ais523> I wouldn't be surprised if both those names, or similar ones, were already taken
17:42:23 <ais523> so I'd suggest being more creative
17:43:01 <Halite> can you think of a name
17:43:49 <ais523> not right now, although sometimes I can
17:44:01 <ais523> normally I name it after concepts in the language itself, which requires writing the language first
17:44:13 <Halite> I'll document the language in a draft first.
17:44:21 <Halite> I won't write an interpreter yet.
17:50:03 <fizzie> 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 <fungot> fizzie: just about every night on some of them do))
17:50:46 <ais523> `pastlog themselves
17:51:17 <HackEgo> No output.
17:51:24 <ais523> `pastlog themselves
17:51:38 <HackEgo> 2007-10-25.txt:17:29:14: <lament> setting up the initial conditions themselves can be represented as a program
17:51:38 <Halite> Could I make a programming language where the if condition is formatted if(operand1,operand2) { function }
17:52:10 <ais523> yes, you could
17:52:19 <ais523> I'd need more details to know whether it was a good idea or not, though
17:52:27 <fizzie> Bleh, Lingua::EN::Sentence is kinda slow. It has taken now something like 20 minutes to process about 6000 emails.
17:52:38 <Halite> `run kernelbugcheck
17:52:39 <HackEgo> bash: kernelbugcheck: command not found
17:53:15 <Halite> 'kernelbugcheck' would force a Kernel Panic
17:53:37 <Gregor> Feel free to force a kernel panic, it won't affect the bot.
17:53:50 <ais523> Gregor: is each request run with a separate kernel?
17:53:57 <Gregor> Eeyup.
17:53:58 <Halite> Gregor, why
17:54:04 <Halite> :o
17:54:06 <ais523> and is that for security reasons, or just because it was easier that way?
17:54:12 <Gregor> Yes.
17:54:29 <Halite> security probably
17:54:41 <Phantom_Hoover> How does running each request with a seperate kernel work?
17:54:43 <Phantom_Hoover> I'm curious.
17:55:01 <Gregor> Phantom_Hoover: http://bitbucket.org/GregorR/umlbox
17:55:04 <ais523> Phantom_Hoover: it's UMLbox
17:55:19 <ais523> so it's treating kernels just like any other process
17:55:19 <Phantom_Hoover> ah
17:58:06 <ais523> 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 <ais523> and probably a few other things too
17:58:33 <Gregor> (web o' flies)
18:00:49 <fizzie> 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 <ais523> is that the spam, or the nonspam?
18:01:35 <fizzie> It's the enron, which I suppose shouldn't contain any spam?
18:02:04 <fizzie> I only took a few messages out of it, though. It has a bit over half a million emails.
18:02:05 <ais523> I guess
18:02:14 <ais523> I get a lot of internal spam sometimes
18:02:36 -!- sebbu has quit (Ping timeout: 272 seconds).
18:02:39 <fizzie> I suppose it depends on what "spam" means.
18:02:58 <Gregor> Is it homogenized meat product?
18:05:00 -!- iamcal_ has quit (Read error: Operation timed out).
18:05:48 <kmc> does fungot do enron?
18:05:48 <fungot> kmc: and right well and i i
18:06:09 <Phantom_Hoover> kmc, didn't you ask that less than a week ago
18:06:21 <kmc> yes and i forgot
18:06:22 <kmc> so
18:06:25 <kmc> does fungot do enron?
18:06:25 <fungot> kmc: there's a couple of hours
18:06:33 <fizzie> http://sprunge.us/fhWV well, I don't know if that's so good. (Each paragraph is a single output.)
18:06:36 <fizzie> 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 <fizzie> I don't know what all that ".?" stuff is, too.
18:07:02 <ais523> 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 <tswett> http://pastie.org/6154897
18:07:13 <kmc> "bentley, wear hand-tailored silk shirts and jackets if you wish you were from hizbullah, a lebanese billionaire rafik hariri"
18:07:17 <tswett> What determines which category a word falls in?
18:07:27 <Gregor> ais523: All press is good press.
18:07:29 <kmc> category theory
18:07:48 <tswett> Ah, but I have fooled you. These "categories" are actually disjoint sets.
18:08:52 <ais523> Gregor: in general, yes
18:08:56 <ais523> I think there are exceptions, though
18:09:05 <ais523> especially as a company gets larger
18:09:23 <Gregor> ASDA: Your Premier Source for Horse Meat
18:09:55 <Halite> Tesco: Every little bit of Horse Meat helps
18:10:24 <ais523> well at this point, you have to work out what's screwed up with the supply chain
18:10:24 <Halite> (that should be a quote, that should)
18:10:30 <ais523> rather than with the people who ended up with it
18:10:43 <ais523> ever since the BSE thing, Europe's tried really hard to make all meat traceable
18:10:49 <Halite> what is screwed up with the supply chain is that suppliers are labeling Horse Meat as Beef
18:10:51 <ais523> so this is quite embarrassing for the meat inspector people
18:11:02 <ais523> Halite: well yes, obviously
18:11:12 <ais523> but there are many suppliers in the chain, so you want to find out which ones are responsible
18:11:15 <kmc> 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 <kmc> it's the best
18:11:21 <ais523> also, why are you initcapitalizing "Horse Meat"?
18:11:32 -!- sivoais has quit (Quit: leaving).
18:11:46 <Gregor> kmc: Actually it never has to merge anymore, it sequentializes writing requests.
18:12:00 <Halite> `run login --help
18:12:01 <HackEgo> login: Cannot possibly work without effective root
18:12:31 <ais523> `man gcc
18:12:33 -!- sivoais has joined.
18:12:33 <HackEgo> man: can't open the manpath configuration file /etc/manpath.config
18:13:06 <kmc> Gregor: oh that's too bad
18:13:10 <Gregor> Heh, it's got a pretty restrictive /etc X-D
18:13:16 <kmc> !!!Horse Meat
18:13:29 <Gregor> `welcome sivoais
18:13:31 <ais523> I don't think EgoBot has a !!Horse command
18:13:31 <HackEgo> 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 <ais523> Gregor: we've done that already
18:13:43 <Gregor> ais523: Well piffle to you too then!
18:13:55 <ais523> 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 <Gregor> lul
18:14:26 <oklopol> `welcome Gregor
18:14:28 <HackEgo> 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 <Gregor> 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 <Halite> `run exit
18:17:08 <HackEgo> No output.
18:17:18 <Halite> `run echo "No output."
18:17:19 <HackEgo> No output.
18:17:28 <Halite> `run echo "Yes output."
18:17:30 <HackEgo> Yes output.
18:18:43 -!- augur has joined.
18:18:55 <Halite> `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 <HackEgo> 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 <Halite> `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 <HackEgo> 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 <Halite> `Welcome augur.
18:19:26 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: Welcome: not found
18:19:28 <Gregor> Yes, your ability to make the bot do things is downright masterful.
18:19:30 <Halite> `Welcome augur
18:19:31 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: Welcome: not found
18:19:38 <Halite> `welcome augur
18:19:40 <HackEgo> 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 <Halite> `WELCOME CHICKENS
18:19:49 <HackEgo> 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 <augur> i hate you so much
18:21:35 -!- sebbu has joined.
18:23:38 <Halite> everybody hates me
18:24:43 <Gregor> Maybe that's because you're botspamming.
18:25:00 <kmc> `Waugur
18:25:02 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: Waugur: not found
18:26:48 <fizzie> Wauguries of Innocence.
18:28:02 -!- ogrom has joined.
18:28:35 <fizzie> 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 <fizzie> 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 <fizzie> 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 <fizzie> A "memorandum of understanding", apparently.
18:43:55 <boily> fizzie: mou is a French word meaning soft (things), without initiative or personality (persons).
18:44:23 <boily> also, updated Zucchini. feel free to give me any feedback!
18:48:27 <fizzie> 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 <fizzie> Though I did not know that wearing shorts was favoured by industry executives.
18:51:24 <fizzie> "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 <Halite> `quote 15
19:07:07 <HackEgo> 15) <FireFly> Meh <FireFly> ._.
19:07:13 <Halite> horribl quote
19:07:17 <Halite> howwible quote
19:07:23 <Gregor> Wow, yeah X_X
19:07:24 <Gregor> `rmquote 15
19:07:25 <Taneb> `quote 16
19:07:26 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: rmquote: not found
19:07:27 <HackEgo> 16) <fungot> 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 <Gregor> Oh, what's the command...
19:07:34 <Gregor> `delquote 15
19:07:39 <HackEgo> ​*poof* <FireFly> Meh <FireFly> ._.
19:08:11 <boily> `quote boily
19:08:17 <HackEgo> 942) <olsner> boily: the man eating chicken is just a normal man, it's quite common to eat chicken in some parts of the world \ 943) <elliott> ~eval 1+2 <cuttlefish> Error (127): <elliott> this is a great bot boily i love it \ 952) <boily> not only there is no God, but try to find an APL keyboard on Sunday. \ 955) <boily> ais523: I'm not sure my
19:08:31 <boily> `quote 955
19:08:36 <HackEgo> 955) <boily> ais523: I'm not sure my grasp of the English language is getting better by visiting this channel..
19:09:02 <boily> everything is fine. my narcissistic paranoïd self is reässured.
19:09:17 <Gregor> boily: The "oi" in paranoid is not a diaeresis.
19:09:36 <ais523> yeah, "reässured" is fine, but it's "paranoid"
19:10:16 <ais523> the vowel with the diaeresis has to belong to a different syllable to the vowel before
19:10:45 <monqy> goöd to heär
19:12:02 <Gregor> You peöple are goïng to drive me to the saüce.
19:12:55 <boily> saüce?
19:13:10 <fizzie> Saus.
19:13:22 <fizzie> (It's a place.)
19:13:26 <Gregor> 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 <Sgeo> I should really just be writing code and then filling in the corresponding strings later
19:43:31 <Sgeo> I wrote a little main=getContents>>=print utility to help me with that bit later on
19:44:21 <monqy> ok
19:47:37 <kmc> :t interact
19:47:38 <lambdabot> (String -> String) -> IO ()
19:49:35 -!- Taneb has joined.
19:50:50 * Sgeo is vaguely worried about the call stack
19:51:42 <Sgeo> It's going to grow by one for each compiler in the compiler stack :/
19:51:56 <Sgeo> The way I'm implementing, anyway
19:53:21 <Sgeo> Actually, it might not, depending on each compiler in the compiler stack
19:53:31 <Sgeo> If the last thing they do is ! (compile)....
19:53:46 <ais523> Sgeo: oh no
19:53:53 <ais523> you may hit the problem that most recently halted Feather :(
19:54:26 <Sgeo> o.O hm?
19:55:12 <ais523> Sgeo: the whole "how do you have a forever-growing stack of interpreters without losing time" thing
19:56:08 <FreeFull> Have each interpreter write the next one
19:56:13 <Sgeo> I take it that "The slowdown is inevitable, it's just an experimental concept anyway" is not an adequate solution?
19:56:51 <ais523> Sgeo: it possibly is
19:57:11 <Taneb> This sounds like the problem I had with programming in Brook, except not at all
19:57:31 <Taneb> It sounds like the problem I thought I would have with programming in Brook, except backwards
19:57:36 <Sgeo> 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 <Sgeo> Just interpreted
19:57:49 <ais523> oh good
19:57:55 <Taneb> The actual problem with programming in Brook is making a quine in a crappy language
19:58:41 <Sgeo> 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 <Taneb> Sgeo, I've given up understanding your new language
20:02:01 <Sgeo> Let's call the primitive implementation H0, and the language that it implements L0
20:02:07 <Sgeo> L0 is Trustfuck
20:03:04 <Sgeo> 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 <Sgeo> When I compile, H1 is output.
20:04:47 <Sgeo> 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 <Sgeo> 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 <Sgeo> 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 <Sgeo> I do feel quite limited by basing this on Brainfuck
20:08:36 <Sgeo> 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 <Sgeo> erm, support a mechanism for doing so
20:17:53 <Sgeo> Actually, I see a simple extension to Trustfuck that could support that
20:18:05 <Sgeo> But right now, meh
20:18:59 <FreeFull> 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 <FreeFull> 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 <Sgeo> My brain feels like slime when I'm working on this
20:41:38 <Sgeo> And it's more me forgetting how to program in Haskell than it is me not grasping my idea
20:42:10 <Sgeo> I should probably be using lenses, shachaf
20:42:17 <Taneb> And that's the downside of using so many languages, Sgeo
20:42:20 <boily> ~fortune
20:42:20 <cuttlefish> Does the same as the system call of that name.
20:42:20 <cuttlefish> If you don't know what it does, don't worry about it.
20:42:20 <cuttlefish> -- Larry Wall in the perl man page regarding chroot(2)
20:42:40 <ais523> heh, I remember reading that recently
20:43:01 <Taneb> Stick to one, and eventually people will laugh at you for not being able to understand C
20:43:31 <boily> I have the feeling that what Taneb said works with only knowing C.
20:46:58 <Sgeo> 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 <Sgeo> http://hpaste.org/82310
20:47:21 -!- ogrom has quit (Quit: Left).
20:48:54 <Gregor> 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 <Sgeo> I could factor it out
20:50:41 <ais523> Gregor: it makes sense if you're a sysadmin and using perl as a shel
20:50:42 <ais523> *shell
20:50:45 <Sgeo> That would be good practice, rather than copy/pasting the way I usually would in this situation
20:51:02 <Gregor> 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 <olsner> boily: indeed :) otoh, C could actually be small enough that you *could* know it
20:52:19 <Vorpal> Gregor, hi
20:52:28 <Vorpal> Gregor, did you figure out the -R issue with umlbox btw?
20:52:37 -!- Taneb has joined.
20:52:40 <Gregor> Vorpal: Haven't had time to investigate yet.
20:52:46 <Vorpal> Gregor, fair enough
20:53:04 <Vorpal> Gregor, also chroot in perl? You mean by doing the syscall?
20:53:13 <Vorpal> and why would you do that in a perl script
20:53:13 <Gregor> 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 <Gregor> Vorpal: Read just a liiiiiiiiiiiiiiiiiiiiiiittle bit further back in the backlog.
20:53:32 <Vorpal> okay
20:54:21 <Gregor> The mudem itself is good AFAIK, it's just that UML ttys are awful.
20:54:34 <Vorpal> hm
20:54:43 <Vorpal> Gregor, what options to ttys are there
20:55:09 <Gregor> Err, s/options/alternatives/?
20:55:15 <Vorpal> err yeah
20:55:37 <Gregor> It has a system for memory-mapping host files. That's not a stream though.
20:55:42 <Gregor> I don't think it has any other stream options.
20:55:42 <Vorpal> 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 <Vorpal> Gregor, doing manual stream over a mmap page sounds awful
20:56:18 <Gregor> Indeed X_X
20:56:26 <Vorpal> but if you want to, go ahead
20:56:27 <Gregor> Hence why I haven't tried X-D
20:56:46 <Vorpal> especially the syncronization
20:57:09 <FreeFull> Gregor: What about people who use ghci as their shell?
20:57:25 <Gregor> *shudders*
20:58:06 <Vorpal> Gregor, how does normal uml do networking?
20:58:38 <FreeFull> rawSystem "bla" ["buh","bluh"]
20:58:40 <Gregor> 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 <Vorpal> Gregor, the tun/tap one would work, you just have to use iptables to restrict it
20:59:16 <Vorpal> no idea about the slirp one
20:59:27 <Gregor> Well, OK, tun/tap is impractical because UMLBox doesn't run as root.
20:59:36 <Vorpal> true
20:59:36 <Gregor> And many can run at once.
20:59:41 <Vorpal> okay, good point
20:59:54 <Vorpal> patched slirp daemon?
20:59:57 <Gregor> Really, it's just plain nutty that uml has no reliable host/guest character device.
21:00:07 <Gregor> That's probably a good approach.
21:00:22 <Gregor> The biggest issue with slirp is that it has a "let's run arbitrary host commands" pseudo-server.
21:01:40 <Vorpal> Gregor, so patch that bit out?
21:01:42 <Sgeo> Hmm, my code seems a bit repetitive
21:01:42 <Sgeo> interpret' (Inc:cmds) = modTape incTape >> interpret' cmds
21:01:42 <Sgeo> interpret' (Dec:cmds) = modTape decTape >> interpret' cmds
21:01:42 <Sgeo> interpret' ((Set n):cmds) = modTape (setTape n) >> interpret' cmds
21:02:41 <Gregor> Vorpal: I haven't looked into it, at the time the mudem approach seemed better (whitelist instead of blacklist)
21:03:48 <Vorpal> Gregor, why would it allow executing commands on the host at all?
21:04:03 <Vorpal> isn't it just a user space program forwarding network
21:04:12 <coppro> /slash
21:04:13 <Gregor> Yes, it offers that as a virtual service.
21:04:20 <Vorpal> huh
21:04:23 <Gregor> Because it's stupid that way X-D
21:04:28 <Vorpal> that sounds complicated
21:04:33 <Vorpal> also who came up with this shit
21:04:41 <Gregor> Hahaha
21:04:44 <Gregor> Wonderful question.
21:05:11 <Vorpal> so what is slirp originally intended for?
21:05:53 <Gregor> 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 <kmc> i think it's for old ISPs that gave you dial-in shell access only
21:06:57 <Gregor> Exactly.
21:07:23 <Vorpal> hm
21:07:36 -!- oerjan has joined.
21:07:36 <Vorpal> that was never common over here afaik
21:07:48 <Vorpal> it was usually just straight PPP or SLIP
21:12:59 <FreeFull> Sgeo: I can make it less repetitive at the cost of readibility
21:14:00 <monqy> can you?
21:14:24 <FreeFull> 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 <Sgeo> 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 <Sgeo> FreeFull, I didn't show all cases, but forgot about that one, ty
21:15:31 <monqy> Sgeo: my advice is to factor out the thing that goes from instruction to action like Inc->IncTape
21:15:57 <monqy> *incTape
21:16:12 <monqy> and Set n -> setTape n
21:16:17 <monqy> and so on
21:16:32 <FreeFull> You might be able to map and then sequence_
21:16:47 <monqy> aka mapM_
21:20:16 <FreeFull> interpret' = mapM_ mod where mod x = modTape $ case x of { Inc -> incTape; Dec -> decTape; (Set n) -> setTape n }
21:20:19 <FreeFull> This might work
21:20:48 <FreeFull> It might not
21:21:36 <monqy> imo dont do that
21:22:10 <fizzie> I had a slirp-driven dialup connection going a while (a decade? 15 years?) ago.
21:22:12 <Sgeo> meh
21:22:32 <fizzie> Though probably not as the regular "commercial ISP" at-home dialup.
21:22:40 <Sgeo> Besides, I have cases that don't involve just modifying the tape
21:22:55 <Sgeo> data InterpState = InterpState { tape :: Tape, higherInput :: Maybe String, currentCompilerStack :: [[TFCommand]], codeBlock :: String }
21:22:55 <monqy> Sgeo: ok then think for yourself
21:23:16 <Sgeo> Does thinking not to bother with factoring it out as much as possible count?
21:24:05 -!- Phantom_Hoover has joined.
21:24:38 <Sgeo> Hi Phantom_Hoover. I believe that the easiest Trustfuck programs to write are probably BF derivative compilers.
21:24:45 <monqy> 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 <monqy> pain and error
21:24:49 <monqy> you dont want this
21:24:56 <Sgeo> In fact, I plan on making a few
21:24:59 <Sgeo> Just to test it out
21:25:07 <Sgeo> switching [ and ]
21:25:08 <Sgeo> etc
21:25:37 <oerjan> logically, Phantom_Hoover now has to replace Sgeo's brain with a brick factory
21:26:36 <olsner> brick factory might be a nice name for a brainfuck derivative
21:26:41 <Phantom_Hoover> would be useful
21:26:50 <Phantom_Hoover> i don't know where i'd even find a brick these days
21:27:11 <Taneb> I seem to remember a brick factory near Newcastle
21:27:37 <monqy> could make your own bricks
21:27:43 <olsner> I thought they made bricks by pouring mud in molds in the desert
21:27:44 <monqy> homemade bricks for that "homemade" charm
21:28:19 <olsner> I wonder what kind of desert has lots of mud though
21:28:19 <Phantom_Hoover> olsner, how would you know
21:28:23 -!- augur has quit (Remote host closed the connection).
21:28:44 <Phantom_Hoover> mississipi mud pie, obviously
21:28:45 <oerjan> Phantom_Hoover: hm i'd suggest Leca, but that's apparently a norwegian company so might not be in britain
21:30:56 <fizzie> 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 <oerjan> hm ok they've been absorbed by Weber, which seems multinational.
21:33:42 <oerjan> <olsner> I wonder what kind of desert has lots of mud though <-- the ones rivers run through? see: egypt, mesopotamia
21:34:54 <fizzie> 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 <olsner> oerjan: mythological deserts don't count
21:35:12 <ais523> fizzie: good to know
21:35:16 <ais523> do you have the link handy?
21:35:49 <oerjan> oh actually weber is part of saint-gobain.
21:36:14 <ais523> `pastlog bfjoust stats
21:36:25 <fizzie> ais523: http://zem.fi/egostats/
21:36:33 <fizzie> (Faster than a speeding bot.)
21:36:43 <HackEgo> No output.
21:36:48 <fizzie> (Maybe HackEgo doesn't quite always count as "speeding".)
21:36:52 <ais523> indeed :)
21:36:54 <ais523> thanks
21:37:10 <oerjan> HackEgo is best at grinding
21:38:07 <ais523> 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 <coppro> omnipotence?
21:38:39 <coppro> sounds cool
21:38:59 <Sgeo> @hoogle Char -> Int
21:38:59 <lambdabot> Data.Char digitToInt :: Char -> Int
21:39:00 <lambdabot> Data.Char ord :: Char -> Int
21:39:00 <lambdabot> Graphics.UI.GLUT.Callbacks.Window Char :: Char -> Key
21:39:02 <fizzie> 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 <ais523> 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 <fizzie> The others have negative values there too. Hrm, perhaps I have broken it.
21:41:10 <ais523> the absolute tape value plot is interesting because it shows strategy
21:41:19 <ais523> most programs have their flags near 128
21:41:32 <ais523> anticipation2 does synchronization, so its flag tends to be really low when it wins
21:41:56 <ais523> and omnipotence defends but doesn't synchronize, so its flag is averaging approximately 64 (i.e. pretty much a random value)
21:42:41 <fizzie> 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 <fizzie> I did refactor some repeated code out of there.
21:42:58 <shachaf> `rm bin/list
21:43:04 <HackEgo> No output.
21:44:40 <boily> `list
21:44:41 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: list: not found
21:44:44 <boily> nooooooooooo!
21:47:26 <fizzie> Yes, I seem to have managed to drop an "abs" out.
21:47:39 <Sgeo> I hate monad stacks I hate monad stacks I hate monad stacks
21:47:50 <Sgeo> And after pressing Enter, I tried to Ctrl-S to save IRC
21:48:36 <fizzie> There, fixeded that.
21:48:38 <oerjan> `revert
21:48:41 <HackEgo> Done.
21:49:13 <Taneb> `list
21:49:17 <HackEgo> cuttlefish boily elliott Taneb HackEgo shachaf Sgeo monqy
21:50:04 <oerjan> `run sed -i 's/shachaf //' bin/list # It's getting annoying
21:50:08 <HackEgo> No output.
21:50:12 <fizzie> Is there a `delist / `unlist already, incidentally?
21:50:26 <oerjan> not last i checked
21:51:51 <Sgeo> Oh crud I am lost in a monad stack
21:51:53 <Sgeo> Totally lost
21:52:22 <monqy> advice: dont do that
21:52:27 <oerjan> Sgeo: you are not supposed to use explicit lift's hth
21:52:31 <oerjan> *-'
21:52:39 <Sgeo> Not done writing this function, but http://hpaste.org/82314
21:52:45 <Sgeo> I think I need to use liftIO somewhere
21:52:58 <Sgeo> The function itself returns a StateT InterpState IO ()
21:52:58 <monqy> what's the signature of interpret'
21:53:06 <Sgeo> interpret' :: [TFCommand] -> StateT InterpState IO ()
21:53:11 <oerjan> Sgeo: modify takes just one argument
21:53:29 <Sgeo> Yeah, that part's also still in progress
21:53:54 <Sgeo> But I think I need to fit a liftIO near the getChar
21:54:04 -!- dessos has quit (Quit: leaving).
21:54:06 <shachaf> oerjan: Thanks.
21:54:34 -!- Taneb has quit (Quit: Leaving).
21:54:39 <oerjan> 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 <Sgeo> `welcome dessos
21:59:11 <HackEgo> 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 <oerjan> * boily checks his calendar. hm. not Friday yet. <-- good chap.
22:07:19 -!- augur has quit (Remote host closed the connection).
22:08:18 <FreeFull> What is the cleanest way to map over the second element of a tuple?
22:08:52 <oerjan> <Slereah_> Phantom_Hoover your british is showing <-- but naff is such a cute word!
22:09:07 <oerjan> FreeFull: second from Control.Arrow
22:09:13 <oerjan> > second succ (1,2)
22:09:15 <lambdabot> (1,3)
22:09:37 <Phantom_Hoover> oerjan, it's the perfect word to describe inoffensively bad things"
22:10:52 <oerjan> FreeFull: if you're doing deeper stuff, maybe you should look at lens.
22:11:12 <oerjan> :t _2
22:11:13 <lambdabot> (Functor f, Field2 s t a b, Indexable Int p) => p a (f b) -> s -> f t
22:11:49 <oerjan> if i only remembered the names
22:11:58 <FreeFull> second is just \f (a,b) -> (a,f b) right?
22:12:02 -!- Phantom_Hoover has quit (Quit: Leaving).
22:12:12 <oerjan> FreeFull: on the (->) Arrow, yes >:)
22:12:14 -!- Phantom_Hoover has joined.
22:12:35 <FreeFull> oerjan: Does anyone use any other Arrows?
22:12:36 <oerjan> :t (^=)
22:12:37 <lambdabot> (Integral e, Num a, MonadState s m) => ASetter' s a -> e -> m ()
22:13:02 <FreeFull> :t second
22:13:04 <lambdabot> Arrow a => a b c -> a (d, b) (d, c)
22:13:04 <oerjan> FreeFull: i think zzo38 uses Kleiski and probably some others do too
22:13:44 <boily> oerjan: dates are complex. time is hard. I need periodic sanitic realitic checks.
22:13:47 <oerjan> what's the lens equivalent of modify
22:14:07 <oerjan> boily: especially on the 13th, no?
22:14:12 <FreeFull> http://en.wikipedia.org/wiki/Arrow_%28computer_science%29 This article seems to have been written by Haskellers
22:14:56 <oerjan> FreeFull: probably, i'm not sure if anything but Haskell uses them
22:15:26 <oerjan> they're kind of not mathematically pretty like monads are
22:15:41 <shachaf> profunctors are better
22:15:44 <oerjan> they're sort of a chimera of Category and Applicative
22:16:07 <oerjan> @hoogle (^=)
22:16:07 <lambdabot> No results found
22:16:19 -!- nooodl_ has joined.
22:16:36 <FreeFull> @hoogle ASetter'
22:16:36 <lambdabot> No results found
22:16:37 <boily> oerjan: on those days, I'm sure this channel becomes some kind of SCP.
22:16:54 <FreeFull> boily: That'd be a retarded SCP
22:16:56 <oerjan> oh
22:17:11 <oerjan> > _2 %~ succ $ (1,2)
22:17:14 <lambdabot> (1,3)
22:17:27 <coppro> `addquote <boily> oerjan: on those days, I'm sure this channel becomes some kind of SCP.
22:17:30 <HackEgo> 963) <boily> oerjan: on those days, I'm sure this channel becomes some kind of SCP.
22:17:40 <nooodl_> "those days"?
22:17:44 <FreeFull> _2 %~ looks like gibberish
22:17:47 <oerjan> > over _2 succ (1,2)
22:17:49 <lambdabot> (1,3)
22:17:53 <FreeFull> :t over
22:17:55 <lambdabot> Profunctor p => Setting p s t a b -> p a b -> s -> t
22:17:57 <oerjan> more readable alternative
22:18:06 <nooodl_> wow i'm reading _2 as (-2) "thanks apl"
22:18:18 <FreeFull> I think I'll just import Control.Arrow (second)
22:18:22 <shachaf> @let theSecondOne = _2
22:18:24 <lambdabot> Defined.
22:18:28 <boily> nooodl_: friday thirteens.
22:18:32 <shachaf> > over theSecondOne succ (1,2)
22:18:35 <lambdabot> (1,3)
22:18:35 <oerjan> nooodl_: hm i'm not, even if i've been using it that way all the time while writing Fueue
22:18:45 <FreeFull> shachaf: we aren't trying to make it into English
22:18:55 <nooodl_> > over theSecondOne succ (1,2,3)
22:18:58 <lambdabot> (1,3,3)
22:19:06 <oerjan> (Fueue doesn't have _, but i needed something to distinguich negative numbers from - positivenumber)
22:19:11 <Sgeo> :t liftIO
22:19:13 <lambdabot> MonadIO m => IO a -> m a
22:19:46 <nooodl_> i'm, how can that even work in haskell
22:19:51 <nooodl_> :t over theSecondOne succ
22:19:53 <lambdabot> (Enum b, Field2 s t b b) => s -> t
22:19:58 <shachaf> It's awful.
22:20:23 <FreeFull> > liftIO putStr "a" :: Maybe String
22:20:24 <nooodl_> oh god. i never asked
22:20:25 <lambdabot> Couldn't match expected type `GHC.Types.IO
22:20:25 <lambdabot> ...
22:20:37 <FreeFull> > (liftIO putStr "a") :: Maybe String
22:20:39 <lambdabot> Couldn't match expected type `GHC.Types.IO
22:20:39 <lambdabot> ...
22:20:46 <Sgeo> Maybe is not a MonadIO
22:20:51 <FreeFull> Oh, right
22:20:51 <Sgeo> Also, bad parenthization
22:20:55 <FreeFull> And it'd have to be Maybe ()
22:20:58 <Sgeo> liftIO $ putStr "a"
22:21:11 <FreeFull> > (liftIO $ putStr "a") :: Maybe ()
22:21:13 <lambdabot> No instance for (Control.Monad.IO.Class.MonadIO Data.Maybe.Maybe)
22:21:13 <lambdabot> arisin...
22:21:19 <FreeFull> There, the right error
22:21:29 <oerjan> FreeFull: you can only liftIO into monads that are built on top of IO
22:21:47 <FreeFull> > (liftIO $ putStr "a") :: MaybeT (IO a)
22:21:49 <lambdabot> Not in scope: type constructor or class `MaybeT'
22:21:49 <lambdabot> Perhaps you meant `Maybe'...
22:22:06 <oerjan> old lambdabot is old
22:23:08 <FreeFull> I'm guessing there is an instance MonadIO a => MonadIO MaybeT a
22:23:54 <oerjan> 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 <boily> you sure of that? I have no memories of it.
22:25:49 <oerjan> quite sure.
22:26:05 <oerjan> > over _2 succ [1,2,3]
22:26:07 <lambdabot> No instance for (Control.Lens.Tuple.Field2 [t0] a0 b0 b0)
22:26:07 <lambdabot> arising from a...
22:26:15 <boily> next time, I'll write myself a post-it.
22:26:21 <oerjan> INSUFFICIENT MADNESS
22:26:53 <oerjan> boily: there might also be a few things replaced or missing, hth
22:27:54 <oerjan> boily: also you cannot write a post-it when you are dead, duh
22:28:11 <boily> oerjan: good point.
22:29:33 <boily> 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 <oerjan> :t act
22:30:46 <lambdabot> (Conjoined p, Effective m r f) => (s -> m a) -> p a (f a) -> p s (f s)
22:32:18 <oerjan> i'm not sure that's the act from lens
22:32:24 <oerjan> > (0$0`act`)
22:32:26 <lambdabot> The operator `Control.Lens.Action.act' [infixl 9] of a section
22:32:26 <lambdabot> must ha...
22:32:30 <oerjan> oh it is
22:32:39 <FreeFull> :t over _2
22:32:41 <lambdabot> (Field2 s t a b, Indexable Int p) => p a b -> s -> t
22:35:31 <Sgeo> Hmm, my currently envisioned primCompiler has too many jobs I think
22:36:01 <Sgeo> Translating a string of Trustfuck into TFCommands, and then outputting the appropriate Haskell
22:39:19 <Sgeo> I could call primTranslation the translation of Trustfuck->[TFCommand]
22:39:40 <oerjan> refactor!
22:39:46 <oerjan> refactor!
22:39:47 <oerjan> refactor!
22:40:10 <oerjan> hm Taneb is not here
22:41:59 <oerjan> > (id += 2) 3
22:42:01 <lambdabot> No instance for (Control.Monad.State.Class.MonadState s0 ((->) a0))
22:42:02 <lambdabot> aris...
22:42:08 <oerjan> > (id +~ 2) 3
22:42:10 <lambdabot> 5
22:46:36 -!- ais523 has quit.
22:48:01 <Sgeo> Oh hey there's a J 8 beta
22:50:58 <nooodl_> oooh
22:53:33 <nooodl_> 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 <Gregor> Vorpal: ARRRRRRRRRRRRGH
22:59:41 <Gregor> Vorpal: PYTHOOOOOOOOON
23:00:01 <Sgeo> I've only begun hating Python recently
23:00:42 <Gregor> Vorpal: umlbox mudem bug fixed.
23:04:02 <oerjan> <Gregor> 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 <Sgeo> @hoogle catch
23:04:07 <lambdabot> Prelude catch :: IO a -> (IOError -> IO a) -> IO a
23:04:07 <lambdabot> System.IO.Error catch :: IO a -> (IOError -> IO a) -> IO a
23:04:07 <lambdabot> Control.OldException catch :: IO a -> (Exception -> IO a) -> IO a
23:04:40 <Sgeo> :t (Just <$> getChar) `catch` \_ -> return Nothing
23:04:40 <Gregor> oerjan: lol, 'struth.
23:04:42 <lambdabot> IO (Maybe Char)
23:06:00 * oerjan is not sure how he feels about using catch just to check for eof
23:06:01 <Sgeo> grr typing } does not mean I want to deindent
23:06:09 <Sgeo> What's a better way to check for eof?
23:06:16 <oerjan> hIsEOF
23:06:32 <oerjan> admittedly catch may be shorter
23:08:27 <oerjan> oh or just isEOF for stdin
23:08:50 <Sgeo> :t isEOF
23:08:52 <lambdabot> Not in scope: `isEOF'
23:08:54 <Sgeo> @hoogle isEOF
23:08:55 <lambdabot> System.IO isEOF :: IO Bool
23:08:55 <lambdabot> GHC.IO.Handle.FD isEOF :: IO Bool
23:08:55 <lambdabot> System.IO.Error isEOFError :: IOError -> Bool
23:09:03 <nooodl_> "deindenting" should be called "exdenting" imo
23:09:55 <monqy> have I heard "dedent"??? maybe.
23:10:26 <nooodl_> i've heard "dedent" but "de-" isn't the opposite of "in-"...
23:10:27 <oerjan> monqy: DEDENT is a lexical token in python, iirc
23:10:57 <oerjan> used for implementing its indentation blocks
23:11:26 <oerjan> :t hIsEOF
23:11:28 <lambdabot> Not in scope: `hIsEOF'
23:11:28 <shachaf> what does it use for implementing its dedentation blocks
23:11:44 <oerjan> shachaf: nothing
23:11:50 <shachaf> oh
23:13:22 <Sgeo> oerjan, ok, using isEOF
23:13:37 <Sgeo> What I wrote is more verbose, but using catch like that makes me feel icky
23:14:09 <oerjan> hm...
23:14:25 <oerjan> @hoogle Bool -> m a -> m (Maybe a)
23:14:25 <lambdabot> Data.Generics.Aliases orElse :: Maybe a -> Maybe a -> Maybe a
23:14:26 <lambdabot> Data.Time.Calendar.MonthDay monthAndDayToDayOfYearValid :: Bool -> Int -> Int -> Maybe Int
23:14:26 <lambdabot> Control.Monad unless :: Monad m => Bool -> m () -> m ()
23:14:29 <oerjan> oh
23:15:23 <oerjan> gah when and unless are the closest but don't give maybes
23:15:32 <oerjan> or wait
23:15:43 <oerjan> ...sigh
23:16:05 <Sgeo> @hoogle Maybe a -> a -> a
23:16:06 <lambdabot> Data.Maybe fromMaybe :: a -> Maybe a -> a
23:16:06 <lambdabot> Prelude asTypeOf :: a -> a -> a
23:16:06 <lambdabot> Data.Generics.Aliases orElse :: Maybe a -> Maybe a -> Maybe a
23:16:34 <oerjan> Sgeo: you need something which starts with a Bool, something haskell standard libraries sorely lacks
23:16:37 <shachaf> oerjan: To be fair Bools are evil.
23:16:51 <Sgeo> oerjan, it's fine, I just used do notation
23:17:11 <Sgeo> I could also use >>= and a lambda
23:17:17 <shachaf> @pl \x m -> if x then Just <$> m else pure Nothing
23:17:17 <lambdabot> flip flip (pure Nothing) . (. (Just <$>)) . if'
23:17:20 <Sgeo> Nothing -> liftIO $ do
23:17:20 <Sgeo> eof <- isEOF
23:17:20 <Sgeo> if eof then Just <$> getChar else return Nothing
23:17:21 <shachaf> There y'go.
23:17:32 <shachaf> @ty \x m -> if x then Just <$> m else pure Nothing
23:17:34 <lambdabot> Applicative f => Bool -> f a -> f (Maybe a)
23:17:50 <oerjan> 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 <oerjan> oh wait
23:18:19 <oerjan> well not _quite_ shorter but...
23:18:37 <monqy> @ty \case { True -> "hello"; False -> "goodbye" }
23:18:39 <lambdabot> parse error on input `case'
23:18:57 <shachaf> "hello monqy"
23:19:01 <oerjan> monqy: old lambdabot is old
23:19:14 <monqy> hi shachaf
23:19:17 <shachaf> hi
23:19:27 <shachaf> do you have anything to say about galois connections today
23:19:30 <monqy> no
23:19:39 <shachaf> perhaps tomorrow, then.
23:20:29 <oerjan> :t let isEOF :: IO Bool; isEOF = undefined in isEOF >>= maybe (return Nothing) getChar . guard
23:20:31 <lambdabot> Couldn't match expected type `a0 -> IO (Maybe a1)'
23:20:31 <lambdabot> with actual type `IO Char'
23:20:31 <lambdabot> In the second argument of `maybe', namely `getChar'
23:20:32 <shachaf> @let monoids = easy
23:20:35 <lambdabot> Defined.
23:20:36 <oerjan> fff
23:21:04 <oerjan> :t maybe (return Nothing) getChar . guard
23:21:06 <lambdabot> Couldn't match expected type `a0 -> m0 (Maybe a1)'
23:21:06 <lambdabot> with actual type `IO Char'
23:21:06 <lambdabot> In the second argument of `maybe', namely `getChar'
23:21:09 <oerjan> :t maybe
23:21:11 <lambdabot> b -> (a -> b) -> Maybe a -> b
23:21:15 <oerjan> oh right
23:21:32 <shachaf> = CodensityAsk Identity
23:21:41 <shachaf> Er, no.
23:21:57 <shachaf> Er, yes.
23:22:40 <oerjan> :t let isEOF :: IO Bool; isEOF = undefined in isEOF >>= fromMaybe (return Nothing). (getChar <$) . guard
23:22:41 <lambdabot> Couldn't match expected type `Maybe a0' with actual type `Char'
23:22:41 <lambdabot> Expected type: IO (Maybe a0)
23:22:41 <lambdabot> Actual type: IO Char
23:22:50 <oerjan> this isn't going very well
23:22:58 <oerjan> :t (getChar <$) . guard
23:22:59 <lambdabot> (Functor f, MonadPlus f) => Bool -> f (IO Char)
23:23:39 <oerjan> :t fromMaybe (return Nothing) . (getChar <$) . guard
23:23:41 <lambdabot> Couldn't match expected type `Maybe a0' with actual type `Char'
23:23:41 <lambdabot> Expected type: IO (Maybe a0)
23:23:41 <lambdabot> Actual type: IO Char
23:24:29 <Sgeo> :t String -> IO a
23:24:31 <lambdabot> parse error on input `->'
23:24:36 <Sgeo> @hoogle String -> IO a
23:24:37 <lambdabot> Foreign.C.Error throwErrno :: String -> IO a
23:24:37 <lambdabot> Network.Socket.Internal throwSocketError :: String -> IO a
23:24:37 <lambdabot> System.Environment withProgName :: String -> IO a -> IO a
23:24:42 <Sgeo> @hoogle throw
23:24:42 <lambdabot> Control.Exception.Base throw :: Exception e => e -> a
23:24:42 <lambdabot> Control.Exception throw :: Exception e => e -> a
23:24:42 <lambdabot> Control.OldException throw :: Exception e => e -> a
23:24:44 -!- Nisstyre_ has changed nick to Nisstyre.
23:24:45 <Sgeo> bah
23:25:06 <oerjan> :t fromMaybe (return Nothing)
23:25:08 <lambdabot> Monad m => Maybe (m (Maybe a)) -> m (Maybe a)
23:25:20 <Sgeo> 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 <shachaf> chaos
23:26:35 <shachaf> don't do it Sgeo
23:26:51 <Sgeo> "Chaos" is easily achieved by just doing normal output
23:27:36 <Sgeo> Imagine something randomly outputting in the middle of creating x86 binary for no good reason
23:27:57 <shachaf> don't do it
23:28:07 <Sgeo> ?
23:28:20 <Sgeo> Well, any program that does that is ... certainly broken
23:28:55 <Sgeo> The question is, do I throw an error?
23:29:10 <Sgeo> Also, I have separate sorts of output: Output via . and output via : and !
23:29:26 <Sgeo> I've been wondering whether to separate input out in that fashion
23:29:56 <Sgeo> That is, any compiler in the middle of the compiler stack that uses , rather than codein ; would see standard input
23:30:03 <Sgeo> Rather than code in the language they were expecting
23:30:07 <Sgeo> Possibly causing havock
23:30:10 <Sgeo> havoc?
23:30:11 <Sgeo> Fun
23:30:32 <Sgeo> Right now though I'm just going to keep implementing the spec as-is
23:31:14 <fizzie> http://sprunge.us/JHIC I am somewhat a confuse.
23:31:29 <Sgeo> :t chr
23:31:31 <lambdabot> Int -> Char
23:31:42 <Sgeo> :t putCh
23:31:44 <lambdabot> Not in scope: `putCh'
23:31:44 <Sgeo> :t putChar
23:31:46 <lambdabot> Char -> IO ()
23:32:23 <oerjan> fizzie: making its lamarck on game history, surely
23:32:33 <FreeFull> How would you rewrite sum . map (\(x,y) -> if x == y then 1 else 0) $ zip not to use $ like that?
23:33:04 <FreeFull> Wait, that's not valid
23:33:13 <Sgeo> http://hpaste.org/82320
23:33:55 <Sgeo> I like how -> and <- align. I am easily amused
23:33:58 <FreeFull> Wait, could use zipWith there
23:34:29 <oerjan> FreeFull: in any case, that would use . not $
23:34:50 <oerjan> or not even that
23:35:05 <FreeFull> zip is a function of two arguments
23:35:10 <FreeFull> The others are of one
23:35:19 <oerjan> so .: which is not standard
23:36:08 <oerjan> :t sum .: zipWith (uncurry (==))
23:36:10 <lambdabot> Couldn't match expected type `b1 -> b0' with actual type `Bool'
23:36:10 <lambdabot> Expected type: b2 -> b2 -> b1 -> b0
23:36:10 <lambdabot> Actual type: b2 -> b2 -> Bool
23:36:17 <oerjan> now what
23:36:22 <oerjan> :t (.:)
23:36:23 <lambdabot> (Functor g, Functor f) => (a -> b) -> f (g a) -> f (g b)
23:36:32 <oerjan> CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALE
23:36:45 <FreeFull> What I meant was something like \x -> sum . zipWith (\x y -> if x == y then 1 else 0) x
23:37:05 <FreeFull> But more pointless
23:37:13 <oerjan> yes, .: would fit
23:37:18 <oerjan> *should
23:37:34 <oerjan> :t sum .: zipWith (\x y -> if x == y then 1 else 0)
23:37:35 <lambdabot> (Eq a, Num b) => [a] -> [a] -> b
23:37:37 <fizzie> 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 <FreeFull> The type fits
23:37:55 <Phantom_Hoover> fizzie, ???
23:38:50 <nooodl_> how about
23:38:51 <fizzie> Phantom_Hoover: [01:31:14] <fizzie> http://sprunge.us/JHIC I am somewhat a confuse.
23:39:02 <FreeFull> @hoogle (.:)
23:39:02 <lambdabot> No results found
23:39:15 <nooodl_> length . filter (uncurry (==)) . zip
23:39:17 <FreeFull> :info (.:)
23:39:18 <nooodl_> or something
23:39:39 <FreeFull> :t (length . filter (uncurry (==)) . zip)
23:39:40 <lambdabot> Couldn't match expected type `[(b0, b0)]'
23:39:41 <lambdabot> with actual type `[b1] -> [(a0, b1)]'
23:39:41 <lambdabot> Expected type: [a0] -> [(b0, b0)]
23:39:44 <FreeFull> :t (length . filter (uncurry (==)) .: zip)
23:39:46 <lambdabot> Couldn't match expected type `[[(b0, b0)]]'
23:39:46 <lambdabot> with actual type `[b1] -> [(a0, b1)]'
23:39:46 <lambdabot> Expected type: [a0] -> [[(b0, b0)]]
23:40:26 <oerjan> :t (.:)
23:40:28 <lambdabot> (Functor g, Functor f) => (a -> b) -> f (g a) -> f (g b)
23:40:34 <oerjan> :t (.).(.)
23:40:35 <lambdabot> (Functor f1, Functor f) => (a -> b) -> f (f1 a) -> f (f1 b)
23:40:46 <monqy> :t (.)
23:40:47 <oerjan> that's the portable version
23:40:47 <lambdabot> Functor f => (a -> b) -> f a -> f b
23:40:53 <FreeFull> Oh, .: is the owl
23:41:02 <monqy> cale cale cale cale cale
23:41:42 <monqy> owl?
23:42:10 <oerjan> :t length . filter id . zipWith (==)
23:42:12 <lambdabot> Couldn't match expected type `[Bool]'
23:42:12 <lambdabot> with actual type `[b0] -> [c0]'
23:42:12 <lambdabot> Expected type: [a0] -> [Bool]
23:42:15 <oerjan> oops
23:42:31 <oerjan> :t (length . filter id) .: zipWith (==)
23:42:33 <lambdabot> Eq b => [b] -> [b] -> Int
23:42:41 <oerjan> FreeFull: simpler ^
23:42:55 <nooodl_> i have no idea when to use (.).(.) it's so stupid
23:43:10 <monqy> that's why they call it (.:)
23:43:15 <monqy> "less stupid"
23:43:27 <FreeFull> :t (.).(.) (length . filter id) (zipWith (==))
23:43:29 <lambdabot> Couldn't match expected type `a0 -> b0' with actual type `Int'
23:43:29 <lambdabot> Expected type: [a1] -> a0 -> b0
23:43:29 <lambdabot> Actual type: [a1] -> Int
23:43:30 <oerjan> :t (length . filter id .) . zipWith (==)
23:43:31 <lambdabot> The operator `.' [infixr 9] of a section
23:43:31 <lambdabot> must have lower precedence than that of the operand,
23:43:31 <lambdabot> namely `.' [infixr 9]
23:43:32 <shachaf> what about (∴)
23:43:40 <oerjan> :t ((length . filter id) .) . zipWith (==)
23:43:41 <shachaf> "minimally stupid"??
23:43:41 <lambdabot> Eq b => [b] -> [b] -> Int
23:43:48 <monqy> (∴) is maximally stupid, sorry
23:43:52 <shachaf> oh
23:43:57 <shachaf> what about (∵)
23:44:03 <monqy> also maximally stupid
23:44:09 <shachaf> are they isomorphic
23:44:18 <monqy> if you want
23:44:23 <shachaf> isomorphic up to isomorphic isomorphism
23:44:25 <oerjan> if they'd only made . associate the other way, the innermost parentheses would be unnecessary
23:44:42 <shachaf> 2241 NOT TILDE [≁]
23:44:47 <Sgeo> @hoogle (<$>)
23:44:47 <lambdabot> Data.Functor (<$>) :: Functor f => (a -> b) -> f a -> f b
23:44:47 <lambdabot> Control.Applicative (<$>) :: Functor f => (a -> b) -> f a -> f b
23:44:54 <shachaf> lambdabot: plz support unicode again.........
23:44:56 <Sgeo> @hoogle ord
23:44:56 <lambdabot> Prelude class Eq a => Ord a
23:44:57 <lambdabot> Data.Ord class Eq a => Ord a
23:44:57 <lambdabot> Prelude data Ordering :: *
23:44:58 <monqy> i don't have not tilde on my compose key :(
23:45:03 <shachaf> oh no
23:45:04 <Sgeo> @hoogle chr
23:45:05 <lambdabot> Data.Char chr :: Int -> Char
23:45:05 <lambdabot> Text.PrettyPrint.HughesPJ Chr :: Char -> TextDetails
23:45:05 <lambdabot> Text.PrettyPrint Chr :: Char -> TextDetails
23:45:12 <shachaf> 2247 NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO [≇]
23:45:15 <shachaf> 2246 APPROXIMATELY BUT NOT ACTUALLY EQUAL TO [≆]
23:45:18 <shachaf> 2245 APPROXIMATELY EQUAL TO [≅]
23:45:21 <shachaf> these are good
23:45:25 <nooodl_> yeah
23:45:30 <Sgeo> @hoogle Int -> Char
23:45:30 <lambdabot> Data.Char chr :: Int -> Char
23:45:30 <lambdabot> Data.Char intToDigit :: Int -> Char
23:45:30 <lambdabot> Data.Text index :: Text -> Int -> Char
23:45:35 <nooodl_> that reminds me of my favorite thingy in unicode
23:45:36 <shachaf> it's missing ACTUALLY BUT NOT APPROXIMATELY EQAUL TO
23:45:36 <Sgeo> @hoogle Char -> Int
23:45:37 <lambdabot> Data.Char digitToInt :: Char -> Int
23:45:37 <lambdabot> Data.Char ord :: Char -> Int
23:45:37 <lambdabot> Graphics.UI.GLUT.Callbacks.Window Char :: Char -> Key
23:45:52 <shachaf> nooodl_: ⋚ ?
23:45:57 <monqy>
23:46:11 <nooodl_> wow shachaf how did you know
23:46:16 <nooodl_> i was just looking it up. ⋚
23:46:27 <nooodl_> also ⋙ is pretty good
23:46:29 <shachaf> nooodl_: "im an expert in knowing things"
23:46:48 <nooodl_> don't forget about ⪑
23:46:53 <nooodl_>
23:47:00 <nooodl_> ⪠ wow these are trainwrecks
23:47:05 <shachaf> those are pretty good
23:47:21 <shachaf> wow 𪩶
23:47:22 <shachaf> er
23:47:23 <nooodl_> ⪢ i can't even see this one
23:47:25 <shachaf> 2A76 THREE CONSECUTIVE EQUALS SIGNS [⩶]
23:47:29 <nooodl_> but i trust that it looks really nice
23:47:29 <shachaf>
23:47:31 <nooodl_> hahaha
23:47:44 <nooodl_> i can't see that one either but that's actually good
23:47:49 <shachaf> i can see ⪢
23:47:52 <shachaf> "get better fonts"
23:48:12 <shachaf> 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 <nooodl_> because i imagine that they're just haphazardly smashed into a single unicode character "box"
23:48:24 <shachaf> Not in my font!
23:48:26 <nooodl_> that's even better :')
23:48:32 <shachaf> 2AA4 GREATER-THAN OVERLAPPING LESS-THAN [⪤]
23:48:37 <shachaf> Can you see that?
23:48:39 <nooodl_> what's a good font that supports all of these
23:48:40 <nooodl_> nope :/
23:48:47 <shachaf> They're >< overlapping.
23:48:57 <shachaf> I use the font called "Monospace"
23:49:02 <shachaf> "good font imo"
23:49:03 <nooodl_> me too
23:49:08 <oerjan> <Sgeo> @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 <shachaf> 2A94 GREATER-THAN ABOVE SLANTED EQUAL ABOVE LESS-THAN ABOVE SLANTED EQUAL [⪔]
23:49:19 <nooodl_> however xchat2 does all kinds of stupid things
23:49:27 <Sgeo> meh
23:49:31 <shachaf> 2A84 GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE LEFT [⪄]
23:49:40 <kmc> polyspace
23:49:41 <monqy> 💩
23:49:50 <nooodl_> monqy: what's that...
23:50:03 <monqy> U+1F4A9
23:50:07 <Gregor> `cat /proc/version
23:50:09 <nooodl_> i'm installing a unicode font so i can fully enjoy all of these
23:50:10 <Sgeo> undefined is going to be so useful
23:50:11 <HackEgo> 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 <kmc> 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 <Sgeo> Nice to be able to compile incomplete code etc
23:50:19 <nooodl_> wow good monqy
23:50:19 <Gregor> `curl http://google.com/
23:50:19 <kmc> `gcc -V
23:50:21 <HackEgo> gcc: '-V' option must have argument
23:50:22 <HackEgo> ​ % Total % Received % Xferd Average Speed Time Time Time Current \ Dload Upload Total Spent Left Speed \
23:50:22 <kmc> `gcc -v
23:50:24 <HackEgo> 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 <Gregor> `run curl http://google.com/ 2> /dev/null
23:50:32 <HackEgo> ​<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8"> \ <TITLE>301 Moved</TITLE></HEAD><BODY> \ <H1>301 Moved</H1> \ The document has moved \ <A HREF="http://www.google.com/">here</A>.
23:50:33 <shachaf> 2A69 TRIPLE HORIZONTAL BAR WITH TRIPLE VERTICAL STROKE [⩩]
23:50:37 <monqy> 😿
23:50:43 <Lumpio-> So how long to U+1672A RUBBER CHICKEN WITH A PULLEY IN THE MIDDLE
23:50:44 <kmc> Sgeo: did you see that GHC now has a feature to defer type errors to runtime
23:50:46 <Gregor> OK, HackEgo's network access should be considerably more reliable now.
23:50:54 <FreeFull> You want to have Symbola installed
23:50:55 <kmc> an ill-typed term is replaced with error "whatever"
23:50:58 <Sgeo> I'm still on GHC 6.something
23:51:03 <kmc> upgrade
23:51:05 <kmc> ye gads
23:51:11 <Sgeo> I'm on Ubuntu 10.10
23:51:16 <shachaf> it's had that feature for basically forever..........
23:51:19 <kmc> upgrade
23:51:19 <kmc> ye gads
23:51:23 <kmc> shachaf: o?
23:51:23 <FreeFull> `ghc --version`
23:51:23 <FreeFull> The Glorious Glasgow Haskell Compilation System, version 7.6.2
23:51:28 <HackEgo> ghc: unrecognised flags: --version` \ Usage: For basic information, try the `--help' option.
23:51:30 <shachaf> Well, I guess it's new.
23:51:35 <shachaf> OK, it's only since 7.6.
23:51:52 <Sgeo> What I really want is to not lose bindings I make when I :r
23:51:52 <shachaf> So since September.
23:51:54 <Sgeo> in GHCi
23:52:07 <kmc> eternal september
23:52:16 <FreeFull> What I want is a way to remove certain bindings in GHCi
23:52:22 <FreeFull> Without affecting others
23:52:26 <kmc> what i want is a god that stays dead, not plays dead
23:52:43 <Sgeo> :t fromMaybe
23:52:44 <lambdabot> a -> Maybe a -> a
23:52:59 <FreeFull> fromMaybe 3 Nothing
23:53:01 <shachaf> all i want is a monoid
23:53:03 <FreeFull> > fromMaybe 3 Nothing
23:53:05 <lambdabot> 3
23:53:18 <shachaf> what's an adjunction between monoids like
23:53:21 <shachaf> "really boring??"
23:53:49 <FreeFull> Is abs int, 0, + a monoid?
23:53:53 <shachaf> since basically every pair of functors between monoids is an adjunction, or what??
23:53:53 <kmc> shachaf: so easy
23:54:03 <shachaf> theegan
23:54:04 <kmc> FreeFull: what does "abs int" mean?
23:54:21 <FreeFull> kmc: Any negative value becomes positive before any other action is taken
23:54:41 <nooodl_> yeah isn't that Sum
23:54:42 <kmc> no, because 0 + (-5) ≠ -5
23:54:43 <oerjan> <Sgeo> 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 <kmc> so 0 is not an identity
23:55:03 <FreeFull> Is it a semigroup?
23:55:18 <kmc> but the nonnegative integers under 0,+ are a monoid
23:55:21 <Sgeo> let inVal = fromMaybe -1 (fmap ord maybeIn)
23:55:28 <Sgeo> inVal should be an Int after that, right?
23:55:45 <Sgeo> :t fromMaybe -1 (fmap ord Nothing)
23:55:46 <lambdabot> (Num (Maybe Int -> a -> Maybe a -> a), Num (a -> Maybe a -> a)) => a -> Maybe a -> a
23:55:49 <Sgeo> wtf
23:56:07 <oerjan> <Gregor> OK, HackEgo's network access should be considerably more reliable now. <-- yay!
23:56:16 <FreeFull> :t fmap ord
23:56:18 <lambdabot> Functor f => f Char -> f Int
23:56:36 <kmc> :t fromMaybe -1
23:56:36 <shachaf> @ty compare `on` void
23:56:37 <Sgeo> :t fmap
23:56:38 <lambdabot> Num (a -> Maybe a -> a) => a -> Maybe a -> a
23:56:38 <lambdabot> (Functor f, Ord (f ())) => f a -> f a -> Ordering
23:56:38 <lambdabot> Functor f => (a -> b) -> f a -> f b
23:56:39 <kmc> :t fromMaybe (-1)
23:56:40 <lambdabot> Num a => Maybe a -> a
23:56:45 <FreeFull> > fromMaybe -1 (fmap ord Nothing)
23:56:47 <lambdabot> No instances for (GHC.Num.Num (a0 -> Data.Maybe.Maybe a0 -> a0),
23:56:47 <lambdabot> ...
23:56:56 <nooodl_> FreeFull: so mempty is 0, and mappend is (\x y -> abs x + abs y)?
23:56:57 <kmc> :t fromMaybe (-1) (fmap ord Nothing)
23:56:58 <lambdabot> Int
23:57:08 <FreeFull> XD
23:57:16 <Sgeo> Dear Haskell: Please switch to using _ for negatives
23:57:17 <FreeFull> nooodl_: Yes
23:57:25 -!- augur has quit (Remote host closed the connection).
23:57:27 <FreeFull> nooodl_: kmc already showed it isn't a monoid
23:57:38 <Sgeo> Yay! I get a different error now!
23:57:45 <nooodl_> oh, yeah
23:58:26 <oerjan> <kmc> 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 <kmc> :(
23:59:26 <nooodl_> http://en.wikipedia.org/wiki/Group_(mathematics)#Generalizations looks like it's indeed a semigroup. (hey, this table is cool)
23:59:40 <boily> oerjan: again with dead people. are you a zombie or something?
←2013-02-12 2013-02-13 2013-02-14→ ↑2013 ↑all