←2016-05-03 2016-05-04 2016-05-05→ ↑2016 ↑all
00:00:05 <moon_> `ls templates
00:00:06 <moon_> hp
00:00:07 <moon_> ^
00:00:10 <HackEgo> esolanginterptemp-ciol- \ termwrapperOut
00:00:13 <moon_> ^
00:00:14 <hppavilion[1]> So, for example, Generational Haskell comes from transplanting generators (semicoroutines) (something similar to functions) into Haskell (which is purely-functional)
00:00:20 <oerjan> what
00:00:32 <hppavilion[1]> oerjan: Me?
00:00:37 <oerjan> `culprits templates
00:00:40 <int-e> hppavilion[1]: WHAT?!
00:00:52 <HackEgo> moon_ moon_ moon_ moon_ moon_ moon_ moon_ moon_ moon_ moon_ moon_ moon_ moon_
00:00:56 <shachaf> oerjan: what, not even a swat?
00:01:01 <hppavilion[1]> (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 <int-e> hppavilion[1]: why would you extend a language by something the language can already express fairly well...
00:01:22 <hppavilion[1]> int-e: That's just one example
00:01:32 <oerjan> shachaf: i could make no sense of it.
00:01:34 <hppavilion[1]> int-e: Also, you can generalize the transplanted change into something new
00:01:49 <int-e> no
00:01:56 <int-e> not I
00:02:18 <shachaf> oerjan: i guess it applies to my own puns too in that case
00:02:18 <hppavilion[1]> 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 <int-e> > [1..]
00:02:32 <lambdabot> [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 <hppavilion[1]> Then the head of the queue is popped and returned to the caller
00:02:55 <shachaf> hppavilion[1]: Usually people just use a list.
00:03:01 <hppavilion[1]> int-e: I may be misunderstanding generators, though I think that's an iterator
00:03:04 <hppavilion[1]> shachaf: Yes, true
00:03:14 <shachaf> Maybe you should learn Haskell.
00:03:14 <hppavilion[1]> shachaf: But this allows things like dup x
00:03:19 <hppavilion[1]> shachaf: I should
00:03:23 <hppavilion[1]> Which returns x
00:03:28 <hppavilion[1]> Then the next time it's called it returns x again
00:03:42 <shachaf> I don't follow.
00:03:52 <hppavilion[1]> shachaf: I think I misunderstood generators
00:03:59 <shachaf> oerjan: you're not just going to let that pun slide off the screen are you
00:04:24 <int-e> > unfoldr (\x -> Just (x, x+3)) 2
00:04:25 <lambdabot> [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 <hppavilion[1]> shachaf: It's just an example of the concept
00:04:46 <int-e> there, have some "internal state"
00:05:04 <shachaf> int-e: what if i want side effects hth
00:05:14 <oerjan> shachaf: what pun
00:05:28 <int-e> shachaf: then Haskell isn't for you... or you are in iteratee territory.
00:05:31 <shachaf> oerjan: the one you didn't make sense of
00:06:01 <oerjan> my #esoteric window is only 80 x 21, anyway.
00:06:03 <int-e> though perhaps on this channel I should just suggest inlinePerformIO
00:06:32 <hppavilion[1]> <shachaf> oerjan: your puns are typically about one sixth of triassic hth
00:06:48 <int-e> ... I was going to say it should be 80x24 ... but yeah. 80x21 makes sense.
00:06:51 <oerjan> it had slid off before you even started complaining
00:07:05 <shachaf> good thing it's back
00:07:13 <oerjan> int-e: it's sharing vertical space with ##nomic.
00:07:14 <hppavilion[1]> I... don't get it either
00:07:25 <int-e> oerjan: okay. didn't expect that.
00:07:40 <int-e> oerjan: I expected a 24 lines (standard) xterm with irssi :P
00:07:41 <oerjan> (which only gets 12 lines, being usually silent.)
00:08:07 <int-e> (-title -status -input)
00:08:08 <hppavilion[1]> oerjan: Why is it not tabbed?
00:08:15 <oerjan> int-e: it's a max height window but a rather large font.
00:08:16 <hppavilion[1]> oerjan: I mean, pseudo-tabbed
00:08:35 <int-e> hppavilion[1]: you're making assumptions
00:08:39 <oerjan> and a rather not tall laptop screen
00:08:40 <hppavilion[1]> oerjan: Is this a custom IRC client?
00:08:50 <oerjan> hppavilion[1]: irssi inside tmux
00:09:00 <oerjan> but tmux only takes one line
00:09:19 * hppavilion[1] has forgotten what tmux is
00:09:27 <fizzie> It's like screen, only different.
00:09:31 <oerjan> Terminal MULtiplexer
00:09:34 <oerjan> er
00:09:40 <oerjan> MUltipleXer
00:09:41 <hppavilion[1]> Ah
00:09:55 <moon_> ` mk quines/ciol// +jrR+RjRr+++++[-p++++P]p_J----[-P+++p]P-oRJ*done;J
00:09:56 <fizzie> Terminal MUXitrebbel.
00:10:01 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: : not found
00:10:03 <shachaf> oerjan: the pun is "halfassic" hth
00:10:09 <moon_> ` mk quines/ciol//+jrR+RjRr+++++[-p++++P]p_J----[-P+++p]P-oRJ*done;J
00:10:10 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: : not found
00:10:13 <moon_> ?
00:10:14 <int-e> .....
00:10:15 <hppavilion[1]> Ooooooooooooooh
00:10:17 <moon_> `mk quines/ciol//+jrR+RjRr+++++[-p++++P]p_J----[-P+++p]P-oRJ*done;J
00:10:21 <oerjan> hppavilion[1]: when i tried screen it had trouble with unicode and someone suggested tmux was better
00:10:23 <HackEgo> quines/ciol
00:10:32 <oerjan> shachaf: oooh
00:10:34 <moon_> `cat quines/ciol
00:10:35 <HackEgo> ​+jrR+RjRr+++++[-p++++P]p_J----[-P+++p]P-oRJ*done;J
00:10:37 <shachaf> tmux has trouble with unicode too
00:11:24 <shachaf> but not the same trouble
00:11:24 <fizzie> AIUI, screen has a long history of having trouble with Unicode going beyond the BMP. (Is that over now?)
00:11:33 <shachaf> fizzie: I don't think that's over.
00:11:34 <int-e> `unidecode 亨
00:11:43 <HackEgo> ​[U+4EA8 CJK UNIFIED IDEOGRAPH-4EA8]
00:11:44 <shachaf> Last I heard they still didn't support four-byte UTF-8 sequences.
00:12:02 <moon_> `cat evil
00:12:03 <HackEgo> cat: evil: Is a directory
00:12:05 <fizzie> I never know whether to blame screen or something else when that doesn't work.
00:12:10 <zzo38> I am making the UTCE specification more now; I am now writing the part about the Infocom character graphics set.
00:12:13 <moon_> `cat bin/evil
00:12:14 <HackEgo> cat "$(find evil -type f | shuf -n1)" | tr '[:lower:]' '[:upper:]'
00:12:33 <shachaf> 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 <shachaf> I'm only using one of those clients at a time, but I don't want to disconnect the others.
00:12:48 <moon_> scuse me, please dont interupt meat the sec
00:12:56 <moon_> `mkdir advice
00:12:58 <HackEgo> No output.
00:12:58 <hppavilion[1]> moon_: `bookofeso
00:13:03 <shachaf> But tmux always chooses the smallest one for the size of the terminal.
00:13:19 <int-e> `wisdom
00:13:21 <HackEgo> substructural typing/Not to be confused with structural subtyping.
00:13:30 <moon_> i forgot about that
00:13:31 <hppavilion[1]> `? modal logic
00:13:33 <shachaf> `rm wisdom/substructural typing
00:13:33 <HackEgo> modal logic? ¯\(°​_o)/¯
00:13:33 <int-e> ouch.
00:13:34 <moon_> `rm advice
00:13:36 <HackEgo> No output.
00:13:36 <HackEgo> rm: cannot remove `advice': Is a directory
00:13:41 <moon_> .-.
00:13:46 <hppavilion[1]> moon_: About what?
00:13:50 <moon_> `rmdir advice
00:13:52 <HackEgo> No output.
00:13:58 <moon_> hppavilion[1]: `wisdom
00:14:05 <hppavilion[1]> moon_: ...
00:14:17 <fizzie> I got hung up on the concept of interrupt meat.
00:14:22 <int-e> `` rm canary; list
00:14:28 <moon_> lol *me at
00:14:39 <fizzie> No, no, meat was better.
00:14:39 <HackEgo> 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 <hppavilion[1]> moon_: To be fair, `wisdom is more definitions whereas `advice could be stuff to do
00:14:51 <int-e> still no new entries.
00:15:05 <moon_> heh, true
00:15:07 <moon_> ill make it then
00:15:12 <moon_> `mkdir advice
00:15:16 <HackEgo> mkdir: cannot create directory `advice': File exists
00:15:16 <shachaf> I don't think we need it.
00:15:19 <hppavilion[1]> moon_: Get someone's approval first :P
00:15:26 <moon_> lol but you approved
00:15:33 <hppavilion[1]> moon_: I never approved
00:15:37 <hppavilion[1]> moon_: I just made a declaration
00:15:43 <moon_> eh, true
00:15:46 <moon_> *nearly*
00:15:59 <moon_> who thinks we could have `advice?
00:16:16 <hppavilion[1]> moon_: I'm not qualified to approve because I love new `s
00:16:21 <fizzie> Could and should are two very different things.
00:16:24 <hppavilion[1]> `bookofeso
00:16:27 <HackEgo> 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 <hppavilion[1]> Weird
00:16:35 <shachaf> I think HackEgo could and shouldn't have `advice as proposed.
00:16:36 <hppavilion[1]> It always says that one
00:16:38 <hppavilion[1]> `bookofeso
00:16:40 <HackEgo> 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 <shachaf> `cat bin/wisdom
00:17:09 <HackEgo> F="$(find wisdom -name "*$(echo "$1" | lowercase)*" -type f | shuf -n1)"; echo -n "${F#wisdom/}/" | rnooodl; cat "$F" | rnooodl
00:17:17 <moon_> so, make it or not
00:17:22 <hppavilion[1]> moon_: shachaf vetoes
00:17:26 <moon_> `wisdom
00:17:28 <HackEgo> ruddy/HackEgo? ¯\(°​_o)/¯
00:17:30 <hppavilion[1]> moon_: 5 toes
00:17:33 <moon_> *sigh*
00:17:43 <moon_> `wisdom
00:17:44 <HackEgo> quit//quit
00:17:45 <shachaf> `` sed -i 's#/"#//"#' bin/wisdom
00:17:48 <HackEgo> No output.
00:17:55 <shachaf> If you didn't do anything shachaf vetoed, you wouldn't have a lot of fun.
00:18:03 <shachaf> It comes with being a demisaur.
00:18:03 <hppavilion[1]> moon_: The only person here with higher authority than shachaf is fungot iirc
00:18:04 <fungot> hppavilion[1]: but are the problems only when connecting?' the closest thing to this we have in scheme, but can't
00:18:27 <zzo38> 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> <hppavilion[1]> oerjan: Why is it not tabbed? <-- there are other windows not shown
00:19:03 <shachaf> ^style
00:19:04 <fungot> Available: agora alice c64 ct darwin discworld enron europarl ff7 fisher fungot homestuck ic irc* iwcs jargon lovecraft nethack oots pa qwantz sms speeches ss wp youtube
00:19:09 <shachaf> ^style enron
00:19:09 <fungot> Selected style: enron (subset of the Enron email dataset)
00:19:20 <shachaf> fungot: looking for a good accountant, can you help
00:19:21 <fungot> 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 <fizzie> That thing didn't turn out none too good.
00:19:40 <zzo38> I also have to add PETSCII.
00:19:53 <oerjan> `culprits quines
00:20:00 <HackEgo> moon_ gamemanj oerjan oerjan elliott oerjan ais523 ais523 FreeFull shachaf shachaf shachaf
00:21:03 <moon_> fungot: hat do you think of the idea of 'advice
00:21:03 <fungot> moon_: second, we respect the minimum the commission ( " commission"
00:21:12 <int-e> . o O ( mk evil/101//Smile at a stranger. )
00:21:51 <moon_> ls evil
00:22:00 <oerjan> moon_: stop making arbitrary top level directories in HackEgo.
00:22:03 <moon_> `ls evil
00:22:06 <HackEgo> 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 <moon_> you forgot mordor
00:22:54 <oerjan> <shachaf> `rm wisdom/substructural typing <-- WHAT
00:23:15 <shachaf> `` hg log wisdom/substructural\ typing | grep summary?
00:23:19 <HackEgo> No output.
00:23:21 <hppavilion[1]> moon_: Those are all previous names of Istanbul
00:23:21 <shachaf> `` hg log wisdom/substructural\ typing | grep summary:
00:23:26 <HackEgo> summary: <shachaf> >wisdom/\'substructural typing\' echo Not to be confused with structural subtyping.
00:23:44 <shachaf> oerjan: if you think it should exist feel free to readd it hth
00:24:17 <hppavilion[1]> 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 <hppavilion[1]> `? structural subtyping
00:24:23 <HackEgo> Not to be confused with substructural typing.
00:24:29 <hppavilion[1]> Saw that coming
00:24:52 <hppavilion[1]> shachaf: See, now it's lonely
00:25:03 <hppavilion[1]> shachaf: You killed his brother
00:26:57 <fizzie> shachaf: I keep trying to type Dremel into a PostgreSQL client at home.
00:27:22 <shachaf> fizzie: I wish I could use Dremel. :-(
00:28:29 <fizzie> 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 <shachaf> Wait, why am I so high up?
00:29:24 <fizzie> People are dying to know things about you.
00:29:46 <FireFly> sprø som selleri
00:29:55 <shachaf> `? misspellings of crosant
00:29:56 <HackEgo> misspellings of crosant? ¯\(°​_o)/¯
00:30:01 <zzo38> Keep everyone unless you run out
00:30:06 <FireFly> `? the
00:30:08 <HackEgo> the Toe of Harriness's Enclosure
00:30:09 <int-e> `` cd wisdom; echo *con*
00:30:10 <HackEgo> conspirabiology context
00:30:17 <int-e> `? context
00:30:20 <HackEgo> context is a word with many meanings, depending on where it is used.
00:30:27 <int-e> `? conspirabiology
00:30:28 <HackEgo> conspirabiology is where moth colourings form a dot matrix display to send you subliminal messages.
00:31:13 <fizzie> 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 <shachaf> sprø som selleri
00:31:52 <moon_> http://i.stack.imgur.com/uYqPi.png found this while surfing
00:32:09 <moon_> -22 arguments :P
00:37:15 <int-e> `` perl -e "print \"not arguing with that \"x22"
00:37:17 <HackEgo> 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 <shachaf> @quote argument
00:37:38 <lambdabot> 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 <shachaf> @quote argument
00:37:44 <lambdabot> mike-burns says: Oh good, a semantic argument. Goodnight.
00:37:46 <oerjan> int-e: you don't need `` for perl -e hth
00:37:50 <shachaf> @quote argument
00:37:50 <lambdabot> ghc says: Illegal unlifted type argument
00:37:51 <shachaf> @quote argument
00:37:51 <lambdabot> Jafet says: unsafeCoerce takes any argument. AND IT WINS THAT ARGUMENT.
00:37:51 <shachaf> @quote argument
00:37:51 <lambdabot> ghc says: On Alpha, I can only handle 4 non-floating-point arguments to foreign export dynamic
00:38:25 <int-e> oerjan: it didn't
00:38:27 <shachaf> `perl -e print 1
00:38:29 <HackEgo> 1
00:38:52 <int-e> `perl print 1
00:38:54 <HackEgo> Can't open perl script "print 1": No such file or directory
00:38:56 <int-e> okay.
00:39:06 <int-e> perl's just too magical.
00:39:08 <int-e> `? dwim
00:39:09 <HackEgo> dwim? ¯\(°​_o)/¯
00:39:16 <oerjan> `lua -e print(1)
00:39:17 <HackEgo> 1
00:39:22 <oerjan> some others too
00:40:35 <int-e> . o O ( dwim/ITYM gwim, guess what I mean. )
00:41:02 <oerjan> `python -c print(1)
00:41:05 <HackEgo> ​ File "<string>", line 1 \ print(1) \ ^ \ IndentationError: unexpected indent
00:41:18 <oerjan> sadly python isn't.
00:41:28 <oerjan> `` python -c 'print(1)'
00:41:30 <HackEgo> 1
00:41:47 <oerjan> `python -cprint(1)
00:41:48 <HackEgo> 1
00:41:52 <oerjan> oh that works
00:42:01 <zzo38> There is room for additional non-JIS double-wide characters in UTCE, since banks 0xA0 and 0xFF are not used.
00:42:33 <oerjan> `echo hm
00:42:35 <HackEgo> ​ hm
00:42:47 <zzo38> Also character codes 0x80 to 0xA0 and character code 0xFF are not used within any double-wide bank so far.
00:42:55 <int-e> `? zzo38
00:42:56 <HackEgo> zzo38 is not actually the next version of fungot, much as it may seem.
00:44:01 <moon_> best 404 error page ever: odu.org/
00:44:12 <moon_> *https://www-s.acm.illinois.edu/siggraph/eoh_projects/eoh2002.html
00:45:19 <oerjan> @tell boily <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 <lambdabot> Consider it noted.
00:45:49 <fizzie> That's a really old 404 joke, I really don't think acm.illinois.edu is where it originated.
00:45:59 <oerjan> that line feels so empty without a hth
00:46:24 <shachaf> why didn't you hth it
00:46:27 <shachaf> is hth your personal weapon
00:46:41 <FireFly> zzo38: what is UTCE?
00:46:50 <FireFly> and does it have some documentation?
00:46:54 <oerjan> shachaf: didn't you use it first
00:47:00 <shachaf> oerjan: what, hth?
00:47:15 <shachaf> i think i got hth from you
00:47:44 <fizzie> 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 <zzo38> FireFly: This document http://zzo38computer.org/textfile/miscellaneous/utce but it is incomplete
00:48:04 <shachaf> FireFly: maybe you should go work with fizzie
00:48:10 <shachaf> @time fizzie
00:48:11 <lambdabot> Local time for fizzie is Wed May 4 00:48:10 2016
00:48:41 <oerjan> 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 <FireFly> shachaf: perhaps
00:50:59 <int-e> at least 2001: http://msgboard.snopes.com/cgi-bin/ultimatebb.cgi?ubb=print_topic;f=103;t=000053
00:51:12 <fizzie> 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 <fizzie> ITYM "olkoslept" HTH HAND.
00:51:26 <oerjan> fizzie: oooh
00:51:38 <oerjan> shachaf: well surprise out of left field, there
00:52:03 <shachaf> oerjan: i might still have gotten it from you
00:52:03 <oerjan> fizzie: also itym "okloslept"
00:52:16 <fizzie> Plausible.
00:52:17 <oerjan> shachaf: true.
00:52:17 <int-e> (pretty sure that www.scintilla.utwente.nl site is where I saw it first)
00:52:26 <shachaf> oerjan: some people think "olkoslept" is correct
00:52:32 <shachaf> we should hold an oklopoll
00:53:02 <fizzie> oerjan: The second occurrence in my logs is 2008-08-10 12:32:42 <fizzie> 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 <oerjan> comments in 2010 that use the now-familiar lowercase end-of-sentence hth.
00:53:23 <oerjan> darn
00:53:38 <shachaf> four <oerjan> comments in 2010 that use the now-familiar lowercase end-of-sentence?
00:53:41 <shachaf> I can't parse that.
00:53:58 <oerjan> shachaf: try putting "<oerjan>" in quotes
00:54:08 <shachaf> the now-familiar lowercase end-of-sentence what?
00:54:16 <fizzie> Try putting the hth in quotes too hth
00:54:32 * oerjan swats shachaf -----###
00:54:53 <fizzie> (The shachaf hth use starts from 2012-11-20 onwards.)
00:55:07 <shachaf> elliott got mad at me for using hth in #haskell and elsewhere
00:55:11 <shachaf> which was completely fair
00:55:26 <shachaf> also elliott probably got mad at me for other things
00:56:54 <oerjan> plausible.
00:57:56 <FireFly> can we get a plot of hth over time too?
00:58:04 <fizzie> I think I've done that.
00:58:30 <int-e> hmm, -----HTH
00:58:50 <int-e> (a clue swatter)
00:59:01 <fizzie> I will attempt to get some sort of a sketch, assuming I can recall what the PostgreSQLese is for strftime_usec.
01:00:59 <fizzie> FireFly: http://sprunge.us/XhiZ there's some per-month counts.
01:02:37 <int-e> `` grep mad wisdom/elliott
01:02:44 <FireFly> Thanks
01:02:51 <HackEgo> No output.
01:03:45 <FireFly> http://xen.firefly.nu/up/2016-05-04_020336.png hm
01:03:50 <int-e> so it's a summer thing... buzzing mosquitos, chirping cicadas, hthing people
01:04:22 <int-e> (I was looking at 2013)
01:04:46 <fizzie> "It was the summer of '13", like the song goes.
01:05:15 <FireFly> zzo38: interesting encoding
01:06:45 <oerjan> <shachaf> `olist 1035 <-- huh i was thinking the sound might do that but not that it might _help_ them.
01:07:47 <shachaf> 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 <moon_> `mk bin/ciolf//file=$1 data=$(cat "$file") sh -c "ciol $data"
01:09:57 <HackEgo> bin/ciolf
01:10:05 <moon_> `ciolf quine/ciol
01:10:07 <HackEgo> ​/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 <moon_> `mkx bin/ciolf//file=$1 data=$(cat "$file") sh -c "ciol $data"
01:10:19 <HackEgo> bin/ciolf
01:10:20 <moon_> `ciolf quine/ciol
01:10:22 <HackEgo> cat: quine/ciol: Not a directory \ Segmentation fault
01:10:43 <moon_> ls
01:10:45 <moon_> `ls
01:10:48 <HackEgo> ​^ \ :-( \ !\.´ \ 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 <moon_> `ciolf quines/ciol
01:11:06 <HackEgo> Segmentation fault
01:11:10 <moon_> .-
01:11:47 <moon_> bb
01:11:48 <moon_> brb
01:12:15 <oerjan> `mkx bin/ciolf//ciol "$(cat "$1")"
01:12:19 <HackEgo> bin/ciolf
01:12:26 <oerjan> `ciolf quines/ciol
01:12:27 <HackEgo> ​+jrR+RjRr+++++[-p++++P]p_J----[-P+++p]P-oRJ*done;J
01:12:44 <oerjan> moon_: hth
01:12:49 <moon_> othx
01:13:59 <moon_> `ls src
01:14:00 <HackEgo> brainfuck.fu \ egobot.tar.xz \ emmental.hs \ factor-linux-x86-64-0.95.tar.gz \ fizziecoin.jpg \ fueue.c \ grph.c \ ploki \ ploki- \ u8tbl.c \ ul.emm
01:14:23 <moon_> `mkdir src/ciol
01:14:25 <HackEgo> No output.
01:14:44 -!- Phantom_Hoover has joined.
01:14:54 <moon_> `mk src/ciol/helloworld.ciol//rHello, World!;
01:14:56 <HackEgo> src/ciol/helloworld.ciol
01:15:08 <moon_> `ciolf src/ciol/helloworld.ciol
01:15:09 <HackEgo> Hello, World!
01:16:06 <moon_> `mkx bin/bff//bf "$(cat "$1")"
01:16:10 <HackEgo> bin/bff
01:16:17 <oerjan> iirc there's an even shorter way than using cat but i always get confused about it.
01:16:26 <moon_> `bff src/brainfuck.fu
01:16:46 <oerjan> hm
01:16:53 <shachaf> oerjan: < ?
01:16:57 <HackEgo> No output.
01:17:08 <moon_> `` echo efzdfcvfdesfzds | bff src/brainfuck.fu
01:17:15 <oerjan> shachaf: no, it needs to be an argument...
01:17:35 <moon_> *sigh*
01:17:40 <HackEgo> No output.
01:17:43 <shachaf> I don't remember the exact syntax.
01:17:47 <shachaf> `` echo "$(< wisdom/oerjan)"
01:17:50 <oerjan> moon_: that's not a brainfuck program but a brainfuck interpreter in fueue
01:17:53 <HackEgo> 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 <oerjan> shachaf: OKAY
01:18:16 <moon_> `mkdir src/bf
01:18:17 <HackEgo> No output.
01:18:23 <moon_> src needs some organization
01:18:32 <moon_> `mkdir src/c
01:18:33 <HackEgo> No output.
01:18:39 <shachaf> Why would you organize by language?
01:18:44 <oerjan> moon_: it wasn't big enough for that.
01:18:52 <moon_> cuz
01:19:07 <moon_> my little habit
01:19:35 <moon_> anyways
01:19:47 <moon_> a file based command for bf and ciol is basically a good thing
01:21:03 <moon_> shachaf: what do you think?
01:21:25 <shachaf> ?
01:21:31 <moon_> about ciolf and bff
01:21:40 <moon_> the file based scripts for ciol and bf
01:22:35 <moon_> `ciolf src/ciol/helloworld.ciol
01:22:42 <HackEgo> Hello, World!
01:23:27 <moon_> `ls bin
01:23:29 <HackEgo> ​` \ `` \ ^.^ \ ̊ \ \ ! \ ? \ ?? \ ¿ \ ' \ @ \ * \ ؟ \ \ \ \ 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 <oerjan> the problem is that's not very modular :(
01:25:03 <oerjan> also i'm not sure it didn't already exist somewhere. HackEgo has a lot of cruft.
01:25:04 <moon_> what do you mean?
01:25:23 <moon_> not very modular ho
01:25:36 <oerjan> moon_: making a new command for every old one.
01:25:49 <moon_> eh true
01:26:40 <moon_> 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 <FireFly> shachaf: huh. is that <filename behaviour POSIX, or just a bash extension?
01:27:08 <oerjan> there's also the whole interps/ stuff which also contains brainfuck interpreters, although not that easily used on a filename iirc
01:27:52 <oerjan> (interps/ basically is a half-assed port of half of EgoBot's features)
01:28:10 <FireFly> oerjan: I don't understand the 'new command' point
01:28:11 <fizzie> I'm sure it's at least 2.25 asses.
01:28:36 <moon_> you-can-only-run-this-once is not needed
01:28:39 <FireFly> oh, wait, never mind
01:28:41 <moon_> it deleted bin's content
01:28:46 <moon_> `rm bin/you-can-only-run-this-once
01:28:50 <oerjan> FireFly: making both ciolf and bff to add the same feature to ciol and bf
01:28:50 <HackEgo> No output.
01:29:16 <FireFly> right, a f command that wraps the functionality would be more useful
01:29:17 <oerjan> `culprits bin/you-can-only-run-this-once
01:29:23 <HackEgo> moon_ tswett tswett tswett
01:29:39 <moon_> http://codu.org/projects/hackbot/fshg/index.cgi/file/2b92018dd204/bin/you-can-only-run-this-once
01:29:41 <moon_> look
01:30:13 <moon_> why dont e make one then firefly?
01:30:34 <FireFly> too tired right now
01:30:40 <moon_> heh
01:30:40 <FireFly> I'd probably get it wrong anyway
01:30:45 <moon_> same
01:31:07 <oerjan> i'm mostly wondering what to call it.
01:31:24 <moon_> oer, you need to get onto tswett for that one :P
01:31:44 <tswett> Yeah, get onto me.
01:31:58 <moon_> `zalgo shush
01:32:06 <FireFly> oerjan: f works I think
01:32:15 <moon_> ^
01:32:29 <HackEgo> No output.
01:32:44 <tswett> So what are we getting on about?
01:32:50 <hppavilion[1]> moon_: I think e is supposed to be used as a third person pronoun
01:32:59 <hppavilion[1]> moon_: For second person, just use "you"
01:33:01 <moon_> [20:29] <oerjan> `culprits bin/you-can-only-run-this-once [20:29] <HackEgo> moon_ tswett tswett tswett [20:29] <moon_> http://codu.org/projects/hackbot/fshg/index.cgi/file/2b92018dd204/bin/you-can-only-run-this-once
01:33:12 <FireFly> matches the C file convention
01:33:13 <hppavilion[1]> `you-can-only-run-this-once
01:33:14 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: you-can-only-run-this-once: not found
01:33:22 <moon_> we removed it
01:33:28 <moon_> e dont need you wiping the bin folder
01:33:34 <hppavilion[1]> moon_: Ah
01:33:42 <hppavilion[1]> moon_: Huh?
01:33:44 <oerjan> and then the question of whether it should work as `f or `` f
01:33:58 <shachaf> FireFly: I don't know.
01:33:59 <tswett> `run cat '#!/bin/rm' > bin/you-can-only-run-this-once; chmod +x you-can-only-run-this-once
01:34:03 <HackEgo> 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 <tswett> Whoopsies.
01:34:17 <tswett> `run echo '#!/bin/rm' > bin/you-can-only-run-this-once; chmod +x you-can-only-run-this-once
01:34:20 <HackEgo> chmod: cannot access `you-can-only-run-this-once': No such file or directory
01:34:30 <tswett> `run chmod +x bin/you-can-only-run-this-once
01:34:33 <HackEgo> No output.
01:34:34 <tswett> hppavilion[1]: try it now!
01:34:39 <hppavilion[1]> `you-can-only-run-this-once
01:34:40 <oerjan> tswett isn't up to date on the latest `mkx developments
01:34:42 <moon_> `ls
01:34:43 <HackEgo> No output.
01:34:43 <HackEgo> ​^ \ :-( \ !\.´ \ 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 <moon_> `ls bin
01:34:49 <HackEgo> ​` \ `` \ ^.^ \ ̊ \ \ ! \ ? \ ?? \ ¿ \ ' \ @ \ * \ ؟ \ \ \ \ 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 <tswett> hppavilion[1]: and again!
01:34:59 <hppavilion[1]> `you-can-only-run-this-once
01:34:59 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: you-can-only-run-this-once: not found
01:35:00 <moon_> bin was deleted -.-
01:35:10 <moon_> good damn job
01:35:10 <hppavilion[1]> `wisdom
01:35:14 <HackEgo> monad//Monads are just monoids in the category of endofunctors.
01:35:16 <tswett> moon_: you mean... bin/bin?
01:35:16 <moon_> nvm
01:35:24 <hppavilion[1]> tswett: A better challenge is you-can-only-run-this-twice
01:35:29 <moon_> `ls bin bin
01:35:30 <HackEgo> ls: cannot access bin bin: No such file or directory
01:35:35 <tswett> hppavilion[1]: that's an interesting one.
01:35:36 <moon_> `ls bin/bin
01:35:37 <HackEgo> ls: cannot access bin/bin: No such file or directory
01:35:40 <moon_> `ls bin
01:35:41 <HackEgo> ​` \ `` \ ^.^ \ ̊ \ \ ! \ ? \ ?? \ ¿ \ ' \ @ \ * \ ؟ \ \ \ \ 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 <fizzie> "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 <hppavilion[1]> tswett: After that, make you-can-only-run-this-pice
01:36:13 <moon_> oh god quantum uncertainity has arrived
01:36:15 <tswett> pi times? Hmm.
01:36:20 <hppavilion[1]> tswett: Yes
01:36:31 <moon_> pi times would need a quantum cpu
01:36:42 <hppavilion[1]> tswett: 3 times definitely, then the remaining 0.14159... times are left up to implementation
01:36:55 <moon_> or that
01:36:57 <hppavilion[1]> tswett: The winner is determined by awesomeness of implementation behavior
01:36:57 <FireFly> `1492
01:37:00 <HackEgo> Hello, world!
01:37:08 <FireFly> `cat bin/1492
01:37:09 <moon_> `2017
01:37:12 <HackEgo> ​#!/bin/sh \ if [ $(date +%Y) != "$(basename "$0")" ] \ then echo "Hello, world!" \ fi
01:37:13 <HackEgo> No output.
01:37:36 <FireFly> `ls -l bin/{1,2}*
01:37:37 <HackEgo> ls: invalid option -- ' ' \ Try `ls --help' for more information.
01:37:43 <FireFly> `` ls -l bin/{1,2}*
01:37:46 <HackEgo> ​-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 <hppavilion[1]> `main oerjan
01:38:18 <moon_> `ciolf src/ciol/helloworld.ciol
01:38:23 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: main: not found
01:38:23 <HackEgo> Hello, World!
01:38:27 <hppavilion[1]> Whoops
01:38:34 <moon_> `maim
01:38:34 <hppavilion[1]> `maim tswett
01:38:38 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: maim: not found
01:38:38 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: maim: not found
01:39:04 <hppavilion[1]> Hackego really needs a way to do /me s
01:39:06 <moon_> `mk bin/maim// echo $1 has been badly maimed!
01:39:09 <HackEgo> bin/maim
01:39:11 <moon_> `maim hppavilion[1]
01:39:13 <HackEgo> ​/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 <hppavilion[1]> moon_: That's not funny enough
01:39:20 <moon_> `mkx bin/maim// echo $1 has been badly maimed!
01:39:22 <hppavilion[1]> moon_: Also, you didn't mkx
01:39:24 <HackEgo> bin/maim
01:39:24 <moon_> `maim hppavilion[1]
01:39:25 <HackEgo> hppavilion[1] has been badly maimed!
01:39:31 <hppavilion[1]> *sigh*
01:39:35 <hppavilion[1]> I will make a good one
01:39:39 <hppavilion[1]> `cat bin/8-ball
01:39:40 <HackEgo> ​#!/bin/sh \ shuf -n 1 share/8ballreplies
01:40:55 <hppavilion[1]> `mkx bin/maim//shuf -n 1 share/maimery | sed "s/\$target/$1"
01:40:58 <HackEgo> bin/maim
01:41:06 <hppavilion[1]> `mkx bin/maim//shuf -n 1 jnk/maimery | sed "s/\$target/$1"
01:41:09 <HackEgo> bin/maim
01:41:13 <moon_> `mkx bin/uristfail//echo urist was killed in a goblin seige attempting to retreive a spare sock #temportary
01:41:16 <HackEgo> bin/uristfail
01:41:18 <moon_> hppa
01:41:21 <oerjan> hppavilion[1]: no jnk/
01:41:23 <moon_> jnk was deleted
01:41:26 <hppavilion[1]> Oh
01:41:27 <moon_> by oerjan
01:41:31 <hppavilion[1]> `mkx bin/maim//shuf -n 1 share/maimery | sed "s/\$target/$1"
01:41:34 <HackEgo> bin/maim
01:41:35 -!- tswett_ has joined.
01:41:35 <moon_> `uristfail
01:41:37 <HackEgo> urist was killed in a goblin seige attempting to retreive a spare sock
01:41:41 <hppavilion[1]> `mk share/maimery//$target has been badly maimed!
01:41:41 -!- jaboja has quit (Ping timeout: 276 seconds).
01:41:44 <HackEgo> share/maimery
01:41:51 <hppavilion[1]> `maim oerjan
01:41:52 <HackEgo> sed: -e expression #1, char 16: unterminated `s' command
01:41:53 <tswett_> `echo <CTCP>ACTION does something<CTCP>
01:41:54 <HackEgo> ​.ACTION does something.
01:41:55 <hppavilion[1]> Dammit
01:42:00 <hppavilion[1]> `mkx bin/maim//shuf -n 1 share/maimery | sed "s/\$target/$1/"
01:42:02 <HackEgo> bin/maim
01:42:05 <hppavilion[1]> `maim oerjan
01:42:05 <tswett> Well, that didn't work.
01:42:07 <HackEgo> oerjan has been badly maimed!
01:42:22 <hppavilion[1]> Now I will add some new maimery via PM
01:42:28 <moon_> lol
01:42:32 <tswett_> `unidecode <CTCP>
01:42:54 <tswett> Well?
01:42:55 <moon_> make a command to add new maimery hppavilion[1]
01:43:02 <HackEgo> U+0001 <control> \ UTF-8: 01 UTF-16BE: 0001 Decimal: &#1; \ . \ Category: Cc (Other, Control) \ Bidi: BN (Boundary Neutral)
01:43:07 * oerjan chants I BEFORE E at moon_
01:43:08 <hppavilion[1]> moon_: No, we don't need one
01:43:29 <fizzie> `f ciol src/ciol/helloworld.ciol
01:43:30 <HackEgo> Hello, World!
01:43:31 <fizzie> It's the minimum viable implementation of 'f', but it's there.
01:43:46 <hppavilion[1]> What's HackEgo's third-person pronoun?
01:44:17 <moon_> fizzie: ${1%% *} "$(< ${1#* })" wtf does that mean?!
01:44:28 <oerjan> <tswett> Well, that didn't work. <-- yeah ACTIONs were disabled when HackEgo added botloop protection.
01:45:04 <moon_> `f bf
01:45:05 <HackEgo> ​/hackenv/bin/f: line 1: ${1#* }: ambiguous redirect
01:45:29 <moon_> `f ciol src/ciol/helloworld.ciol
01:45:31 <HackEgo> Hello, World!
01:45:39 <moon_> `f ciol
01:45:40 <HackEgo> ​/hackenv/bin/f: line 1: ciol: No such file or directory
01:45:43 <hppavilion[1]> `maim HackEgo
01:45:44 <HackEgo> HackEgo has been badly maimed!
01:45:46 <hppavilion[1]> `maim HackEgo
01:45:47 <HackEgo> ​*sigh*
01:45:49 <hppavilion[1]> `maim HackEgo
01:45:51 <HackEgo> Now where did I leave my jumper cables...
01:46:10 <moon_> `append
01:46:11 <HackEgo> ​/hackenv/bin/append: line 1: : No such file or directory
01:46:18 <moon_> anything similar to append?
01:46:33 -!- tswett_ has quit (Ping timeout: 240 seconds).
01:46:34 <fizzie> 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 <hppavilion[1]> moon_: Just use `` echo <whatever> >> bin/maimery
01:48:11 <oerjan> and don't misspell it
01:48:28 <moon_> `maim hppavilion[1]
01:48:29 <HackEgo> hppavilion[1] has been badly maimed!
01:48:31 <fizzie> And ${1%% *} "$(< ${1#* })" just maps `f foo bar -> foo "$(< bar)"
01:48:32 <moon_> `maim hppavilion[1]
01:48:33 <HackEgo> ​*sigh*
01:48:35 <moon_> `maim hppavilion[1]
01:48:36 <HackEgo> I'll get the bears
01:48:38 <moon_> `maim hppavilion[1]
01:48:39 <HackEgo> Now where did I leave my jumper cables...
01:48:40 <moon_> `maim hppavilion[1]
01:48:42 <HackEgo> ​*draws their sword*
01:48:43 <moon_> `maim hppavilion[1]
01:48:44 <HackEgo> I'll get the bears
01:48:46 <moon_> `maim hppavilion[1]
01:48:47 <HackEgo> hppavilion[1] has been badly maimed!
01:48:49 <moon_> `maim hppavilion[1]
01:48:49 <HackEgo> ​*grumbles something about a broken hacksaw*
01:48:50 <hppavilion[1]> moon_: Spaaaaaaaaaaam
01:48:53 <moon_> `maim hppavilion[1]
01:48:54 <HackEgo> ​*sigh*
01:49:00 <moon_> `cat bin/maimery
01:49:01 <HackEgo> 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 <oerjan> `maim test
01:49:05 <hppavilion[1]> :)
01:49:06 <HackEgo> ​*grumbles something about a broken hacksaw*
01:49:08 <oerjan> `maim test
01:49:09 <HackEgo> I'll get the bears
01:49:10 <oerjan> `maim test
01:49:12 <HackEgo> I'll get the bears
01:49:13 <oerjan> `maim test
01:49:14 <HackEgo> test has been badly maimed!
01:49:23 <hppavilion[1]> moon_: You put it in bin
01:49:26 <oerjan> hppavilion[1]: might want to chop off final spaces
01:49:27 <hppavilion[1]> moon_: It should be in share
01:49:33 <hppavilion[1]> moon_: I do see why it happened though
01:49:37 <moon_> you said bin
01:49:37 <hppavilion[1]> moon_: My mistake
01:49:47 <oerjan> some other commands had trouble with that and tab expanding nicks
01:49:49 <hppavilion[1]> I will fix it
01:50:02 <hppavilion[1]> `` echo `cat bin/maimery` >> share/maimery
01:50:05 <HackEgo> No output.
01:50:11 <hppavilion[1]> `cat share/maimery
01:50:12 <HackEgo> ​$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 <hppavilion[1]> `` sed -i 's/!/!\n/' share/maimery
01:50:56 <HackEgo> No output.
01:51:00 <hppavilion[1]> `cat share/maimery
01:51:01 <HackEgo> ​$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 <moon_> `maim HackEgo
01:51:14 <HackEgo> just got fried by jumpercables!
01:51:16 <moon_> `maim HackEgo
01:51:17 <HackEgo> No output.
01:51:27 <moon_> i put $target before that
01:51:32 <hppavilion[1]> `` sed -i 's/\n /\n$target' share/maimery
01:51:33 <HackEgo> sed: -e expression #1, char 15: unterminated `s' command
01:51:38 <hppavilion[1]> `` sed -i 's/\n /\n$target/' share/maimery
01:51:40 <HackEgo> No output.
01:51:43 <hppavilion[1]> `cat share/maimery
01:51:44 <HackEgo> ​$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 <oerjan> `` sed -i '7,$s/^ */$target /' share/maimery
01:52:01 <HackEgo> No output.
01:52:02 <moon_> send halp
01:52:07 <hppavilion[1]> oerjan: Oh, right, thank you
01:52:10 <oerjan> argh
01:52:19 <oerjan> hppavilion[1]: except what you did first broke it
01:52:25 <hppavilion[1]> oerjan: Oh
01:52:29 <oerjan> or wait
01:52:34 <hppavilion[1]> `maim oerjan
01:52:36 <HackEgo> oerjan has been badly maimed!
01:52:40 <oerjan> maybe it was already done
01:52:55 <oerjan> hppavilion[1]: as i said, make it strip final space
01:52:57 <hppavilion[1]> `` sed -i 's/ */ /' share/maimery
01:53:00 <HackEgo> No output.
01:53:07 <hppavilion[1]> `maim hppavilion[1]
01:53:09 <HackEgo> ​ hppavilion[1] just melted off their fingers!
01:53:12 <hppavilion[1]> oerjan: I will when it works
01:53:32 <hppavilion[1]> `` sed -i 's/^ //' share/maimery
01:53:35 <HackEgo> No output.
01:53:40 <hppavilion[1]> `maim hppavilion[1]
01:53:41 <HackEgo> hppavilion[1] just melted off their fingers!
01:53:43 <hppavilion[1]> `maim hppavilion[1]
01:53:44 <HackEgo> hppavilion[1] just melted off their fingers!
01:53:46 <hppavilion[1]> Um
01:53:50 <moon_> um
01:53:52 <hppavilion[1]> `cat share/maimery
01:53:53 <HackEgo> ​$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 <hppavilion[1]> `` sed -i 's/\n*/\n/m' share/maimery
01:54:13 <HackEgo> No output.
01:54:15 <hppavilion[1]> `cat share/maimery
01:54:16 <HackEgo> ​ \ $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 <hppavilion[1]> UM
01:54:40 * hppavilion[1] steps away from the keyboard
01:54:43 <oerjan> 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 <hppavilion[1]> oerjan: Ah
01:54:59 <hppavilion[1]> oerjan: Also, bin/maimery
01:55:05 <moon_> https://catmacros.files.wordpress.com/2009/07/cat-halp-1-1.jpg
01:55:11 <hppavilion[1]> *share/maimery
01:55:16 <hppavilion[1]> Wait, yes
01:55:20 <hppavilion[1]> bin/maimery
02:00:02 <oerjan> also this became a _lot_ harder to fix because you kept (including moon_) kept using HackEgo after the error happened.
02:00:44 <oerjan> *sigh*
02:00:55 <oerjan> let me see. i think a temporary file is in order.
02:01:00 <oerjan> `cat share/maimery
02:01:01 <HackEgo> ​ \ $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 <oerjan> `` grep . share/maimery >/tmp/1; mv /tmp/1 share/maimery
02:02:06 <HackEgo> No output.
02:02:08 <oerjan> `cat share/maimery
02:02:09 <HackEgo> ​$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 <oerjan> `` sed -i '6s/[^ ]* //;8d;10s/! just/!\n just/g' share/maimery
02:03:42 <HackEgo> No output.
02:03:45 <oerjan> `cat share/maimery
02:03:47 <HackEgo> ​$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 <oerjan> `tail share/maimery
02:04:11 <HackEgo> ​ 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 <oerjan> `` grep ' [^ ]' share/maimery >/tmp/1; mv /tmp/1 share/maimery
02:05:02 <HackEgo> No output.
02:05:08 <oerjan> `tail share/maimery
02:05:09 <HackEgo> ​$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 <Moon_> Switched devices
02:06:24 <oerjan> `` sed -i '7,$s/^ *[^$]/$target /' share/maimery
02:06:28 <HackEgo> No output.
02:06:37 <oerjan> `url share/maimery
02:06:39 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/file/tip/share/maimery
02:06:48 <Moon_> Lol this is still going?
02:06:59 <oerjan> eep
02:07:06 <oerjan> `revert
02:07:10 <Moon_> `maim oerjan
02:07:18 <oerjan> `tail share/maimery
02:07:19 <HackEgo> rm: cannot remove `/home/hackbot/hackbot.hg/multibot_cmds/env/.hg/store/data/canary.orig': Is a directory \ Done.
02:07:21 <HackEgo> I'll get the bears
02:07:21 <HackEgo> ​$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 <oerjan> `` sed -i '7,$s/^ *\([^$ ]\)/$target \1/' share/maimery
02:08:08 <HackEgo> No output.
02:08:34 <Moon_> `cat usercmds
02:08:35 <HackEgo> cat: usercmds: No such file or directory
02:08:48 <Moon_> `cat shared/usercmds
02:08:49 <HackEgo> cat: shared/usercmds: No such file or directory
02:09:05 <Moon_> `cat share/usercmds
02:09:06 <HackEgo> 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 <oerjan> `` sed -i '7,11d' share/maimery
02:09:27 <Moon_> Needs more cmds
02:09:28 <HackEgo> No output.
02:10:25 <oerjan> `` sed -i '7s/an/a/' share/maimery
02:10:30 <HackEgo> No output.
02:11:15 <oerjan> obviously, i should have just used vim and `fetch.
02:12:15 -!- Cale has joined.
02:12:21 -!- boily has joined.
02:12:47 <oerjan> khoily
02:13:06 <shachaf> `welcome Cale
02:13:08 <Cale> I was told to bring my printf library here :D
02:13:10 <HackEgo> Cale: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: <http://esolangs.org/>. (For the other kind of esoterica, try #esoteric on EFnet or DALnet.)
02:13:26 <coppro> Cale!
02:13:33 <coppro> took you long enough to get here!
02:13:39 <Cale> haha
02:13:54 <coppro> everyone from #haskell seems to make it here eventually
02:14:05 <boily> hellowtchrjan.
02:14:08 <Cale> Well, I have too many channels open
02:14:18 <boily> @massages-loud.
02:14:18 <lambdabot> 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 <lambdabot> oerjan said 1h 28m 58s ago: <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
02:14:19 <Cale> https://hackage.haskell.org/package/category-printf-
02:14:47 * boily lightly mapoles oerjan with one hand.
02:14:47 <Cale> (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 <Cale> 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 <Cale> and it's basically a typed stack programming language
02:15:57 <Cale> *Main> :t printfLn (dup . s . " plus " . swap . dup . s . " equals " . apply2 (+) . s)
02:15:57 <Cale> printfLn (dup . s . " plus " . swap . dup . s . " equals " . apply2 (+) . s)
02:15:57 <Cale> :: (Num t, Show t) => t -> t -> IO ()
02:15:57 <Cale> *Main> printfLn (dup . s . " plus " . swap . dup . s . " equals " . apply2 (+) . s) 4 6
02:15:57 <Cale> 4 plus 6 equals 10
02:16:19 <Moon_> `cool rhello calle, our new friend;
02:16:20 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: cool: not found
02:16:33 <Cale> https://hackage.haskell.org/package/category-printf- -- everything is pretty much a one-liner
02:16:39 <shachaf> 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 <Cale> yeah, I've done that before as well...
02:16:51 <Moon_> `ciol rhello cale, our new friend, autocorrect is stupid;
02:16:54 <HackEgo> hello cale, our new friend, autocorrect is stupid
02:17:01 <shachaf> Maybe you can make it work here for printfing.
02:17:12 <Moon_> Yea
02:17:13 <coppro> Cale: oh boy, way to nerdsnipe me
02:17:16 <shachaf> But maybe the OverloadedStrings instance would have to be too general.
02:17:21 <shachaf> coppro: Do you band with other Seans of the Hunt?
02:17:26 <Moon_> You can make programs for hackego
02:17:31 <Moon_> In c
02:17:34 <oerjan> 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 <Moon_> Hackego is a Unix system
02:17:40 <coppro> shachaf: probably
02:18:03 <Moon_> Ciol was made in windows and compiled for Unix
02:18:04 <shachaf> coppro: It's the same sort of thing as the (m,) Monad.
02:18:13 <Cale> 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 <boily> Moon_: did you install linux during my absence?
02:18:21 <Moon_> `evil
02:18:23 <HackEgo> KILL A PUPPY EVERY DAY.
02:18:26 <Moon_> No
02:18:33 <Moon_> Lazy and shiternet
02:18:52 <Moon_> I think evil is broken
02:18:58 <Moon_> `evil
02:18:58 <Cale> 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 <HackEgo> KILL A PUPPY EVERY DAY.
02:19:01 * boily stares sternly at Moon_
02:19:19 <coppro> Cale: ah right, ok
02:19:28 <Cale> coppro: so that's your extract and duplicate
02:19:31 <coppro> right
02:19:40 <Moon_> Evil is broken
02:20:00 <coppro> extend is (m -> a -> b) -> (m -> a) -> (m -> b)...
02:20:07 <Moon_> `f ciol src/ciol/helloworld.ciol
02:20:14 <HackEgo> Hello, World!
02:20:16 <coppro> oh, that's easy, ok
02:20:16 <oerjan> <Moon_> In c <-- Cale is a haskell expert. sadly HackEgo lost its haskell abilities in a server move.
02:20:20 <shachaf> coppro: Don't worry about extend, you can write it with duplicate and extract.
02:20:25 <Moon_> `cat f
02:20:27 <HackEgo> cat: f: No such file or directory
02:20:31 <coppro> shachaf: it helps me understand the semantics though
02:20:51 <Moon_> Could we reimplent haskell?
02:20:55 <Cale> For this library, you probably want to think about Cokleisli for that comonad directly
02:21:00 <shachaf> coppro: Also (e ->) is a monad and (e,) is a comonad exactly when e is a comonoid.
02:21:01 <oerjan> Moon_: in fact iirc he once maintained lambdabot
02:21:20 <Cale> Its identity is just the extract we already talked about
02:21:50 <oerjan> Moon_: haskell is tricky to implement. although i recall Taneb was part of a student project doing it.
02:21:53 <coppro> shachaf: right. And all haskell types are comonoids, correct?
02:22:21 <shachaf> Well, sure, if you want to be pedantic about it.
02:22:24 <Cale> hehehe
02:22:36 <coppro> haha
02:22:43 <Moon_> That's a shame oerjan
02:22:44 <oerjan> (_GHC_ haskell can only be implemented by GHC, though. more extensions than you can shake a stick at.)
02:22:49 <boily> huehuehuehuehue
02:23:20 <Cale> So anyway, for the purposes of this library, we think about Cokleisli ((->) m) a b
02:23:23 <shachaf> oerjan: i've shaken a stick at ghc's extensions before hth
02:24:09 <Cale> as something which may write something in the monoid m, while "changing the type of printf from a to b", roughly
02:24:18 <oerjan> <Moon_> 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 <Moon_> Moar entrys
02:24:42 <Cale> 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 <Moon_> Who made it
02:24:46 <coppro> Cale: how do you get "write something"?
02:25:03 <coppro> isn't it receiving an m, not producing one?
02:25:13 <Cale> Well, given some x :: m, you have Cokleisli ($ x)
02:25:33 <Cale> ($ x) :: (m -> a) -> a
02:25:44 <shachaf> > run (now "hi " . later show . now "!") 1
02:25:44 <coppro> ah
02:25:45 <lambdabot> "hi 1!"
02:25:53 <Cale> and so Cokleisli ($ x) :: Cokleisli ((->) m) a a
02:26:06 <Moon_> `culprits bin/evil
02:26:11 <HackEgo> tswett tswett tswett
02:26:15 <coppro> Cale: ok, think I follow
02:26:17 <Moon_> Tsweet
02:26:20 <Moon_> Really
02:26:22 <hppavilion[1]> `cat bin/evil
02:26:23 <HackEgo> cat "$(find evil -type f | shuf -n1)" | tr '[:lower:]' '[:upper:]'
02:26:28 <Moon_> It's not evil enough
02:26:34 <hppavilion[1]> `ls evil
02:26:35 <HackEgo> 313
02:26:35 <Cale> So we have that as a formatter called c in the library
02:26:35 <Moon_> Cri
02:26:39 <hppavilion[1]> Huh
02:26:45 <Cale> https://hackage.haskell.org/package/category-printf- -- have a look at the source code
02:26:53 <Moon_> TSWEET deleted everything else
02:26:55 <Cale> c is used to write the IsString instance
02:27:06 <Cale> instance (a ~ b, IsString s, Monoid s) => IsString (Cokleisli ((->) s) a b) where
02:27:06 <Cale> fromString = c . fromString
02:27:12 <hppavilion[1]> tswett is a bad- wait, no, that doesn't work
02:27:35 <Cale> The equality constraint is just to help type inference not get confused
02:27:48 <coppro> ok
02:27:54 <coppro> ahh I see
02:27:55 <Cale> It'll commit to the instance, and later decide that a and b really need to be the same type
02:28:11 <boily> what is "~" in this context?
02:28:19 <oerjan> <shachaf> 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 <Cale> a ~ b means that a and b must be the same type
02:28:25 <shachaf> `before
02:28:27 <HackEgo> 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 <coppro> Cale: yep, I see what's happening now
02:28:48 <coppro> it's really clever!
02:29:18 <Cale> 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 <Moon_> `
02:29:20 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: : not found
02:29:31 <Moon_> yay, i set a\upna]]]\|\\
02:29:43 <Cale> So the next thing after that is i
02:29:45 <Moon_> ya y i set up a better keyboard for my android
02:29:47 <Cale> i :: Format m a (m -> a)
02:29:47 <Cale> i = Cokleisli id
02:30:04 <Cale> Oh, btw, type Format m = Cokleisli ((->) m)
02:30:16 <Cale> basically just because I got tired of typing all the punctuation
02:30:23 <Moon_> `maim cale
02:30:24 <HackEgo> I'll get the bears
02:30:53 <boily> Cale: why can't you simply write (Cokleisly ((->) s) a a) if "a" and "b" are the same?
02:30:55 <oerjan> `? Moon_
02:30:55 <HackEgo> Moon_ ? ¯\(°​_o)/¯
02:31:21 <boily> s/sly/sli/
02:31:37 <Cale> 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_> `? Moon
02:31:52 <HackEgo> Moon is a person, not an unretroreflectorey object.
02:32:03 <coppro> Cale: hrm
02:32:12 <Cale> boily: When it's selecting which instance to apply, GHC won't look at the constraint before the =>
02:32:26 <oerjan> <Moon_> yay, i set a\upna]]]\|\\ <-- [citation needed]
02:32:38 <Cale> and it only considers that part *after* deciding to commit to using that instance
02:33:17 <boily> aaaaaah! sudden illumination.
02:33:20 <boily> `thanks Cale
02:33:22 <HackEgo> Thanks, Cale. Thale.
02:34:42 <coppro> Cale: ok, let me try to write s now
02:35:02 <coppro> we have formatString . show :: t -> s
02:35:15 <coppro> (or t -> m)
02:35:16 <Cale> fromString, you mean?
02:35:19 <coppro> err yes
02:35:25 <coppro> fromString . show :: t -> m
02:36:12 <coppro> now, i :: Format m a (m -> a)
02:37:27 <coppro> so... s = (. (fromString . show)) <$> i
02:38:35 <Cale> yeah, that works
02:40:12 -!- Moon__ has joined.
02:40:25 <Moon__> Back
02:40:42 <oerjan> Moon__: you never left hth
02:40:52 * oerjan now does
02:40:57 <Moon__> lol my client did
02:41:04 <Cale> I have spliceWith :: (Monoid m) => (t -> m) -> Format m a (t -> a)
02:41:15 <Cale> and I defined spliceWith f = Cokleisli (. f)
02:41:22 <Cale> but that's the same as fmap (. f) i
02:41:26 <Moon__> `haskall
02:41:27 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: haskall: not found
02:41:47 <Cale> and I defined s = spliceWith (fromString . show)
02:42:36 <Cale> 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 <Cale> The other cool thing which is coming soon
02:43:55 <Cale> 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 <Cale> and that means that we'll be able to lift monoid instances through Dynamic
02:44:40 <Cale> and have printfWith dynText using reflex-dom -- a printf with dynamically varying arguments
02:46:12 <Cale> (and of course, we'll need instance (Reflex t, IsString m) => IsString (Dynamic t m) where fromString = constDyn . fromString
02:46:16 <Cale> )
02:48:01 <Cale> 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 <coppro> Cale: the thing that would stop me from using it, of course, is having to manipulate the stack directly
02:48:28 <Cale> Well, you don't usually really have to manipulate the stack in sensible uses of it
02:48:51 <coppro> true
02:49:07 <coppro> 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 <Cale> Probably.
02:49:37 <Cale> Actually, yes.
02:49:44 <coppro> yeah I think there is
02:49:46 <Cale> You can do it with a type class
02:49:54 <coppro> ah, right!
02:50:57 <Cale> Also, look at the implementation of the stack manipulation things
02:51:17 <Cale> It's possible that using arr directly would be preferable to using dup/swap/etc. in most cases
02:52:23 <Cale> *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 <Cale> 4 plus 6 equals 10
02:52:59 <coppro> ahhh ok
02:55:36 <oerjan> . o O ( will all this inline away... )
02:55:42 <Cale> 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 <Cale> I bet it does, haha
02:56:07 <Cale> It's all newtypes and tiny definitions
02:56:28 <Cale> tiny and non-recursive definitions
02:57:28 <coppro> oh yeah, arrows are a thing
02:57:56 <Cale> unfortunately, it doesn't interact with laziness very nicely
02:58:15 <Cale> Like, if you try f = dup . s . f or something
02:58:25 <Cale> 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 <Cale> oops, just realised the type of skip is overly restrictive too
03:07:57 <Cale> 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 <coppro> yeah
03:12:32 <coppro> things like this make me wish I was back in academia
03:12:48 <coppro> I'm actually impressed this didn't require type-level math logic either
03:27:00 <Cale> 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 <oerjan> `ls ./---##,
03:29:07 <HackEgo> 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 <shachaf> oerjan: Maybe Cale can figure out the fmap thing.
04:16:32 <coppro> Cale: do you work in Brantford?
04:16:52 <coppro> I spend too much of my free time on gaming stuff & politics for that...
04:19:19 <coppro> Cale: hah! I googled "cale haskell" and it turns out there's a guy by that name who works at Bungie!?
04:19:51 <coppro> then I remembered /whois exists
04:19:59 <coppro> shachaf: what fmap thing?
04:20:33 <shachaf> There were a few different things.
04:21:07 <shachaf> 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 <coppro> 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 <zzo38> 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 <zzo38> 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 <shachaf> zzo38: Well, the first nineteen times maybe it increments a counter.
04:39:53 <shachaf> If truly nothing happened the first nineteen times then nothing would happen the twentieth time either.
04:40:38 <zzo38> 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 <coppro> shachaf: what else was there?
04:47:33 <zzo38> If you name your character "VOID" you lose the game instantly.
04:49:27 <zzo38> 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 <zzo38> Also it is possible to sell badges.
04:51:01 <shachaf> I think some of the other questions were solved.
04:52:29 -!- centrinia has quit (Quit: Leaving).
04:52:36 <coppro> shachaf: isn't the one about grouping functions just a special case of @pl?
04:53:05 <shachaf> Well, the original question was whether you could do it without parentheses.
04:53:25 <coppro> wait what?
04:53:38 <coppro> how would you do that?
04:58:43 <oerjan> coppro: not with just (.)
04:59:15 <coppro> oh, like lambdas and stuff?
04:59:58 <zzo38> 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 <oerjan> 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 <oerjan> 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 <coppro> ah
05:01:20 <oerjan> (if you have infinitely many, you can do it: (.).(.).(.). ... . (.) are enough
05:01:22 <oerjan> )
05:01:56 <oerjan> i.e. you can write any grouping function as f_1 ... f_n where each f_i is of that form.
05:04:01 <oerjan> (n might be 0, which is the only way to get id afaict)
05:04:24 <oerjan> (unless you have id in the basis)
05:05:31 <oerjan> 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 <oerjan> so the question is: Is there a finite basis that can construct all groupings this way
05:07:36 <oerjan> i started looking at {(.), (.)(.)} as a possible basis but i lost concentration quickly.
05:08:46 <oerjan> coppro: psst, Cale's surname is in his /whois hth
05:08:49 <oerjan> oh
05:09:00 <oerjan> coppro: never mind me reading scrollback one line at a time
05:18:28 <Cale> coppro: I live in Brantford and work out of my house. My employer is in New York.
05:19:35 <coppro> Cale: ahh
05:22:02 <Cale> coppro: I work for Obsidian Systems on web applications for various clients written entirely in Haskell.
05:22:49 <Cale> 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 <coppro> Cale: cool
05:48:37 -!- pelegreno has quit (Remote host closed the connection).
05:49:51 -!- pelegreno has joined.
06:07:46 <coppro> gah!
06:07:52 <coppro> 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 <newsham> 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 <newsham> http://www.scottaaronson.com/blog/?p=2725
06:56:06 <oerjan> gah scott is really speeding up his posting
06:56:23 * oerjan opened his 5th shtetl-optimized tab
06:59:38 <shachaf> oerjan is clearly not shtetl-optimized-optimized
07:00:15 <oerjan> indeed
07:01:40 <oerjan> well, i'm following comment threads and those have been active last week.
07:01:57 <zzo38> 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 <shachaf> How would you use it?
07:06:44 <shachaf> Hmm, I guess there are various uses.
07:07:22 <shachaf> It seems like maybe it should only work until end of turn, if it's affecting a permanent?
07:08:31 <zzo38> No it lasts permanently like Artificial Evolution and Magical Hack and Sleight of Mind.
07:09:18 <zzo38> 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 <shachaf> Oh, I guess that happens.
07:09:32 <shachaf> It should say "(This effect lasts indefinitely.)".
07:11:03 -!- rdococ has joined.
07:11:27 <zzo38> Yes it could have that reminder text if you want to.
07:13:17 <zzo38> 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 <shachaf> You could use it on Dark Depths.
07:18:18 <zzo38> 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 <b_jonas> `? sdl
08:01:41 <b_jonas> `? tgm
08:01:44 <b_jonas> `? plc
08:01:52 <b_jonas> `? mit
08:02:21 <HackEgo> plc? ¯\(°​_o)/¯
08:02:21 <HackEgo> mit? ¯\(°​_o)/¯
08:02:21 <HackEgo> tgm? ¯\(°​_o)/¯
08:02:21 <HackEgo> sdl? ¯\(°​_o)/¯
08:02:35 <b_jonas> `? rtc
08:02:38 <HackEgo> rtc? ¯\(°​_o)/¯
09:26:39 -!- AnotherTest has joined.
09:36:38 <izabera> 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 <ski> <ski> Cale : oh. yes i remember figuring out that concatenative language trick, years ago :)
11:02:08 <ski> 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 <ski> 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 <ski> well, for clarification, i should say that i didn't have the part involving the monoid `m'. only the CPS part
11:16:31 <boily> @massages-loud
11:16:31 <lambdabot> 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 <fizzie> Subject: So many people out of work...get that Degree and rise to the top
12:03:12 <fizzie> They've added strikeout in the middle of "key" words -- I wonder if that actually does work for avoiding spam filters.
12:03:43 <fizzie> "car<s>e</s>er>, "p<s>r</s>ogram", etc.
12:05:18 <boily> Get your Authentic Dr. Fizzie Degree Certificate Now!
12:06:29 <fizzie> This is the one that advertised "No Examination! No Study! No Class!"
12:06:40 <fizzie> And Fast Worldwide Shipping.
12:07:08 <fizzie> It's also "100% Confidenial" [sic], which I can't help thinking is some sort of a pun.
12:08:20 <boily> it works to a degree.
12:17:41 -!- ybden has joined.
12:20:38 -!- boily has quit (Quit: SWITCH CHICKEN).
12:34:19 <FreeFull> 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 <fizzie> 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 <Phantom_Hoover> 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 <int-e> "imho"?
16:31:22 <int-e> (I thought I knew what that means but it doesn't fit in Phantom_Hoover's line)
16:31:30 <int-e> `? imho
16:31:55 <HackEgo> imho? ¯\(°​_o)/¯
16:32:09 <Yurume_> 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 <FreeFull> Typically honest/humble
17:57:18 <hppavilion[1]> I'm designing something that I'm not smart enough to implement...
17:57:45 <hppavilion[1]> (Not something impossible, mind you, just something I don't have the required knowledge for (yet!))
17:59:15 <zzo38> What kind of thing is it?
18:01:57 <hppavilion[1]> zzo38: Filesystem
18:02:08 <hppavilion[1]> zzo38: It's a sort of improved hybrid between Mobile and Desktop models
18:03:01 <hppavilion[1]> 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 <hppavilion[1]> 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 <zzo38> 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 <zzo38> It mean the user could customize the sandboxing of the program.
18:12:17 <hppavilion[1]> zzo38: Yes, using the free-form filesystem layout is discouraged
18:13:09 <hppavilion[1]> 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 <hppavilion[1]> 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 <zzo38> 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 <zzo38> 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 <hppavilion[1]> 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 <FreeFull> hppavilion[1]: I wouldn't mind the snakes
19:50:57 <hppavilion[1]> FreeFull: Yes
19:51:06 <FreeFull> I also wanna link something to zzo but he left
19:51:07 <hppavilion[1]> FreeFull: I think that we should make the Consortium actually do it
19:51:34 <FreeFull> I guess I can use memoserv
19:54:33 <hppavilion[1]> \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 <FreeFull> 20:01:40 -MemoServ(MemoServ@services.)- zzo38 does not wish to receive memos.
20:06:43 -!- rdococ has quit (Quit: Leaving).
20:31:25 <HackEgo> [wiki] [[Var'aq]] https://esolangs.org/w/index.php?diff=46920&oldid=36135 * * (+230) /* External resources */
20:40:42 -!- Reece` has quit (Ping timeout: 246 seconds).
21:13:02 -!- Kaynato has joined.
21:16:07 <HackEgo> [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 <b_jonas> Does Laconic count as an esolang?
21:18:01 <hppavilion[1]> b_jonas: Yes
21:18:05 <hppavilion[1]> (pun intended)
21:18:06 <b_jonas> I think it does, because its sole purpose is to write short programs in another esolang.
21:18:20 <shachaf> I don't think Turing machines count.
21:18:25 <shachaf> But I think Laconic does.
21:19:17 <b_jonas> 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 <hppavilion[1]> F24DBA5FB0A30E26E83B2AC5B9E29E1B161E5C1FA7425E73043362938B9800chaf
21:23:46 <hppavilion[1]> (I spent far too much time on that)
21:23:55 <shachaf> help
21:24:00 <shachaf> what is that
21:24:17 <shachaf> you can't just -chaf any old thing
21:24:20 <hppavilion[1]> shachaf: The output of a sha256 hash, converted to hex
21:25:08 <shachaf> hash of what
21:25:24 <hppavilion[1]> Oh, wait, I dropped the edges
21:25:31 <hppavilion[1]> (I thought they were control characters
21:25:31 <hppavilion[1]> )
21:29:16 <hppavilion[1]> OK, I give up
21:29:30 -!- centrinia has joined.
21:29:42 <hppavilion[1]> Oh, found it
21:30:02 <hppavilion[1]> F24DBA5FB0A30E26E83B2AC5B9E29E1B161E5C1FA7425E73043362938B9824chaf
21:30:05 <hppavilion[1]> THERE we go
21:30:28 <shachaf> don't chaf me bro
21:31:31 <hppavilion[1]> If normal quantum physics is based on the complexes...
21:31:31 <Phantom_Hoover> hppavilion[1], wait, any sequence of characters ending with 'chaf' is a SHA256 hash of something
21:31:53 <shachaf> in base 18
21:32:01 <FireFly> or 17
21:32:01 <hppavilion[1]> Phantom_Hoover: Yes, but the body of the hash is uppercase and in hex
21:32:06 <FireFly> wait.. no
21:32:07 -!- `^_^v has quit (Ping timeout: 252 seconds).
21:32:09 <hppavilion[1]> Phantom_Hoover: Wait, what about the "h"?
21:32:22 <hppavilion[1]> Can we substitute the complexes for something weirder to get weird quantum physics? :P
21:33:00 <Phantom_Hoover> oh i thought you'd found something that hashed to *chaf
21:33:15 <shachaf> starchaf
21:33:49 <hppavilion[1]> Phantom_Hoover: Oh, no, that would be stupid
21:34:43 <hppavilion[1]> Phantom_Hoover: How would I possibly do that?
21:35:06 <Phantom_Hoover> brute force
21:35:13 <Phantom_Hoover> it's how people find bitcoin vanity addresses
21:35:52 -!- `^_^v has joined.
21:36:09 <shachaf> but h isn't an exadecimal character
21:37:58 <b_jonas> wow. these two blog posts link each other as sources.
21:38:12 <b_jonas> 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 <shachaf> lynn: hi fcrawl
21:38:43 <Phantom_Hoover> shachaf, this is all modulo me misunderstanding the image of SHA256 ofc.
21:39:06 <shachaf> the image of dorian gray
21:47:15 -!- nycs has joined.
21:47:29 -!- `^_^v has quit (Ping timeout: 265 seconds).
22:05:09 <hppavilion[1]> shachaf: What is exadecimal, anyway?
22:05:25 <shachaf> Like a hexadecimal, but without the h.
22:05:32 <b_jonas> j-bot: 96 128*0.3^2
22:05:32 <j-bot> b_jonas: 8.64 11.52
22:05:47 <hppavilion[1]> shachaf: Sure it's not base-1000000000000000000?
22:06:32 <shachaf> Maybe.
22:06:42 <shachaf> Or maybe it's base-10000000000000000000.
22:07:42 <hppavilion[1]> 000000000000000000
22:07:42 <hppavilion[1]> 0000000000000000000
22:07:47 <hppavilion[1]> 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 <quintopia> shachaf: is dorian gray's image an 8-bit greyscale bmp?
22:20:36 -!- moon_ has joined.
22:20:40 <moon_> hia
22:21:37 <moon_> `f
22:21:45 <HackEgo> ​/hackenv/bin/f: line 1: ${1#* }: ambiguous redirect \ /hackenv/bin/f: line 1: : command not found
22:21:54 <hppavilion[1]> `haskell
22:21:55 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: haskell: not found
22:21:57 <hppavilion[1]> `@
22:22:01 <HackEgo> No output.
22:22:04 <hppavilion[1]> `@ walrus
22:22:06 <HackEgo> No output.
22:22:09 <moon_> `f ciol rshame haskell doesnt exist;
22:22:09 <hppavilion[1]> `cat bin/@
22:22:21 <HackEgo> ​/hackenv/bin/f: line 1: ${1#* }: ambiguous redirect
22:22:21 <HackEgo> ​#!/usr/bin/perl -w \ $_ = join " ", @ARGV; if (s/^([^ ]*) +([^ ]*) +//) { print "$1: "; exec $2, $_; }
22:22:57 <hppavilion[1]> `cat bin/.
22:22:59 <HackEgo> cat: bin/.: Is a directory
22:23:05 <moon_> `ciol rshame haskell doesnt exist;
22:23:06 <HackEgo> shame haskell doesnt exist
22:23:13 <hppavilion[1]> `` cat bin/?
22:23:16 <HackEgo> ​#!/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 <hppavilion[1]> wait, whoops
22:23:26 <hppavilion[1]> `` echo bin/?
22:23:27 <HackEgo> bin/` bin/̊ bin/ bin/! bin/? bin/¿ bin/' bin/@ bin/* bin/؟ bin/ bin/ bin/e bin/f bin/h bin/q
22:23:39 <hppavilion[1]>
22:23:40 <HackEgo> ​/hackenv/bin/؟: line 1: ^: command not found
22:24:16 <hppavilion[1]> ؟I am walrus man lord of walrusing
22:24:18 <hppavilion[1]> Huh
22:24:28 <hppavilion[1]> `¿ halp
22:24:29 <HackEgo> ​/hackenv/bin/¿: line 1: ^: command not found
22:24:43 <moon_> https://catmacros.files.wordpress.com/2009/07/cat-halp-1-1.jpg
22:24:44 <hppavilion[1]> `cat bin/¿
22:24:44 <HackEgo> ​? "$@" | rev | tac
22:27:04 <hppavilion[1]> `cat bin/bin
22:27:06 <HackEgo> cat: bin/bin: No such file or directory
22:27:09 <hppavilion[1]> `mkdir bin/bin
22:27:11 <HackEgo> No output.
22:27:26 <hppavilion[1]> `` echo "echo *sigh*" > bin/bin/bin
22:27:33 <HackEgo> No output.
22:27:36 <hppavilion[1]> `bin/bin
22:27:38 <HackEgo> ​/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 <fizzie> Since the minimal f is clearly too difficult to use, added some error messages to when using it wrong.
22:45:05 <FireFly> `cat bin/f
22:45:07 <HackEgo> ​#! /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 <FireFly> `ls
22:45:55 <HackEgo> ​^ \ :-( \ !\.´ \ 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 <FireFly> `cat ^
22:46:16 <HackEgo> No output.
22:46:23 <FireFly> `` ls -l ^
22:46:26 <HackEgo> ​-rw-r--r-- 1 5000 0 0 May 1 20:23 ^
22:46:48 <FireFly> `` ls -l !\\*
22:46:50 <HackEgo> ​-rwxr-xr-x 1 5000 0 32 May 1 20:23 !\.´
22:47:02 <FireFly> `` cat !\\*
22:47:05 <HackEgo> echo 'emergency signal toggled'
22:47:38 <FireFly> `cat 71
22:47:39 <HackEgo> cat: 71: No such file or directory
22:47:39 <FireFly> er
22:47:44 <FireFly> `cat 71ab5gx8
22:47:45 <HackEgo> ​#include <stdio.h>
22:48:05 <FireFly> `culprits 71ab5gx8
22:48:23 <FireFly> `rm ^ 71ab5gx8
22:48:23 <HackEgo> Moon_
22:48:24 <HackEgo> rm: cannot remove `^ 71ab5gx8': No such file or directory
22:48:26 <fizzie> Huh, there must be a \r in that file.
22:48:34 <fizzie> There's more to it than that.
22:48:40 <FireFly> hm
22:48:49 <FireFly> `paste 71ab5gx8
22:48:53 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/file/tip/71ab5gx8
22:49:31 <fizzie> 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 <fizzie> 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 <fizzie> `` echo -e 'foo\nbar\rbaz' # it's just strange
22:50:43 <HackEgo> foo \ bar
22:50:54 <FireFly> Maybe it just acts as EOF essentially
22:51:04 <fizzie> Well, yes, but why.
22:51:04 <FireFly> `` echo -e 'foo\r\nbar'
22:51:07 <HackEgo> foo
22:51:23 <fizzie> I mean, it would act as EOF essentially if HackEgo *was* passing it through unfiltered.
22:51:23 <FireFly> Yeah, I dunno
22:51:48 <shachaf> hizzie HireFly
22:51:53 <FireFly> hachaf
22:52:05 <FireFly> `ls src
22:52:07 <shachaf> i was telling fizzie to hire you, obviously
22:52:07 <HackEgo> 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- \ u8tbl.c \ ul.emm
22:52:14 <fizzie> HireFly is probably a name for something that exists.
22:52:27 <FireFly> `mv 71ab5gx8 src/bob.c
22:52:28 <HackEgo> mv: missing destination file operand after `71ab5gx8 src/bob.c' \ Try `mv --help' for more information.
22:52:30 <FireFly> er
22:52:32 <FireFly> `` mv 71ab5gx8 src/bob.c
22:52:35 <FireFly> I keep doing that
22:52:35 <fizzie> "Hirefly exists to help small and medium sized organizations hire better, so that more people can be engaged in meaningful work."
22:52:37 <HackEgo> No output.
22:52:44 <FireFly> `rm ^
22:52:46 <HackEgo> No output.
22:53:00 <FireFly> `cat daoyu.c
22:53:01 <HackEgo> ​/*
22:53:06 <FireFly> geez
22:53:21 <fizzie> All these carriages to return.
22:53:36 <FireFly> `` mv daoyu.c src/
22:53:41 <HackEgo> No output.
22:53:45 <fizzie> My professional recommendation for HackEgo spring cleanups is to go via the fshg.
22:53:49 <FireFly> `cat lolwhy?
22:53:50 <HackEgo> cat: lolwhy?: Is a directory
22:54:10 <FireFly> fizzie: hmm, right
22:54:26 <moon_> hi
22:54:30 <moon_> im alive
22:55:30 <moon_> `rm lolwhy?
22:55:32 <HackEgo> rm: cannot remove `lolwhy?': Is a directory
22:55:37 <moon_> `rmdir lolwhy?
22:55:38 <HackEgo> No output.
23:04:34 -!- AnotherTest has quit (Ping timeout: 260 seconds).
23:14:38 <b_jonas> 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 <quintopia> to the moon_
23:16:55 <moon_> damnit, the puns are taking revenge on me
23:19:49 <quintopia> what is the largest n for which S(n) has been determined?
23:20:26 <shachaf> I hope S is the successort function here.
23:20:34 <shachaf> successor
23:20:35 <quintopia> Rado S
23:21:39 -!- Sgeo has joined.
23:27:59 <b_jonas> quintopia: I think Aaronson's blog post answers that question.
23:29:03 <quintopia> ok
23:30:15 <fizzie> I seem to recall the Wikipedia article having a table.
23:30:30 <quintopia> 4, apparently
23:30:37 <tromp> is the Laconic author in this channel?
23:30:50 <quintopia> we have lower bounds for 5 and 6
23:31:17 <quintopia> and 7
23:33:17 <shachaf> I don't think the author is particularly laconic.
23:34:16 <quintopia> i like that Yedidia has managed to get an academic paper out of a code golf
23:35:13 <quintopia> I wonder if PPCG could improve on the Yedidia TM.
23:35:46 -!- spiette has quit (Quit: :qa!).
23:38:30 <tromp> goldbach only needs 267 bits
23:38:49 <tromp> 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 <oerjan> `? imho
23:48:01 <HackEgo> imho? ¯\(°​_o)/¯
23:48:40 <oerjan> `learn IMHO means "In my humble omniscience".
23:48:43 <HackEgo> Learned 'imho': IMHO means "In my humble omniscience".
23:49:42 <hppavilion[1]> oerjan: In My *Holy* Omniscience
23:49:52 <hppavilion[1]> Well, both technically
23:49:54 <oerjan> ooh
23:50:02 <oerjan> `learn IMHO means "In my holy omniscience".
23:50:03 <hppavilion[1]> The H is both "Humble" and "Holy"
23:50:06 <HackEgo> Relearned 'imho': IMHO means "In my holy omniscience".
23:50:14 <oerjan> hppavilion[1]: thx tdh hand
23:50:49 <oerjan> `learn IMHO means "In My Holy Omniscience".
23:50:52 <HackEgo> Relearned 'imho': IMHO means "In My Holy Omniscience".
23:52:21 <oerjan> <hppavilion[1]> I'm designing something that I'm not smart enough to implement... <-- tell me, are you _trolling_ for snarks? :P
23:52:37 <hppavilion[1]> oerjan: How so?
23:52:48 <int-e> hppavilion[1]: "that shouldn't be hard"
23:52:49 <oerjan> because i have to resist making one
23:53:38 <moon_> *reading up on anti-piracy measures*
23:53:46 <oerjan> (which means i failed to meta-resist it, i guess)
23:54:06 <oerjan> moon_: i think the Somalia operation worked pretty well
23:55:47 <oerjan> . o O ( maybe we should send RIAA there on a conference )
23:56:39 <oerjan> otoh i saw someone get downvoted on reddit for wanting to torrent the ramanujan movie, so there is _some_ nuance there.
23:57:05 <hppavilion[1]> I subscribe to the #esoteric school of economics
23:57:10 <hppavilion[1]> (What is that school again?)
23:57:21 <int-e> tromp: well there's a downside to a) targeting turing machines and b) compiling from a comparatively high level language.
23:57:30 <oerjan> hppavilion[1]: mostly cod, some haddock
23:58:39 <oerjan> int-e: y'all did see the aaronson link yesterday? (hm, i've not got around to finish reading it yet)
23:58:47 <oerjan> > f x
23:58:48 <lambdabot> No instance for (Show a0)
23:58:48 <lambdabot> arising from a use of ‘show_M710835518429648114410516’
23:58:48 <lambdabot> The type variable ‘a0’ is ambiguous
23:59:11 <oerjan> :t f . ($)
23:59:12 <lambdabot> (Typeable a, Typeable b, FromExpr c) => (a -> b) -> c
23:59:45 <int-e> 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
←2016-05-03 2016-05-04 2016-05-05→ ↑2016 ↑all