00:00:05 `ls templates 00:00:06 hp 00:00:07 ^ 00:00:10 esolanginterptemp-ciol- \ termwrapperOut 00:00:13 ^ 00:00:14 So, for example, Generational Haskell comes from transplanting generators (semicoroutines) (something similar to functions) into Haskell (which is purely-functional) 00:00:20 what 00:00:32 oerjan: Me? 00:00:37 `culprits templates 00:00:40 hppavilion[1]: WHAT?! 00:00:52 moon_ moon_ moon_ moon_ moon_ moon_ moon_ moon_ moon_ moon_ moon_ moon_ moon_ 00:00:56 oerjan: what, not even a swat? 00:01:01 (Hm, I just realized that HackEgo responses will still come through when used by someone you've blocked) 00:01:03 * oerjan swats moon_ -----### 00:01:13 hppavilion[1]: why would you extend a language by something the language can already express fairly well... 00:01:22 int-e: That's just one example 00:01:32 shachaf: i could make no sense of it. 00:01:34 int-e: Also, you can generalize the transplanted change into something new 00:01:49 no 00:01:56 not I 00:02:18 oerjan: i guess it applies to my own puns too in that case 00:02:18 int-e: For example, a generator in Haskell- by my understanding- would be like a function together with a queue. When the generator is called, its return values (plural) are enqueued- in order- into the queue 00:02:31 > [1..] 00:02:32 [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,... 00:02:47 Then the head of the queue is popped and returned to the caller 00:02:55 hppavilion[1]: Usually people just use a list. 00:03:01 int-e: I may be misunderstanding generators, though I think that's an iterator 00:03:04 shachaf: Yes, true 00:03:14 Maybe you should learn Haskell. 00:03:14 shachaf: But this allows things like dup x 00:03:19 shachaf: I should 00:03:23 Which returns x 00:03:28 Then the next time it's called it returns x again 00:03:42 I don't follow. 00:03:52 shachaf: I think I misunderstood generators 00:03:59 oerjan: you're not just going to let that pun slide off the screen are you 00:04:24 > unfoldr (\x -> Just (x, x+3)) 2 00:04:25 [2,5,8,11,14,17,20,23,26,29,32,35,38,41,44,47,50,53,56,59,62,65,68,71,74,77,... 00:04:39 shachaf: It's just an example of the concept 00:04:46 there, have some "internal state" 00:05:04 int-e: what if i want side effects hth 00:05:14 shachaf: what pun 00:05:28 shachaf: then Haskell isn't for you... or you are in iteratee territory. 00:05:31 oerjan: the one you didn't make sense of 00:06:01 my #esoteric window is only 80 x 21, anyway. 00:06:03 though perhaps on this channel I should just suggest inlinePerformIO 00:06:32 oerjan: your puns are typically about one sixth of triassic hth 00:06:48 ... I was going to say it should be 80x24 ... but yeah. 80x21 makes sense. 00:06:51 it had slid off before you even started complaining 00:07:05 good thing it's back 00:07:13 int-e: it's sharing vertical space with ##nomic. 00:07:14 I... don't get it either 00:07:25 oerjan: okay. didn't expect that. 00:07:40 oerjan: I expected a 24 lines (standard) xterm with irssi :P 00:07:41 (which only gets 12 lines, being usually silent.) 00:08:07 (-title -status -input) 00:08:08 oerjan: Why is it not tabbed? 00:08:15 int-e: it's a max height window but a rather large font. 00:08:16 oerjan: I mean, pseudo-tabbed 00:08:35 hppavilion[1]: you're making assumptions 00:08:39 and a rather not tall laptop screen 00:08:40 oerjan: Is this a custom IRC client? 00:08:50 hppavilion[1]: irssi inside tmux 00:09:00 but tmux only takes one line 00:09:19 * hppavilion[1] has forgotten what tmux is 00:09:27 It's like screen, only different. 00:09:31 Terminal MULtiplexer 00:09:34 er 00:09:40 MUltipleXer 00:09:41 Ah 00:09:55 ` mk quines/ciol// +jrR+RjRr+++++[-p++++P]p_J----[-P+++p]P-oRJ*done;J 00:09:56 Terminal MUXitrebbel. 00:10:01 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: : not found 00:10:03 oerjan: the pun is "halfassic" hth 00:10:09 ` mk quines/ciol//+jrR+RjRr+++++[-p++++P]p_J----[-P+++p]P-oRJ*done;J 00:10:10 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: : not found 00:10:13 ? 00:10:14 ..... 00:10:15 Ooooooooooooooh 00:10:17 `mk quines/ciol//+jrR+RjRr+++++[-p++++P]p_J----[-P+++p]P-oRJ*done;J 00:10:21 hppavilion[1]: when i tried screen it had trouble with unicode and someone suggested tmux was better 00:10:23 quines/ciol 00:10:32 shachaf: oooh 00:10:34 `cat quines/ciol 00:10:35 ​+jrR+RjRr+++++[-p++++P]p_J----[-P+++p]P-oRJ*done;J 00:10:37 tmux has trouble with unicode too 00:11:24 but not the same trouble 00:11:24 AIUI, screen has a long history of having trouble with Unicode going beyond the BMP. (Is that over now?) 00:11:33 fizzie: I don't think that's over. 00:11:34 `unidecode 亨 00:11:43 ​[U+4EA8 CJK UNIFIED IDEOGRAPH-4EA8] 00:11:44 Last I heard they still didn't support four-byte UTF-8 sequences. 00:12:02 `cat evil 00:12:03 cat: evil: Is a directory 00:12:05 I never know whether to blame screen or something else when that doesn't work. 00:12:10 I am making the UTCE specification more now; I am now writing the part about the Infocom character graphics set. 00:12:13 `cat bin/evil 00:12:14 cat "$(find evil -type f | shuf -n1)" | tr '[:lower:]' '[:upper:]' 00:12:33 My complaint is that I have one tmux session that has two or three clients connected to it at the same time. 00:12:44 I'm only using one of those clients at a time, but I don't want to disconnect the others. 00:12:48 scuse me, please dont interupt meat the sec 00:12:56 `mkdir advice 00:12:58 No output. 00:12:58 moon_: `bookofeso 00:13:03 But tmux always chooses the smallest one for the size of the terminal. 00:13:19 `wisdom 00:13:21 substructural typing/Not to be confused with structural subtyping. 00:13:30 i forgot about that 00:13:31 `? modal logic 00:13:33 `rm wisdom/substructural typing 00:13:33 modal logic? ¯\(°​_o)/¯ 00:13:33 ouch. 00:13:34 `rm advice 00:13:36 No output. 00:13:36 rm: cannot remove `advice': Is a directory 00:13:41 .-. 00:13:46 moon_: About what? 00:13:50 `rmdir advice 00:13:52 No output. 00:13:58 hppavilion[1]: `wisdom 00:14:05 moon_: ... 00:14:17 I got hung up on the concept of interrupt meat. 00:14:22 `` rm canary; list 00:14:28 lol *me at 00:14:39 No, no, meat was better. 00:14:39 hppavilion[1] Phantom_Hoover int-e b_jonas boily a`a`a`a`jo7as a`a`a`a`jo8as a`a`a`a`jo3as a`a`a`a`jo6as a`a`a`a`jo5as a`a`a`a`jo4as a`a`a`a`jo2as a`a`a`a`jo1as a`a`a`a`jonas0 a`a`a`a lambdabot chicken_jonas myname 00:14:49 moon_: To be fair, `wisdom is more definitions whereas `advice could be stuff to do 00:14:51 still no new entries. 00:15:05 heh, true 00:15:07 ill make it then 00:15:12 `mkdir advice 00:15:16 mkdir: cannot create directory `advice': File exists 00:15:16 I don't think we need it. 00:15:19 moon_: Get someone's approval first :P 00:15:26 lol but you approved 00:15:33 moon_: I never approved 00:15:37 moon_: I just made a declaration 00:15:43 eh, true 00:15:46 *nearly* 00:15:59 who thinks we could have `advice? 00:16:16 moon_: I'm not qualified to approve because I love new `s 00:16:21 Could and should are two very different things. 00:16:24 `bookofeso 00:16:27 1:5/And fungot called the cloud internet, and the hard drive *n?x. And the DNS and the server were upon the first day. 00:16:30 Weird 00:16:35 I think HackEgo could and shouldn't have `advice as proposed. 00:16:36 It always says that one 00:16:38 `bookofeso 00:16:40 1:2/And #esoteric was without denizens, and empty; and the order was on the face of the PDP-8. And the software of fungot moved upon the face of the scrollback. 00:17:08 `cat bin/wisdom 00:17:09 F="$(find wisdom -name "*$(echo "$1" | lowercase)*" -type f | shuf -n1)"; echo -n "${F#wisdom/}/" | rnooodl; cat "$F" | rnooodl 00:17:17 so, make it or not 00:17:22 moon_: shachaf vetoes 00:17:26 `wisdom 00:17:28 ruddy/HackEgo? ¯\(°​_o)/¯ 00:17:30 moon_: 5 toes 00:17:33 *sigh* 00:17:43 `wisdom 00:17:44 quit//quit 00:17:45 `` sed -i 's#/"#//"#' bin/wisdom 00:17:48 No output. 00:17:55 If you didn't do anything shachaf vetoed, you wouldn't have a lot of fun. 00:18:03 It comes with being a demisaur. 00:18:03 moon_: The only person here with higher authority than shachaf is fungot iirc 00:18:04 hppavilion[1]: but are the problems only when connecting?' the closest thing to this we have in scheme, but can't 00:18:27 Now the document of UTCE assigns the codes for all DEC Technical characters and all Infocom character graphics, as well as VT100 character graphics, PC character set, Russian alphabets, Apple MouseText, and partially single-wide katakana. 00:19:00 oerjan: Why is it not tabbed? <-- there are other windows not shown 00:19:03 ^style 00:19:04 Available: agora alice c64 ct darwin discworld enron europarl ff7 fisher fungot homestuck ic irc* iwcs jargon lovecraft nethack oots pa qwantz sms speeches ss wp youtube 00:19:09 ^style enron 00:19:09 Selected style: enron (subset of the Enron email dataset) 00:19:20 fungot: looking for a good accountant, can you help 00:19:21 shachaf: market short to them to you on the same as you guys...darlens should probably be march 31 and enron employees on the list that we found the right formula that would not have a second. 00:19:39 That thing didn't turn out none too good. 00:19:40 I also have to add PETSCII. 00:19:53 `culprits quines 00:20:00 moon_ gamemanj oerjan oerjan elliott oerjan ais523 ais523 FreeFull shachaf shachaf shachaf 00:21:03 fungot: hat do you think of the idea of 'advice 00:21:03 moon_: second, we respect the minimum the commission ( " commission" 00:21:12 . o O ( mk evil/101//Smile at a stranger. ) 00:21:51 ls evil 00:22:00 moon_: stop making arbitrary top level directories in HackEgo. 00:22:03 `ls evil 00:22:06 313 00:22:23 -!- hppavilion[1] has set topic: The international hub of solid matrices | logs: http://codu.org/logs/_esoteric/ http://tunes.org/~nef/logs/esoteric/?C=M;O=D | http://esolangs.org/ | https://dl.dropboxusercontent.com/u/2023808/wisdom.pdf | Note: people with cloaks will be treated as if they're from Istanbul (not Konstantiniyye (not Constantinopolis/Constantinople (not Byzantium (not Byzantion)))). 00:22:41 you forgot mordor 00:22:54 `rm wisdom/substructural typing <-- WHAT 00:23:15 `` hg log wisdom/substructural\ typing | grep summary? 00:23:19 No output. 00:23:21 moon_: Those are all previous names of Istanbul 00:23:21 `` hg log wisdom/substructural\ typing | grep summary: 00:23:26 summary: >wisdom/\'substructural typing\' echo Not to be confused with structural subtyping. 00:23:44 oerjan: if you think it should exist feel free to readd it hth 00:24:17 oerjan: Personally, I don't think `wisdom should have "not to be confused with"s that aren't followed by a body 00:24:21 `? structural subtyping 00:24:23 Not to be confused with substructural typing. 00:24:29 Saw that coming 00:24:52 shachaf: See, now it's lonely 00:25:03 shachaf: You killed his brother 00:26:57 shachaf: I keep trying to type Dremel into a PostgreSQL client at home. 00:27:22 fizzie: I wish I could use Dremel. :-( 00:28:29 http://sprunge.us/OUMI <- a rough approximation of the top-50 most referred wisdom entries, in case you want to know what definitely needs keeping. 00:29:15 Wait, why am I so high up? 00:29:24 People are dying to know things about you. 00:29:46 sprø som selleri 00:29:55 `? misspellings of crosant 00:29:56 misspellings of crosant? ¯\(°​_o)/¯ 00:30:01 Keep everyone unless you run out 00:30:06 `? the 00:30:08 the Toe of Harriness's Enclosure 00:30:09 `` cd wisdom; echo *con* 00:30:10 conspirabiology context 00:30:17 `? context 00:30:20 context is a word with many meanings, depending on where it is used. 00:30:27 `? conspirabiology 00:30:28 conspirabiology is where moth colourings form a dot matrix display to send you subliminal messages. 00:31:13 shachaf: FWIW, the person with the most `? shachafs is shachaf. (With a count of 27, a sizeable margin from oerjan's 7.) 00:31:39 sprø som selleri 00:31:52 http://i.stack.imgur.com/uYqPi.png found this while surfing 00:32:09 -22 arguments :P 00:37:15 `` perl -e "print \"not arguing with that \"x22" 00:37:17 not arguing with that not arguing with that not arguing with that not arguing with that not arguing with that not arguing with that not arguing with that not arguing with that not arguing with that not arguing with that not arguing with that not arguing with that not arguing with that not arguing with that not arguing with that not arguing with tha 00:37:38 @quote argument 00:37:38 Axman6 says: Haskell is easy, you just apply functions to arguments, and then you apply them to other arguments. Axman6's girlfriend: I don't like conflict 00:37:44 @quote argument 00:37:44 mike-burns says: Oh good, a semantic argument. Goodnight. 00:37:46 int-e: you don't need `` for perl -e hth 00:37:50 @quote argument 00:37:50 ghc says: Illegal unlifted type argument 00:37:51 @quote argument 00:37:51 Jafet says: unsafeCoerce takes any argument. AND IT WINS THAT ARGUMENT. 00:37:51 @quote argument 00:37:51 ghc says: On Alpha, I can only handle 4 non-floating-point arguments to foreign export dynamic 00:38:25 oerjan: it didn't 00:38:27 `perl -e print 1 00:38:29 1 00:38:52 `perl print 1 00:38:54 Can't open perl script "print 1": No such file or directory 00:38:56 okay. 00:39:06 perl's just too magical. 00:39:08 `? dwim 00:39:09 dwim? ¯\(°​_o)/¯ 00:39:16 `lua -e print(1) 00:39:17 1 00:39:22 some others too 00:40:35 . o O ( dwim/ITYM gwim, guess what I mean. ) 00:41:02 `python -c print(1) 00:41:05 ​ File "", line 1 \ print(1) \ ^ \ IndentationError: unexpected indent 00:41:18 sadly python isn't. 00:41:28 `` python -c 'print(1)' 00:41:30 1 00:41:47 `python -cprint(1) 00:41:48 1 00:41:52 oh that works 00:42:01 There is room for additional non-JIS double-wide characters in UTCE, since banks 0xA0 and 0xFF are not used. 00:42:33 `echo hm 00:42:35 ​ hm 00:42:47 Also character codes 0x80 to 0xA0 and character code 0xFF are not used within any double-wide bank so far. 00:42:55 `? zzo38 00:42:56 zzo38 is not actually the next version of fungot, much as it may seem. 00:44:01 best 404 error page ever: odu.org/ 00:44:12 *https://www-s.acm.illinois.edu/siggraph/eoh_projects/eoh2002.html 00:45:19 @tell boily Moon_: Mhelloon_. what with the snail cannon? <-- i refused to let em use the swatter, so e had to shell out for a personal weapon 00:45:19 Consider it noted. 00:45:49 That's a really old 404 joke, I really don't think acm.illinois.edu is where it originated. 00:45:59 that line feels so empty without a hth 00:46:24 why didn't you hth it 00:46:27 is hth your personal weapon 00:46:41 zzo38: what is UTCE? 00:46:50 and does it have some documentation? 00:46:54 shachaf: didn't you use it first 00:47:00 oerjan: what, hth? 00:47:15 i think i got hth from you 00:47:44 http://motherboard.vice.com/read/probably-the-most-uncanny-404-page "Cole Gleason, chair of ACM@UIUC, tells me that the 404 page dates back at least to 2003. It's not known who wrote it initially." that's a good internet archeology spelunking expedition subject for someone. 00:47:45 FireFly: This document http://zzo38computer.org/textfile/miscellaneous/utce but it is incomplete 00:48:04 FireFly: maybe you should go work with fizzie 00:48:10 @time fizzie 00:48:11 Local time for fizzie is Wed May 4 00:48:10 2016 00:48:41 fizzie: hi shachaf and i can't agree who used hth first twh 00:48:47 -!- Warrigal has changed nick to tswett. 00:49:32 shachaf: perhaps 00:50:59 at least 2001: http://msgboard.snopes.com/cgi-bin/ultimatebb.cgi?ubb=print_topic;f=103;t=000053 00:51:12 oerjan: Well, I mean, my logs aren't any sort of authoritative source, but at least based on a rough search, the first #esoteric occurrence would be 2008-04-22 10:37:29 ITYM "olkoslept" HTH HAND. 00:51:26 fizzie: oooh 00:51:38 shachaf: well surprise out of left field, there 00:52:03 oerjan: i might still have gotten it from you 00:52:03 fizzie: also itym "okloslept" 00:52:16 Plausible. 00:52:17 shachaf: true. 00:52:17 (pretty sure that www.scintilla.utwente.nl site is where I saw it first) 00:52:26 oerjan: some people think "olkoslept" is correct 00:52:32 we should hold an oklopoll 00:53:02 oerjan: The second occurrence in my logs is 2008-08-10 12:32:42 Mostly used in the construction "ITYM 'foo' HTH HAND". -- I think I was explaining something -- and then a gap of almost two years, followed by four comments in 2010 that use the now-familiar lowercase end-of-sentence hth. 00:53:23 darn 00:53:38 four comments in 2010 that use the now-familiar lowercase end-of-sentence? 00:53:41 I can't parse that. 00:53:58 shachaf: try putting "" in quotes 00:54:08 the now-familiar lowercase end-of-sentence what? 00:54:16 Try putting the hth in quotes too hth 00:54:32 * oerjan swats shachaf -----### 00:54:53 (The shachaf hth use starts from 2012-11-20 onwards.) 00:55:07 elliott got mad at me for using hth in #haskell and elsewhere 00:55:11 which was completely fair 00:55:26 also elliott probably got mad at me for other things 00:56:54 plausible. 00:57:56 can we get a plot of hth over time too? 00:58:04 I think I've done that. 00:58:30 hmm, -----HTH 00:58:50 (a clue swatter) 00:59:01 I will attempt to get some sort of a sketch, assuming I can recall what the PostgreSQLese is for strftime_usec. 01:00:59 FireFly: http://sprunge.us/XhiZ there's some per-month counts. 01:02:37 `` grep mad wisdom/elliott 01:02:44 Thanks 01:02:51 No output. 01:03:45 http://xen.firefly.nu/up/2016-05-04_020336.png hm 01:03:50 so it's a summer thing... buzzing mosquitos, chirping cicadas, hthing people 01:04:22 (I was looking at 2013) 01:04:46 "It was the summer of '13", like the song goes. 01:05:15 zzo38: interesting encoding 01:06:45 `olist 1035 <-- huh i was thinking the sound might do that but not that it might _help_ them. 01:07:47 oerjan: I don't think that's a sound. I would guess that it's just a lake. 01:08:55 * oerjan hits shachaf with the saucepan ===\__/ 01:09:49 `mk bin/ciolf//file=$1 data=$(cat "$file") sh -c "ciol $data" 01:09:57 bin/ciolf 01:10:05 `ciolf quine/ciol 01:10:07 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: /hackenv/bin/ciolf: Permission denied \ /home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: /hackenv/bin/ciolf: cannot execute: Permission denied 01:10:14 `mkx bin/ciolf//file=$1 data=$(cat "$file") sh -c "ciol $data" 01:10:19 bin/ciolf 01:10:20 `ciolf quine/ciol 01:10:22 cat: quine/ciol: Not a directory \ Segmentation fault 01:10:43 ls 01:10:45 `ls 01:10:48 ​^ \ :-( \ !\.´ \ 71ab5gx8 \ 99 \ 99bb \ advice \ bdsmreclist \ bin \ canary \ cat \ cdescs \ Complaints.mp3 \ :-D \ daoyu.c \ dog \ emoticons \ equations \ esobible \ etc \ Eternity \ evil \ factor \ foo \ good \ hia \ hw \ ibin \ interps \ karma \ le \ lib \ ls_dev \ marsha \ misle \ paste \ ply-3.8 \ quine \ quines \ quotes \ ReUariBw \ share 01:11:03 `ciolf quines/ciol 01:11:06 Segmentation fault 01:11:10 .- 01:11:47 bb 01:11:48 brb 01:12:15 `mkx bin/ciolf//ciol "$(cat "$1")" 01:12:19 bin/ciolf 01:12:26 `ciolf quines/ciol 01:12:27 ​+jrR+RjRr+++++[-p++++P]p_J----[-P+++p]P-oRJ*done;J 01:12:44 moon_: hth 01:12:49 othx 01:13:59 `ls src 01:14:00 brainfuck.fu \ egobot.tar.xz \ emmental.hs \ factor-linux-x86-64-0.95.tar.gz \ fizziecoin.jpg \ fueue.c \ grph.c \ ploki \ ploki-0.6.5.1.tar.bz2 \ u8tbl.c \ ul.emm 01:14:23 `mkdir src/ciol 01:14:25 No output. 01:14:44 -!- Phantom_Hoover has joined. 01:14:54 `mk src/ciol/helloworld.ciol//rHello, World!; 01:14:56 src/ciol/helloworld.ciol 01:15:08 `ciolf src/ciol/helloworld.ciol 01:15:09 Hello, World! 01:16:06 `mkx bin/bff//bf "$(cat "$1")" 01:16:10 bin/bff 01:16:17 iirc there's an even shorter way than using cat but i always get confused about it. 01:16:26 `bff src/brainfuck.fu 01:16:46 hm 01:16:53 oerjan: < ? 01:16:57 No output. 01:17:08 `` echo efzdfcvfdesfzds | bff src/brainfuck.fu 01:17:15 shachaf: no, it needs to be an argument... 01:17:35 *sigh* 01:17:40 No output. 01:17:43 I don't remember the exact syntax. 01:17:47 `` echo "$(< wisdom/oerjan)" 01:17:50 moon_: that's not a brainfuck program but a brainfuck interpreter in fueue 01:17:53 Your infamous mysterious evil cackling overlord oerjan is a lazy expert in future computation. Also an antediluvian Norwegian who mildly dislikes Roald Dahl. He can never remember the word "amortized" so he put it here for convenience. His arch-nemesis is Betty Crocker. He sometimes puns without noticing it. 01:18:02 shachaf: OKAY 01:18:16 `mkdir src/bf 01:18:17 No output. 01:18:23 src needs some organization 01:18:32 `mkdir src/c 01:18:33 No output. 01:18:39 Why would you organize by language? 01:18:44 moon_: it wasn't big enough for that. 01:18:52 cuz 01:19:07 my little habit 01:19:35 anyways 01:19:47 a file based command for bf and ciol is basically a good thing 01:21:03 shachaf: what do you think? 01:21:25 ? 01:21:31 about ciolf and bff 01:21:40 the file based scripts for ciol and bf 01:22:35 `ciolf src/ciol/helloworld.ciol 01:22:42 Hello, World! 01:23:27 `ls bin 01:23:29 ​` \ `` \ ^.^ \ ̊ \ \ ! \ ? \ ?? \ ¿ \ ' \ @ \ * \ ؟ \ \ \ \ 1492 \ 2014 \ 2015 \ 2016 \ 2017 \ 5quote \ 8ball \ 8-ball \ aaaaaaaaa \ addquote \ aglist \ allquotes \ analogy \ anonlog \ append \ arienvenido \ as86 \ aseen \ asm \ autowelcome \ bardsworthlist \ before \ benvenuto \ bf \ bff \ bienvenido \ bienvenue \ blessyou \ bookof 01:24:32 the problem is that's not very modular :( 01:25:03 also i'm not sure it didn't already exist somewhere. HackEgo has a lot of cruft. 01:25:04 what do you mean? 01:25:23 not very modular ho 01:25:36 moon_: making a new command for every old one. 01:25:49 eh true 01:26:40 gfd`mkx bin/genf//$2 "$(cat "$1")" something that would ork like this (altho this is invalid, think about the $2) would work for that 01:26:53 shachaf: huh. is that there's also the whole interps/ stuff which also contains brainfuck interpreters, although not that easily used on a filename iirc 01:27:52 (interps/ basically is a half-assed port of half of EgoBot's features) 01:28:10 oerjan: I don't understand the 'new command' point 01:28:11 I'm sure it's at least 2.25 asses. 01:28:36 you-can-only-run-this-once is not needed 01:28:39 oh, wait, never mind 01:28:41 it deleted bin's content 01:28:46 `rm bin/you-can-only-run-this-once 01:28:50 FireFly: making both ciolf and bff to add the same feature to ciol and bf 01:28:50 No output. 01:29:16 right, a f command that wraps the functionality would be more useful 01:29:17 `culprits bin/you-can-only-run-this-once 01:29:23 moon_ tswett tswett tswett 01:29:39 http://codu.org/projects/hackbot/fshg/index.cgi/file/2b92018dd204/bin/you-can-only-run-this-once 01:29:41 look 01:30:13 why dont e make one then firefly? 01:30:34 too tired right now 01:30:40 heh 01:30:40 I'd probably get it wrong anyway 01:30:45 same 01:31:07 i'm mostly wondering what to call it. 01:31:24 oer, you need to get onto tswett for that one :P 01:31:44 Yeah, get onto me. 01:31:58 `zalgo shush 01:32:06 oerjan: f works I think 01:32:15 ^ 01:32:29 No output. 01:32:44 So what are we getting on about? 01:32:50 moon_: I think e is supposed to be used as a third person pronoun 01:32:59 moon_: For second person, just use "you" 01:33:01 [20:29] `culprits bin/you-can-only-run-this-once [20:29] moon_ tswett tswett tswett [20:29] http://codu.org/projects/hackbot/fshg/index.cgi/file/2b92018dd204/bin/you-can-only-run-this-once 01:33:12 matches the C file convention 01:33:13 `you-can-only-run-this-once 01:33:14 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: you-can-only-run-this-once: not found 01:33:22 we removed it 01:33:28 e dont need you wiping the bin folder 01:33:34 moon_: Ah 01:33:42 moon_: Huh? 01:33:44 and then the question of whether it should work as `f or `` f 01:33:58 FireFly: I don't know. 01:33:59 `run cat '#!/bin/rm' > bin/you-can-only-run-this-once; chmod +x you-can-only-run-this-once 01:34:03 cat: #!/bin/rm: No such file or directory \ chmod: cannot access `you-can-only-run-this-once': No such file or directory 01:34:12 Whoopsies. 01:34:17 `run echo '#!/bin/rm' > bin/you-can-only-run-this-once; chmod +x you-can-only-run-this-once 01:34:20 chmod: cannot access `you-can-only-run-this-once': No such file or directory 01:34:30 `run chmod +x bin/you-can-only-run-this-once 01:34:33 No output. 01:34:34 hppavilion[1]: try it now! 01:34:39 `you-can-only-run-this-once 01:34:40 tswett isn't up to date on the latest `mkx developments 01:34:42 `ls 01:34:43 No output. 01:34:43 ​^ \ :-( \ !\.´ \ 71ab5gx8 \ 99 \ 99bb \ advice \ bdsmreclist \ bin \ canary \ cat \ cdescs \ Complaints.mp3 \ :-D \ daoyu.c \ dog \ emoticons \ equations \ esobible \ etc \ Eternity \ evil \ factor \ foo \ good \ hia \ hw \ ibin \ interps \ karma \ le \ lib \ ls_dev \ marsha \ misle \ paste \ ply-3.8 \ quine \ quines \ quotes \ ReUariBw \ share 01:34:48 `ls bin 01:34:49 ​` \ `` \ ^.^ \ ̊ \ \ ! \ ? \ ?? \ ¿ \ ' \ @ \ * \ ؟ \ \ \ \ 1492 \ 2014 \ 2015 \ 2016 \ 2017 \ 5quote \ 8ball \ 8-ball \ aaaaaaaaa \ addquote \ aglist \ allquotes \ analogy \ anonlog \ append \ arienvenido \ as86 \ aseen \ asm \ autowelcome \ bardsworthlist \ before \ benvenuto \ bf \ bff \ bienvenido \ bienvenue \ blessyou \ bookof 01:34:49 hppavilion[1]: and again! 01:34:59 `you-can-only-run-this-once 01:34:59 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: you-can-only-run-this-once: not found 01:35:00 bin was deleted -.- 01:35:10 good damn job 01:35:10 `wisdom 01:35:14 monad//Monads are just monoids in the category of endofunctors. 01:35:16 moon_: you mean... bin/bin? 01:35:16 nvm 01:35:24 tswett: A better challenge is you-can-only-run-this-twice 01:35:29 `ls bin bin 01:35:30 ls: cannot access bin bin: No such file or directory 01:35:35 hppavilion[1]: that's an interesting one. 01:35:36 `ls bin/bin 01:35:37 ls: cannot access bin/bin: No such file or directory 01:35:40 `ls bin 01:35:41 ​` \ `` \ ^.^ \ ̊ \ \ ! \ ? \ ?? \ ¿ \ ' \ @ \ * \ ؟ \ \ \ \ 1492 \ 2014 \ 2015 \ 2016 \ 2017 \ 5quote \ 8ball \ 8-ball \ aaaaaaaaa \ addquote \ aglist \ allquotes \ analogy \ anonlog \ append \ arienvenido \ as86 \ aseen \ asm \ autowelcome \ bardsworthlist \ before \ benvenuto \ bf \ bff \ bienvenido \ bienvenue \ blessyou \ bookof 01:35:42 "Run file if it exists, otherwise interpret as code" is a heuristic that rarely goes wrong. And doesn't need extra commands. Maybe with a disambiguation -e argument for those rare cases. 01:35:45 tswett: After that, make you-can-only-run-this-pice 01:36:13 oh god quantum uncertainity has arrived 01:36:15 pi times? Hmm. 01:36:20 tswett: Yes 01:36:31 pi times would need a quantum cpu 01:36:42 tswett: 3 times definitely, then the remaining 0.14159... times are left up to implementation 01:36:55 or that 01:36:57 tswett: The winner is determined by awesomeness of implementation behavior 01:36:57 `1492 01:37:00 Hello, world! 01:37:08 `cat bin/1492 01:37:09 `2017 01:37:12 ​#!/bin/sh \ if [ $(date +%Y) != "$(basename "$0")" ] \ then echo "Hello, world!" \ fi 01:37:13 No output. 01:37:36 `ls -l bin/{1,2}* 01:37:37 ls: invalid option -- ' ' \ Try `ls --help' for more information. 01:37:43 `` ls -l bin/{1,2}* 01:37:46 ​-rwxr-xr-x 1 5000 0 80 Jan 1 00:05 bin/1492 \ -rwxr-xr-x 1 5000 0 79 Dec 9 04:12 bin/2014 \ -rwxr-xr-x 1 5000 0 80 Dec 31 20:32 bin/2015 \ -rwxr-xr-x 1 5000 0 79 Jan 1 18:00 bin/2016 \ -rwxr-xr-x 1 5000 0 79 Jan 1 18:00 bin/2017 01:38:18 `main oerjan 01:38:18 `ciolf src/ciol/helloworld.ciol 01:38:23 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: main: not found 01:38:23 Hello, World! 01:38:27 Whoops 01:38:34 `maim 01:38:34 `maim tswett 01:38:38 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: maim: not found 01:38:38 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: maim: not found 01:39:04 Hackego really needs a way to do /me s 01:39:06 `mk bin/maim// echo $1 has been badly maimed! 01:39:09 bin/maim 01:39:11 `maim hppavilion[1] 01:39:13 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: /hackenv/bin/maim: Permission denied \ /home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: /hackenv/bin/maim: cannot execute: Permission denied 01:39:16 moon_: That's not funny enough 01:39:20 `mkx bin/maim// echo $1 has been badly maimed! 01:39:22 moon_: Also, you didn't mkx 01:39:24 bin/maim 01:39:24 `maim hppavilion[1] 01:39:25 hppavilion[1] has been badly maimed! 01:39:31 *sigh* 01:39:35 I will make a good one 01:39:39 `cat bin/8-ball 01:39:40 ​#!/bin/sh \ shuf -n 1 share/8ballreplies 01:40:55 `mkx bin/maim//shuf -n 1 share/maimery | sed "s/\$target/$1" 01:40:58 bin/maim 01:41:06 `mkx bin/maim//shuf -n 1 jnk/maimery | sed "s/\$target/$1" 01:41:09 bin/maim 01:41:13 `mkx bin/uristfail//echo urist was killed in a goblin seige attempting to retreive a spare sock #temportary 01:41:16 bin/uristfail 01:41:18 hppa 01:41:21 hppavilion[1]: no jnk/ 01:41:23 jnk was deleted 01:41:26 Oh 01:41:27 by oerjan 01:41:31 `mkx bin/maim//shuf -n 1 share/maimery | sed "s/\$target/$1" 01:41:34 bin/maim 01:41:35 -!- tswett_ has joined. 01:41:35 `uristfail 01:41:37 urist was killed in a goblin seige attempting to retreive a spare sock 01:41:41 `mk share/maimery//$target has been badly maimed! 01:41:41 -!- jaboja has quit (Ping timeout: 276 seconds). 01:41:44 share/maimery 01:41:51 `maim oerjan 01:41:52 sed: -e expression #1, char 16: unterminated `s' command 01:41:53 `echo ACTION does something 01:41:54 ​.ACTION does something. 01:41:55 Dammit 01:42:00 `mkx bin/maim//shuf -n 1 share/maimery | sed "s/\$target/$1/" 01:42:02 bin/maim 01:42:05 `maim oerjan 01:42:05 Well, that didn't work. 01:42:07 oerjan has been badly maimed! 01:42:22 Now I will add some new maimery via PM 01:42:28 lol 01:42:32 `unidecode 01:42:54 Well? 01:42:55 make a command to add new maimery hppavilion[1] 01:43:02 U+0001 \ UTF-8: 01 UTF-16BE: 0001 Decimal:  \ . \ Category: Cc (Other, Control) \ Bidi: BN (Boundary Neutral) 01:43:07 * oerjan chants I BEFORE E at moon_ 01:43:08 moon_: No, we don't need one 01:43:29 `f ciol src/ciol/helloworld.ciol 01:43:30 Hello, World! 01:43:31 It's the minimum viable implementation of 'f', but it's there. 01:43:46 What's HackEgo's third-person pronoun? 01:44:17 fizzie: ${1%% *} "$(< ${1#* })" wtf does that mean?! 01:44:28 Well, that didn't work. <-- yeah ACTIONs were disabled when HackEgo added botloop protection. 01:45:04 `f bf 01:45:05 ​/hackenv/bin/f: line 1: ${1#* }: ambiguous redirect 01:45:29 `f ciol src/ciol/helloworld.ciol 01:45:31 Hello, World! 01:45:39 `f ciol 01:45:40 ​/hackenv/bin/f: line 1: ciol: No such file or directory 01:45:43 `maim HackEgo 01:45:44 HackEgo has been badly maimed! 01:45:46 `maim HackEgo 01:45:47 ​*sigh* 01:45:49 `maim HackEgo 01:45:51 Now where did I leave my jumper cables... 01:46:10 `append 01:46:11 ​/hackenv/bin/append: line 1: : No such file or directory 01:46:18 anything similar to append? 01:46:33 -!- tswett_ has quit (Ping timeout: 240 seconds). 01:46:34 I did say it was the minimum viable. Don't expect it to do anything reasonable if you don't actually give it both a command and a file. 01:46:38 moon_: Just use `` echo >> bin/maimery 01:48:11 and don't misspell it 01:48:28 `maim hppavilion[1] 01:48:29 hppavilion[1] has been badly maimed! 01:48:31 And ${1%% *} "$(< ${1#* })" just maps `f foo bar -> foo "$(< bar)" 01:48:32 `maim hppavilion[1] 01:48:33 ​*sigh* 01:48:35 `maim hppavilion[1] 01:48:36 I'll get the bears 01:48:38 `maim hppavilion[1] 01:48:39 Now where did I leave my jumper cables... 01:48:40 `maim hppavilion[1] 01:48:42 ​*draws their sword* 01:48:43 `maim hppavilion[1] 01:48:44 I'll get the bears 01:48:46 `maim hppavilion[1] 01:48:47 hppavilion[1] has been badly maimed! 01:48:49 `maim hppavilion[1] 01:48:49 ​*grumbles something about a broken hacksaw* 01:48:50 moon_: Spaaaaaaaaaaam 01:48:53 `maim hppavilion[1] 01:48:54 ​*sigh* 01:49:00 `cat bin/maimery 01:49:01 just lost an arm! \ just lost an leg! \ just got fried by jumpercables! \ just melted off their fingers! \ just froze off their fingers! 01:49:05 `maim test 01:49:05 :) 01:49:06 ​*grumbles something about a broken hacksaw* 01:49:08 `maim test 01:49:09 I'll get the bears 01:49:10 `maim test 01:49:12 I'll get the bears 01:49:13 `maim test 01:49:14 test has been badly maimed! 01:49:23 moon_: You put it in bin 01:49:26 hppavilion[1]: might want to chop off final spaces 01:49:27 moon_: It should be in share 01:49:33 moon_: I do see why it happened though 01:49:37 you said bin 01:49:37 moon_: My mistake 01:49:47 some other commands had trouble with that and tab expanding nicks 01:49:49 I will fix it 01:50:02 `` echo `cat bin/maimery` >> share/maimery 01:50:05 No output. 01:50:11 `cat share/maimery 01:50:12 ​$target has been badly maimed! \ *draws their sword* \ I'll get the bears \ *sigh* \ Now where did I leave my jumper cables... \ *grumbles something about a broken hacksaw* \ just lost an arm! \ just lost an arm! just lost an leg! just got fried by jumpercables! just melted off their fingers! just froze off their fingers! \ just lost an leg! 01:50:52 `` sed -i 's/!/!\n/' share/maimery 01:50:56 No output. 01:51:00 `cat share/maimery 01:51:01 ​$target has been badly maimed! \ \ *draws their sword* \ I'll get the bears \ *sigh* \ Now where did I leave my jumper cables... \ *grumbles something about a broken hacksaw* \ just lost an arm! \ \ just lost an arm! \ just lost an leg! just got fried by jumpercables! just melted off their fingers! just froze off their fingers! \ just lost an 01:51:14 `maim HackEgo 01:51:14 just got fried by jumpercables! 01:51:16 `maim HackEgo 01:51:17 No output. 01:51:27 i put $target before that 01:51:32 `` sed -i 's/\n /\n$target' share/maimery 01:51:33 sed: -e expression #1, char 15: unterminated `s' command 01:51:38 `` sed -i 's/\n /\n$target/' share/maimery 01:51:40 No output. 01:51:43 `cat share/maimery 01:51:44 ​$target has been badly maimed! \ \ *draws their sword* \ I'll get the bears \ *sigh* \ Now where did I leave my jumper cables... \ *grumbles something about a broken hacksaw* \ just lost an arm! \ \ just lost an arm! \ just lost an leg! just got fried by jumpercables! just melted off their fingers! just froze off their fingers! \ just lost an 01:51:58 `` sed -i '7,$s/^ */$target /' share/maimery 01:52:01 No output. 01:52:02 send halp 01:52:07 oerjan: Oh, right, thank you 01:52:10 argh 01:52:19 hppavilion[1]: except what you did first broke it 01:52:25 oerjan: Oh 01:52:29 or wait 01:52:34 `maim oerjan 01:52:36 oerjan has been badly maimed! 01:52:40 maybe it was already done 01:52:55 hppavilion[1]: as i said, make it strip final space 01:52:57 `` sed -i 's/ */ /' share/maimery 01:53:00 No output. 01:53:07 `maim hppavilion[1] 01:53:09 ​ hppavilion[1] just melted off their fingers! 01:53:12 oerjan: I will when it works 01:53:32 `` sed -i 's/^ //' share/maimery 01:53:35 No output. 01:53:40 `maim hppavilion[1] 01:53:41 hppavilion[1] just melted off their fingers! 01:53:43 `maim hppavilion[1] 01:53:44 hppavilion[1] just melted off their fingers! 01:53:46 Um 01:53:50 um 01:53:52 `cat share/maimery 01:53:53 ​$target has been badly maimed! \ \ *draws their sword* \ I'll get the bears \ *sigh* \ Now where did I leave my jumper cables... \ $target *grumbles something about a broken hacksaw* \ $target just lost an arm! \ $target \ $target just lost an arm! \ $target just lost an leg! just got fried by jumpercables! just melted off their fingers! just 01:54:09 `` sed -i 's/\n*/\n/m' share/maimery 01:54:13 No output. 01:54:15 `cat share/maimery 01:54:16 ​ \ $target has been badly maimed! \ \ \ \ *draws their sword* \ \ I'll get the bears \ \ *sigh* \ \ Now where did I leave my jumper cables... \ \ $target *grumbles something about a broken hacksaw* \ \ $target just lost an arm! \ \ $target \ \ $target just lost an arm! \ \ $target just lost an leg! just got fried by jumpercables! jus 01:54:19 UM 01:54:40 * hppavilion[1] steps away from the keyboard 01:54:43 hppavilion[1]: oh i see the problem. echo `cat bin/maimery` rejoins the lines in bin/maimery with spaces before echoing them. you wanted just cat. 01:54:54 oerjan: Ah 01:54:59 oerjan: Also, bin/maimery 01:55:05 https://catmacros.files.wordpress.com/2009/07/cat-halp-1-1.jpg 01:55:11 *share/maimery 01:55:16 Wait, yes 01:55:20 bin/maimery 02:00:02 also this became a _lot_ harder to fix because you kept (including moon_) kept using HackEgo after the error happened. 02:00:44 *sigh* 02:00:55 let me see. i think a temporary file is in order. 02:01:00 `cat share/maimery 02:01:01 ​ \ $target has been badly maimed! \ \ \ \ *draws their sword* \ \ I'll get the bears \ \ *sigh* \ \ Now where did I leave my jumper cables... \ \ $target *grumbles something about a broken hacksaw* \ \ $target just lost an arm! \ \ $target \ \ $target just lost an arm! \ \ $target just lost an leg! just got fried by jumpercables! jus 02:02:02 `` grep . share/maimery >/tmp/1; mv /tmp/1 share/maimery 02:02:06 No output. 02:02:08 `cat share/maimery 02:02:09 ​$target has been badly maimed! \ *draws their sword* \ I'll get the bears \ *sigh* \ Now where did I leave my jumper cables... \ $target *grumbles something about a broken hacksaw* \ $target just lost an arm! \ $target \ $target just lost an arm! \ $target just lost an leg! just got fried by jumpercables! just melted off their fingers! just fro 02:02:38 -!- moon_ has quit (Ping timeout: 250 seconds). 02:03:40 `` sed -i '6s/[^ ]* //;8d;10s/! just/!\n just/g' share/maimery 02:03:42 No output. 02:03:45 `cat share/maimery 02:03:47 ​$target has been badly maimed! \ *draws their sword* \ I'll get the bears \ *sigh* \ Now where did I leave my jumper cables... \ *grumbles something about a broken hacksaw* \ $target just lost an arm! \ $target just lost an arm! \ $target just lost an leg! \ just got fried by jumpercables! \ just melted off their fingers! \ just froze off the 02:04:10 `tail share/maimery 02:04:11 ​ just melted off their fingers! \ just froze off their fingers! \ $target just lost an leg! \ $target \ $target just got fried by jumpercables! \ $target \ $target just froze off their fingers! \ $target \ $target just melted off their fingers! \ $target 02:04:57 `` grep ' [^ ]' share/maimery >/tmp/1; mv /tmp/1 share/maimery 02:05:02 No output. 02:05:08 `tail share/maimery 02:05:09 ​$target just lost an arm! \ $target just lost an arm! \ $target just lost an leg! \ just got fried by jumpercables! \ just melted off their fingers! \ just froze off their fingers! \ $target just lost an leg! \ $target just got fried by jumpercables! \ $target just froze off their fingers! \ $target just melted off their fingers! 02:05:23 -!- Moon_ has joined. 02:05:25 Switched devices 02:06:24 `` sed -i '7,$s/^ *[^$]/$target /' share/maimery 02:06:28 No output. 02:06:37 `url share/maimery 02:06:39 http://codu.org/projects/hackbot/fshg/index.cgi/file/tip/share/maimery 02:06:48 Lol this is still going? 02:06:59 eep 02:07:06 `revert 02:07:10 `maim oerjan 02:07:18 `tail share/maimery 02:07:19 rm: cannot remove `/home/hackbot/hackbot.hg/multibot_cmds/env/.hg/store/data/canary.orig': Is a directory \ Done. 02:07:21 I'll get the bears 02:07:21 ​$target just lost an arm! \ $target just lost an arm! \ $target just lost an leg! \ just got fried by jumpercables! \ just melted off their fingers! \ just froze off their fingers! \ $target just lost an leg! \ $target just got fried by jumpercables! \ $target just froze off their fingers! \ $target just melted off their fingers! 02:08:04 `` sed -i '7,$s/^ *\([^$ ]\)/$target \1/' share/maimery 02:08:08 No output. 02:08:34 `cat usercmds 02:08:35 cat: usercmds: No such file or directory 02:08:48 `cat shared/usercmds 02:08:49 cat: shared/usercmds: No such file or directory 02:09:05 `cat share/usercmds 02:09:06 f: give the data from a file as the argument to a command like bf \ bf: simple brainfuck intepreter, bf brainfuck code 02:09:25 `` sed -i '7,11d' share/maimery 02:09:27 Needs more cmds 02:09:28 No output. 02:10:25 `` sed -i '7s/an/a/' share/maimery 02:10:30 No output. 02:11:15 obviously, i should have just used vim and `fetch. 02:12:15 -!- Cale has joined. 02:12:21 -!- boily has joined. 02:12:47 khoily 02:13:06 `welcome Cale 02:13:08 I was told to bring my printf library here :D 02:13:10 Cale: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: . (For the other kind of esoterica, try #esoteric on EFnet or DALnet.) 02:13:26 Cale! 02:13:33 took you long enough to get here! 02:13:39 haha 02:13:54 everyone from #haskell seems to make it here eventually 02:14:05 hellowtchrjan. 02:14:08 Well, I have too many channels open 02:14:18 @massages-loud. 02:14:18 oerjan said 2h 28m 45s ago: I'll have you know I punned before shachaf was even born (or so I assume, my memory is a bit vague) 02:14:18 oerjan said 1h 28m 58s ago: Moon_: Mhelloon_. what with the snail cannon? <-- i refused to let em use the swatter, so e had to shell out for a personal weapon 02:14:19 https://hackage.haskell.org/package/category-printf-0.1.0.0 02:14:47 * boily lightly mapoles oerjan with one hand. 02:14:47 (that's the version with the docs already in place but it has screwy upper bounds, so the new version fixes that) 02:15:33 anyway, I use the cokleisli category for the comonad of functions out of a monoid m to get an oddly-practical library for typed printf format specifications 02:15:49 and it's basically a typed stack programming language 02:15:57 *Main> :t printfLn (dup . s . " plus " . swap . dup . s . " equals " . apply2 (+) . s) 02:15:57 printfLn (dup . s . " plus " . swap . dup . s . " equals " . apply2 (+) . s) 02:15:57 :: (Num t, Show t) => t -> t -> IO () 02:15:57 *Main> printfLn (dup . s . " plus " . swap . dup . s . " equals " . apply2 (+) . s) 4 6 02:15:57 4 plus 6 equals 10 02:16:19 `cool rhello calle, our new friend; 02:16:20 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: cool: not found 02:16:33 https://hackage.haskell.org/package/category-printf-0.1.0.1/src/src/Control/Category/Printf.hs -- everything is pretty much a one-liner 02:16:39 Cale: Didn't people make stack languages that you can use with just application, rather than (.)? 02:16:44 -!- Kaynato has joined. 02:16:49 yeah, I've done that before as well... 02:16:51 `ciol rhello cale, our new friend, autocorrect is stupid; 02:16:54 hello cale, our new friend, autocorrect is stupid 02:17:01 Maybe you can make it work here for printfing. 02:17:12 Yea 02:17:13 Cale: oh boy, way to nerdsnipe me 02:17:16 But maybe the OverloadedStrings instance would have to be too general. 02:17:21 coppro: Do you band with other Seans of the Hunt? 02:17:26 You can make programs for hackego 02:17:31 In c 02:17:34 shachaf: hm that reminds me i still got my unfinished fmap experiment open in vim. 02:17:39 * coppro goes to understand the ((->) m) comonad 02:17:39 Hackego is a Unix system 02:17:40 shachaf: probably 02:18:03 Ciol was made in windows and compiled for Unix 02:18:04 coppro: It's the same sort of thing as the (m,) Monad. 02:18:13 coppro: Well, if you think about a function out of a monoid, you can apply that function to the identity, which gives you a natural mapping (m -> a) -> a 02:18:15 Moon_: did you install linux during my absence? 02:18:21 `evil 02:18:23 KILL A PUPPY EVERY DAY. 02:18:26 No 02:18:33 Lazy and shiternet 02:18:52 I think evil is broken 02:18:58 `evil 02:18:58 coppro: and you also have a somewhat obvious way to turn a function (m -> a) into a function (m -> m -> a) which just multiplies its two arguments before applying the given function 02:19:00 KILL A PUPPY EVERY DAY. 02:19:01 * boily stares sternly at Moon_ 02:19:19 Cale: ah right, ok 02:19:28 coppro: so that's your extract and duplicate 02:19:31 right 02:19:40 Evil is broken 02:20:00 extend is (m -> a -> b) -> (m -> a) -> (m -> b)... 02:20:07 `f ciol src/ciol/helloworld.ciol 02:20:14 Hello, World! 02:20:16 oh, that's easy, ok 02:20:16 In c <-- Cale is a haskell expert. sadly HackEgo lost its haskell abilities in a server move. 02:20:20 coppro: Don't worry about extend, you can write it with duplicate and extract. 02:20:25 `cat f 02:20:27 cat: f: No such file or directory 02:20:31 shachaf: it helps me understand the semantics though 02:20:51 Could we reimplent haskell? 02:20:55 For this library, you probably want to think about Cokleisli for that comonad directly 02:21:00 coppro: Also (e ->) is a monad and (e,) is a comonad exactly when e is a comonoid. 02:21:01 Moon_: in fact iirc he once maintained lambdabot 02:21:20 Its identity is just the extract we already talked about 02:21:50 Moon_: haskell is tricky to implement. although i recall Taneb was part of a student project doing it. 02:21:53 shachaf: right. And all haskell types are comonoids, correct? 02:22:21 Well, sure, if you want to be pedantic about it. 02:22:24 hehehe 02:22:36 haha 02:22:43 That's a shame oerjan 02:22:44 (_GHC_ haskell can only be implemented by GHC, though. more extensions than you can shake a stick at.) 02:22:49 huehuehuehuehue 02:23:20 So anyway, for the purposes of this library, we think about Cokleisli ((->) m) a b 02:23:23 oerjan: i've shaken a stick at ghc's extensions before hth 02:24:09 as something which may write something in the monoid m, while "changing the type of printf from a to b", roughly 02:24:18 I think evil is broken <-- no, the creator just got so overwhelmed by what he'd done that he deleted all the entries except one. 02:24:27 -!- jaboja has joined. 02:24:36 Moar entrys 02:24:42 For example, something which adds a responsibility to provide another argument of type t would have type Cokleisli ((->) m) a (t -> a) 02:24:45 Who made it 02:24:46 Cale: how do you get "write something"? 02:25:03 isn't it receiving an m, not producing one? 02:25:13 Well, given some x :: m, you have Cokleisli ($ x) 02:25:33 ($ x) :: (m -> a) -> a 02:25:44 > run (now "hi " . later show . now "!") 1 02:25:44 ah 02:25:45 "hi 1!" 02:25:53 and so Cokleisli ($ x) :: Cokleisli ((->) m) a a 02:26:06 `culprits bin/evil 02:26:11 tswett tswett tswett 02:26:15 Cale: ok, think I follow 02:26:17 Tsweet 02:26:20 Really 02:26:22 `cat bin/evil 02:26:23 cat "$(find evil -type f | shuf -n1)" | tr '[:lower:]' '[:upper:]' 02:26:28 It's not evil enough 02:26:34 `ls evil 02:26:35 313 02:26:35 So we have that as a formatter called c in the library 02:26:35 Cri 02:26:39 Huh 02:26:45 https://hackage.haskell.org/package/category-printf-0.1.0.1/src/src/Control/Category/Printf.hs -- have a look at the source code 02:26:53 TSWEET deleted everything else 02:26:55 c is used to write the IsString instance 02:27:06 instance (a ~ b, IsString s, Monoid s) => IsString (Cokleisli ((->) s) a b) where 02:27:06 fromString = c . fromString 02:27:12 tswett is a bad- wait, no, that doesn't work 02:27:35 The equality constraint is just to help type inference not get confused 02:27:48 ok 02:27:54 ahh I see 02:27:55 It'll commit to the instance, and later decide that a and b really need to be the same type 02:28:11 what is "~" in this context? 02:28:19 oerjan: i've shaken a stick at ghc's extensions before hth <-- well that was before. now there are simply too many kinds hth 02:28:22 a ~ b means that a and b must be the same type 02:28:25 `before 02:28:27 share/maimery//$target has been badly maimed! \ *draws their sword* \ I'll get the bears \ Now where did I leave my jumper cables... \ *grumbles something about a broken hacksaw* \ $target just lost an arm! \ $target just lost an leg! \ $target just got fried by jumpercables! \ $target just froze off their fingers! \ $target just melted off their f 02:28:44 Cale: yep, I see what's happening now 02:28:48 it's really clever! 02:29:18 Yeah, thank Ryan Trinkle for showing me that trick... and he told me whose blog he got it from, but I forget right at the moment 02:29:19 ` 02:29:20 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: : not found 02:29:31 yay, i set a\upna]]]\|\\ 02:29:43 So the next thing after that is i 02:29:45 ya y i set up a better keyboard for my android 02:29:47 i :: Format m a (m -> a) 02:29:47 i = Cokleisli id 02:30:04 Oh, btw, type Format m = Cokleisli ((->) m) 02:30:16 basically just because I got tired of typing all the punctuation 02:30:23 `maim cale 02:30:24 I'll get the bears 02:30:53 Cale: why can't you simply write (Cokleisly ((->) s) a a) if "a" and "b" are the same? 02:30:55 `? Moon_ 02:30:55 Moon_ ? ¯\(°​_o)/¯ 02:31:21 s/sly/sli/ 02:31:37 boily: basically because sometimes GHC won't *know* that the two types are the same when it's trying to figure out which instance of IsString to apply, and it won't commit to the instance in that case 02:31:51 `? Moon 02:31:52 Moon is a person, not an unretroreflectorey object. 02:32:03 Cale: hrm 02:32:12 boily: When it's selecting which instance to apply, GHC won't look at the constraint before the => 02:32:26 yay, i set a\upna]]]\|\\ <-- [citation needed] 02:32:38 and it only considers that part *after* deciding to commit to using that instance 02:33:17 aaaaaah! sudden illumination. 02:33:20 `thanks Cale 02:33:22 Thanks, Cale. Thale. 02:34:42 Cale: ok, let me try to write s now 02:35:02 we have formatString . show :: t -> s 02:35:15 (or t -> m) 02:35:16 fromString, you mean? 02:35:19 err yes 02:35:25 fromString . show :: t -> m 02:36:12 now, i :: Format m a (m -> a) 02:37:27 so... s = (. (fromString . show)) <$> i 02:38:35 yeah, that works 02:40:12 -!- Moon__ has joined. 02:40:25 Back 02:40:42 Moon__: you never left hth 02:40:52 * oerjan now does 02:40:57 lol my client did 02:41:04 I have spliceWith :: (Monoid m) => (t -> m) -> Format m a (t -> a) 02:41:15 and I defined spliceWith f = Cokleisli (. f) 02:41:22 but that's the same as fmap (. f) i 02:41:26 `haskall 02:41:27 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: haskall: not found 02:41:47 and I defined s = spliceWith (fromString . show) 02:42:36 I should add things like padding and more numeric formatting stuff like C printf has. 02:42:56 -!- Moon_ has quit (Ping timeout: 250 seconds). 02:43:32 The other cool thing which is coming soon 02:43:55 Is that reflex is going to get an update in the next few weeks which will add an Applicative instance for Dynamic 02:44:11 and that means that we'll be able to lift monoid instances through Dynamic 02:44:40 and have printfWith dynText using reflex-dom -- a printf with dynamically varying arguments 02:46:12 (and of course, we'll need instance (Reflex t, IsString m) => IsString (Dynamic t m) where fromString = constDyn . fromString 02:46:16 ) 02:48:01 There are various other things which you could do with this and reflex-dom -- e.g. it could be used to string together widgets 02:48:12 Cale: the thing that would stop me from using it, of course, is having to manipulate the stack directly 02:48:28 Well, you don't usually really have to manipulate the stack in sensible uses of it 02:48:51 true 02:49:07 if you want to use an argument multiple times, I wonder if there's a way to get it to work using type-level nats 02:49:21 Probably. 02:49:37 Actually, yes. 02:49:44 yeah I think there is 02:49:46 You can do it with a type class 02:49:54 ah, right! 02:50:57 Also, look at the implementation of the stack manipulation things 02:51:17 It's possible that using arr directly would be preferable to using dup/swap/etc. in most cases 02:52:23 *Main Data.String Control.Arrow> printfLn (arr (\k x y -> k x y (x+y)) . s . " plus " . s . " equals " . s) 4 6 02:52:23 4 plus 6 equals 10 02:52:59 ahhh ok 02:55:36 . o O ( will all this inline away... ) 02:55:42 Which of course means that we can use the proc/do Arrow-notation to write formatters, which I haven't really begun to explore 02:55:56 I bet it does, haha 02:56:07 It's all newtypes and tiny definitions 02:56:28 tiny and non-recursive definitions 02:57:28 oh yeah, arrows are a thing 02:57:56 unfortunately, it doesn't interact with laziness very nicely 02:58:15 Like, if you try f = dup . s . f or something 02:58:25 you can't get it to print an infinite string 02:58:55 -!- hppavilion[1] has quit (Ping timeout: 252 seconds). 02:59:45 -!- boily has quit (Quit: STAIRCASE CHICKEN). 03:01:32 oops, just realised the type of skip is overly restrictive too 03:07:57 But yeah, it's cool, I feel with this, we have a pretty good understanding of what printf format specifiers really "are", in some sense. 03:12:19 yeah 03:12:32 things like this make me wish I was back in academia 03:12:48 I'm actually impressed this didn't require type-level math logic either 03:27:00 I'm just working as a Haskell programmer, and basically a portion of my free time is spent on academic sorts of things :) 03:29:05 `ls ./---##, 03:29:07 ls: cannot access ./---##,: No such file or directory 03:34:32 -!- lambda-11235 has joined. 03:45:20 -!- Phantom_Hoover has quit (Remote host closed the connection). 03:45:36 -!- centrinia has joined. 04:09:35 -!- jaboja has quit (Ping timeout: 244 seconds). 04:15:07 -!- lambda-11235 has quit (Max SendQ exceeded). 04:15:40 -!- lambda-11235 has joined. 04:16:02 oerjan: Maybe Cale can figure out the fmap thing. 04:16:32 Cale: do you work in Brantford? 04:16:52 I spend too much of my free time on gaming stuff & politics for that... 04:19:19 Cale: hah! I googled "cale haskell" and it turns out there's a guy by that name who works at Bungie!? 04:19:51 then I remembered /whois exists 04:19:59 shachaf: what fmap thing? 04:20:33 There were a few different things. 04:21:07 One of them was writing an expression using using only (.) that makes an arbitrary grouping function like (\a b c d e f -> a (b (c d)) (e f)) 04:21:54 do you mean that you're given a grouping function and your goal is to write it using (.)? 04:26:58 -!- MDude has changed nick to MDream. 04:29:50 I have found something I and my brother have written a long time ago about a new kind of Pokemon game, that can be played on PC (it is unclear whether DOS or purely PC) or on Nintendo DS. There was all various sort of strange stuff 04:31:52 One thing was a cheat code to make all of your pokemons to be level 100. On the PC version the cheat code is to push all keys simultaneously, and on the DS version the cheat code is when it ask you for your name, type A and then switch to Japanese and try to add a dakuten mark to the A twenty times (nothing will happen the first nineteen times). 04:39:32 zzo38: Well, the first nineteen times maybe it increments a counter. 04:39:53 If truly nothing happened the first nineteen times then nothing would happen the twentieth time either. 04:40:38 Well, yes, it would increment a counter, but nothing else (no display of such counter or any other effect, and presumably you lose the chance if you do anything else) 04:44:29 -!- Moon__ has quit (Quit: Page closed). 04:45:37 shachaf: what else was there? 04:47:33 If you name your character "VOID" you lose the game instantly. 04:49:27 Also one of the items in the game is a "fuse"; if you use it then it confuses your own active pokemon. 04:49:39 Also it is possible to sell badges. 04:51:01 I think some of the other questions were solved. 04:52:29 -!- centrinia has quit (Quit: Leaving). 04:52:36 shachaf: isn't the one about grouping functions just a special case of @pl? 04:53:05 Well, the original question was whether you could do it without parentheses. 04:53:25 wait what? 04:53:38 how would you do that? 04:58:43 coppro: not with just (.) 04:59:15 oh, like lambdas and stuff? 04:59:58 Before the final set of battles you must enter the "Special Finals", which have several special sets of rules, including such things as 2 vs 1, doing the battle inside of a moving elevator, and other special rules. Also rename/delete is allowed anywhere, and pokemon moves used outside of battle still require PP and cannot be used if you have run out of HP. 05:00:03 coppro: that you can do grouping with combinations of (.) is easy. the next question was whether you can apply that recursively to flatten the grouping function as well. and with just (.) the answer is "obviously" no because (.),(.)(.),(.)(.)(.),... repeats after a while. 05:00:39 coppro: so the question now is, can you do it with only a few functions, each of which are combinations of (.)s 05:01:05 ah 05:01:20 (if you have infinitely many, you can do it: (.).(.).(.). ... . (.) are enough 05:01:22 ) 05:01:56 i.e. you can write any grouping function as f_1 ... f_n where each f_i is of that form. 05:04:01 (n might be 0, which is the only way to get id afaict) 05:04:24 (unless you have id in the basis) 05:05:31 and also, only considering bases of functions that are themselves combinations of (.). if you can use arbitrary combinators not just "grouping", then there's a well-known method using CPS transformation. 05:06:58 so the question is: Is there a finite basis that can construct all groupings this way 05:07:36 i started looking at {(.), (.)(.)} as a possible basis but i lost concentration quickly. 05:08:46 coppro: psst, Cale's surname is in his /whois hth 05:08:49 oh 05:09:00 coppro: never mind me reading scrollback one line at a time 05:18:28 coppro: I live in Brantford and work out of my house. My employer is in New York. 05:19:35 Cale: ahh 05:22:02 coppro: I work for Obsidian Systems on web applications for various clients written entirely in Haskell. 05:22:49 coppro: Especially interesting is that we're using reflex-dom and ghcjs to build the frontends. 05:29:40 -!- pelegreno has quit (Remote host closed the connection). 05:32:00 -!- pelegreno has joined. 05:38:21 -!- centrinia has joined. 05:40:10 -!- pelegreno has quit (Remote host closed the connection). 05:41:21 -!- pelegreno has joined. 05:47:37 Cale: cool 05:48:37 -!- pelegreno has quit (Remote host closed the connection). 05:49:51 -!- pelegreno has joined. 06:07:46 gah! 06:07:52 why is getting the crystal cruiser so hard :( 06:32:02 -!- lambda-11235 has quit (Quit: Bye). 06:35:27 -!- singingboyo has joined. 06:52:15 Adam Yedidia, a PhD student at MIT (but an MEng student when he did most of this work), has explicitly constructed a one-tape, two-symbol Turing machine with 7,918 states, whose behavior (when run on a blank tape) can never be proven from the usual axioms of set theory, under reasonable consistency hypotheses. 06:52:20 http://www.scottaaronson.com/blog/?p=2725 06:56:06 gah scott is really speeding up his posting 06:56:23 * oerjan opened his 5th shtetl-optimized tab 06:59:38 oerjan is clearly not shtetl-optimized-optimized 07:00:15 indeed 07:01:40 well, i'm following comment threads and those have been active last week. 07:01:57 Aether Hack {U} Instant ;; Change text of target spell or permanent by replacing all instances of one named (i.e. not power/toughness) counter type word with another. (Does not affect what a keyword ability does.) Do you like this? 07:06:33 How would you use it? 07:06:44 Hmm, I guess there are various uses. 07:07:22 It seems like maybe it should only work until end of turn, if it's affecting a permanent? 07:08:31 No it lasts permanently like Artificial Evolution and Magical Hack and Sleight of Mind. 07:09:18 Also like those other cards, it can be used with your own and with opponent's cards, possibly including circumstances you have not anticipated. 07:09:24 Oh, I guess that happens. 07:09:32 It should say "(This effect lasts indefinitely.)". 07:11:03 -!- rdococ has joined. 07:11:27 Yes it could have that reminder text if you want to. 07:13:17 You can try to see what possible uses there are, with official cards and/or with other custom cards. One use would be to reset something such as Delaying Shield. Another thing you can do is to replace "experience counter" with "poison counter" or vice-versa. There are a lot more. 07:17:14 You could use it on Dark Depths. 07:18:18 Yes, that too, it can make it to trigger immediately. 07:25:55 -!- Kaynato has quit (Ping timeout: 244 seconds). 07:27:52 -!- pelegreno has quit (Remote host closed the connection). 07:29:07 -!- pelegreno has joined. 07:37:55 -!- singingboyo has quit (Quit: leaving). 07:55:20 -!- oerjan has quit (Quit: leaving). 08:01:32 `? sdl 08:01:41 `? tgm 08:01:44 `? plc 08:01:52 `? mit 08:02:21 plc? ¯\(°​_o)/¯ 08:02:21 mit? ¯\(°​_o)/¯ 08:02:21 tgm? ¯\(°​_o)/¯ 08:02:21 sdl? ¯\(°​_o)/¯ 08:02:35 `? rtc 08:02:38 rtc? ¯\(°​_o)/¯ 09:26:39 -!- AnotherTest has joined. 09:36:38 it's may the 4th 09:40:44 -!- AnotherTest has quit (Ping timeout: 260 seconds). 09:42:50 -!- J_Arcane has quit (Ping timeout: 244 seconds). 10:00:23 -!- nisstyre has quit (Changing host). 10:00:23 -!- nisstyre has joined. 10:31:33 -!- AnotherTest has joined. 11:02:03 Cale : oh. yes i remember figuring out that concatenative language trick, years ago :) 11:02:08 the nice thing with this CPS trick for concatenative is that the stack is naturally heterogenous, and that composition reads from left-to-right (or perhaps that's not nice, depending on how you look at it) .. 11:04:02 the not so nice thing is that it's CPS, perhaps with a very thin wrapping 11:06:17 -!- boily has joined. 11:08:34 well, for clarification, i should say that i didn't have the part involving the monoid `m'. only the CPS part 11:16:31 @massages-loud 11:16:31 You don't have any messages 11:17:04 -!- AnotherTest has quit (Ping timeout: 250 seconds). 11:31:27 -!- AnotherTest has joined. 11:46:23 -!- centrinia has quit (Quit: Leaving). 12:02:45 Subject: So many people out of work...get that Degree and rise to the top 12:03:12 They've added strikeout in the middle of "key" words -- I wonder if that actually does work for avoiding spam filters. 12:03:43 "career>, "program", etc. 12:05:18 Get your Authentic Dr. Fizzie Degree Certificate Now! 12:06:29 This is the one that advertised "No Examination! No Study! No Class!" 12:06:40 And Fast Worldwide Shipping. 12:07:08 It's also "100% Confidenial" [sic], which I can't help thinking is some sort of a pun. 12:08:20 it works to a degree. 12:17:41 -!- ybden has joined. 12:20:38 -!- boily has quit (Quit: SWITCH CHICKEN). 12:34:19 fizzie: Clearly you only can get a pogram from them 12:34:57 -!- J_Arcane has joined. 12:42:57 -!- spiette has quit (Quit: :qa!). 12:57:14 -!- Alcest has joined. 13:10:33 -!- augur has quit (Ping timeout: 240 seconds). 13:44:49 FreeFull: A pogram for my carer. 13:59:12 -!- augur has joined. 14:23:03 -!- Sgeo has quit (Ping timeout: 240 seconds). 14:31:47 -!- `^_^v has joined. 14:39:54 -!- spiette has joined. 14:55:13 -!- Kaynato has joined. 15:07:18 -!- ybden has quit (Ping timeout: 244 seconds). 15:16:45 -!- ybden has joined. 15:17:59 -!- nycs has joined. 15:21:20 -!- `^_^v has quit (Ping timeout: 276 seconds). 15:25:58 -!- nycs has quit (Quit: This computer has gone to sleep). 15:28:31 -!- `^_^v has joined. 15:29:40 -!- `^_^v has quit (Client Quit). 15:32:05 -!- Phantom_Hoover has joined. 15:32:19 someone find oerjan imho 15:35:19 -!- `^_^v has joined. 15:43:13 -!- `^_^v has quit (Quit: This computer has gone to sleep). 15:45:41 -!- `^_^v has joined. 16:14:45 -!- jaboja has joined. 16:28:35 -!- Phantom_Hoover has quit (Quit: Page closed). 16:30:15 "imho"? 16:31:22 (I thought I knew what that means but it doesn't fit in Phantom_Hoover's line) 16:31:30 `? imho 16:31:55 imho? ¯\(°​_o)/¯ 16:32:09 in my horrible opinion 16:42:20 -!- Reece` has joined. 17:11:50 -!- nisstyre has quit (Ping timeout: 276 seconds). 17:13:04 -!- Kaynato has quit (Ping timeout: 252 seconds). 17:14:33 -!- jaboja has quit (Ping timeout: 240 seconds). 17:15:33 -!- nisstyre has joined. 17:15:57 -!- jaboja has joined. 17:42:58 -!- Akaibu has joined. 17:53:42 -!- hppavilion[1] has joined. 17:56:06 Typically honest/humble 17:57:18 I'm designing something that I'm not smart enough to implement... 17:57:45 (Not something impossible, mind you, just something I don't have the required knowledge for (yet!)) 17:59:15 What kind of thing is it? 18:01:57 zzo38: Filesystem 18:02:08 zzo38: It's a sort of improved hybrid between Mobile and Desktop models 18:03:01 zzo38: It creates safer & cleaner & more powerful applications without limiting the user by dividing executables into two types- sandboxed and free-floating (names are just off the top of my head) 18:04:32 zzo38: The sandboxed ones declare all the stuff they need at install time and set up their working environment by telling the OS why sort of things they want- for example, you can have an application where long-term storage is 100% freeform (no file system, just a nice, protected section of non-volatile disk space to use however) 18:07:41 It could still be accessible as a file though so that commands such as dd and mv and rm can be used; if you use rm or rmdir then you can uninstall it. It doesn't seem the filesystem but rather can be made part of design of OS. Internally the storage might look differently but it is helpful to expose as a UNIX filesystem at least. 18:08:23 It mean the user could customize the sandboxing of the program. 18:12:17 zzo38: Yes, using the free-form filesystem layout is discouraged 18:13:09 zzo38: And you can remove a sandboxed application at will, there's a distinction between the application itself (the executable(s) when abstraction is stripped away) and the application's memory space 18:13:26 I think we need a "Politician's Guide to the Interwebz" 18:14:03 -!- jaboja has quit (Ping timeout: 246 seconds). 18:36:21 -!- Phantom_Hoover has joined. 18:46:49 -!- tromp_ has joined. 18:51:12 -!- tromp_ has quit (Ping timeout: 250 seconds). 18:54:22 -!- Kaynato has joined. 18:57:46 I did write the program to reduce colours of a picture to a specified palette (you can independently specify the way to select the best colour per pixel and the dithering algorithm), but not the program to figure out optimized palette, yet. 19:07:56 I don't know if I should need to implement hold-and-modify. 19:15:20 -!- jaboja has joined. 19:17:04 -!- MDream has changed nick to MDude. 19:18:05 -!- gremlins has joined. 19:19:30 -!- Reece` has quit (Ping timeout: 246 seconds). 19:21:29 Today's xkcd made me happy 19:25:04 -!- nisstyre has quit (Changing host). 19:25:04 -!- nisstyre has joined. 19:26:18 -!- jaboja has quit (Ping timeout: 250 seconds). 19:28:13 -!- Kaynato has quit (Ping timeout: 244 seconds). 19:41:53 -!- zzo38 has quit (Quit: zzo38). 19:50:44 hppavilion[1]: I wouldn't mind the snakes 19:50:57 FreeFull: Yes 19:51:06 I also wanna link something to zzo but he left 19:51:07 FreeFull: I think that we should make the Consortium actually do it 19:51:34 I guess I can use memoserv 19:54:33 \oren\: Private Use Block is your friend, BTW 19:59:03 -!- Reece` has joined. 19:59:24 -!- gremlins has quit (Ping timeout: 246 seconds). 20:01:50 20:01:40 -MemoServ(MemoServ@services.)- zzo38 does not wish to receive memos. 20:06:43 -!- rdococ has quit (Quit: Leaving). 20:31:25 [wiki] [[Var'aq]] https://esolangs.org/w/index.php?diff=46920&oldid=36135 * 2.97.117.195 * (+230) /* External resources */ 20:40:42 -!- Reece` has quit (Ping timeout: 246 seconds). 21:13:02 -!- Kaynato has joined. 21:16:07 [wiki] [[Laconic]] N https://esolangs.org/w/index.php?oldid=46921 * B jonas * (+1058) Created page with "'''Laconic''' is a programming language that compiles to a one-tape two-symbol [[Turing machine]]. The goal for its creation was to create two-symbol Turing machines with ver..." 21:17:41 Does Laconic count as an esolang? 21:18:01 b_jonas: Yes 21:18:05 (pun intended) 21:18:06 I think it does, because its sole purpose is to write short programs in another esolang. 21:18:20 I don't think Turing machines count. 21:18:25 But I think Laconic does. 21:19:17 I guess if Mouse counts because its original purpose was to have a very small interpreter, then Laconic is the same idea. 21:23:38 F24DBA5FB0A30E26E83B2AC5B9E29E1B161E5C1FA7425E73043362938B9800chaf 21:23:46 (I spent far too much time on that) 21:23:55 help 21:24:00 what is that 21:24:17 you can't just -chaf any old thing 21:24:20 shachaf: The output of a sha256 hash, converted to hex 21:25:08 hash of what 21:25:24 Oh, wait, I dropped the edges 21:25:31 (I thought they were control characters 21:25:31 ) 21:29:16 OK, I give up 21:29:30 -!- centrinia has joined. 21:29:42 Oh, found it 21:30:02 F24DBA5FB0A30E26E83B2AC5B9E29E1B161E5C1FA7425E73043362938B9824chaf 21:30:05 THERE we go 21:30:28 don't chaf me bro 21:31:31 If normal quantum physics is based on the complexes... 21:31:31 hppavilion[1], wait, any sequence of characters ending with 'chaf' is a SHA256 hash of something 21:31:53 in base 18 21:32:01 or 17 21:32:01 Phantom_Hoover: Yes, but the body of the hash is uppercase and in hex 21:32:06 wait.. no 21:32:07 -!- `^_^v has quit (Ping timeout: 252 seconds). 21:32:09 Phantom_Hoover: Wait, what about the "h"? 21:32:22 Can we substitute the complexes for something weirder to get weird quantum physics? :P 21:33:00 oh i thought you'd found something that hashed to *chaf 21:33:15 starchaf 21:33:49 Phantom_Hoover: Oh, no, that would be stupid 21:34:43 Phantom_Hoover: How would I possibly do that? 21:35:06 brute force 21:35:13 it's how people find bitcoin vanity addresses 21:35:52 -!- `^_^v has joined. 21:36:09 but h isn't an exadecimal character 21:37:58 wow. these two blog posts link each other as sources. 21:38:12 maybe one of the posters have a time machine. 21:38:24 -!- lynn has changed nick to fcrawl. 21:38:30 -!- fcrawl has changed nick to lynn. 21:38:36 lynn: hi fcrawl 21:38:43 shachaf, this is all modulo me misunderstanding the image of SHA256 ofc. 21:39:06 the image of dorian gray 21:47:15 -!- nycs has joined. 21:47:29 -!- `^_^v has quit (Ping timeout: 265 seconds). 22:05:09 shachaf: What is exadecimal, anyway? 22:05:25 Like a hexadecimal, but without the h. 22:05:32 j-bot: 96 128*0.3^2 22:05:32 b_jonas: 8.64 11.52 22:05:47 shachaf: Sure it's not base-1000000000000000000? 22:06:32 Maybe. 22:06:42 Or maybe it's base-10000000000000000000. 22:07:42 000000000000000000 22:07:42 0000000000000000000 22:07:47 Huh. 22:07:50 -!- MDude has quit (Quit: Going offline, see ya! (www.adiirc.com)). 22:09:42 -!- nycs has quit (Quit: This computer has gone to sleep). 22:11:20 -!- `^_^v has joined. 22:12:31 -!- centrinia has quit (Ping timeout: 244 seconds). 22:17:47 shachaf: is dorian gray's image an 8-bit greyscale bmp? 22:20:36 -!- moon_ has joined. 22:20:40 hia 22:21:37 `f 22:21:45 ​/hackenv/bin/f: line 1: ${1#* }: ambiguous redirect \ /hackenv/bin/f: line 1: : command not found 22:21:54 `haskell 22:21:55 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: haskell: not found 22:21:57 `@ 22:22:01 No output. 22:22:04 `@ walrus 22:22:06 No output. 22:22:09 `f ciol rshame haskell doesnt exist; 22:22:09 `cat bin/@ 22:22:21 ​/hackenv/bin/f: line 1: ${1#* }: ambiguous redirect 22:22:21 ​#!/usr/bin/perl -w \ $_ = join " ", @ARGV; if (s/^([^ ]*) +([^ ]*) +//) { print "$1: "; exec $2, $_; } 22:22:57 `cat bin/. 22:22:59 cat: bin/.: Is a directory 22:23:05 `ciol rshame haskell doesnt exist; 22:23:06 shame haskell doesnt exist 22:23:13 `` cat bin/? 22:23:16 ​#!/bin/bash \ TIMEFORMAT="real: %lR, user: %lU, sys: %lS" \ shopt -s extglob globstar \ eval -- "$1" | rnoooooodl \ echo hi \ exec \ #!/bin/sh \ CMD=`echo "$1" | cut -d' ' -f1` \ ARG=`echo "$1" | cut -d' ' -f2-` \ exec ibin/$CMD "$ARG"#!/bin/bash \ topic=$(echo "$1" | lowercase | sed "s/noo\+dl/noooooodl/;s/ *$//") \ topic1=$(echo "$topic" | se 22:23:21 wait, whoops 22:23:26 `` echo bin/? 22:23:27 bin/` bin/̊ bin/ bin/! bin/? bin/¿ bin/' bin/@ bin/* bin/؟ bin/ bin/ bin/e bin/f bin/h bin/q 22:23:39 `؟ 22:23:40 ​/hackenv/bin/؟: line 1: ^: command not found 22:24:16 ؟I am walrus man lord of walrusing 22:24:18 Huh 22:24:28 `¿ halp 22:24:29 ​/hackenv/bin/¿: line 1: ^: command not found 22:24:43 https://catmacros.files.wordpress.com/2009/07/cat-halp-1-1.jpg 22:24:44 `cat bin/¿ 22:24:44 ​? "$@" | rev | tac 22:27:04 `cat bin/bin 22:27:06 cat: bin/bin: No such file or directory 22:27:09 `mkdir bin/bin 22:27:11 No output. 22:27:26 `` echo "echo *sigh*" > bin/bin/bin 22:27:33 No output. 22:27:36 `bin/bin 22:27:38 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: /hackenv/bin/bin: Is a directory \ /home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: /hackenv/bin/bin: cannot execute: Is a directory 22:44:30 Since the minimal f is clearly too difficult to use, added some error messages to when using it wrong. 22:45:05 `cat bin/f 22:45:07 ​#! /bin/bash \ cmd="$1" \ shift \ f="$*" \ if [[ -z "$f" && "$cmd" == *\ * ]]; then f="${cmd#* }"; cmd="${cmd%% *}"; fi \ if [[ -z "$f" ]]; then echo try: \`f command filename; elif [[ -e "$f" ]]; then "$cmd" "$(< "$f")"; else echo no such file: "$f"; fi 22:45:53 `ls 22:45:55 ​^ \ :-( \ !\.´ \ 71ab5gx8 \ 99 \ 99bb \ advice \ bdsmreclist \ bin \ canary \ cat \ cdescs \ Complaints.mp3 \ :-D \ daoyu.c \ dog \ emoticons \ equations \ esobible \ etc \ Eternity \ evil \ factor \ foo \ good \ hia \ hw \ ibin \ interps \ karma \ le \ lib \ lolwhy? \ ls_dev \ marsha \ misle \ paste \ ply-3.8 \ quine \ quines \ quotes \ ReUari 22:46:15 `cat ^ 22:46:16 No output. 22:46:23 `` ls -l ^ 22:46:26 ​-rw-r--r-- 1 5000 0 0 May 1 20:23 ^ 22:46:48 `` ls -l !\\* 22:46:50 ​-rwxr-xr-x 1 5000 0 32 May 1 20:23 !\.´ 22:47:02 `` cat !\\* 22:47:05 echo 'emergency signal toggled' 22:47:38 `cat 71 22:47:39 cat: 71: No such file or directory 22:47:39 er 22:47:44 `cat 71ab5gx8 22:47:45 ​#include 22:48:05 `culprits 71ab5gx8 22:48:23 `rm ^ 71ab5gx8 22:48:23 Moon_ 22:48:24 rm: cannot remove `^ 71ab5gx8': No such file or directory 22:48:26 Huh, there must be a \r in that file. 22:48:34 There's more to it than that. 22:48:40 hm 22:48:49 `paste 71ab5gx8 22:48:53 http://codu.org/projects/hackbot/fshg/index.cgi/file/tip/71ab5gx8 22:49:31 I don't know when HackEgo picked up this "\r terminates the output" thing, I didn't think that was always the case. 22:50:05 But it's clearly not just straightforwardly trying to output it unfiltered, because the standard \rPRIVMSG stuff doesn't do anything bad. 22:50:41 `` echo -e 'foo\nbar\rbaz' # it's just strange 22:50:43 foo \ bar 22:50:54 Maybe it just acts as EOF essentially 22:51:04 Well, yes, but why. 22:51:04 `` echo -e 'foo\r\nbar' 22:51:07 foo 22:51:23 I mean, it would act as EOF essentially if HackEgo *was* passing it through unfiltered. 22:51:23 Yeah, I dunno 22:51:48 hizzie HireFly 22:51:53 hachaf 22:52:05 `ls src 22:52:07 i was telling fizzie to hire you, obviously 22:52:07 bf \ brainfuck.fu \ c \ ciol \ egobot.tar.xz \ emmental.hs \ factor-linux-x86-64-0.95.tar.gz \ fizziecoin.jpg \ fueue.c \ grph.c \ ploki \ ploki-0.6.5.1.tar.bz2 \ u8tbl.c \ ul.emm 22:52:14 HireFly is probably a name for something that exists. 22:52:27 `mv 71ab5gx8 src/bob.c 22:52:28 mv: missing destination file operand after `71ab5gx8 src/bob.c' \ Try `mv --help' for more information. 22:52:30 er 22:52:32 `` mv 71ab5gx8 src/bob.c 22:52:35 I keep doing that 22:52:35 "Hirefly exists to help small and medium sized organizations hire better, so that more people can be engaged in meaningful work." 22:52:37 No output. 22:52:44 `rm ^ 22:52:46 No output. 22:53:00 `cat daoyu.c 22:53:01 ​/* 22:53:06 geez 22:53:21 All these carriages to return. 22:53:36 `` mv daoyu.c src/ 22:53:41 No output. 22:53:45 My professional recommendation for HackEgo spring cleanups is to go via the fshg. 22:53:49 `cat lolwhy? 22:53:50 cat: lolwhy?: Is a directory 22:54:10 fizzie: hmm, right 22:54:26 hi 22:54:30 im alive 22:55:30 `rm lolwhy? 22:55:32 rm: cannot remove `lolwhy?': Is a directory 22:55:37 `rmdir lolwhy? 22:55:38 No output. 23:04:34 -!- AnotherTest has quit (Ping timeout: 260 seconds). 23:14:38 The more I think about the rust language, the more I think that its language level use-once values really add a lot of expressivity to it. 23:16:16 to the moon_ 23:16:55 damnit, the puns are taking revenge on me 23:19:49 what is the largest n for which S(n) has been determined? 23:20:26 I hope S is the successort function here. 23:20:34 successor 23:20:35 Rado S 23:21:39 -!- Sgeo has joined. 23:27:59 quintopia: I think Aaronson's blog post answers that question. 23:29:03 ok 23:30:15 I seem to recall the Wikipedia article having a table. 23:30:30 4, apparently 23:30:37 is the Laconic author in this channel? 23:30:50 we have lower bounds for 5 and 6 23:31:17 and 7 23:33:17 I don't think the author is particularly laconic. 23:34:16 i like that Yedidia has managed to get an academic paper out of a code golf 23:35:13 I wonder if PPCG could improve on the Yedidia TM. 23:35:46 -!- spiette has quit (Quit: :qa!). 23:38:30 goldbach only needs 267 bits 23:38:49 their paper appears to use 4964 23:41:44 -!- Naraka has quit (Remote host closed the connection). 23:42:44 -!- oerjan has joined. 23:47:58 `? imho 23:48:01 imho? ¯\(°​_o)/¯ 23:48:40 `learn IMHO means "In my humble omniscience". 23:48:43 Learned 'imho': IMHO means "In my humble omniscience". 23:49:42 oerjan: In My *Holy* Omniscience 23:49:52 Well, both technically 23:49:54 ooh 23:50:02 `learn IMHO means "In my holy omniscience". 23:50:03 The H is both "Humble" and "Holy" 23:50:06 Relearned 'imho': IMHO means "In my holy omniscience". 23:50:14 hppavilion[1]: thx tdh hand 23:50:49 `learn IMHO means "In My Holy Omniscience". 23:50:52 Relearned 'imho': IMHO means "In My Holy Omniscience". 23:52:21 I'm designing something that I'm not smart enough to implement... <-- tell me, are you _trolling_ for snarks? :P 23:52:37 oerjan: How so? 23:52:48 hppavilion[1]: "that shouldn't be hard" 23:52:49 because i have to resist making one 23:53:38 *reading up on anti-piracy measures* 23:53:46 (which means i failed to meta-resist it, i guess) 23:54:06 moon_: i think the Somalia operation worked pretty well 23:55:47 . o O ( maybe we should send RIAA there on a conference ) 23:56:39 otoh i saw someone get downvoted on reddit for wanting to torrent the ramanujan movie, so there is _some_ nuance there. 23:57:05 I subscribe to the #esoteric school of economics 23:57:10 (What is that school again?) 23:57:21 tromp: well there's a downside to a) targeting turing machines and b) compiling from a comparatively high level language. 23:57:30 hppavilion[1]: mostly cod, some haddock 23:58:39 int-e: y'all did see the aaronson link yesterday? (hm, i've not got around to finish reading it yet) 23:58:47 > f x 23:58:48 No instance for (Show a0) 23:58:48 arising from a use of ‘show_M710835518429648114410516’ 23:58:48 The type variable ‘a0’ is ambiguous 23:59:11 :t f . ($) 23:59:12 (Typeable a, Typeable b, FromExpr c) => (a -> b) -> c 23:59:45 oerjan: well, I saw it mentioned and didn't have time... now I've followed the link to the paper on the esolang page on Laconic